diff --git a/.browserslistrc b/.browserslistrc deleted file mode 100644 index 4ad54fdc91..0000000000 --- a/.browserslistrc +++ /dev/null @@ -1,2 +0,0 @@ -defaults -IE 11 diff --git a/.gitattributes b/.gitattributes index dc15ed793c..bb040f9a84 100644 --- a/.gitattributes +++ b/.gitattributes @@ -8,4 +8,3 @@ # Same thing for following files, but they don't have an sh extension pre-commit eol=lf webpack-dev-server eol=lf -install-bundler eol=lf \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 0d46875442..78d396df84 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,4 +1,4 @@ -#### What? Why? +## What? Why? - Closes # @@ -7,7 +7,7 @@ -#### What should we test? +## What should we test? @@ -33,12 +33,12 @@ Changelog Category (reviewers may add a label for the release notes): The title of the pull request will be included in the release notes. -#### Dependencies +## Dependencies -#### Documentation updates +## Documentation updates diff --git a/.github/dependabot.yml b/.github/dependabot.yml index f43dca1226..1b2572a9cc 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -31,6 +31,8 @@ updates: directory: "/" schedule: interval: "daily" + cooldown: + default-days: 7 # Only specific requirements are specified in Gemfile, so don't touch it. versioning-strategy: lockfile-only @@ -39,6 +41,8 @@ updates: directory: "/" schedule: interval: "daily" + cooldown: + default-days: 7 # Only specific requirements are specified in package.json, so don't touch it. versioning-strategy: lockfile-only diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c6711bb01a..33f3663f33 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,7 +46,7 @@ jobs: - uses: actions/checkout@v3 - name: Setup redis - uses: supercharge/redis-github-action@1.4.0 + uses: supercharge/redis-github-action@1.8.1 with: redis-version: 6 @@ -124,7 +124,7 @@ jobs: - uses: actions/checkout@v3 - name: Setup redis - uses: supercharge/redis-github-action@1.4.0 + uses: supercharge/redis-github-action@1.8.1 with: redis-version: 6 @@ -211,7 +211,7 @@ jobs: - uses: actions/checkout@v3 - name: Setup redis - uses: supercharge/redis-github-action@1.4.0 + uses: supercharge/redis-github-action@1.8.1 with: redis-version: 6 @@ -290,7 +290,7 @@ jobs: - uses: actions/checkout@v3 - name: Setup redis - uses: supercharge/redis-github-action@1.4.0 + uses: supercharge/redis-github-action@1.8.1 with: redis-version: 6 diff --git a/.rspec b/.rspec index eb81da86cf..c99d2e7396 100644 --- a/.rspec +++ b/.rspec @@ -1 +1 @@ ---require base_spec_helper +--require spec_helper diff --git a/.ruby-version b/.ruby-version index e650c01d92..7921bd0c89 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.2.9 +3.4.8 diff --git a/Dockerfile b/Dockerfile index 2b4c6a94fa..5af71e90e9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ruby:3.2.9-alpine3.19 AS base +FROM ruby:3.4.8-alpine3.19 AS base ENV LANG=C.UTF-8 \ LC_ALL=C.UTF-8 \ TZ=Europe/London \ @@ -31,4 +31,4 @@ FROM development-base COPY . $RAILS_ROOT COPY Gemfile Gemfile.lock ./ RUN bundle install --jobs "$(nproc)" -COPY --from=yarn-dependencies $RAILS_ROOT/node_modules ./node_modules \ No newline at end of file +COPY --from=yarn-dependencies $RAILS_ROOT/node_modules ./node_modules diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index 4d67450b24..5900b7156a 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -83,11 +83,8 @@ RUN wget https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.z # Copy code and install app dependencies COPY . /usr/src/app/ -# Install Bundler -RUN ./script/install-bundler - # Install front-end dependencies RUN yarn install # Run bundler install in parallel with the amount of available CPUs -RUN bundle install --jobs="$(nproc)" \ No newline at end of file +RUN bundle install --jobs="$(nproc)" diff --git a/Gemfile b/Gemfile index e57cc9b443..9f712c07b6 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'activemerchant' gem 'angular-rails-templates' gem 'ransack', '~> 4.1.0' gem 'responders' -gem 'webpacker', '~> 5' +gem 'shakapacker', '8.4.0' # Indirect dependency but we access it directly in JS specs. # It turns out to be hard to upgrade but please do if you can. @@ -49,7 +49,7 @@ gem 'acts_as_list', '1.0.4' gem 'cancancan', '~> 1.15.0' gem 'digest' gem 'ffaker' -gem 'highline', '2.0.3' # Necessary for the install generator +gem 'highline' gem 'json' gem 'monetize', '~> 1.11' gem 'paranoia', '~> 2.4' @@ -57,7 +57,8 @@ gem 'state_machines-activerecord' gem 'stringex', '~> 2.8.5', require: false gem 'paypal-sdk-merchant', '1.117.2' -gem 'stripe', '~> 13' +gem 'stripe', '~> 15' +gem "taler" gem 'devise' gem 'devise-encryptable' @@ -111,7 +112,7 @@ gem "turbo_power" gem "turbo-rails" gem 'combine_pdf' -gem 'wicked_pdf' +gem 'wicked_pdf', github: "openfoodfoundation/wicked_pdf", branch: "master" gem 'wkhtmltopdf-binary' gem 'immigrant' @@ -126,7 +127,8 @@ gem 'angular_rails_csrf' gem 'jquery-rails', '4.4.0' gem 'jquery-ui-rails', '~> 4.2' -gem "select2-rails", github: "openfoodfoundation/select2-rails", branch: "v349_with_thor_v1" +gem "select2-rails", github: "openfoodfoundation/select2-rails", + branch: "v349_with-relaxed-dependencies" gem 'good_migrations' diff --git a/Gemfile.lock b/Gemfile.lock index 6936476a74..25b59e0f11 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -10,13 +10,21 @@ GIT GIT remote: https://github.com/openfoodfoundation/select2-rails.git - revision: fc240e85fbdf1878ff3c39d972c0cd9a312f5ed4 - branch: v349_with_thor_v1 + revision: 9693e0cc5b04938da46692d3fa83aa8934791981 + branch: v349_with-relaxed-dependencies specs: select2-rails (3.4.9) - sass-rails thor (>= 0.14) +GIT + remote: https://github.com/openfoodfoundation/wicked_pdf.git + revision: bce498de547cdf00d037fdbec29fae844d69ee8e + branch: master + specs: + wicked_pdf (2.8.1) + activesupport + ostruct + GIT remote: https://github.com/podia/stimulus_reflex_testing.git revision: abac2ee34de347c589795b4d1a8e83e0baafb201 @@ -104,11 +112,12 @@ GEM rails-html-sanitizer (~> 1.6) active_model_serializers (0.8.4) activemodel (>= 3.0) - active_storage_validations (1.1.4) - activejob (>= 5.2.0) - activemodel (>= 5.2.0) - activestorage (>= 5.2.0) - activesupport (>= 5.2.0) + active_storage_validations (3.0.3) + activejob (>= 6.1.4) + activemodel (>= 6.1.4) + activestorage (>= 6.1.4) + activesupport (>= 6.1.4) + marcel (>= 1.0.3) activejob (7.1.6) activesupport (= 7.1.6) globalid (>= 0.3.6) @@ -201,12 +210,12 @@ GEM bigdecimal (3.3.1) bindata (2.5.1) bindex (0.8.1) - bootsnap (1.19.0) + bootsnap (1.22.0) msgpack (~> 1.2) bugsnag (6.28.0) concurrent-ruby (~> 1.0) builder (3.3.0) - bullet (8.0.8) + bullet (8.1.0) activesupport (>= 3.0.0) uniform_notifier (~> 1.11) cable_ready (5.0.6) @@ -233,7 +242,7 @@ GEM marcel (~> 1.0) nokogiri (~> 1.10, >= 1.10.4) rubyzip (>= 1.3.0, < 3) - cgi (0.5.0) + cgi (0.5.1) childprocess (5.0.0) choice (0.2.0) chronic (0.10.2) @@ -248,7 +257,7 @@ GEM combine_pdf (1.0.31) matrix ruby-rc4 (>= 0.1.5) - concurrent-ruby (1.3.5) + concurrent-ruby (1.3.6) connection_pool (2.5.5) cookiejar (0.3.4) crack (1.0.1) @@ -258,9 +267,9 @@ GEM css_parser (1.21.1) addressable csv (3.3.5) - cuprite (0.15) + cuprite (0.17) capybara (~> 3.0) - ferrum (~> 0.14.0) + ferrum (~> 0.17.0) database_cleaner (2.1.0) database_cleaner-active_record (>= 2, < 3) database_cleaner-active_record (2.2.2) @@ -269,7 +278,7 @@ GEM database_cleaner-core (2.0.1) datafoodconsortium-connector (1.2.0) virtual_assembly-semantizer (~> 1.0, >= 1.0.5) - date (3.5.0) + date (3.5.1) debug (1.11.0) irb (~> 1.10) reline (>= 0.3.8) @@ -304,9 +313,9 @@ GEM eventmachine (>= 1.0.0.beta.1) email_validator (2.2.4) activemodel - erb (6.0.0) + erb (6.0.1) erubi (1.13.1) - et-orbi (1.3.0) + et-orbi (1.4.0) tzinfo eventmachine (1.2.7) eventmachine_httpserver (0.2.1) @@ -317,19 +326,22 @@ GEM factory_bot_rails (6.2.0) factory_bot (~> 6.2.0) railties (>= 5.0.0) - faraday (2.9.0) - faraday-net_http (>= 2.0, < 3.2) + faraday (2.14.1) + faraday-net_http (>= 2.0, < 3.5) + json + logger faraday-follow_redirects (0.4.0) faraday (>= 1, < 3) - faraday-net_http (3.1.1) - net-http - ferrum (0.14) + faraday-net_http (3.4.2) + net-http (~> 0.5) + ferrum (0.17.1) addressable (~> 2.5) + base64 (~> 0.2) concurrent-ruby (~> 1.1) webrick (~> 1.7) - websocket-driver (>= 0.6, < 0.8) + websocket-driver (~> 0.7) ffaker (2.25.0) - ffi (1.17.2) + ffi (1.17.3) flipper (1.3.6) concurrent-ruby (< 2) flipper-active_record (1.3.6) @@ -360,8 +372,8 @@ GEM foreman (0.90.0) thor (~> 1.4) formatador (0.2.5) - fugit (1.11.1) - et-orbi (~> 1, >= 1.2.11) + fugit (1.12.1) + et-orbi (~> 1.4) raabro (~> 1.4) fuubar (2.5.1) rspec-core (~> 3.0) @@ -379,7 +391,7 @@ GEM temple (>= 0.8.2) thor tilt - haml_lint (0.67.0) + haml_lint (0.68.0) haml (>= 5.0) parallel (~> 1.10) rainbow @@ -387,8 +399,10 @@ GEM sysexits (~> 1.1) hashdiff (1.2.1) hashery (2.1.2) - hashie (5.0.0) - highline (2.0.3) + hashie (5.1.0) + logger + highline (3.1.2) + reline htmlentities (4.4.2) http_parser.rb (0.8.0) i18n (1.14.7) @@ -415,10 +429,11 @@ GEM activerecord (>= 3.0) invisible_captcha (2.3.0) rails (>= 5.2) - io-console (0.8.1) + io-console (0.8.2) ipaddress (0.8.3) - irb (1.15.3) + irb (1.17.0) pp (>= 0.6.0) + prism (>= 1.3.0) rdoc (>= 4.0.0) reline (>= 0.4.2) jmespath (1.6.2) @@ -428,7 +443,7 @@ GEM thor (>= 0.14, < 2.0) jquery-ui-rails (4.2.1) railties (>= 3.2.16) - json (2.15.2) + json (2.18.1) json-canonicalization (1.0.0) json-jwt (1.17.0) activesupport (>= 4.2) @@ -454,7 +469,7 @@ GEM activesupport (>= 4.2) jwt (2.10.2) base64 - knapsack_pro (8.4.0) + knapsack_pro (9.2.2) rake language_server-protocol (3.17.0.5) launchy (3.0.0) @@ -464,11 +479,12 @@ GEM launchy (>= 2.2, < 4) link_header (0.0.8) lint_roller (1.1.0) - listen (3.9.0) + listen (3.10.0) + logger rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) logger (1.7.0) - loofah (2.24.1) + loofah (2.25.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.9.0) @@ -491,7 +507,8 @@ GEM logger mini_mime (1.1.5) mini_portile2 (2.8.6) - minitest (5.26.2) + minitest (6.0.1) + prism (~> 1.5) monetize (1.13.0) money (~> 6.12) money (6.16.0) @@ -500,8 +517,8 @@ GEM multi_json (1.17.0) multi_xml (0.6.0) mutex_m (0.3.0) - net-http (0.7.0) - uri + net-http (0.9.1) + uri (>= 0.11.1) net-imap (0.5.12) date net-protocol @@ -513,7 +530,7 @@ GEM net-protocol newrelic_rpm (9.24.0) nio4r (2.7.5) - nokogiri (1.18.10) + nokogiri (1.19.1) mini_portile2 (~> 2.8.2) racc (~> 1.4) nokogiri-html5-inference (0.3.0) @@ -530,7 +547,7 @@ GEM logger rack (>= 2.2.3) rack-protection - omniauth-rails_csrf_protection (1.0.2) + omniauth-rails_csrf_protection (2.0.1) actionpack (>= 4.2) omniauth (~> 2.0) omniauth_openid_connect (0.8.0) @@ -551,6 +568,7 @@ GEM webfinger (~> 2.0) orm_adapter (0.5.0) ostruct (0.6.1) + package_json (0.2.0) pagy (9.4.0) paper_trail (17.0.0) activerecord (>= 7.1) @@ -558,7 +576,7 @@ GEM parallel (1.27.0) paranoia (2.6.4) activerecord (>= 5.1, < 7.2) - parser (3.3.10.0) + parser (3.3.10.2) ast (~> 2.4.1) racc paypal-sdk-core (0.3.4) @@ -576,15 +594,16 @@ GEM pp (0.6.3) prettyprint prettyprint (0.2.0) - prism (1.6.0) + prism (1.9.0) private_address_check (0.5.0) - pry (0.15.2) + pry (0.16.0) coderay (~> 1.1) method_source (~> 1.0) - psych (5.2.6) + reline (>= 0.6.0) + psych (5.3.1) date stringio - public_suffix (7.0.0) + public_suffix (7.0.2) puffing-billy (4.0.2) addressable (~> 2.5) em-http-request (~> 1.1, >= 1.1.0) @@ -600,7 +619,7 @@ GEM railties (>= 4.2) raabro (1.4.0) racc (1.8.1) - rack (2.2.21) + rack (2.2.22) rack-mini-profiler (2.3.4) rack (>= 1.2.0) rack-oauth2 (2.3.0) @@ -613,7 +632,7 @@ GEM rack-protection (3.2.0) base64 (>= 0.1.0) rack (~> 2.2, >= 2.2.4) - rack-proxy (0.7.6) + rack-proxy (0.7.7) rack rack-rewrite (1.5.1) rack-session (1.0.2) @@ -674,7 +693,7 @@ GEM activesupport (>= 6.1.5) i18n rb-fsevent (0.11.2) - rb-inotify (0.10.1) + rb-inotify (0.11.1) ffi (~> 1.0) rdf (3.3.4) bcp47_spec (~> 0.2) @@ -683,7 +702,7 @@ GEM logger (~> 1.5) ostruct (~> 0.6) readline (~> 0.0) - rdoc (6.16.0) + rdoc (7.2.0) erb psych (>= 4.0.0) tsort @@ -692,16 +711,16 @@ GEM redcarpet (3.6.1) redis (5.4.1) redis-client (>= 0.22.0) - redis-client (0.26.1) + redis-client (0.26.4) connection_pool regexp_parser (2.11.3) reline (0.6.3) io-console (~> 0.5) request_store (1.7.0) rack (>= 1.4) - responders (3.1.1) - actionpack (>= 5.2) - railties (>= 5.2) + responders (3.2.0) + actionpack (>= 7.0) + railties (>= 7.0) rexml (3.4.4) roadie (5.2.1) css_parser (~> 1.4) @@ -756,7 +775,7 @@ GEM rswag-ui (2.17.0) actionpack (>= 5.2, < 8.2) railties (>= 5.2, < 8.2) - rubocop (1.81.7) + rubocop (1.84.2) json (~> 2.3) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.1.0) @@ -764,25 +783,25 @@ GEM parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 2.9.3, < 3.0) - rubocop-ast (>= 1.47.1, < 2.0) + rubocop-ast (>= 1.49.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 4.0) - rubocop-ast (1.48.0) + rubocop-ast (1.49.0) parser (>= 3.3.7.2) - prism (~> 1.4) + prism (~> 1.7) rubocop-capybara (2.22.1) lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-factory_bot (2.28.0) lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) - rubocop-rails (2.34.2) + rubocop-rails (2.34.3) activesupport (>= 4.2.0) lint_roller (~> 1.1) rack (>= 1.1) rubocop (>= 1.75.0, < 2.0) rubocop-ast (>= 1.44.0, < 2.0) - rubocop-rspec (3.8.0) + rubocop-rspec (3.9.0) lint_roller (~> 1.1) rubocop (~> 1.81) rubocop-rspec_rails (2.32.0) @@ -797,33 +816,32 @@ GEM ffi (~> 1.12) logger rubyzip (2.4.1) - rufus-scheduler (3.8.2) - fugit (~> 1.1, >= 1.1.6) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) rugged (1.9.0) sanitize (7.0.0) crass (~> 1.0.2) nokogiri (>= 1.16.8) - sass (3.4.25) - sass-rails (5.0.8) - railties (>= 5.2.0) - sass (~> 3.1) - sprockets (>= 2.8, < 4.0) - sprockets-rails (>= 2.0, < 4.0) - tilt (>= 1.1, < 3) sd_notify (0.1.1) securerandom (0.4.1) - semantic_range (3.0.0) + semantic_range (3.1.0) + shakapacker (8.4.0) + activesupport (>= 5.2) + package_json + rack-proxy (>= 0.6.1) + railties (>= 5.2) + semantic_range (>= 2.3.0) shoulda-matchers (7.0.1) activesupport (>= 7.1) - sidekiq (7.2.4) - concurrent-ruby (< 2) - connection_pool (>= 2.3.0) - rack (>= 2.2.4) - redis-client (>= 0.19.0) - sidekiq-scheduler (5.0.3) + sidekiq (7.3.10) + base64 + connection_pool (>= 2.3.0, < 3) + logger + rack (>= 2.2.4, < 3.3) + redis-client (>= 0.23.0, < 1) + sidekiq-scheduler (6.0.1) rufus-scheduler (~> 3.2) - sidekiq (>= 6, < 8) - tilt (>= 1.4.0) + sidekiq (>= 7.3, < 9) simplecov (0.22.0) docile (~> 1.1) simplecov-html (~> 0.11) @@ -834,7 +852,7 @@ GEM caxlsx (<= 4.0) csv rodf - spring (4.4.0) + spring (4.4.2) spring-commands-rspec (1.0.4) spring (>= 0.9.1) spring-commands-rubocop (0.4.0) @@ -867,21 +885,22 @@ GEM railties (>= 5.2) redis (>= 4.0, < 6.0) stringex (2.8.6) - stringio (3.1.8) - stripe (13.5.1) + stringio (3.2.0) + stripe (15.5.0) swd (2.0.3) activesupport (>= 3) attr_required (>= 0.0.5) faraday (~> 2.0) faraday-follow_redirects sysexits (1.2.0) - temple (0.8.2) + taler (0.2.0) + temple (0.10.4) terminal-table (4.0.0) unicode-display_width (>= 1.1.1, < 4) - thor (1.4.0) + thor (1.5.0) thread-local (1.1.0) - tilt (2.6.1) - timeout (0.4.4) + tilt (2.7.0) + timeout (0.6.0) tsort (0.2.0) ttfunk (1.8.0) bigdecimal (~> 3.1) @@ -902,8 +921,8 @@ GEM simplecov_json_formatter unicode-display_width (3.2.0) unicode-emoji (~> 4.1) - unicode-emoji (4.1.0) - uniform_notifier (1.17.0) + unicode-emoji (4.2.0) + uniform_notifier (1.18.0) uri (1.1.1) valid_email2 (5.2.3) activemodel (>= 3.2) @@ -940,26 +959,18 @@ GEM addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - webpacker (5.4.4) - activesupport (>= 5.2) - rack-proxy (>= 0.6.1) - railties (>= 5.2) - semantic_range (>= 2.3.0) webrick (1.9.2) - websocket-driver (0.7.7) + websocket-driver (0.8.0) base64 websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) whenever (1.1.0) chronic (>= 0.6.3) - wicked_pdf (2.8.2) - activesupport - ostruct wkhtmltopdf-binary (0.12.6.10) xml-simple (1.1.8) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.7.3) + zeitwerk (2.7.4) PLATFORMS ruby @@ -1017,7 +1028,7 @@ DEPENDENCIES good_migrations haml haml_lint - highline (= 2.0.3) + highline i18n i18n-js (~> 3.9.0) i18n-tasks @@ -1081,6 +1092,7 @@ DEPENDENCIES rubocop-rspec_rails sd_notify select2-rails! + shakapacker (= 8.4.0) shoulda-matchers sidekiq sidekiq-scheduler @@ -1094,7 +1106,8 @@ DEPENDENCIES stimulus_reflex stimulus_reflex_testing! stringex (~> 2.8.5) - stripe (~> 13) + stripe (~> 15) + taler turbo-rails turbo_power undercover @@ -1106,13 +1119,12 @@ DEPENDENCIES web! web-console webmock - webpacker (~> 5) whenever - wicked_pdf + wicked_pdf! wkhtmltopdf-binary RUBY VERSION - ruby 3.2.9p265 + ruby 3.4.8p72 BUNDLED WITH - 2.4.19 + 4.0.3 diff --git a/Procfile b/Procfile index 5bd98f6681..6f9a4e720f 100644 --- a/Procfile +++ b/Procfile @@ -1,5 +1,5 @@ # Foreman Procfile. Start all dev server processes with: `foreman start` rails: DEV_CACHING=true bundle exec rails s -p 3000 -webpack: ./bin/webpack-dev-server +webpack: ./bin/shakapacker-dev-server sidekiq: DEV_CACHING=true bundle exec sidekiq -q mailers -q default diff --git a/Procfile.docker b/Procfile.docker index 3ad3b7c78d..1e61946ee3 100644 --- a/Procfile.docker +++ b/Procfile.docker @@ -1,5 +1,5 @@ # Foreman Procfile for Docker env. Start all dev server processes with: `bundle exec foreman start -f Procfile.docker` -webpack: WEBPACKER_DEV_SERVER_HOST=0.0.0.0 ./bin/webpack-dev-server +webpack: SHAKAPACKER_DEV_SERVER_HOST=0.0.0.0 ./bin/shakapacker-dev-server sidekiq: DEV_CACHING=true bundle exec sidekiq -q mailers -q default -rails: WEBPACKER_DEV_SERVER_HOST=0.0.0.0 DEV_CACHING=true bundle exec rails s -p 3000 -b 0.0.0.0 +rails: SHAKAPACKER_DEV_SERVER_HOST=0.0.0.0 DEV_CACHING=true bundle exec rails s -p 3000 -b 0.0.0.0 diff --git a/app/assets/javascripts/admin/order_cycles/order_cycles.js.erb.coffee b/app/assets/javascripts/admin/order_cycles/order_cycles.js.coffee similarity index 100% rename from app/assets/javascripts/admin/order_cycles/order_cycles.js.erb.coffee rename to app/assets/javascripts/admin/order_cycles/order_cycles.js.coffee diff --git a/app/assets/javascripts/darkswarm/controllers/home_controller.js.coffee b/app/assets/javascripts/darkswarm/controllers/home_controller.js.coffee deleted file mode 100644 index ddc73075c2..0000000000 --- a/app/assets/javascripts/darkswarm/controllers/home_controller.js.coffee +++ /dev/null @@ -1,5 +0,0 @@ -angular.module('Darkswarm').controller "HomeCtrl", ($scope) -> - $scope.brandStoryExpanded = false - - $scope.toggleBrandStory = -> - $scope.brandStoryExpanded = !$scope.brandStoryExpanded diff --git a/app/assets/javascripts/darkswarm/controllers/tmp_controller.js.coffee b/app/assets/javascripts/darkswarm/controllers/tmp_controller.js.coffee deleted file mode 100644 index 76b4d6cb3f..0000000000 --- a/app/assets/javascripts/darkswarm/controllers/tmp_controller.js.coffee +++ /dev/null @@ -1,2 +0,0 @@ -angular.module('Darkswarm').controller "TmpCtrl", ($scope)-> - $scope.test = {foo: "bar"} diff --git a/app/assets/stylesheets/mail.scss b/app/assets/stylesheets/mail.scss deleted file mode 100644 index e35654c0d2..0000000000 --- a/app/assets/stylesheets/mail.scss +++ /dev/null @@ -1 +0,0 @@ -@import './mail/all.scss'; diff --git a/app/assets/stylesheets/mail/all.scss b/app/assets/stylesheets/mail/all.scss deleted file mode 100644 index fa8445d726..0000000000 --- a/app/assets/stylesheets/mail/all.scss +++ /dev/null @@ -1,3 +0,0 @@ -@import '../../../webpacker/css/admin/globals/palette.scss'; -@import 'email'; -@import 'payments_list'; diff --git a/app/components/searchable_dropdown_component.rb b/app/components/searchable_dropdown_component.rb index 1f4d5f9e87..67a785edaf 100644 --- a/app/components/searchable_dropdown_component.rb +++ b/app/components/searchable_dropdown_component.rb @@ -1,17 +1,18 @@ # frozen_string_literal: true class SearchableDropdownComponent < ViewComponent::Base - REMOVED_SEARCH_PLUGIN = { 'tom-select-options-value': '{ "plugins": [] }' }.freeze MINIMUM_OPTIONS_FOR_SEARCH_FIELD = 11 # at least 11 options are required for the search field def initialize( - form:, name:, options:, selected_option:, - placeholder_value:, + form: nil, + placeholder_value: '', include_blank: false, aria_label: '', + multiple: false, + remote_url: nil, other_attrs: {} ) @f = form @@ -21,13 +22,15 @@ class SearchableDropdownComponent < ViewComponent::Base @placeholder_value = placeholder_value @include_blank = include_blank @aria_label = aria_label + @multiple = multiple + @remote_url = remote_url @other_attrs = other_attrs end private attr_reader :f, :name, :options, :selected_option, :placeholder_value, :include_blank, - :aria_label, :other_attrs + :aria_label, :multiple, :remote_url, :other_attrs def classes "fullwidth #{'no-input' if remove_search_plugin?}" @@ -36,11 +39,33 @@ class SearchableDropdownComponent < ViewComponent::Base def data { controller: "tom-select", - 'tom-select-placeholder-value': placeholder_value - }.merge(remove_search_plugin? ? REMOVED_SEARCH_PLUGIN : {}) + 'tom-select-placeholder-value': placeholder_value, + 'tom-select-options-value': tom_select_options_value, + 'tom-select-remote-url-value': remote_url, + } + end + + def tom_select_options_value + plugins = [] + plugins << 'virtual_scroll' if @remote_url.present? + plugins << 'dropdown_input' unless remove_search_plugin? + plugins << 'remove_button' if multiple + + { + plugins:, + maxItems: multiple ? nil : 1, + } + end + + def uses_form_builder? + f.present? end def remove_search_plugin? - @remove_search_plugin ||= options.count < MINIMUM_OPTIONS_FOR_SEARCH_FIELD + # Remove the search plugin when: + # - the select is multiple (it already includes a search field), or + # - there is no remote URL and the options are below the search threshold + @remove_search_plugin ||= multiple || + (@remote_url.nil? && options.count < MINIMUM_OPTIONS_FOR_SEARCH_FIELD) end end diff --git a/app/components/searchable_dropdown_component/searchable_dropdown_component.html.haml b/app/components/searchable_dropdown_component/searchable_dropdown_component.html.haml index 14d8969348..50d574d360 100644 --- a/app/components/searchable_dropdown_component/searchable_dropdown_component.html.haml +++ b/app/components/searchable_dropdown_component/searchable_dropdown_component.html.haml @@ -1 +1,4 @@ -= f.select name, options_for_select(options, selected_option), { include_blank: }, class: classes, data:, 'aria-label': aria_label, **other_attrs +- if uses_form_builder? + = f.select name, options, { selected: selected_option, include_blank:, multiple: }, class: classes, data:, 'aria-label': aria_label, **other_attrs +- else + = select_tag name, options_for_select(options, selected_option), include_blank:, multiple:, class: classes, data:, 'aria-label': aria_label, **other_attrs diff --git a/app/components/ship_order_component.html.haml b/app/components/ship_order_component.html.haml index be05f354e1..16490e5c88 100644 --- a/app/components/ship_order_component.html.haml +++ b/app/components/ship_order_component.html.haml @@ -1,4 +1,4 @@ -= render ConfirmModalComponent.new(id: dom_id(@order, :ship), confirm_reflexes: "click->Admin::OrdersReflex#ship", controller: "orders", reflex: "Admin::Orders#ship") do += render ConfirmModalComponent.new(id: dom_id(@order, :ship), confirm_actions: "click->modal#close", confirm_reflexes: "click->Admin::OrdersReflex#ship", controller: "orders", reflex: "Admin::Orders#ship") do %div{class: "margin-bottom-30"} %p= t('spree.admin.orders.shipment.mark_as_shipped_message_html') %div{class: "margin-bottom-30"} diff --git a/app/components/webhook_endpoint_form_component.rb b/app/components/webhook_endpoint_form_component.rb new file mode 100644 index 0000000000..eff832f707 --- /dev/null +++ b/app/components/webhook_endpoint_form_component.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +class WebhookEndpointFormComponent < ViewComponent::Base + def initialize(webhooks:, webhook_type:) + @webhooks = webhooks + @webhook_type = webhook_type + end + + private + + attr_reader :webhooks, :webhook_type + + def is_webhook_payment_status? + webhook_type == "payment_status_changed" + end +end diff --git a/app/components/webhook_endpoint_form_component/webhook_endpoint_form_component.html.haml b/app/components/webhook_endpoint_form_component/webhook_endpoint_form_component.html.haml new file mode 100644 index 0000000000..80f0147043 --- /dev/null +++ b/app/components/webhook_endpoint_form_component/webhook_endpoint_form_component.html.haml @@ -0,0 +1,27 @@ +-# Create new endpoints +- if webhooks.empty? # Only one allowed for now. + %tr + %td= t("components.webhook_endpoint_form.event_types.#{webhook_type}") + %td + = form_with(url: helpers.account_webhook_endpoints_path, id: "#{webhook_type}_webhook_endpoint") do |f| + = f.url_field :'webhook_endpoint[url]', id: "#{webhook_type}_webhook_endpoint_url", placeholder: t('components.webhook_endpoint_form.url.create_placeholder'), required: true, size: 64 + = f.hidden_field :'webhook_endpoint[webhook_type]', id: "#{webhook_type}_webhook_endpoint_webhook_type", value: webhook_type + %td.actions + = button_tag t(:create), class: 'button primary tiny no-margin', form: "#{webhook_type}_webhook_endpoint" + +-# Existing endpoints +- webhooks.each do |webhook_endpoint| + %tr + %td= t("components.webhook_endpoint_form.event_types.#{webhook_type}") + %td= webhook_endpoint.url + %td.actions.endpoints-actions + - if webhook_endpoint.persisted? + = button_to helpers.account_webhook_endpoint_path(webhook_endpoint), method: :delete, + class: "tiny alert no-margin", + data: { confirm: I18n.t(:are_you_sure) } do + = I18n.t(:delete) + + - if is_webhook_payment_status? + = form_tag helpers.webhook_endpoint_test_account_path(webhook_endpoint), class: "button_to", 'data-turbo': true do + = button_tag type: "submit", class: "tiny alert no-margin", data: { confirm: I18n.t(:are_you_sure) } do + = I18n.t("components.webhook_endpoint_form.test_endpoint") diff --git a/app/controllers/admin/products_v3_controller.rb b/app/controllers/admin/products_v3_controller.rb index 19243b4278..d5c3f5383c 100644 --- a/app/controllers/admin/products_v3_controller.rb +++ b/app/controllers/admin/products_v3_controller.rb @@ -7,6 +7,7 @@ module Admin before_action :init_filters_params before_action :init_pagination_params + before_action :init_none_tag def index fetch_products @@ -27,7 +28,7 @@ module Admin flash[:success] = I18n.t('admin.products_v3.bulk_update.success') redirect_to [:index, { page: @page, per_page: @per_page, search_term: @search_term, - producer_id: @producer_id, category_id: @category_id }] + producer_id: @producer_id, category_id: @category_id, tags_name_in: @tags }] elsif product_set.errors.present? @error_counts = { saved: product_set.saved_count, invalid: product_set.invalid.count } @@ -119,7 +120,7 @@ module Admin @search_term = params[:search_term] || params[:_search_term] @producer_id = params[:producer_id] || params[:_producer_id] @category_id = params[:category_id] || params[:_category_id] - @tags = params[:tags_name_in] || params[:_tags_name_in] + @tags = params[:tags_name_in] || [] end def init_pagination_params @@ -179,6 +180,8 @@ module Admin product_query = OpenFoodNetwork::Permissions.new(spree_current_user) .editable_products.merge(product_scope_with_includes).ransack(ransack_query).result + product_query = apply_tags_filter(product_query) + # Postgres requires ORDER BY expressions to appear in the SELECT list when using DISTINCT. # When the current ransack sort uses the computed stock columns, include them in the select # so the generated COUNT/DISTINCT query is valid. @@ -225,12 +228,51 @@ module Admin query.merge!(Spree::Variant::SEARCH_KEY => @search_term) end query.merge!(variants_primary_taxon_id_in: @category_id) if @category_id.present? - query.merge!(variants_tags_name_in: @tags) if @tags.present? query.merge!(@q) if @q query end + # Apply tags filter with OR logic: + # - Products with variants having selected tags + # - OR products with variants having no tags (when "None" is selected) + # + # Note: This cannot be implemented using Ransack because Ransack applies + # AND semantics across associations and cannot express OR logic that combines + # the presence and absence of the same associated records. + def apply_tags_filter(base_query) + return base_query if @tags.blank? + + tag_names = Array(@tags).dup + has_none_tag = (tag_names.delete(@none_tag_value) == @none_tag_value) + + queries = [] + + if tag_names.any? + # Products with at least one variant having one of the selected tags + tagged_product_ids = Spree::Variant + .joins(taggings: :tag) + .where(tags: { name: tag_names }) + .select(:product_id) + + queries << base_query.where(id: tagged_product_ids) + end + + if has_none_tag + # Products where no variants have any tags + tagged_product_ids = Spree::Variant + .joins(:taggings) + .select(:product_id) + + queries << base_query.where.not(id: tagged_product_ids) + end + + return base_query if queries.empty? + + # Combine queries using ActiveRecord's or method + queries.reduce { |combined, query| combined.or(query) } + end + # Optimise by pre-loading required columns def product_query_includes [ @@ -289,6 +331,10 @@ module Admin t('.error') end end + + def init_none_tag + @none_tag_value = '""' + end end end # rubocop:enable Metrics/ClassLength diff --git a/app/controllers/admin/reports_controller.rb b/app/controllers/admin/reports_controller.rb index bea2a2adc0..d8efede625 100644 --- a/app/controllers/admin/reports_controller.rb +++ b/app/controllers/admin/reports_controller.rb @@ -4,6 +4,7 @@ module Admin class ReportsController < Spree::Admin::BaseController include ActiveStorage::SetCurrent include ReportsActions + include Reports::AjaxSearch helper ReportsHelper diff --git a/app/controllers/admin/resource_controller.rb b/app/controllers/admin/resource_controller.rb index b15a576f40..31a7b657f2 100644 --- a/app/controllers/admin/resource_controller.rb +++ b/app/controllers/admin/resource_controller.rb @@ -61,7 +61,7 @@ module Admin def destroy if @object.destroy - flash[:success] = flash_message_for(@object, :successfully_removed) + flash[:success] = Spree.t(:successfully_removed) respond_with(@object) do |format| format.html { redirect_to collection_url } format.js { render partial: "spree/admin/shared/destroy" } @@ -76,7 +76,7 @@ module Admin protected def resource_not_found - flash[:error] = flash_message_for(model_class.new, :not_found) + flash[:error] = Spree.t(:not_found) redirect_to collection_url end diff --git a/app/controllers/admin/stripe_accounts_controller.rb b/app/controllers/admin/stripe_accounts_controller.rb index 3b094adc5e..9ff245bf18 100644 --- a/app/controllers/admin/stripe_accounts_controller.rb +++ b/app/controllers/admin/stripe_accounts_controller.rb @@ -6,7 +6,7 @@ module Admin class StripeAccountsController < Spree::Admin::BaseController def connect payload = params.permit(:enterprise_id).to_h - key = Openfoodnetwork::Application.config.secret_token + key = Rails.application.secret_key_base url_params = { state: JWT.encode(payload, key, 'HS256'), scope: "read_write" } redirect_to Stripe::OAuth.authorize_url(url_params) end diff --git a/app/controllers/admin/tag_rules_controller.rb b/app/controllers/admin/tag_rules_controller.rb index 620de16ee3..79bd815405 100644 --- a/app/controllers/admin/tag_rules_controller.rb +++ b/app/controllers/admin/tag_rules_controller.rb @@ -30,7 +30,7 @@ module Admin status = :ok if @rule.destroy - flash[:success] = Spree.t(:successfully_removed, resource: "Tag Rule") + flash[:success] = Spree.t(:successfully_removed, resource: Spree.t(:tag_rule)) else flash.now[:error] = t(".destroy_error") status = :internal_server_error diff --git a/app/controllers/admin/vouchers_controller.rb b/app/controllers/admin/vouchers_controller.rb index 72bb759e10..272de55966 100644 --- a/app/controllers/admin/vouchers_controller.rb +++ b/app/controllers/admin/vouchers_controller.rb @@ -14,7 +14,7 @@ module Admin ) if @voucher.save - flash[:success] = I18n.t(:successfully_created, resource: "Voucher") + flash[:success] = I18n.t(:successfully_created, resource: Spree.t(:voucher)) redirect_to edit_admin_enterprise_path(@enterprise, anchor: :vouchers_panel) else render_error diff --git a/app/controllers/concerns/reports/ajax_search.rb b/app/controllers/concerns/reports/ajax_search.rb new file mode 100644 index 0000000000..03df572a48 --- /dev/null +++ b/app/controllers/concerns/reports/ajax_search.rb @@ -0,0 +1,108 @@ +# frozen_string_literal: true + +module Reports + module AjaxSearch + extend ActiveSupport::Concern + + def search_enterprise_fees + report = report_class.new(spree_current_user, params, render: false) + fee_ids = enterprise_fee_ids(report.search.result) + query = EnterpriseFee.where(id: fee_ids) + + render json: build_search_response(query) + end + + def search_enterprise_fee_owners + report = report_class.new(spree_current_user, params, render: false) + owner_ids = enterprise_fee_owner_ids(report.search.result) + query = Enterprise.where(id: owner_ids) + + render json: build_search_response(query) + end + + def search_distributors + query = frontend_data.distributors + + render json: build_search_response(query) + end + + def search_order_cycles + query = frontend_data.order_cycles + + render json: build_search_response(query) + end + + def search_order_customers + query = frontend_data.order_customers + + render json: build_search_response(query) + end + + def search_suppliers + query = frontend_data.orders_suppliers + + render json: build_search_response(query) + end + + private + + def build_search_response(query) + page = (params[:page] || 1).to_i + per_page = 30 + + filtered_query = apply_search_filter(query) + total_count = filtered_query.size + items = paginated_items(filtered_query, page, per_page) + results = format_results(items) + + { results: results, pagination: { more: (page * per_page) < total_count } } + end + + def apply_search_filter(query) + search_term = params[:q] + return query if search_term.blank? + + escaped_search_term = ActiveRecord::Base.sanitize_sql_like(search_term) + pattern = "%#{escaped_search_term}%" + + # Handle different model types + if query.model == OrderCycle + query.where("order_cycles.name ILIKE ?", pattern) + elsif query.model == Customer + query.where("customers.email ILIKE ?", pattern) + else + query.where("name ILIKE ?", pattern) + end + end + + def paginated_items(query, page, per_page) + if query.model == Customer + query.order(:email).offset((page - 1) * per_page).limit(per_page).pluck(:email, :id) + elsif query.model == OrderCycle + query.order('order_cycles.orders_close_at DESC') + .offset((page - 1) * per_page) + .limit(per_page).pluck( + :name, :id + ) + else + query.order(:name).offset((page - 1) * per_page).limit(per_page).pluck(:name, :id) + end + end + + def format_results(items) + items.map { |label, value| { value:, label: } } + end + + def frontend_data + @frontend_data ||= Reporting::FrontendData.new(spree_current_user) + end + + def enterprise_fee_owner_ids(orders) + EnterpriseFee.where(id: enterprise_fee_ids(orders)).select(:enterprise_id) + end + + def enterprise_fee_ids(orders) + Spree::Adjustment.enterprise_fee.where(order_id: orders.select(:id)).select(:originator_id) + end + end +end diff --git a/app/controllers/payment_gateways/taler_controller.rb b/app/controllers/payment_gateways/taler_controller.rb new file mode 100644 index 0000000000..aff2799242 --- /dev/null +++ b/app/controllers/payment_gateways/taler_controller.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +module PaymentGateways + class TalerController < BaseController + include OrderCompletion + + # The Taler merchant backend has taken the payment. + # Now we just need to confirm that and update our local database + # before finalising the order. + def confirm + payment = Spree::Payment.find(params[:payment_id]) + @order = payment.order + process_payment_completion! + end + end +end diff --git a/app/controllers/spree/admin/images_controller.rb b/app/controllers/spree/admin/images_controller.rb index cb1ebe40ac..193b013562 100644 --- a/app/controllers/spree/admin/images_controller.rb +++ b/app/controllers/spree/admin/images_controller.rb @@ -68,7 +68,7 @@ module Spree destroy_before if @object.destroy - flash[:success] = flash_message_for(@object, :successfully_removed) + flash[:success] = Spree.t(:successfully_removed) end redirect_to location_after_save diff --git a/app/controllers/spree/admin/payment_methods_controller.rb b/app/controllers/spree/admin/payment_methods_controller.rb index 97f77420fd..b8ad17a608 100644 --- a/app/controllers/spree/admin/payment_methods_controller.rb +++ b/app/controllers/spree/admin/payment_methods_controller.rb @@ -11,10 +11,11 @@ module Spree respond_to :html PAYMENT_METHODS = %w{ - Spree::PaymentMethod::Check Spree::Gateway::PayPalExpress Spree::Gateway::StripeSCA - }.index_with(&:constantize).freeze + Spree::PaymentMethod::Check + Spree::PaymentMethod::Taler + }.freeze def create force_environment @@ -95,7 +96,7 @@ module Spree @payment_method = PaymentMethod.find(params[:pm_id]) end else - @payment_method = PAYMENT_METHODS.fetch(params[:provider_type], PaymentMethod).new + @payment_method = PaymentMethod.new(type: params[:provider_type]) end render partial: 'provider_settings' @@ -117,7 +118,7 @@ module Spree end def validate_payment_method_provider - valid_payment_methods = Rails.application.config.spree.payment_methods.map(&:to_s) + valid_payment_methods = PAYMENT_METHODS return if valid_payment_methods.include?(params[:payment_method][:type]) flash[:error] = Spree.t(:invalid_payment_provider) @@ -133,11 +134,9 @@ module Spree end def load_providers - providers = Gateway.providers.sort_by(&:name) + providers = PAYMENT_METHODS.dup - unless show_stripe? - providers.reject! { |provider| stripe_provider?(provider) } - end + providers.delete("Spree::Gateway::StripeSCA") unless show_stripe? providers end @@ -164,10 +163,6 @@ module Spree @payment_method.try(:type) == "Spree::Gateway::StripeSCA" end - def stripe_provider?(provider) - provider.name.ends_with?("StripeSCA") - end - def base_params @base_params ||= PermittedAttributes::PaymentMethod.new(params[:payment_method]). call.to_h.with_indifferent_access diff --git a/app/controllers/spree/admin/payments_controller.rb b/app/controllers/spree/admin/payments_controller.rb index e362dcc8f6..7fbc23f352 100644 --- a/app/controllers/spree/admin/payments_controller.rb +++ b/app/controllers/spree/admin/payments_controller.rb @@ -95,8 +95,7 @@ module Spree private def load_payment_source - if @payment.payment_method.is_a?(Spree::Gateway) && - @payment.payment_method.payment_profiles_supported? && + if @payment.payment_method.is_a?(Gateway::StripeSCA) && params[:card].present? && (params[:card] != 'new') @payment.source = CreditCard.find_by(id: params[:card]) diff --git a/app/controllers/spree/admin/product_properties_controller.rb b/app/controllers/spree/admin/product_properties_controller.rb index aebdff556e..b92208c924 100644 --- a/app/controllers/spree/admin/product_properties_controller.rb +++ b/app/controllers/spree/admin/product_properties_controller.rb @@ -16,7 +16,7 @@ module Spree @url_filters = ::ProductFilters.new.extract(request.query_parameters) if @object.destroy - flash[:success] = flash_message_for(@object, :successfully_removed) + flash[:success] = Spree.t(:successfully_removed) end # if destroy fails it won't show any errors to the user redirect_to spree.admin_product_product_properties_url(params[:product_id], @url_filters) diff --git a/app/controllers/spree/admin/shipping_methods_controller.rb b/app/controllers/spree/admin/shipping_methods_controller.rb index 25433b213f..8b24f0cc09 100644 --- a/app/controllers/spree/admin/shipping_methods_controller.rb +++ b/app/controllers/spree/admin/shipping_methods_controller.rb @@ -36,7 +36,7 @@ module Spree end @object.touch :deleted_at - flash[:success] = flash_message_for(@object, :successfully_removed) + flash[:success] = Spree.t(:successfully_removed) respond_with(@object) do |format| format.html { redirect_to collection_url } diff --git a/app/controllers/spree/admin/tax_categories_controller.rb b/app/controllers/spree/admin/tax_categories_controller.rb index e9d6547f48..7d7e82c86a 100644 --- a/app/controllers/spree/admin/tax_categories_controller.rb +++ b/app/controllers/spree/admin/tax_categories_controller.rb @@ -5,7 +5,7 @@ module Spree class TaxCategoriesController < ::Admin::ResourceController def destroy if @object.destroy - flash[:success] = flash_message_for(@object, :successfully_removed) + flash[:success] = Spree.t(:successfully_removed) respond_with(@object) do |format| format.html { redirect_to collection_url } format.js { render partial: "spree/admin/shared/destroy" } diff --git a/app/controllers/spree/user_sessions_controller.rb b/app/controllers/spree/user_sessions_controller.rb index c22c6162fd..c3880fc28b 100644 --- a/app/controllers/spree/user_sessions_controller.rb +++ b/app/controllers/spree/user_sessions_controller.rb @@ -9,7 +9,6 @@ module Spree include Spree::Core::ControllerHelpers::Auth include Spree::Core::ControllerHelpers::Common include Spree::Core::ControllerHelpers::Order - include CablecarResponses helper 'spree/base' @@ -24,14 +23,12 @@ module Spree if spree_user_signed_in? flash[:success] = t('devise.success.logged_in_succesfully') - render cable_ready: cable_car.redirect_to( - url: return_url_or_default(after_sign_in_path_for(spree_current_user)) - ) + redirect_to return_url_or_default(after_sign_in_path_for(spree_current_user)) else - render status: :unauthorized, cable_ready: cable_car.inner_html( - "#login-feedback", - partial("layouts/alert", locals: { type: "alert", message: t('devise.failure.invalid') }) - ) + message = t('devise.failure.invalid') + render turbo_stream: turbo_stream.update( + 'login-feedback', partial: 'layouts/alert', locals: { message:, type: 'alert' } + ), status: :unprocessable_entity end end @@ -60,11 +57,13 @@ module Spree end def render_unconfirmed_response - render status: :unprocessable_entity, cable_ready: cable_car.inner_html( - "#login-feedback", - partial("layouts/alert", locals: { type: "alert", message: t(:email_unconfirmed), - unconfirmed: true, tab: "login" }) - ) + message = t(:email_unconfirmed) + + render turbo_stream: turbo_stream.update( + 'login-feedback', + partial: 'layouts/alert', locals: { type: "alert", message:, unconfirmed: true, + tab: "login", email: params.dig(:spree_user, :email) } + ), status: :unprocessable_entity end def ensure_valid_locale_persisted diff --git a/app/controllers/spree/users_controller.rb b/app/controllers/spree/users_controller.rb index 6d22dc86e3..583fb13087 100644 --- a/app/controllers/spree/users_controller.rb +++ b/app/controllers/spree/users_controller.rb @@ -3,7 +3,6 @@ module Spree class UsersController < ::BaseController include I18nHelper - include CablecarResponses layout 'darkswarm' @@ -25,34 +24,17 @@ module Spree @unconfirmed_email = spree_current_user.unconfirmed_email end - # Endpoint for queries to check if a user is already registered - def registered_email - registered = Spree::User.find_by(email: params[:email]).present? - - if registered - render status: :ok, cable_ready: cable_car. - inner_html( - "#login-feedback", - partial("layouts/alert", - locals: { type: "alert", message: t('devise.failure.already_registered') }) - ). - dispatch_event(name: "login:modal:open") - else - head :not_found - end - end - def create @user = Spree::User.new(user_params) if @user.save flash[:success] = t('devise.user_registrations.spree_user.signed_up_but_unconfirmed') - render cable_ready: cable_car.redirect_to(url: main_app.root_path) + redirect_to main_app.root_path else - render status: :unprocessable_entity, cable_ready: cable_car.morph( - "#signup-tab", - partial("layouts/signup_tab", locals: { signup_form_user: @user }) - ) + render turbo_stream: turbo_stream.update( + 'signup-tab', + partial: 'layouts/signup_tab', locals: { signup_form_user: @user } + ), status: :unprocessable_entity end end @@ -97,13 +79,10 @@ module Spree end def render_alert_timestamp_error_message - render cable_ready: cable_car.inner_html( - "#signup-feedback", - partial("layouts/alert", - locals: { - type: "alert", - message: InvisibleCaptcha.timestamp_error_message - }) + render turbo_stream: turbo_stream.update( + 'signup-feedback', + partial: 'layouts/alert', + locals: { type: "alert", message: InvisibleCaptcha.timestamp_error_message } ) end end diff --git a/app/controllers/user_confirmations_controller.rb b/app/controllers/user_confirmations_controller.rb index d8b6b221fe..ee65e9c6a9 100644 --- a/app/controllers/user_confirmations_controller.rb +++ b/app/controllers/user_confirmations_controller.rb @@ -3,7 +3,6 @@ class UserConfirmationsController < DeviseController # Needed for access to current_ability, so we can authorize! actions include Spree::Core::ControllerHelpers::Auth - include CablecarResponses # GET /resource/confirmation?confirmation_token=abcdef def show @@ -29,12 +28,12 @@ class UserConfirmationsController < DeviseController set_flash_message(:error, :confirmation_not_sent) end else - render cable_ready: cable_car.inner_html( - "##{params[:tab] || 'forgot'}-feedback", - partial("layouts/alert", - locals: { type: "success", message: t("devise.confirmations.send_instructions") }) + flash.now[:sucess] = t("devise.confirmations.send_instructions") + + return render turbo_stream: turbo_stream.update( + "#{params[:tab] || 'forgot'}-feedback", + partial: 'shared/flashes', locals: { flashes: flash } ) - return end respond_with_navigational(resource){ redirect_to login_path } diff --git a/app/controllers/user_passwords_controller.rb b/app/controllers/user_passwords_controller.rb index b0ad3970d1..72f947fec9 100644 --- a/app/controllers/user_passwords_controller.rb +++ b/app/controllers/user_passwords_controller.rb @@ -1,37 +1,40 @@ # frozen_string_literal: true class UserPasswordsController < Spree::UserPasswordsController - include CablecarResponses - layout 'darkswarm' def create return render_unconfirmed_response if user_unconfirmed? self.resource = resource_class.send_reset_password_instructions(raw_params[resource_name]) + status = :ok if resource.errors.empty? - render cable_ready: cable_car.inner_html( - "#forgot-feedback", - partial("layouts/alert", locals: { type: "success", message: t(:password_reset_sent) }) - ) + message, type = [t(:password_reset_sent), :success] else - render status: :not_found, cable_ready: cable_car.inner_html( - "#forgot-feedback", - partial("layouts/alert", locals: { type: "alert", message: t(:email_not_found) }) - ) + message, type = [t(:email_not_found), :alert] + status = :not_found end + + render turbo_stream: turbo_stream.update( + 'forgot-feedback', + partial: 'layouts/alert', + locals: { type:, message:, tab: 'forgot', + unconfirmed: false, email: params.dig(:spree_user, :email) } + ), status: end private def render_unconfirmed_response - render status: :unprocessable_entity, cable_ready: cable_car.inner_html( - "#forgot-feedback", - partial("layouts/alert", - locals: { type: "alert", message: t(:email_unconfirmed), - unconfirmed: true, tab: "forgot" }) - ) + message, type, unconfirmed, tab = [t(:email_unconfirmed), :alert, true, 'forgot'] + + render turbo_stream: turbo_stream.update( + 'forgot-feedback', + partial: 'layouts/alert', + locals: { type:, message:, tab:, + unconfirmed:, email: params.dig(:spree_user, :email) } + ), status: :unprocessable_entity end def user_unconfirmed? diff --git a/app/controllers/voucher_adjustments_controller.rb b/app/controllers/voucher_adjustments_controller.rb index 857e7c5e6f..8b8928944b 100644 --- a/app/controllers/voucher_adjustments_controller.rb +++ b/app/controllers/voucher_adjustments_controller.rb @@ -90,11 +90,13 @@ class VoucherAdjustmentsController < BaseController voucher_code: voucher_params[:voucher_code], enterprise: @order.distributor ) voucher = vine_voucher_validator.validate + errors = vine_voucher_validator.errors - return nil if vine_voucher_validator.errors[:not_found_voucher].present? + return nil if errors[:not_found_voucher].present? - if vine_voucher_validator.errors.present? - @order.errors.add(:voucher_code, I18n.t('checkout.errors.add_voucher_error')) + if errors.present? + message = errors[:invalid_voucher] || I18n.t('checkout.errors.add_voucher_error') + @order.errors.add(:voucher_code, message) return nil end diff --git a/app/controllers/webhook_endpoints_controller.rb b/app/controllers/webhook_endpoints_controller.rb index 44580391de..f78c101484 100644 --- a/app/controllers/webhook_endpoints_controller.rb +++ b/app/controllers/webhook_endpoints_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class WebhookEndpointsController < BaseController - before_action :load_resource, only: :destroy + before_action :load_resource, only: [:destroy, :test] def create webhook_endpoint = spree_current_user.webhook_endpoints.new(webhook_endpoint_params) @@ -25,12 +25,30 @@ class WebhookEndpointsController < BaseController redirect_to redirect_path end + def test + at = Time.zone.now + test_payload = Payments::WebhookPayload.test_data.to_hash + + WebhookDeliveryJob.perform_later(@webhook_endpoint.url, "payment.completed", test_payload, at:) + + flash[:success] = t(".success") + respond_with do |format| + format.turbo_stream do + render turbo_stream: turbo_stream.update( + :flashes, partial: "shared/flashes", locals: { flashes: flash } + ) + end + end + end + + private + def load_resource @webhook_endpoint = spree_current_user.webhook_endpoints.find(params[:id]) end def webhook_endpoint_params - params.require(:webhook_endpoint).permit(:url) + params.require(:webhook_endpoint).permit(:url, :webhook_type) end def redirect_path diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 343f94332c..266b9a605b 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -72,7 +72,23 @@ module ApplicationHelper end end + # Update "v1" to invalidate existing cache key def cache_key_with_locale(key, locale) - Array.wrap(key) + [locale.to_s, I18nDigests.for_locale(locale)] + Array.wrap(key) + ["v3", locale.to_s, I18nDigests.for_locale(locale)] + end + + def pdf_stylesheet_pack_tag(source) + # With shakapacker dev server running, the wicked_pdf_stylesheet_pack_tag will produce a + # relative path, because we don't have `config.action_controller.asset_host`. Relative path + # can't be resolved by `wkhtmltopdf`. So we pass the wepacker dev server host and port to + # the shakapacker helper, so it generates the correct url. + # For more info: https://stackoverflow.com/questions/58490299/how-to-include-css-stylesheet-into-wicked-pdf/60541688#60541688 + if running_in_development? + options = { media: "all", + host: "#{Shakapacker.dev_server.host}:#{Shakapacker.dev_server.port}" } + stylesheet_pack_tag(source, **options) + else + wicked_pdf_stylesheet_pack_tag(source) + end end end diff --git a/app/helpers/reports_helper.rb b/app/helpers/reports_helper.rb index 1caab98aa9..0fa95863e0 100644 --- a/app/helpers/reports_helper.rb +++ b/app/helpers/reports_helper.rb @@ -34,29 +34,8 @@ module ReportsHelper end end - def fee_name_options(orders) - EnterpriseFee.where(id: enterprise_fee_ids(orders)) - .pluck(:name, :id) - end - - def fee_owner_options(orders) - Enterprise.where(id: enterprise_fee_owner_ids(orders)) - .pluck(:name, :id) - end - delegate :currency_symbol, to: :'Spree::Money' - def enterprise_fee_owner_ids(orders) - EnterpriseFee.where(id: enterprise_fee_ids(orders)) - .pluck(:enterprise_id) - end - - def enterprise_fee_ids(orders) - Spree::Adjustment.enterprise_fee - .where(order_id: orders.map(&:id)) - .pluck(:originator_id) - end - def datepicker_time(datetime) datetime = Time.zone.parse(datetime) if datetime.is_a? String datetime.strftime('%Y-%m-%d %H:%M') diff --git a/app/helpers/spree/admin/payment_methods_helper.rb b/app/helpers/spree/admin/payment_methods_helper.rb new file mode 100644 index 0000000000..4d94a7ad52 --- /dev/null +++ b/app/helpers/spree/admin/payment_methods_helper.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +module Spree + module Admin + module PaymentMethodsHelper + def payment_method_type_name(class_name) + scope = "spree.admin.payment_methods.providers" + key = class_name.demodulize.downcase + + I18n.t(key, scope:) + end + + def payment_method_type_options(providers) + providers.map { |p| [payment_method_type_name(p), p] } + end + end + end +end diff --git a/app/mailers/payment_mailer.rb b/app/mailers/payment_mailer.rb index 175e1da042..b90d4c2191 100644 --- a/app/mailers/payment_mailer.rb +++ b/app/mailers/payment_mailer.rb @@ -7,11 +7,9 @@ class PaymentMailer < ApplicationMailer @payment = payment @order = @payment.order @hide_ofn_navigation = @payment.order.distributor.hide_ofn_navigation - subject = I18n.t('spree.payment_mailer.authorize_payment.subject', - distributor: @order.distributor.name) I18n.with_locale valid_locale(@order.user) do mail(to: @order.email, - subject:, + subject: default_i18n_subject(distributor: @order.distributor.name), reply_to: @order.distributor.contact.email) end end @@ -19,11 +17,20 @@ class PaymentMailer < ApplicationMailer def authorization_required(payment) @order = payment.order shop_owner = @order.distributor.owner - subject = I18n.t('spree.payment_mailer.authorization_required.subject', - order: @order) I18n.with_locale valid_locale(shop_owner) do - mail(to: shop_owner.email, - subject:, + mail(to: shop_owner.email, reply_to: @order.email) + end + end + + def refund_available(payment, taler_order_status_url) + @order = payment.order + @shop = @order.distributor.name + @amount = payment.display_amount + @taler_order_status_url = taler_order_status_url + + I18n.with_locale valid_locale(@order.user) do + mail(to: @order.email, + subject: default_i18n_subject(shop: @shop), reply_to: @order.email) end end diff --git a/app/models/application_record.rb b/app/models/application_record.rb index daccc28cf0..212f623112 100644 --- a/app/models/application_record.rb +++ b/app/models/application_record.rb @@ -12,7 +12,10 @@ class ApplicationRecord < ActiveRecord::Base self.include_root_in_json = true def self.image_service - ENV["S3_BUCKET"].present? ? :amazon_public : :local + return :local if ENV["S3_BUCKET"].blank? + return :amazon_public if ENV["S3_ENDPOINT"].blank? + + :s3_compatible_storage_public end # We might have a development environment without S3 but with a database diff --git a/app/models/enterprise.rb b/app/models/enterprise.rb index 1211ed61ee..bf8e52d56d 100644 --- a/app/models/enterprise.rb +++ b/app/models/enterprise.rb @@ -111,14 +111,14 @@ class Enterprise < ApplicationRecord end validates :logo, - processable_image: true, - content_type: %r{\Aimage/(png|jpeg|gif|jpg|svg\+xml|webp)\Z} + processable_file: true, + content_type: ::Spree::Image::ACCEPTED_CONTENT_TYPES validates :promo_image, - processable_image: true, - content_type: %r{\Aimage/(png|jpeg|gif|jpg|svg\+xml|webp)\Z} + processable_file: true, + content_type: ::Spree::Image::ACCEPTED_CONTENT_TYPES validates :white_label_logo, - processable_image: true, - content_type: %r{\Aimage/(png|jpeg|gif|jpg|svg\+xml|webp)\Z} + processable_file: true, + content_type: ::Spree::Image::ACCEPTED_CONTENT_TYPES validates :terms_and_conditions, content_type: { in: "application/pdf", message: I18n.t(:enterprise_terms_and_conditions_type_error), diff --git a/app/models/enterprise_group.rb b/app/models/enterprise_group.rb index e6208e3000..cb2252b2d4 100644 --- a/app/models/enterprise_group.rb +++ b/app/models/enterprise_group.rb @@ -29,11 +29,11 @@ class EnterpriseGroup < ApplicationRecord has_one_attached :promo_image, service: image_service validates :logo, - processable_image: true, - content_type: %r{\Aimage/(png|jpeg|gif|jpg|svg\+xml|webp)\Z} + processable_file: true, + content_type: ::Spree::Image::ACCEPTED_CONTENT_TYPES validates :promo_image, - processable_image: true, - content_type: %r{\Aimage/(png|jpeg|gif|jpg|svg\+xml|webp)\Z} + processable_file: true, + content_type: ::Spree::Image::ACCEPTED_CONTENT_TYPES scope :by_position, -> { order('position ASC') } scope :on_front_page, -> { where(on_front_page: true) } diff --git a/app/models/invoice.rb b/app/models/invoice.rb index 69c89d673f..0f75424c76 100644 --- a/app/models/invoice.rb +++ b/app/models/invoice.rb @@ -4,7 +4,7 @@ class Invoice < ApplicationRecord self.belongs_to_required_by_default = false belongs_to :order, class_name: 'Spree::Order' - serialize :data, Hash, coder: YAML + serialize :data, type: Hash, coder: YAML before_validation :serialize_order after_create :cancel_previous_invoices default_scope { order(created_at: :desc) } diff --git a/app/models/invoice/data_presenter.rb b/app/models/invoice/data_presenter.rb index 405afdaf1f..3b851bf1d9 100644 --- a/app/models/invoice/data_presenter.rb +++ b/app/models/invoice/data_presenter.rb @@ -95,8 +95,8 @@ class Invoice def display_line_item_tax_rate(item) all_tax_adjustments.select { |a| a.adjustable.type == 'Spree::LineItem' && a.adjustable.id == item.id - }.map(&:originator).map { |tr| - number_to_percentage(tr.amount * 100, precision: 1) + }.map(&:originator).map(&:amount).sort.map { |amount| + number_to_percentage(amount * 100, precision: 1) }.join(", ") end diff --git a/app/models/report_rendering_options.rb b/app/models/report_rendering_options.rb index dd69ecf887..79b0e67507 100644 --- a/app/models/report_rendering_options.rb +++ b/app/models/report_rendering_options.rb @@ -4,5 +4,5 @@ class ReportRenderingOptions < ApplicationRecord self.belongs_to_required_by_default = false belongs_to :user, class_name: "Spree::User" - serialize :options, Hash, coder: YAML + serialize :options, type: Hash, coder: YAML end diff --git a/app/models/spree/ability.rb b/app/models/spree/ability.rb index 63833e309f..4695559945 100644 --- a/app/models/spree/ability.rb +++ b/app/models/spree/ability.rb @@ -6,6 +6,11 @@ module Spree class Ability include CanCan::Ability + REPORTS_SEARCH_ACTIONS = [ + :search_enterprise_fees, :search_enterprise_fee_owners, :search_distributors, + :search_suppliers, :search_order_cycles, :search_order_customers + ].freeze + def initialize(user) clear_aliased_actions @@ -260,7 +265,8 @@ module Spree can [:admin, :index, :import], ::Admin::DfcProductImportsController # Reports page - can [:admin, :index, :show, :create], ::Admin::ReportsController + can [:admin, :index, :show, :create, *REPORTS_SEARCH_ACTIONS], + ::Admin::ReportsController can [:admin, :show, :create, :customers, :orders_and_distributors, :group_buys, :payments, :orders_and_fulfillment, :products_and_inventory, :order_cycle_management, :packing, :enterprise_fee_summary, :bulk_coop, :suppliers], :report @@ -392,7 +398,7 @@ module Spree end # Reports page - can [:admin, :index, :show, :create], ::Admin::ReportsController + can [:admin, :index, :show, :create, *REPORTS_SEARCH_ACTIONS], ::Admin::ReportsController can [:admin, :customers, :group_buys, :sales_tax, :payments, :orders_and_distributors, :orders_and_fulfillment, :products_and_inventory, :order_cycle_management, :xero_invoices, :enterprise_fee_summary, :bulk_coop], :report diff --git a/app/models/spree/app_configuration.rb b/app/models/spree/app_configuration.rb index a3069b3b02..ee10ba1b74 100644 --- a/app/models/spree/app_configuration.rb +++ b/app/models/spree/app_configuration.rb @@ -31,7 +31,6 @@ module Spree preference :admin_products_per_page, :integer, default: 10 # Should only be true if you don't need to track inventory preference :allow_backorder_shipping, :boolean, default: false - preference :allow_checkout_on_gateway_error, :boolean, default: false preference :allow_guest_checkout, :boolean, default: true preference :currency_decimal_mark, :string, default: "." preference :currency_symbol_position, :string, default: "before" diff --git a/app/models/spree/gateway.rb b/app/models/spree/gateway.rb index 3cdcbc7b05..c480d9c251 100644 --- a/app/models/spree/gateway.rb +++ b/app/models/spree/gateway.rb @@ -5,7 +5,7 @@ module Spree acts_as_taggable include PaymentMethodDistributors - delegate :authorize, :purchase, :capture, :void, :credit, to: :provider + delegate :authorize, :purchase, :capture, :void, :credit, :refund, to: :provider validates :name, :type, presence: true @@ -35,6 +35,10 @@ module Spree end def method_missing(method, *) + message = "Deprecated delegation of Gateway##{method}" + Alert.raise(message) + raise message if Rails.env.local? + if @provider.nil? || !@provider.respond_to?(method) super else @@ -42,10 +46,6 @@ module Spree end end - def payment_profiles_supported? - false - end - def method_type 'gateway' end diff --git a/app/models/spree/gateway/stripe_sca.rb b/app/models/spree/gateway/stripe_sca.rb index 78e658ab9c..685aaeeb90 100644 --- a/app/models/spree/gateway/stripe_sca.rb +++ b/app/models/spree/gateway/stripe_sca.rb @@ -35,10 +35,6 @@ module Spree ActiveMerchant::Billing::StripePaymentIntentsGateway end - def payment_profiles_supported? - true - end - def stripe_account_id StripeAccount.find_by(enterprise_id: preferred_enterprise_id)&.stripe_user_id end @@ -84,7 +80,7 @@ module Spree end # NOTE: this method is required by Spree::Payment::Processing - def void(payment_intent_id, _creditcard, gateway_options) + def void(payment_intent_id, gateway_options) payment_intent_response = Stripe::PaymentIntent.retrieve( payment_intent_id, stripe_account: stripe_account_id ) @@ -101,7 +97,13 @@ module Spree end # NOTE: this method is required by Spree::Payment::Processing - def credit(money, _creditcard, payment_intent_id, gateway_options) + def credit(money, payment_intent_id, gateway_options) + gateway_options[:stripe_account] = stripe_account_id + provider.refund(money, payment_intent_id, gateway_options) + end + + # NOTE: this method is required by Spree::Payment::Processing + def refund(money, payment_intent_id, gateway_options) gateway_options[:stripe_account] = stripe_account_id provider.refund(money, payment_intent_id, gateway_options) end diff --git a/app/models/spree/image.rb b/app/models/spree/image.rb index 350b1c5b4c..431b1679b0 100644 --- a/app/models/spree/image.rb +++ b/app/models/spree/image.rb @@ -2,6 +2,8 @@ module Spree class Image < Asset + ACCEPTED_CONTENT_TYPES = %r{\Aimage/(png|jpeg|gif|jpg|svg\+xml|webp)\Z} + has_one_attached :attachment, service: image_service do |attachment| attachment.variant :mini, resize_to_fill: [48, 48] attachment.variant :small, resize_to_fill: [227, 227] @@ -11,8 +13,8 @@ module Spree validates :attachment, attached: true, - processable_image: true, - content_type: %r{\Aimage/(png|jpeg|gif|jpg|svg\+xml|webp)\Z} + processable_file: true, + content_type: ACCEPTED_CONTENT_TYPES validate :no_attachment_errors def self.default_image_url(size) diff --git a/app/models/spree/line_item.rb b/app/models/spree/line_item.rb index fed86cd802..c1312df1dd 100644 --- a/app/models/spree/line_item.rb +++ b/app/models/spree/line_item.rb @@ -24,6 +24,8 @@ module Spree before_validation :copy_price before_validation :copy_tax_category before_validation :copy_dimensions + before_validation :copy_product_name, on: :create + before_validation :copy_variant_name, on: :create validates :quantity, numericality: { only_integer: true, @@ -250,6 +252,18 @@ module Spree adjustments.enterprise_fee end + def full_variant_name + return variant_name if variant_name.present? + + variant.full_name + end + + def full_product_name + return product_name if product_name.present? + + variant.product.name + end + private def computed_weight_from_variant @@ -274,6 +288,18 @@ module Spree order.create_tax_charge! end + def copy_product_name + return if variant.nil? || variant.product.nil? + + self.product_name = variant.product.name + end + + def copy_variant_name + return if variant.nil? + + self.variant_name = variant.full_name + end + def update_inventory_before_destroy # This is necessary before destroying the line item # so that update_inventory will restore stock to the variant diff --git a/app/models/spree/order.rb b/app/models/spree/order.rb index 160041bfff..70e568b867 100644 --- a/app/models/spree/order.rb +++ b/app/models/spree/order.rb @@ -437,18 +437,13 @@ module Spree # # Returns: # - true if all pending_payments processed successfully - # - true if a payment failed, ie. raised a GatewayError - # which gets rescued and converted to TRUE when - # :allow_checkout_gateway_error is set to true # - false if a payment failed, ie. raised a GatewayError - # which gets rescued and converted to FALSE when - # :allow_checkout_on_gateway_error is set to false + # which gets rescued and converted to FALSE # def process_payments! process_each_payment(&:process!) rescue Core::GatewayError => e - result = !!Spree::Config[:allow_checkout_on_gateway_error] - errors.add(:base, e.message) && (return result) + errors.add(:base, e.message) && (return false) end def process_payments_offline! diff --git a/app/models/spree/payment.rb b/app/models/spree/payment.rb index b68595c801..5df898136b 100644 --- a/app/models/spree/payment.rb +++ b/app/models/spree/payment.rb @@ -34,7 +34,7 @@ module Spree # invalidate previously entered payments after_create :invalidate_old_payments - after_save :create_payment_profile, if: :profiles_supported? + after_save :create_payment_profile # update the order totals, etc. after_save :ensure_correct_adjustment, :update_order @@ -101,6 +101,24 @@ module Spree end after_transition to: :completed, do: :set_captured_at + after_transition do |payment, transition| + # Catch any exceptions to prevent any rollback potentially + # preventing payment from going through + ActiveSupport::Notifications.instrument( + "ofn.payment_transition", payment: payment, event: transition.to + ) + rescue StandardError => e + Rails.logger.fatal "ActiveSupport::Notification.instrument failed params: " \ + " " \ + " " \ + "" + Alert.raise( + e, + metadata: { + event_tye: "ofn.payment_transition", payment_id: payment.id, event: transition.to + } + ) + end end def money @@ -199,18 +217,13 @@ module Spree errors.blank? end - def profiles_supported? - payment_method.respond_to?(:payment_profiles_supported?) && - payment_method.payment_profiles_supported? - end - def create_payment_profile return unless source.is_a?(CreditCard) return unless source.try(:save_requested_by_customer?) return unless source.number || source.gateway_payment_profile_id return unless source.gateway_customer_profile_id.nil? - payment_method.create_profile(self) + payment_method.try(:create_profile, self) rescue ActiveMerchant::ConnectionError => e gateway_error e end diff --git a/app/models/spree/payment/processing.rb b/app/models/spree/payment/processing.rb index 57b4f4335a..46a1e784fd 100644 --- a/app/models/spree/payment/processing.rb +++ b/app/models/spree/payment/processing.rb @@ -58,16 +58,7 @@ module Spree protect_from_connection_error do check_environment - response = if payment_method.payment_profiles_supported? - # Gateways supporting payment profiles will need access to credit - # card object because this stores the payment profile information - # so supply the authorization itself as well as the credit card, - # rather than just the authorization code - payment_method.void(response_code, source, gateway_options) - else - # Standard ActiveMerchant void usage - payment_method.void(response_code, gateway_options) - end + response = payment_method.void(response_code, gateway_options) record_response(response) @@ -86,20 +77,11 @@ module Spree credit_amount = calculate_refund_amount(credit_amount) - response = if payment_method.payment_profiles_supported? - payment_method.credit( - (credit_amount * 100).round, - source, - response_code, - gateway_options - ) - else - payment_method.credit( - (credit_amount * 100).round, - response_code, - gateway_options - ) - end + response = payment_method.credit( + (credit_amount * 100).round, + response_code, + gateway_options + ) record_response(response) @@ -125,20 +107,11 @@ module Spree refund_amount = calculate_refund_amount(refund_amount) - response = if payment_method.payment_profiles_supported? - payment_method.refund( - (refund_amount * 100).round, - source, - response_code, - gateway_options - ) - else - payment_method.refund( - (refund_amount * 100).round, - response_code, - gateway_options - ) - end + response = payment_method.refund( + (refund_amount * 100).round, + response_code, + gateway_options + ) record_response(response) @@ -183,6 +156,7 @@ module Spree options.merge!({ billing_address: order.bill_address.try(:active_merchant_hash), shipping_address: order.ship_address.try(:active_merchant_hash) }) + options.merge!(payment: self) options end diff --git a/app/models/spree/payment_method.rb b/app/models/spree/payment_method.rb index b66d8d239b..4dc9d95976 100644 --- a/app/models/spree/payment_method.rb +++ b/app/models/spree/payment_method.rb @@ -52,10 +52,6 @@ module Spree .where(environment: [Rails.env, "", nil]) } - def self.providers - Rails.application.config.spree.payment_methods - end - def configured? !stripe? || stripe_configured? end @@ -93,12 +89,8 @@ module Spree type.demodulize.downcase end - def self.find_with_destroyed(*args) - unscoped { find(*args) } - end - - def payment_profiles_supported? - false + def self.find_with_destroyed(*) + unscoped { find(*) } end def source_required? @@ -117,11 +109,6 @@ module Spree distributors.include?(distributor) end - def self.clean_name - i18n_key = "spree.admin.payment_methods.providers.#{name.demodulize.downcase}" - I18n.t(i18n_key) - end - private def distributor_validation diff --git a/app/models/spree/payment_method/taler.rb b/app/models/spree/payment_method/taler.rb new file mode 100644 index 0000000000..479f06811e --- /dev/null +++ b/app/models/spree/payment_method/taler.rb @@ -0,0 +1,118 @@ +# frozen_string_literal: true + +require "taler" + +module Spree + class PaymentMethod + # GNU Taler is a distributed, open source payment system. + # You need a hosted Taler backend server to process payments. + # + # For testing, you can use the official demo backend: + # + # - Merchant UX: https://backend.demo.taler.net + # - Username: sandbox + # - Password: sandbox + # + # Configure this payment method for testing with: + # + # - backend_url: https://backend.demo.taler.net/instances/sandbox + # - api_key: sandbox + class Taler < PaymentMethod + preference :backend_url, :string + preference :api_key, :password + + def actions + %w{void} + end + + def can_void?(payment) + payment.state == "completed" + end + + # Name of the view to display during checkout + def method_type + "check" # empty view + end + + def external_gateway? + true + end + + # The backend provides this URL. It can look like this: + # https://backend.demo.taler.net/instances/blog/orders/2026..?token=S8Y..&session_id=b0b.. + def external_payment_url(options) + order = options.fetch(:order) + payment = load_payment(order) + + payment.source ||= self + payment.response_code ||= create_taler_order(payment) + payment.save! if payment.changed? + + taler_order.status_url + end + + # Main method called by Spree::Payment::Processing during checkout + # when the user is redirected back to the app. + # + # The payment has already been made and we need to verify the success. + def purchase(_money, _source, gateway_options) + payment = gateway_options[:payment] + + return unless payment.response_code + + taler_order = taler_order(id: payment.response_code) + status = taler_order.fetch("order_status") + success = (status == "paid") + message = I18n.t(status, default: status, scope: "taler.order_status") + + ActiveMerchant::Billing::Response.new(success, message) + end + + def void(response_code, gateway_options) + payment = gateway_options[:payment] + taler_order = taler_order(id: response_code) + status = taler_order.fetch("order_status") + + if status == "claimed" + return ActiveMerchant::Billing::Response.new(true, "Already expired") + end + + raise "Unsupported action" if status != "paid" + + amount = taler_order.fetch("contract_terms")["amount"] + taler_order.refund(refund: amount, reason: "void") + + PaymentMailer.refund_available(payment, taler_order.status_url).deliver_later + + ActiveMerchant::Billing::Response.new(true, "Refund initiated") + end + + private + + def load_payment(order) + order.payments.checkout.where(payment_method: self).last + end + + def create_taler_order(payment) + # We are ignoring currency for now so that we can test with the + # current demo backend only working with the KUDOS currency. + taler_amount = "KUDOS:#{payment.amount}" + urls = Rails.application.routes.url_helpers + fulfillment_url = urls.payment_gateways_confirm_taler_url(payment_id: payment.id) + taler_order.create( + amount: taler_amount, + summary: I18n.t("payment_method_taler.order_summary"), + fulfillment_url:, + ) + end + + def taler_order(id: nil) + @taler_order ||= ::Taler::Order.new( + backend_url: preferred_backend_url, + password: preferred_api_key, + id:, + ) + end + end + end +end diff --git a/app/models/spree/product.rb b/app/models/spree/product.rb index 2ad3561b6c..e077af407b 100755 --- a/app/models/spree/product.rb +++ b/app/models/spree/product.rb @@ -251,7 +251,7 @@ module Spree transaction do ExchangeVariant. where(exchange_variants: { variant_id: variants.with_deleted. - select(:id) }).destroy_all + select(:id) }).destroy_all yield end diff --git a/app/models/spree/taxon.rb b/app/models/spree/taxon.rb index 09c772fdf0..a663a05922 100644 --- a/app/models/spree/taxon.rb +++ b/app/models/spree/taxon.rb @@ -35,8 +35,8 @@ module Spree taxons .pluck('spree_taxons.id, enterprises.id AS enterprise_id') .each_with_object({}) do |(taxon_id, enterprise_id), collection| - collection[enterprise_id.to_i] ||= Set.new - collection[enterprise_id.to_i] << taxon_id + collection[enterprise_id.to_i] ||= Set.new + collection[enterprise_id.to_i] << taxon_id end end diff --git a/app/models/spree/variant.rb b/app/models/spree/variant.rb index 63baad819e..d6eda45ca8 100644 --- a/app/models/spree/variant.rb +++ b/app/models/spree/variant.rb @@ -167,8 +167,8 @@ module Spree # In Rails 3, merging two scopes on the same column will consider only the last scope. def self.in_distributor(distributor) where(id: ExchangeVariant.select(:variant_id). - joins(:exchange). - where('exchanges.incoming = ? AND exchanges.receiver_id = ?', false, distributor)) + joins(:exchange). + where('exchanges.incoming = ? AND exchanges.receiver_id = ?', false, distributor)) end def self.indexed @@ -179,11 +179,11 @@ module Spree # "where(id:" is necessary so that the returned relation has no includes # The relation without includes will not be readonly and allow updates on it where(spree_variants: { id: joins(:prices). - where(deleted_at: nil). - where('spree_prices.currency' => + where(deleted_at: nil). + where('spree_prices.currency' => currency || CurrentConfig.get(:currency)). - where.not(spree_prices: { amount: nil }). - select("spree_variants.id") }) + where.not(spree_prices: { amount: nil }). + select("spree_variants.id") }) end def self.linked_to(semantic_id) diff --git a/app/models/webhook_endpoint.rb b/app/models/webhook_endpoint.rb index 8626e11b93..03268f5acf 100644 --- a/app/models/webhook_endpoint.rb +++ b/app/models/webhook_endpoint.rb @@ -2,5 +2,11 @@ # Records a webhook url to send notifications to class WebhookEndpoint < ApplicationRecord + WEBHOOK_TYPES = %w(order_cycle_opened payment_status_changed).freeze + validates :url, presence: true + validates :webhook_type, presence: true, inclusion: { in: WEBHOOK_TYPES } + + scope :order_cycle_opened, -> { where(webhook_type: "order_cycle_opened") } + scope :payment_status, -> { where(webhook_type: "payment_status_changed") } end diff --git a/app/queries/product_scope_query.rb b/app/queries/product_scope_query.rb index bdadbc3401..e900f60769 100644 --- a/app/queries/product_scope_query.rb +++ b/app/queries/product_scope_query.rb @@ -60,8 +60,8 @@ class ProductScopeQuery def product_query_includes [ - image: { attachment_attachment: :blob }, - variants: [:default_price, :stock_items, :variant_overrides] + { image: { attachment_attachment: :blob }, + variants: [:default_price, :stock_items, :variant_overrides] } ] end diff --git a/app/services/dfc_catalog_importer.rb b/app/services/dfc_catalog_importer.rb index 16d81ac6d3..8ec1c74310 100644 --- a/app/services/dfc_catalog_importer.rb +++ b/app/services/dfc_catalog_importer.rb @@ -42,10 +42,10 @@ class DfcCatalogImporter .includes(:semantic_links).references(:semantic_links) .where.not(semantic_links: { semantic_id: present_ids }) .select do |variant| - # Variants that were in the same catalog before: - variant.semantic_links.map(&:semantic_id).any? do |semantic_id| - FdcUrlBuilder.new(semantic_id).catalog_url == catalog_url - end + # Variants that were in the same catalog before: + variant.semantic_links.map(&:semantic_id).any? do |semantic_id| + FdcUrlBuilder.new(semantic_id).catalog_url == catalog_url + end end end end diff --git a/app/services/image_importer.rb b/app/services/image_importer.rb index 9cef10548a..78f525323a 100644 --- a/app/services/image_importer.rb +++ b/app/services/image_importer.rb @@ -11,7 +11,9 @@ class ImageImporter image = Spree::Image.create do |img| PrivateAddressCheck.only_public_connections do - img.attachment.attach(io: valid_url.open, filename:, metadata:) + io = valid_url.open + content_type = Marcel::MimeType.for(io) + img.attachment.attach(io:, filename:, metadata:, content_type:) end end product.image = image if image diff --git a/app/services/line_item_syncer.rb b/app/services/line_item_syncer.rb index 010312fef4..ce7fda37eb 100644 --- a/app/services/line_item_syncer.rb +++ b/app/services/line_item_syncer.rb @@ -51,8 +51,8 @@ class LineItemSyncer def destroy_obsolete_items(order) order.line_items. where(variant_id: subscription_line_items. - select(&:marked_for_destruction?). - map(&:variant_id)). + select(&:marked_for_destruction?). + map(&:variant_id)). destroy_all end @@ -77,7 +77,7 @@ class LineItemSyncer end def add_order_update_issue(order, line_item) - issue_description = "#{line_item.product.name} - #{line_item.variant.full_name}" + issue_description = "#{line_item.product.name} - #{line_item.full_variant_name}" issue_description << " - #{stock_issue_description(line_item)}" if line_item.insufficient_stock? order_update_issues.add(order, issue_description) end diff --git a/app/services/order_cycles/webhook_service.rb b/app/services/order_cycles/webhook_service.rb index b45c5c6e41..4fa6064800 100644 --- a/app/services/order_cycles/webhook_service.rb +++ b/app/services/order_cycles/webhook_service.rb @@ -11,10 +11,12 @@ module OrderCycles .merge(coordinator_name: order_cycle.coordinator.name) # Endpoints for coordinator owner - webhook_endpoints = order_cycle.coordinator.owner.webhook_endpoints + webhook_endpoints = order_cycle.coordinator.owner.webhook_endpoints.order_cycle_opened # Plus unique endpoints for distributor owners (ignore duplicates) - webhook_endpoints |= order_cycle.distributors.map(&:owner).flat_map(&:webhook_endpoints) + webhook_endpoints |= order_cycle.distributors.map(&:owner).flat_map { |owner| + owner.webhook_endpoints.order_cycle_opened + } webhook_endpoints.each do |endpoint| WebhookDeliveryJob.perform_later(endpoint.url, event, webhook_payload, at:) diff --git a/app/services/orders/handle_fees_service.rb b/app/services/orders/handle_fees_service.rb index 64e42f63ad..eb6211d5e8 100644 --- a/app/services/orders/handle_fees_service.rb +++ b/app/services/orders/handle_fees_service.rb @@ -130,12 +130,11 @@ module Orders def order_cycle_fees return @order_cycle_fees if defined? @order_cycle_fees + return [] unless order_cycle && distributor @order_cycle_fees = begin fees = [] - return fees unless order_cycle && distributor - order_cycle.exchanges.supplying_to(distributor).each do |exchange| exchange.enterprise_fees.per_item.each do |enterprise_fee| fee_value = FeeValue.new(fee: enterprise_fee, role: exchange.role) diff --git a/app/services/payments/status_changed_listener_service.rb b/app/services/payments/status_changed_listener_service.rb new file mode 100644 index 0000000000..086f81c5da --- /dev/null +++ b/app/services/payments/status_changed_listener_service.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +# Called by "ActiveSupport::Notifications" when an "ofn.payment_transition" occurs +# Event originate from Spree::Payment event machine +# +module Payments + class StatusChangedListenerService + def call(_name, started, _finished, _unique_id, payload) + event = "payment.#{payload[:event]}" + Payments::WebhookService.create_webhook_job(payment: payload[:payment], event:, at: started) + end + end +end diff --git a/app/services/payments/webhook_payload.rb b/app/services/payments/webhook_payload.rb new file mode 100644 index 0000000000..92745fd1ff --- /dev/null +++ b/app/services/payments/webhook_payload.rb @@ -0,0 +1,84 @@ +# frozen_string_literal: true + +module Payments + class WebhookPayload + def initialize(payment:, order:, enterprise:) + @payment = payment + @order = order + @enterprise = enterprise + end + + def to_hash + { + payment: @payment.slice(:updated_at, :amount, :state), + enterprise: @enterprise.slice(:abn, :acn, :name) + .merge(address: @enterprise.address.slice(:address1, :address2, :city, :zipcode)), + order: @order.slice(:total, :currency).merge(line_items: line_items) + }.with_indifferent_access + end + + def self.test_data + new(payment: test_payment, order: test_order, enterprise: test_enterprise) + end + + def self.test_payment + { + updated_at: Time.zone.now, + amount: 0.00, + state: "completed" + } + end + + def self.test_order + order = Spree::Order.new( + total: 0.00, + currency: "AUD", + ) + + tax_category = Spree::TaxCategory.new(name: "VAT") + product = Spree::Product.new(name: "Test product") + Spree::Variant.new(product:, display_name: "") + order.line_items << Spree::LineItem.new( + quantity: 1, + price: 20.00, + tax_category:, + product:, + unit_presentation: "1kg" + ) + + order + end + + def self.test_enterprise + enterprise = Enterprise.new( + abn: "65797115831", + acn: "", + name: "TEST Enterprise", + ) + enterprise.address = Spree::Address.new( + address1: "1 testing street", + address2: "", + city: "TestCity", + zipcode: "1234" + ) + + enterprise + end + + private_class_method :test_payment, :test_order, :test_enterprise + + private + + def line_items + @order.line_items.map do |li| + li.slice(:quantity, :price) + .merge( + tax_category_name: li.tax_category&.name, + product_name: li.product.name, + name_to_display: li.display_name, + unit_to_display: li.unit_presentation + ) + end + end + end +end diff --git a/app/services/payments/webhook_service.rb b/app/services/payments/webhook_service.rb new file mode 100644 index 0000000000..2997e7a394 --- /dev/null +++ b/app/services/payments/webhook_service.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +# Create a webhook payload for a payment status event. +# The payload will be delivered asynchronously. + +module Payments + class WebhookService + def self.create_webhook_job(payment:, event:, at:) + order = payment.order + payload = WebhookPayload.new(payment:, order:, enterprise: order.distributor).to_hash + + coordinator = payment.order.order_cycle.coordinator + webhook_urls(coordinator).each do |url| + WebhookDeliveryJob.perform_later(url, event, payload, at:) + end + end + + def self.webhook_urls(coordinator) + # url for coordinator owner + webhook_urls = coordinator.owner.webhook_endpoints.payment_status.pluck(:url) + + # plus url for coordinator manager (ignore duplicate) + users_webhook_urls = coordinator.users.flat_map do |user| + user.webhook_endpoints.payment_status.pluck(:url) + end + + webhook_urls | users_webhook_urls + end + end +end diff --git a/app/services/permitted_attributes/enterprise.rb b/app/services/permitted_attributes/enterprise.rb index 391377ba49..b7c8fa92e4 100644 --- a/app/services/permitted_attributes/enterprise.rb +++ b/app/services/permitted_attributes/enterprise.rb @@ -14,12 +14,12 @@ module PermittedAttributes def self.attributes basic_permitted_attributes + [ - group_ids: [], user_ids: [], - shipping_method_ids: [], payment_method_ids: [], - address_attributes: PermittedAttributes::Address.attributes, - business_address_attributes: PermittedAttributes::BusinessAddress.attributes, - producer_properties_attributes: [:id, :property_name, :value, :_destroy], - custom_tab_attributes: PermittedAttributes::CustomTab.attributes, + { group_ids: [], user_ids: [], + shipping_method_ids: [], payment_method_ids: [], + address_attributes: PermittedAttributes::Address.attributes, + business_address_attributes: PermittedAttributes::BusinessAddress.attributes, + producer_properties_attributes: [:id, :property_name, :value, :_destroy], + custom_tab_attributes: PermittedAttributes::CustomTab.attributes }, ] end diff --git a/app/services/permitted_attributes/order_cycle.rb b/app/services/permitted_attributes/order_cycle.rb index dc23c8e5c3..b0351e0901 100644 --- a/app/services/permitted_attributes/order_cycle.rb +++ b/app/services/permitted_attributes/order_cycle.rb @@ -25,8 +25,8 @@ module PermittedAttributes private def attributes - self.class.basic_attributes + [incoming_exchanges: permitted_exchange_attributes, - outgoing_exchanges: permitted_exchange_attributes] + self.class.basic_attributes + [{ incoming_exchanges: permitted_exchange_attributes, + outgoing_exchanges: permitted_exchange_attributes }] end def permitted_exchange_attributes diff --git a/app/services/permitted_attributes/payment_method.rb b/app/services/permitted_attributes/payment_method.rb index aac274a9f2..2ee863e3b7 100644 --- a/app/services/permitted_attributes/payment_method.rb +++ b/app/services/permitted_attributes/payment_method.rb @@ -11,7 +11,7 @@ module PermittedAttributes [:name, :description, :type, :active, :environment, :display_on, :tag_list, :preferred_enterprise_id, :preferred_server, :preferred_login, :preferred_password, - :calculator_type, :preferred_api_key, + :calculator_type, :preferred_api_key, :preferred_backend_url, :preferred_signature, :preferred_solution, :preferred_landing_page, :preferred_logourl, :preferred_test_mode, :calculator_type, { distributor_ids: [] }, { calculator_attributes: PermittedAttributes::Calculator.attributes }] diff --git a/app/services/permitted_attributes/subscription.rb b/app/services/permitted_attributes/subscription.rb index e80469767f..a8b34e85d9 100644 --- a/app/services/permitted_attributes/subscription.rb +++ b/app/services/permitted_attributes/subscription.rb @@ -26,11 +26,11 @@ module PermittedAttributes def other_permitted_attributes [ - subscription_line_items_attributes: [ - :id, :quantity, :variant_id, :price_estimate, :_destroy - ], - bill_address_attributes: PermittedAttributes::Address.attributes, - ship_address_attributes: PermittedAttributes::Address.attributes + { subscription_line_items_attributes: [ + :id, :quantity, :variant_id, :price_estimate, :_destroy + ], + bill_address_attributes: PermittedAttributes::Address.attributes, + ship_address_attributes: PermittedAttributes::Address.attributes } ] end end diff --git a/app/services/vine/voucher_validator_service.rb b/app/services/vine/voucher_validator_service.rb index 8311a5fc9f..259f52e84e 100644 --- a/app/services/vine/voucher_validator_service.rb +++ b/app/services/vine/voucher_validator_service.rb @@ -2,6 +2,11 @@ module Vine class VoucherValidatorService + VINE_ERRORS = { + # https://github.com/openfoodfoundation/vine/blob/main/app/Enums/ApiResponse.php + "This voucher has expired." => :expired, + }.freeze + attr_reader :voucher_code, :errors def initialize(voucher_code:, enterprise:) @@ -42,8 +47,10 @@ module Vine end def handle_errors(response) - if response[:status] == 400 - errors[:invalid_voucher] = I18n.t("vine_voucher_validator_service.errors.invalid_voucher") + if [400, 409].include?(response[:status]) + message = response[:body] && JSON.parse(response[:body]).dig("meta", "message") + key = VINE_ERRORS.fetch(message, :invalid_voucher) + errors[:invalid_voucher] = I18n.t("vine_voucher_validator_service.errors.#{key}") elsif response[:status] == 404 errors[:not_found_voucher] = I18n.t("vine_voucher_validator_service.errors.not_found_voucher") diff --git a/app/views/admin/order_cycles/_row.html.haml b/app/views/admin/order_cycles/_row.html.haml index f331e4ca83..2019b0ddc3 100644 --- a/app/views/admin/order_cycles/_row.html.haml +++ b/app/views/admin/order_cycles/_row.html.haml @@ -18,7 +18,7 @@ %span{ "ofn-with-tip": '{{ orderCycle.producerNames }}', "ng-show": 'orderCycle.producers.length > 3' } {{ orderCycle.producers.length }} = t('.suppliers') - %span{ "ng-hide": 'orderCycle.producers.length > 3', "ng-bind": 'orderCycle.producerNames' } + %span{ "ng-hide": 'orderCycle.producers.length > 3', "ng-bind-html": 'orderCycle.producerNames' } %td.coordinator{ "ng-show": 'columns.coordinator.visible', "ng-bind-html": 'orderCycle.coordinator.name' } %td.shops{ "ng-show": 'columns.shops.visible' } %span{ "ofn-with-tip": '{{ orderCycle.shopNames }}', "ng-show": 'orderCycle.shops.length > 3' } diff --git a/app/views/admin/products_v3/_filters.html.haml b/app/views/admin/products_v3/_filters.html.haml index fc07b83b46..68e0c88ebb 100644 --- a/app/views/admin/products_v3/_filters.html.haml +++ b/app/views/admin/products_v3/_filters.html.haml @@ -23,7 +23,7 @@ - select_tag_options = { class: "fullwidth", multiple: true , data: { controller: "tom-select", "tom-select-placeholder-value": t(".select_tag"), "tom-select-options-value": '{ "maxItems": 5 , "plugins": { "remove_button": {} , "no_active_items": {}, "checkbox_options": { "checkedClassNames": ["ts-checked"], "uncheckedClassNames": ["ts-unchecked"] } } }' } } - = select_tag :tags_name_in, options_for_select(available_tags, tags), select_tag_options + = select_tag :tags_name_in, options_for_select(available_tags.unshift([t('.tags.none'), @none_tag_value]), tags), select_tag_options .submit .search-button = button_tag t(".search"), class: "secondary icon-search relaxed", name: nil diff --git a/app/views/admin/products_v3/_no_products.html.haml b/app/views/admin/products_v3/_no_products.html.haml index fb81197908..efb86d0b50 100644 --- a/app/views/admin/products_v3/_no_products.html.haml +++ b/app/views/admin/products_v3/_no_products.html.haml @@ -7,5 +7,6 @@ #no-products-actions %a{ href: "/admin/products/new", class: "button icon-plus", icon: "icon-plus" } = t(:new_product) - %a{ href: "/admin/products/import", class: "button icon-upload secondary", icon: "icon-upload" } + %a{ href: admin_product_import_path, class: "button icon-upload secondary", icon: "icon-upload" } = t(".import_products") + diff --git a/app/views/admin/products_v3/_table.html.haml b/app/views/admin/products_v3/_table.html.haml index 1f5fbf1ebe..068f531fe5 100644 --- a/app/views/admin/products_v3/_table.html.haml +++ b/app/views/admin/products_v3/_table.html.haml @@ -13,6 +13,8 @@ = hidden_field_tag :search_term, @search_term = hidden_field_tag :producer_id, @producer_id = hidden_field_tag :category_id, @category_id + - @tags.each do |tag| + = hidden_field_tag 'tags_name_in[]', tag %table.products{ 'data-column-preferences-target': "table", class: (hide_producer_column?(producer_options) ? 'hide-producer' : '') } %colgroup diff --git a/app/views/admin/products_v3/_variant_row.html.haml b/app/views/admin/products_v3/_variant_row.html.haml index 02424a501f..54bf2ca861 100644 --- a/app/views/admin/products_v3/_variant_row.html.haml +++ b/app/views/admin/products_v3/_variant_row.html.haml @@ -9,7 +9,7 @@ %td.col-sku.field.naked_inputs = f.text_field :sku, 'aria-label': t('admin.products_page.columns.sku') = error_message_on variant, :sku -%td.col-unir_scale.field.naked_inputs{ 'data-controller': 'toggle-control', 'data-toggle-control-match-value': 'items' } +%td.col-unit_scale.field.naked_inputs{ 'data-controller': 'toggle-control', 'data-toggle-control-match-value': 'items' } = f.hidden_field :variant_unit = f.hidden_field :variant_unit_scale = f.select :variant_unit_with_scale, diff --git a/app/views/admin/reports/filters/_enterprise_fees_with_tax_report_by_order.html.haml b/app/views/admin/reports/filters/_enterprise_fees_with_tax_report_by_order.html.haml index 4a3af1ef5d..c3aa10070e 100644 --- a/app/views/admin/reports/filters/_enterprise_fees_with_tax_report_by_order.html.haml +++ b/app/views/admin/reports/filters/_enterprise_fees_with_tax_report_by_order.html.haml @@ -1,23 +1,50 @@ +- search_url_query = {report_type: :enterprise_fee_summary, report_subtype: :enterprise_fees_with_tax_report_by_order} .row .alpha.two.columns= label_tag nil, t(:report_hubs) - .omega.fourteen.columns= f.collection_select(:distributor_id_in, @data.distributors, :id, :name, {}, {class: "select2 fullwidth", multiple: true}) + .omega.fourteen.columns + = render(SearchableDropdownComponent.new(form: f, + name: :distributor_id_in, + options: [], + selected_option: params.dig(:q, :distributor_id_in), + multiple: true, + remote_url: admin_reports_search_distributors_url)) .row .alpha.two.columns= label_tag nil, t(:report_customers_cycle) .omega.fourteen.columns - = f.select(:order_cycle_id_in, report_order_cycle_options(@data.order_cycles), {selected: params.dig(:q, :order_cycle_id_in)}, {class: "select2 fullwidth", multiple: true}) + = render(SearchableDropdownComponent.new(form: f, + name: :order_cycle_id_in, + options: [], + selected_option: params.dig(:q, :order_cycle_id_in), + multiple: true, + remote_url: admin_reports_search_order_cycles_url)) .row .alpha.two.columns= label_tag nil, t(:fee_name) .omega.fourteen.columns - = f.select(:enterprise_fee_id_in, fee_name_options(@report.search.result), {selected: params.dig(:q, :enterprise_fee_id_in)}, {class: "select2 fullwidth", multiple: true}) + = render(SearchableDropdownComponent.new(form: f, + name: :enterprise_fee_id_in, + options: [], + selected_option: params.dig(:q, :enterprise_fee_id_in), + multiple: true, + remote_url: admin_reports_search_enterprise_fees_url(search_url_query))) .row .alpha.two.columns= label_tag nil, t(:fee_owner) .omega.fourteen.columns - = f.select(:enterprise_fee_owner_id_in, fee_owner_options(@report.search.result), {selected: params.dig(:q, :enterprise_fee_owner_id_in)}, {class: "select2 fullwidth", multiple: true}) + = render(SearchableDropdownComponent.new(form: f, + name: :enterprise_fee_owner_id_in, + options: [], + selected_option: params.dig(:q, :enterprise_fee_owner_id_in), + multiple: true, + remote_url: admin_reports_search_enterprise_fee_owners_url(search_url_query))) .row .alpha.two.columns= label_tag nil, t(:report_customers) .omega.fourteen.columns - = f.select(:customer_id_in, customer_email_options(@data.order_customers), {selected: params.dig(:q, :customer_id_in)}, {class: "select2 fullwidth", multiple: true}) + = render(SearchableDropdownComponent.new(form: f, + name: :customer_id_in, + options: [], + selected_option: params.dig(:q, :customer_id_in), + multiple: true, + remote_url: admin_reports_search_order_customers_url)) diff --git a/app/views/admin/reports/filters/_enterprise_fees_with_tax_report_by_producer.html.haml b/app/views/admin/reports/filters/_enterprise_fees_with_tax_report_by_producer.html.haml index 1c19788df6..3eb41c1733 100644 --- a/app/views/admin/reports/filters/_enterprise_fees_with_tax_report_by_producer.html.haml +++ b/app/views/admin/reports/filters/_enterprise_fees_with_tax_report_by_producer.html.haml @@ -1,27 +1,57 @@ +- search_url_query = {report_type: :enterprise_fee_summary, report_subtype: :enterprise_fees_with_tax_report_by_producer} .row .alpha.two.columns= label_tag nil, t(:report_hubs) - .omega.fourteen.columns= f.collection_select(:distributor_id_in, @data.distributors, :id, :name, {}, {class: "select2 fullwidth", multiple: true}) - + .omega.fourteen.columns + = render(SearchableDropdownComponent.new(form: f, + name: :distributor_id_in, + options: [], + selected_option: params.dig(:q, :distributor_id_in), + multiple: true, + remote_url: admin_reports_search_distributors_url)) .row .alpha.two.columns= label_tag nil, t(:report_producers) - .omega.fourteen.columns= select_tag(:supplier_id_in, options_from_collection_for_select(@data.orders_suppliers, :id, :name, params[:supplier_id_in]), {class: "select2 fullwidth", multiple: true}) + .omega.fourteen.columns + = render(SearchableDropdownComponent.new(name: :supplier_id_in, + options: [], + selected_option: params.dig(:supplier_id_in), + multiple: true, + remote_url: admin_reports_search_suppliers_url)) .row .alpha.two.columns= label_tag nil, t(:report_customers_cycle) .omega.fourteen.columns - = f.select(:order_cycle_id_in, report_order_cycle_options(@data.order_cycles), {selected: params.dig(:q, :order_cycle_id_in)}, {class: "select2 fullwidth", multiple: true}) - + = render(SearchableDropdownComponent.new(form: f, + name: :order_cycle_id_in, + options: [], + selected_option: params.dig(:q, :order_cycle_id_in), + multiple: true, + remote_url: admin_reports_search_order_cycles_url)) .row .alpha.two.columns= label_tag nil, t(:fee_name) .omega.fourteen.columns - = f.select(:enterprise_fee_id_in, fee_name_options(@report.search.result), {selected: params.dig(:q, :enterprise_fee_id_in)}, {class: "select2 fullwidth", multiple: true}) + = render(SearchableDropdownComponent.new(form: f, + name: :enterprise_fee_id_in, + options: [], + selected_option: params.dig(:q, :enterprise_fee_id_in), + multiple: true, + remote_url: admin_reports_search_enterprise_fees_url(search_url_query))) .row .alpha.two.columns= label_tag nil, t(:fee_owner) .omega.fourteen.columns - = f.select(:enterprise_fee_owner_id_in, fee_owner_options(@report.search.result), {selected: params.dig(:q, :enterprise_fee_owner_id_in)}, {class: "select2 fullwidth", multiple: true}) + = render(SearchableDropdownComponent.new(form: f, + name: :enterprise_fee_owner_id_in, + options: [], + selected_option: params.dig(:q, :enterprise_fee_owner_id_in), + multiple: true, + remote_url: admin_reports_search_enterprise_fee_owners_url(search_url_query))) .row .alpha.two.columns= label_tag nil, t(:report_customers) .omega.fourteen.columns - = f.select(:customer_id_in, customer_email_options(@data.order_customers), {selected: params.dig(:q, :customer_id_in)}, {class: "select2 fullwidth", multiple: true}) + = render(SearchableDropdownComponent.new(form: f, + name: :customer_id_in, + options: [], + selected_option: params.dig(:q, :customer_id_in), + multiple: true, + remote_url: admin_reports_search_order_customers_url)) diff --git a/app/views/home/_brandstory.html.haml b/app/views/home/_brandstory.html.haml index 25b8687742..182aa9b5d6 100644 --- a/app/views/home/_brandstory.html.haml +++ b/app/views/home/_brandstory.html.haml @@ -6,21 +6,21 @@ %p = t :brandstory_intro - #brand-story-text.hide-show.slideable - %p - = t :brandstory_part1 - %p - = t :brandstory_part2 - %p - = t :brandstory_part3 - %p - = t :brandstory_part4 - %p - %strong - = t :brandstory_part5_strong - %p - = t :brandstory_part6 - - %a.text-vbig{"slide-toggle" => "#brand-story-text", "ng-click" => "toggleBrandStory()"} - %i.ofn-i_005-caret-down{"ng-hide" => "brandStoryExpanded"} - %i.ofn-i_006-caret-up{ "ng-show" => "brandStoryExpanded"} + %details#brand-story-text + %summary + %i.ofn-i_005-caret-down + %i.ofn-i_006-caret-up + .brand-story-content + %p + = t :brandstory_part1 + %p + = t :brandstory_part2 + %p + = t :brandstory_part3 + %p + = t :brandstory_part4 + %p + %strong + = t :brandstory_part5_strong + %p + = t :brandstory_part6 diff --git a/app/views/home/index.html.haml b/app/views/home/index.html.haml index 899e19ca72..7804de4056 100644 --- a/app/views/home/index.html.haml +++ b/app/views/home/index.html.haml @@ -5,7 +5,7 @@ - content_for :page_alert do = render "shared/menu/alert" -%div{"ng-controller" => "HomeCtrl"} +%div = render "home/tagline" #panes diff --git a/app/views/layouts/_alert.html.haml b/app/views/layouts/_alert.html.haml index 36db8b7e31..c77aeb80f1 100644 --- a/app/views/layouts/_alert.html.haml +++ b/app/views/layouts/_alert.html.haml @@ -1,5 +1,5 @@ .alert-box{ class: "#{type}" } = message - if local_assigns[:unconfirmed] - %a{ "data-action": "login-modal#resend_confirmation", "data-tab": local_assigns[:tab] } + = link_to spree_user_confirmation_path(spree_user: { email: }, tab: local_assigns[:tab]), data: { turbo_method: :post } do = t('devise.confirmations.resend_confirmation_email') diff --git a/app/views/layouts/_forgot_tab.html.haml b/app/views/layouts/_forgot_tab.html.haml index 47ad3c03d2..c1b8e36e88 100644 --- a/app/views/layouts/_forgot_tab.html.haml +++ b/app/views/layouts/_forgot_tab.html.haml @@ -1,12 +1,12 @@ #forgot-tab - = form_with url: spree_user_password_path, scope: :spree_user, data: { remote: "true" } do |form| + = form_with url: spree_user_password_path, scope: :spree_user, data: { turbo: true } do |form| .row .large-12.columns#forgot-feedback .row .large-12.columns = form.label :email, t(:signup_email) - = form.email_field :email, { tabindex: 1, inputmode: "email", "data-login-modal-target": "email", "data-action": "input->login-modal#emailOnInput" } + = form.email_field :email, { tabindex: 1, inputmode: "email" } .row .large-12.columns = form.submit t(:reset_password), { class: "button primary", tabindex: 2 } diff --git a/app/views/layouts/_login_tab.html.haml b/app/views/layouts/_login_tab.html.haml index a80a39acce..a1a21f2647 100644 --- a/app/views/layouts/_login_tab.html.haml +++ b/app/views/layouts/_login_tab.html.haml @@ -1,5 +1,5 @@ #login-content - = form_with url: spree_user_session_path, scope: :spree_user, data: { remote: "true" } do |form| + = form_with url: spree_user_session_path, scope: :spree_user, data: { turbo: true } do |form| .row .large-12.columns#login-feedback - confirmation_result = request.query_parameters[:validation] @@ -10,7 +10,7 @@ .row .large-12.columns = form.label :email, t(:email) - = form.email_field :email, { tabindex: 1, inputmode: "email", autocomplete: "off", "data-login-modal-target": "email", "data-action": "input->login-modal#emailOnInput" } + = form.email_field :email, { tabindex: 1, inputmode: "email", autocomplete: "off" } .row .large-12.columns = form.label :password, t(:password) diff --git a/app/views/layouts/_signup_tab.html.haml b/app/views/layouts/_signup_tab.html.haml index f25bf2024d..929e56c58f 100644 --- a/app/views/layouts/_signup_tab.html.haml +++ b/app/views/layouts/_signup_tab.html.haml @@ -1,14 +1,14 @@ - signup_form_user = Spree::User.new if local_assigns[:signup_form_user].nil? #signup-tab - = form_with model: signup_form_user, url: spree.account_path, scope: :user, data: { remote: "true" } do |form| + = form_with model: signup_form_user, url: spree.account_path, scope: :user, data: { turbo: true } do |form| .row .large-12.columns#signup-feedback .row .large-12.columns = form.label :email, t(:signup_email) - = form.email_field :email, { tabindex: 1, "data-login-modal-target": "email", "data-action": "input->login-modal#emailOnInput" } + = form.email_field :email, { tabindex: 1 } = form.error_message_on :email .row .large-12.columns diff --git a/app/views/layouts/darkswarm.html.haml b/app/views/layouts/darkswarm.html.haml index edea1430a2..0d048daaa7 100644 --- a/app/views/layouts/darkswarm.html.haml +++ b/app/views/layouts/darkswarm.html.haml @@ -13,12 +13,12 @@ - else = favicon_link_tag "/favicon-staging.ico" %link{href: "https://fonts.googleapis.com/css?family=Roboto:400,300italic,400italic,300,700,700italic|Oswald:300,400,700", rel: "stylesheet", type: "text/css"} - %link{href: asset_pack_path("media/fonts/OFN-v2.woff"), rel: "preload", as: "font", crossorigin: "anonymous"} + %link{href: asset_pack_path("static/OFN-v2.woff"), rel: "preload", as: "font", crossorigin: "anonymous"} = render "layouts/matomo_tag" = language_meta_tags = stylesheet_pack_tag "darkswarm", "data-turbo-track": "reload", media: "screen" - = javascript_pack_tag "application", "data-turbo-track": "reload" + = javascript_pack_tag "application", "data-turbo-track": "reload", defer: false # do not use defer because our javascript currently depend on order of execution of loaded script. = render "layouts/shopfront_script" if @shopfront_layout = render "layouts/bugsnag_js" diff --git a/app/views/layouts/mailer.html.haml b/app/views/layouts/mailer.html.haml index 2a74b48ad9..0a6981a08f 100644 --- a/app/views/layouts/mailer.html.haml +++ b/app/views/layouts/mailer.html.haml @@ -5,7 +5,7 @@ %meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/ %title = Spree::Config[:site_name] - = stylesheet_link_tag 'mail', media: "screen" + = stylesheet_pack_tag "mail", media: "screen" %body{:bgcolor => "#FFFFFF" } - unless @hide_ofn_navigation %table.head-wrap diff --git a/app/views/layouts/registration.html.haml b/app/views/layouts/registration.html.haml index 07f8a84ef4..a89f6f8857 100644 --- a/app/views/layouts/registration.html.haml +++ b/app/views/layouts/registration.html.haml @@ -16,7 +16,7 @@ = stylesheet_pack_tag "darkswarm", media: "screen" = javascript_include_tag "darkswarm/all" - = javascript_pack_tag "application" + = javascript_pack_tag "application", defer: false # do not use defer because our javascript currently depend on order of execution of loaded script. = csrf_meta_tags diff --git a/app/views/payment_mailer/authorization_required.html.haml b/app/views/payment_mailer/authorization_required.html.haml index 391ccbc04a..0bf1be0f16 100644 --- a/app/views/payment_mailer/authorization_required.html.haml +++ b/app/views/payment_mailer/authorization_required.html.haml @@ -1,2 +1,2 @@ -= t('spree.payment_mailer.authorization_required.message', order_number: @order.number) += t(".message", order_number: @order.number) = link_to spree.edit_admin_order_url(@order), spree.edit_admin_order_url(@order) diff --git a/app/views/payment_mailer/authorize_payment.html.haml b/app/views/payment_mailer/authorize_payment.html.haml index ea25e0e7b4..ce7535c57b 100644 --- a/app/views/payment_mailer/authorize_payment.html.haml +++ b/app/views/payment_mailer/authorize_payment.html.haml @@ -1,2 +1,2 @@ -= t('spree.payment_mailer.authorize_payment.instructions', distributor: @payment.order.distributor.name, amount: @payment.display_amount) += t(".instructions", distributor: @payment.order.distributor.name, amount: @payment.display_amount) = link_to main_app.authorize_payment_url(@payment), main_app.authorize_payment_url(@payment) diff --git a/app/views/payment_mailer/refund_available.html.haml b/app/views/payment_mailer/refund_available.html.haml new file mode 100644 index 0000000000..a5d27a8c63 --- /dev/null +++ b/app/views/payment_mailer/refund_available.html.haml @@ -0,0 +1,2 @@ +%p= t(".message", shop: @shop, amount: @amount) +%p= link_to @taler_order_status_url, @taler_order_status_url diff --git a/app/views/spree/admin/orders/invoice.html.haml b/app/views/spree/admin/orders/invoice.html.haml index a72e7c1fff..d1dbc32264 100644 --- a/app/views/spree/admin/orders/invoice.html.haml +++ b/app/views/spree/admin/orders/invoice.html.haml @@ -1,4 +1,4 @@ -= wicked_pdf_stylesheet_link_tag "mail" += pdf_stylesheet_pack_tag "mail" %table{:width => "100%"} %tbody diff --git a/app/views/spree/admin/orders/invoice2.html.haml b/app/views/spree/admin/orders/invoice2.html.haml index 935e370d7a..c55a1f6637 100644 --- a/app/views/spree/admin/orders/invoice2.html.haml +++ b/app/views/spree/admin/orders/invoice2.html.haml @@ -1,4 +1,4 @@ -= wicked_pdf_stylesheet_link_tag "mail" += pdf_stylesheet_pack_tag "mail" %table{:width => "100%"} %tbody diff --git a/app/views/spree/admin/orders/invoice4.html.haml b/app/views/spree/admin/orders/invoice4.html.haml index 6a5c22ac8b..6e92e589d5 100644 --- a/app/views/spree/admin/orders/invoice4.html.haml +++ b/app/views/spree/admin/orders/invoice4.html.haml @@ -1,4 +1,4 @@ -= wicked_pdf_stylesheet_link_tag "mail" += pdf_stylesheet_pack_tag "mail" %table{:width => "100%"} %tbody @@ -102,4 +102,4 @@ = render partial: 'spree/admin/orders/_invoice/order_note' .text-center - = link_to_platform_terms \ No newline at end of file + = link_to_platform_terms diff --git a/app/views/spree/admin/payment_methods/_providers.html.haml b/app/views/spree/admin/payment_methods/_providers.html.haml index 15bd4ef979..942a2a0c8f 100644 --- a/app/views/spree/admin/payment_methods/_providers.html.haml +++ b/app/views/spree/admin/payment_methods/_providers.html.haml @@ -3,6 +3,6 @@ .alpha.four.columns = label :payment_method, :type, t('.provider') .omega.twelve.columns - = collection_select(:payment_method, :type, @providers, :to_s, :clean_name, {}, { class: 'select2 fullwidth', 'provider-prefs-for' => "#{@object.id}"}) + = select(:payment_method, :type, payment_method_type_options(@providers), {}, { class: 'select2 fullwidth', required: true, placeholder: t("admin.choose"), 'provider-prefs-for' => "#{@object.id}"}) %div{"ng-include" => "include_html" } diff --git a/app/views/spree/admin/payment_methods/index.html.haml b/app/views/spree/admin/payment_methods/index.html.haml index 1952c60c06..61eb28c63a 100644 --- a/app/views/spree/admin/payment_methods/index.html.haml +++ b/app/views/spree/admin/payment_methods/index.html.haml @@ -37,7 +37,7 @@ - method.distributors.each do |distributor| = distributor.name %br/ - %td= method.class.clean_name + %td= payment_method_type_name(method.class.name) - if spree_current_user.admin? %td.align-center= method.environment.to_s.titleize %td.align-center= method.display_on.blank? ? t('.both') : t('.' + method.display_on.to_s) diff --git a/app/views/spree/admin/payments/_list.html.haml b/app/views/spree/admin/payments/_list.html.haml index 975f171457..705ad5a016 100644 --- a/app/views/spree/admin/payments/_list.html.haml +++ b/app/views/spree/admin/payments/_list.html.haml @@ -18,5 +18,5 @@ %span{class: "state #{payment.state}"}= t(payment.state, scope: "spree.payment_states", default: payment.state.capitalize) %td.actions - payment.actions.each do |action| - = link_to_with_icon "icon-#{action}", Spree.t(action), fire_admin_order_payment_path(@order, payment, e: action), - no_text: true, data: { method: :put, action: action, disable_with: "" } + = link_to "", fire_admin_order_payment_path(@order, payment, e: action), + class: "icon_link icon-#{action} no-text", data: { method: :put, action: action, disable_with: "" }, title: Spree.t(action) diff --git a/app/views/spree/admin/products/new.html.haml b/app/views/spree/admin/products/new.html.haml index b7444422d6..ee6c972d59 100644 --- a/app/views/spree/admin/products/new.html.haml +++ b/app/views/spree/admin/products/new.html.haml @@ -29,7 +29,7 @@ .sixteen.columns.alpha .eight.columns.alpha = f.field_container :variant_unit do - = f.label :variant_unit, t(".units") + = f.label :variant_unit_with_scale, t(".units") %span.required * = f.select 'variant_unit', [], { include_blank: true }, diff --git a/app/views/spree/admin/shared/_head.html.haml b/app/views/spree/admin/shared/_head.html.haml index 5da4963871..01387f98d3 100644 --- a/app/views/spree/admin/shared/_head.html.haml +++ b/app/views/spree/admin/shared/_head.html.haml @@ -14,7 +14,7 @@ = " - OFN #{t(:administration)}" %link{:href => "https://fonts.googleapis.com/css?family=Open+Sans:400italic,600italic,400,600&subset=latin,cyrillic,greek,vietnamese", :rel => "stylesheet", :type => "text/css"} -= stylesheet_pack_tag 'admin-style-v3', media: "screen, print" += stylesheet_pack_tag 'admin-style', media: "screen, print" = render "layouts/bugsnag_js" - if content_for? :minimal_js @@ -25,7 +25,7 @@ = render "spree/admin/shared/translations" = render "spree/admin/shared/routes" -= javascript_pack_tag "admin", "data-turbo-track": "reload" += javascript_pack_tag "admin", "data-turbo-track": "reload", defer: false # do not use defer because our javascript currently depend on order of execution of loaded script. %script = raw "var AUTH_TOKEN = \"#{form_authenticity_token}\";" diff --git a/app/views/spree/users/_webhook_endpoints.html.haml b/app/views/spree/users/_webhook_endpoints.html.haml index 8bd60e2f8b..1ca719a8bb 100644 --- a/app/views/spree/users/_webhook_endpoints.html.haml +++ b/app/views/spree/users/_webhook_endpoints.html.haml @@ -10,24 +10,5 @@ %th= t('.url.header') %th.actions %tbody - -# Existing endpoints - - @user.webhook_endpoints.each do |webhook_endpoint| - %tr - %td= t('.event_types.order_cycle_opened') # For now, we only support one type. - %td= webhook_endpoint.url - %td.actions - - if webhook_endpoint.persisted? - = button_to account_webhook_endpoint_path(webhook_endpoint), method: :delete, - class: "tiny alert no-margin", - data: { confirm: I18n.t(:are_you_sure)} do - = I18n.t(:delete) - - -# Create new - - if @user.webhook_endpoints.empty? # Only one allowed for now. - %tr - %td= t('.event_types.order_cycle_opened') # For now, we only support one type. - %td - = form_for(@user.webhook_endpoints.build, url: account_webhook_endpoints_path, id: 'new_webhook_endpoint') do |f| - = f.url_field :url, placeholder: t('.url.create_placeholder'), required: true, size: 64 - %td.actions - = button_tag t(:create), class: 'button primary tiny no-margin', form: 'new_webhook_endpoint' + = render WebhookEndpointFormComponent.new(webhooks: @user.webhook_endpoints.order_cycle_opened, webhook_type: "order_cycle_opened") + = render WebhookEndpointFormComponent.new(webhooks: @user.webhook_endpoints.payment_status, webhook_type: "payment_status_changed") diff --git a/app/webpacker/controllers/login_modal_controller.js b/app/webpacker/controllers/login_modal_controller.js index 92c3f6516d..8ef8f049f0 100644 --- a/app/webpacker/controllers/login_modal_controller.js +++ b/app/webpacker/controllers/login_modal_controller.js @@ -1,8 +1,7 @@ import { Controller } from "stimulus"; export default class extends Controller { - static targets = ["background", "modal", "email"]; - static values = { email: String }; + static targets = ["background", "modal"]; connect() { if (this.hasModalTarget) { @@ -19,13 +18,6 @@ export default class extends Controller { window.dispatchEvent(new Event("login:modal:open")); } - emailOnInput(event) { - this.emailValue = event.currentTarget.value; - this.emailTargets.forEach((element) => { - element.value = this.emailValue; - }); - } - open = () => { if (!location.hash.substr(1).includes("/login")) { history.pushState({}, "", "#/login"); @@ -57,19 +49,6 @@ export default class extends Controller { }, 200); } - resend_confirmation(event) { - fetch("/user/spree_user/confirmation", { - method: "POST", - body: JSON.stringify({ - spree_user: { email: this.emailValue }, - tab: event.currentTarget.dataset.tab, - }), - headers: { "Content-type": "application/json; charset=UTF-8" }, - }) - .then((data) => data.json()) - .then(CableReady.perform); - } - returnHome() { window.location = "/"; } diff --git a/app/webpacker/controllers/tom_select_controller.js b/app/webpacker/controllers/tom_select_controller.js index d1d3ade58a..3867fa3380 100644 --- a/app/webpacker/controllers/tom_select_controller.js +++ b/app/webpacker/controllers/tom_select_controller.js @@ -1,11 +1,16 @@ import { Controller } from "stimulus"; import TomSelect from "tom-select/dist/esm/tom-select.complete"; +import showHttpError from "../../webpacker/js/services/show_http_error"; export default class extends Controller { - static values = { options: Object, placeholder: String }; + static values = { + options: Object, + placeholder: String, + remoteUrl: String, + }; connect(options = {}) { - this.control = new TomSelect(this.element, { + let tomSelectOptions = { maxItems: 1, maxOptions: null, plugins: ["dropdown_input"], @@ -16,7 +21,13 @@ export default class extends Controller { }, ...this.optionsValue, ...options, - }); + }; + + if (this.remoteUrlValue) { + this.#addRemoteOptions(tomSelectOptions); + } + + this.control = new TomSelect(this.element, tomSelectOptions); } disconnect() { @@ -29,4 +40,78 @@ export default class extends Controller { const optionsArray = [...this.element.options]; return optionsArray.find((option) => [null, ""].includes(option.value))?.text; } + + #buildUrl(query, page = 1) { + const url = new URL(this.remoteUrlValue, window.location.origin); + url.searchParams.set("q", query); + url.searchParams.set("page", page); + return url.toString(); + } + + #fetchOptions(query, callback) { + const url = this.control.getUrl(query); + + fetch(url) + .then((response) => { + if (!response.ok) { + showHttpError(response.status); + throw response; + } + return response.json(); + }) + .then((json) => { + /** + * Expected API shape: + * { + * results: [{ value, label }], + * pagination: { more: boolean } + * } + */ + if (json.pagination?.more) { + const currentUrl = new URL(url); + const currentPage = parseInt(currentUrl.searchParams.get("page") || "1"); + const nextUrl = this.#buildUrl(query, currentPage + 1); + this.control.setNextUrl(query, nextUrl); + } + + callback(json.results || []); + }) + .catch((error) => { + callback(); + console.error(error); + }); + } + + #addRemoteOptions(options) { + this.openedByClick = false; + + options.firstUrl = (query) => { + return this.#buildUrl(query, 1); + }; + + options.load = this.#fetchOptions.bind(this); + + options.onFocus = function () { + this.control.load("", () => {}); + }.bind(this); + + options.onDropdownOpen = function () { + this.openedByClick = true; + }.bind(this); + + options.onType = function () { + this.openedByClick = false; + }.bind(this); + + // As per TomSelect source code, Loading state is shown on the UI when this function returns true. + // By default it shows loading state only when there is some input in the search box. + // We want to show loading state on focus as well (when there is no input) to indicate that options are being loaded. + options.shouldLoad = function (query) { + return this.openedByClick || query.length > 0; + }.bind(this); + + options.valueField = "value"; + options.labelField = "label"; + options.searchField = "label"; + } } diff --git a/app/webpacker/css/admin/all.scss b/app/webpacker/css/admin/all.scss new file mode 100644 index 0000000000..6f8c7c57ea --- /dev/null +++ b/app/webpacker/css/admin/all.scss @@ -0,0 +1,135 @@ +// Admin v3 styles +// While in feature-toggle, we inherit all files from old admin design. +// Individual files may be copied in order to replace the old files. + +@import "assets/stylesheets/normalize"; +@import "assets/stylesheets/responsive-tables"; +@import "assets/stylesheets/jquery.powertip"; +@import "jquery-ui/themes/base/core"; +@import "jquery-ui/themes/base/button"; +@import "jquery-ui/themes/base/resizable"; +@import "assets/stylesheets/jquery-ui-theme"; +@import "jquery-ui/themes/base/dialog"; +@import "../shared/ng-tags-input.min"; +@import "assets/stylesheets/select2"; +@import "flatpickr/dist/flatpickr"; +@import "flatpickr/dist/themes/material_blue"; +@import "shortcut-buttons-flatpickr/dist/themes/light"; + +@import "globals/functions"; +@import "globals/palette"; // admin_v3 +@import "globals/variables"; // admin_v3 +@import "globals/mixins"; +@import "mixins"; // admin_v3 + +@import "plugins/font-awesome"; + +@import "../shared/variables/layout"; +@import "../shared/variables/variables"; +@import "../shared/utilities"; +@import "shared/typography"; // admin_v3 +@import "shared/tables"; // admin_v3 +@import "shared/icons"; // admin_v3 +@import "shared/forms"; // admin_v3 +@import "shared/layout"; // admin_v3 +@import "shared/scroll_bar"; + +@import "../shared/trix"; + +@import "plugins/flatpickr-customization"; // admin_v3 +@import "plugins/powertip"; // admin_v3 + +@import "sections/orders"; // admin_v3 +@import "sections/products"; + +@import "hacks/mozilla"; +@import "hacks/opera"; +@import "hacks/ie"; + +@import "components/actions"; // admin_v3 +@import "components/alert-box"; +@import "components/alert_row"; +@import "components/buttons"; // admin_v3 +@import "components/date-picker"; // admin_v3 +@import "components/dialogs"; +@import "components/input"; +@import "components/jquery_dialog"; +@import "components/messages"; // admin_v3 +@import "components/navigation"; // admin_v3 +@import "components/ng-cloak"; +@import "components/page_actions"; +@import "components/pagination"; // admin_v3 +@import "components/per_page_controls"; +@import "components/product_autocomplete"; +@import "components/progress"; +@import "components/save_bar"; +@import "components/sidebar"; // admin_v3 +@import "components/simple_modal"; +@import "components/states"; +@import "components/stripe_connect_button"; +@import "components/subscriptions_states"; +@import "components/table-filter"; +@import "components/table_loading"; +@import "components/timepicker"; +@import "components/todo"; +@import "components/tooltip"; +@import "components/wizard_progress"; + +@import "pages/enterprise_form"; +@import "pages/subscription_form"; +@import "pages/subscription_line_items"; +@import "pages/subscription_review"; + +@import "advanced_settings"; +@import "alert"; +@import "animations"; +@import "pages/change_type_form"; // admin_v3 +@import "connected_apps"; +@import "customers"; +@import "dashboard/dashboard_item"; // admin_v3 +@import "pages/dashboard-single-ent"; // admin_v3 +@import "dialog"; +@import "disabled"; +@import "components/dropdown"; // admin_v3 +@import "pages/edit_variant"; // admin_v3 +@import "pages/enterprise_index_panels"; // admin_v3 +@import "enterprises"; +@import "filters_and_controls"; +@import "grid"; +@import "icons"; +@import "index_panel_buttons"; +@import "index_panels"; +@import "modals"; +@import "offsets"; +@import "openfoodnetwork"; +@import "order_cycles"; +@import "orders"; +@import "pages/product_import"; // admin_v3 +@import "products"; +@import "products_v3"; +@import "question-mark-tooltip"; +@import "relationships"; +@import "reports"; +@import "components/select2"; // admin_v3 +@import "components/sidebar-item"; // admin_v3 +@import "side_menu"; +@import "tables"; +@import "tag_rules"; +@import "terms_of_service_files"; +@import "validation"; +@import "variant_overrides"; +@import "welcome"; + +@import "shared/question-mark-icon"; +@import "~tom-select/src/scss/tom-select.default"; +@import "components/tom_select"; // admin_v3 + +@import "modal_component/modal_component"; +@import "vertical_ellipsis_menu_component/vertical_ellipsis_menu_component"; // admin_v3 and only V3 +@import "tag_list_input_component/tag_list_input_component"; +@import "trix"; + +@import "terms_of_service_banner"; // admin_v3 + +@import "pages/product_preview"; // admin_v3 +@import "pages/dfc_product_imports"; // admin_v3 diff --git a/app/webpacker/css/admin/change_type_form.scss b/app/webpacker/css/admin/change_type_form.scss deleted file mode 100644 index 1880f029eb..0000000000 --- a/app/webpacker/css/admin/change_type_form.scss +++ /dev/null @@ -1,110 +0,0 @@ -#change_type { - section { - margin: 2em 0 0 0; - - &, - & * { - color: $spree-blue; - } - } - - .description { - background-color: $spree-light-blue; - margin-top: -2em; - padding: 4em 2em 2em 1em; - - @media all and (max-width: 786px) { - margin-bottom: 2em; - } - } - - .admin-cta { - border: 1px solid $spree-blue; - - @include border-radius(3px); - - text-align: center; - padding: 1em; - } - - .error { - display: block; - color: #f57e80; - border: 1px solid #f57e80; - background-color: #fde6e7; - - @include border-radius(3px); - - margin-bottom: 1em; - padding: 0.5em; - } - - a.selector { - position: relative; - border: 2px solid black; - text-align: center; - width: 100%; - cursor: pointer; - - &, - & * { - color: white; - } - - &:after, - &:before { - top: 100%; - left: 50%; - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; - pointer-events: none; - } - - &:after { - border-color: rgba(136, 183, 213, 0); - border-top-color: $spree-blue; - border-width: 12px; - margin-left: -12px; - } - - &:hover { - &:after { - border-top-color: $spree-green; - } - } - - &:before { - border-color: rgba(84, 152, 218, 0); - border-top-color: black; - border-width: 15px; - margin-left: -15px; - } - - .bottom { - background: repeating-linear-gradient( - 60deg, - rgba(84, 152, 218, 0), - rgba(84, 152, 218, 0) 5px, - rgba(255, 255, 255, 0.25) 5px, - rgba(255, 255, 255, 0.25) 10px - ); - margin-top: 1em; - margin-left: -15px; - margin-right: -15px; - padding: 5px; - text-transform: uppercase; - } - - &.selected { - background-color: black; - - &:after, - &:hover &:after { - border-top-color: black; - } - } - } -} diff --git a/app/webpacker/css/admin_v3/components/actions.scss b/app/webpacker/css/admin/components/actions.scss similarity index 100% rename from app/webpacker/css/admin_v3/components/actions.scss rename to app/webpacker/css/admin/components/actions.scss diff --git a/app/webpacker/css/admin_v3/components/buttons.scss b/app/webpacker/css/admin/components/buttons.scss similarity index 100% rename from app/webpacker/css/admin_v3/components/buttons.scss rename to app/webpacker/css/admin/components/buttons.scss diff --git a/app/webpacker/css/admin_v3/components/date-picker.scss b/app/webpacker/css/admin/components/date-picker.scss similarity index 100% rename from app/webpacker/css/admin_v3/components/date-picker.scss rename to app/webpacker/css/admin/components/date-picker.scss diff --git a/app/webpacker/css/admin_v3/components/dropdown.scss b/app/webpacker/css/admin/components/dropdown.scss similarity index 100% rename from app/webpacker/css/admin_v3/components/dropdown.scss rename to app/webpacker/css/admin/components/dropdown.scss diff --git a/app/webpacker/css/admin_v3/components/messages.scss b/app/webpacker/css/admin/components/messages.scss similarity index 100% rename from app/webpacker/css/admin_v3/components/messages.scss rename to app/webpacker/css/admin/components/messages.scss diff --git a/app/webpacker/css/admin_v3/components/navigation.scss b/app/webpacker/css/admin/components/navigation.scss similarity index 100% rename from app/webpacker/css/admin_v3/components/navigation.scss rename to app/webpacker/css/admin/components/navigation.scss diff --git a/app/webpacker/css/admin_v3/components/pagination.scss b/app/webpacker/css/admin/components/pagination.scss similarity index 100% rename from app/webpacker/css/admin_v3/components/pagination.scss rename to app/webpacker/css/admin/components/pagination.scss diff --git a/app/webpacker/css/admin_v3/components/select2.scss b/app/webpacker/css/admin/components/select2.scss similarity index 100% rename from app/webpacker/css/admin_v3/components/select2.scss rename to app/webpacker/css/admin/components/select2.scss diff --git a/app/webpacker/css/admin_v3/components/sidebar-item.scss b/app/webpacker/css/admin/components/sidebar-item.scss similarity index 100% rename from app/webpacker/css/admin_v3/components/sidebar-item.scss rename to app/webpacker/css/admin/components/sidebar-item.scss diff --git a/app/webpacker/css/admin_v3/components/sidebar.scss b/app/webpacker/css/admin/components/sidebar.scss similarity index 100% rename from app/webpacker/css/admin_v3/components/sidebar.scss rename to app/webpacker/css/admin/components/sidebar.scss diff --git a/app/webpacker/css/admin_v3/components/spinner.scss b/app/webpacker/css/admin/components/spinner.scss similarity index 100% rename from app/webpacker/css/admin_v3/components/spinner.scss rename to app/webpacker/css/admin/components/spinner.scss diff --git a/app/webpacker/css/admin_v3/components/tom_select.scss b/app/webpacker/css/admin/components/tom_select.scss similarity index 100% rename from app/webpacker/css/admin_v3/components/tom_select.scss rename to app/webpacker/css/admin/components/tom_select.scss diff --git a/app/webpacker/css/admin/dashboard-single-ent.scss b/app/webpacker/css/admin/dashboard-single-ent.scss deleted file mode 100644 index 93f242257b..0000000000 --- a/app/webpacker/css/admin/dashboard-single-ent.scss +++ /dev/null @@ -1,21 +0,0 @@ -.dashboard_item.single-ent { - .header { - padding: 0.77778em 1.33333em 0.77778em 0.77778em; - height: auto !important; - } - - .list { - .button.bottom { - width: 100%; - } - } -} - -.button.big { - width: 100%; - font-size: 1rem; - - @include border-radius(25px); - - padding: 15px; -} diff --git a/app/webpacker/css/admin_v3/dashboard/dashboard_item.scss b/app/webpacker/css/admin/dashboard/dashboard_item.scss similarity index 100% rename from app/webpacker/css/admin_v3/dashboard/dashboard_item.scss rename to app/webpacker/css/admin/dashboard/dashboard_item.scss diff --git a/app/webpacker/css/admin/dashboard_item.scss b/app/webpacker/css/admin/dashboard_item.scss deleted file mode 100644 index 7522b91836..0000000000 --- a/app/webpacker/css/admin/dashboard_item.scss +++ /dev/null @@ -1,244 +0,0 @@ -div.dashboard_item { - margin-bottom: 30px; - - .centered { - text-align: center; - } - - .text-icon { - margin-top: 8px; - display: block; - font-size: 16px; - font-weight: bold; - color: #fff; - padding: 0px 6px; - border-radius: 10px; - - &.green { - background-color: $spree-green; - } - - &.warning { - background-color: $color-warning; - } - - &.orange { - background-color: $color-warning; - } - } - - div.header { - height: 50px; - border-radius: 6px 6px 0px 0px; - border: 1px solid $spree-blue; - position: relative; - - a[ofn-with-tip] { - position: absolute; - right: 5px; - bottom: 5px; - } - - &.warning { - border-color: $color-warning; - border-width: 3px; - - h3 { - color: $color-warning; - } - } - - &.orange { - border-color: $color-warning; - border-width: 3px; - - h3 { - color: $color-warning; - } - } - - h3.alpha { - height: 100%; - padding: 10px 5px 0px 3%; - } - - a { - border-radius: 0px 4px 0px 0px; - height: 100%; - padding: 15px 2px 0px 2px; - } - } - - .tabs { - height: 30px; - border: solid $spree-blue; - border-width: 0px 0px 1px 0px; - margin-top: 3px; - - div.dashboard_tab { - cursor: pointer; - height: 30px; - color: #fff; - background-color: $spree-blue; - padding: 5px 5px 0px 5px; - text-align: center; - font-weight: bold; - border: solid $spree-blue; - border-width: 1px 1px 0px 1px; - - &:hover { - background-color: $spree-green; - } - - &.selected { - color: $spree-blue; - background-color: #fff; - } - } - } - - .list { - max-height: 250px; - overflow-y: auto; - overflow-x: hidden; - - &:focus { - outline: none; - } - } - - .list-title { - border: solid $spree-blue; - border-width: 0px 1px 0px 1px; - - span { - font-size: 105%; - padding: 10px 0px; - font-weight: bold; - } - - span.alpha { - padding: 10px 2px 10px 5%; - } - } - - .list-item { - border: solid $spree-blue; - border-width: 0px 1px 0px 1px; - height: 41px; - - span.alpha { - font-weight: bold; - margin-left: -3px; - padding: 10px 2px 0px 5%; - } - - span.omega { - padding-right: 13px; - margin-right: -3px; - text-align: right; - } - - .icon-arrow-right { - padding-top: 6px; - font-size: 20px; - } - - .icon-warning-sign { - color: $color-warning; - font-size: 30px; - } - - .icon-remove-sign { - color: $color-warning; - font-size: 30px; - } - - .icon-ok-sign { - color: $spree-green; - font-size: 30px; - } - - &.orange { - color: $color-warning; - border: solid $color-warning; - } - - &.warning { - color: $color-warning; - border: solid $color-warning; - } - - &.orange, - &.warning { - border-width: 0px 3px 0px 3px; - } - - &.even { - background-color: #fff; - } - - &.odd { - background-color: $spree-light-blue; - } - - &.even, - &.odd { - &:hover { - color: #ffffff; - background-color: $spree-green; - - .icon-arrow-right { - color: #fff; - } - - .icon-remove-sign { - color: #fff; - } - - .icon-warning-sign { - color: #fff; - } - - .icon-ok-sign { - color: #fff; - } - - .text-icon { - &.green { - color: $spree-green; - background-color: #fff; - } - } - } - } - } - - a.button { - color: #fff; - font-size: 110%; - font-weight: bold; - text-align: center; - - &.orange { - background-color: $color-warning; - } - - &.blue { - background-color: $spree-blue; - } - - &.warning { - background-color: $color-warning; - } - - &:hover { - background-color: $spree-green; - } - - &.bottom { - border-radius: 0px 0px 6px 6px; - padding: 15px 15px; - } - } -} diff --git a/app/webpacker/css/admin/dropdown.scss b/app/webpacker/css/admin/dropdown.scss deleted file mode 100644 index ab3a61d5bb..0000000000 --- a/app/webpacker/css/admin/dropdown.scss +++ /dev/null @@ -1,271 +0,0 @@ -#content-header .ofn-drop-down { - border: none; - background-color: $spree-blue; - color: #fff; - float: none; - margin-left: 3px; -} - -.ofn-drop-down { - .dropdown-content { - display: none; - } - - .toggle-off { - display: none; - } - - &:active:not(.disabled), - &:focus:not(.disabled) { - .dropdown-content { - display: inline-block; - } - } -} - -.ofn-drop-down:hover, -.ofn-drop-down.expanded { - border: 1px solid #adadad; - color: #575757; -} - -@mixin ofn-drop-down-style { - padding: 7px 15px; - border-radius: 3px; - border: 1px solid #d4d4d4; - background-color: #f5f5f5; - display: block; - color: #828282; - cursor: pointer; - -moz-user-select: none; - -khtml-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - user-select: none; - text-align: center; - margin-right: 10px; - - &.disabled { - opacity: 0.5; - pointer-events: none; - - &:hover { - cursor: default; - border-color: #d4d4d4; - color: #828282; - } - } -} - -.ofn-drop-down-with-prepend { - display: flex; - - &.right { - float: right; - } - - .ofn-drop-down { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - } - - .ofn-drop-down-prepend { - @include ofn-drop-down-style; - - border-right: none; - margin-left: 0; - margin-right: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - cursor: default; - } -} - -.ofn-drop-down { - @include ofn-drop-down-style; - - position: relative; - float: left; - - &.right { - float: right; - margin-right: 0px; - margin-left: 10px; - } - - &:hover, - &.expanded { - border: 1px solid #adadad; - color: #575757; - } - - > span { - width: auto; - text-transform: uppercase; - font-size: 85%; - font-weight: 600; - } - - .menu { - margin-top: 1px; - position: absolute; - float: none; - top: 100%; - left: 0px; - padding: 5px 0px; - border: 1px solid #adadad; - background-color: #ffffff; - box-shadow: 1px 3px 10px #888888; - z-index: 100; - white-space: nowrap; - - .filter { - padding-left: 5px; - padding-right: 5px; - position: relative; - - > input[type="text"] { - border: 1px solid rgba(18, 18, 18, 0.1); - width: 100%; - padding-left: 30px; - padding-top: 10px; - padding-bottom: 10px; - font-size: 13px; - color: #454545; - } - - &:after { - content: "\f002"; - font-family: FontAwesome; - position: absolute; - left: 15px; - top: 13px; - color: #454545; - } - } - - .menu_item { - margin: 0px; - padding: 2px 10px; - color: #454545; - text-align: left; - display: block; - - .check { - display: inline-block; - text-align: center; - width: 40px; - &:before { - content: "\00a0"; - } - } - - .name { - display: inline-block; - padding: 0px 15px 0px 0px; - } - - &.selected { - .check:before { - content: "\2713"; - } - } - - &.hidden { - display: none; - } - } - - .menu_item:hover { - background-color: #ededed; - } - } - - > details { - // Override padding on ofn-drop-down-style - margin: -7px -15px; - padding: 7px 15px; - } - - > details > summary { - display: inline-block; - list-style: none; - width: auto; - text-transform: uppercase; - font-size: 85%; - font-weight: 600; - // Override padding on ofn-drop-down-style to increase clickable area - margin: -8px -15px; - padding: 8px 15px; - } - - > details > summary:after { - content: "\f0d7"; - font-family: FontAwesome; - } - - > details[open] > summary:after { - content: "\f0d8"; - font-family: FontAwesome; - } -} - -.ofn-drop-down-v2 { - border: 1px solid $pale-blue; - background-color: white; - padding: 0px; - - &:hover { - border-color: $spree-blue; - } - - .ofn-drop-down-label { - color: $color-3; - padding: 10px; - width: 235px; - display: flex; - justify-content: space-between; - - &:hover { - color: $color-3; - } - - .label { - padding-right: 10px; - } - - .icon-caret-down, - .icon-caret-up { - padding-right: 0px; - } - } - - .menu { - width: 100%; - } - - .menu_items { - max-height: 200px; - overflow-y: scroll; - - .menu_item { - margin-bottom: 5px; - color: #454545; - font-weight: 400; - cursor: pointer; - padding-top: 4px; - padding-bottom: 5px; - text-transform: uppercase; - font-size: 85%; - } - } -} - -.ofn-drop-down.ofn-drop-down-v2 { - // Add very specific styling here for components that are in transition: - // ie. the ones using the two classes above - .ofn-drop-down-label { - padding-top: 7px; - padding-bottom: 7px; - } -} diff --git a/app/webpacker/css/admin/enterprise_index_panels.scss b/app/webpacker/css/admin/enterprise_index_panels.scss deleted file mode 100644 index 087f318042..0000000000 --- a/app/webpacker/css/admin/enterprise_index_panels.scss +++ /dev/null @@ -1,120 +0,0 @@ -.enterprise_package_panel, -.enterprise_producer_panel { - .info { - p { - font-size: 1rem; - margin: 10px 0px; - } - } - - a.selector { - display: block; - position: relative; - margin-bottom: 20px; - border: 2px solid black; - text-align: center; - // width: 100%; - cursor: pointer; - &, - & * { - color: white; - } - &:hover { - &:after { - border-top-color: $spree-green; - } - } - &.disabled { - background-color: #c1c1c1; - } - .bottom { - background: repeating-linear-gradient( - 60deg, - rgba(84, 152, 218, 0), - rgba(84, 152, 218, 0) 5px, - rgba(255, 255, 255, 0.25) 5px, - rgba(255, 255, 255, 0.25) 10px - ); - margin-top: 1em; - margin-left: -15px; - margin-right: -15px; - padding: 5px; - text-transform: uppercase; - } - &.selected { - background-color: #000000; - - &:after { - top: 50%; - left: 0; - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; - pointer-events: none; - - border-top: 20px solid transparent; - border-bottom: 20px solid transparent; - border-right: 20px solid #000000; - margin-top: -20px; - margin-left: -20px; - } - } - } -} - -.enterprise_status_panel { - .status-ok { - margin: 30px 0px; - i.icon-ok-sign { - color: $spree-green; - font-size: 1.5rem; - } - } - - td.description { - font-size: 0.9rem; - } - - td.severity { - text-align: center; - - i { - font-size: 1.5rem; - - &.issue { - color: $color-warning; - } - - &.warning { - color: #ff9848; - } - } - } -} - -tags-input .tags li.tag-item { - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - -ms-border-radius: 3px; - -o-border-radius: 3px; - border-radius: 3px; - margin: 2px 0 2px 3px; - background-image: none; - background-color: #5fa5e8; - border: none; - box-shadow: none; - color: white !important; - font-size: 85%; - height: 25px; -} - -tags-input .tags .tag-item .remove-button { - color: white; -} - -table th.actions .no-text[class*="icon-"], -table td.actions .no-text[class*="icon-"] { - cursor: pointer; -} diff --git a/app/webpacker/css/admin/globals/palette.scss b/app/webpacker/css/admin/globals/palette.scss index 5a64d064f7..225b00b368 100644 --- a/app/webpacker/css/admin/globals/palette.scss +++ b/app/webpacker/css/admin/globals/palette.scss @@ -1,20 +1,38 @@ -// Basic color palette for admin -$spree-green: #9fc820; -$spree-blue: #5498da; +// Basic color palette for admin styles v3 +$white: #ffffff !default; // White +$green: #9fc820 !default; // Green +$teal: #008397 !default; // Teal (Allports) +$orient: #006878 !default; // Orient (Cerulean) +$dark-blue: #004e5b !default; // Dark Blue (Sherpa) +$pale-blue: #cee1f4; // Pale blue +$red: #c85136 !default; // Red/Orange (Mojo) +$bright-orange: #ffa92e; // Bright orange +$yellow: #ff9300 !default; // Yellow +$mystic: #d9e8eb !default; // Mystic +$lighter-grey: #f8f9fa !default; // Lighter grey +$light-grey: #eff1f2 !default; // Light grey (Porcelain) +$medium-light-grey: #babdbe !default; // Silver Sand +$medium-grey: #919191 !default; // Medium grey +$dark-grey: #2e3132 !default; // Dark Grey +$near-black: #191c1d !default; // Near-black (Shark) +$fair-pink: #ffefeb !default; // Fair Pink +$roof-terracotta: #b83b1f !default; // Roof Terracotta + +// Old colour variables for backwards compatibility +$spree-green: $green; +$spree-blue: $teal; $spree-light-blue: #eff5fc; -$pale-blue: #cee1f4; -$bright-orange: #ffa92e; -$medium-grey: #919191; -$light-grey: #ccc; - -$color-1: #ffffff !default; // White -$color-2: $spree-green !default; // Green -$color-3: $spree-blue !default; // Light Blue -$color-4: #6788a2 !default; // Dark Blue -$color-5: #c60f13 !default; // Red -$color-6: #ff9300 !default; // Yellow -$color-14: #f8f9fa !default; // Lighter grey - -$dark-grey: #333; -$light-grey: #ddd; -$near-black: #222; +$color-1: $white; +$color-2: $green; +$color-3: $teal; +$color-4: $dark-blue; +$color-5: $red; +$color-6: $yellow; +$color-7: $light-grey; +$color-8: $near-black; +$color-9: $dark-grey; +$color-10: $orient; +$color-11: $mystic; +$color-12: $fair-pink; +$color-13: $roof-terracotta; +$color-14: $lighter-grey; diff --git a/app/webpacker/css/admin_v3/globals/variables.scss b/app/webpacker/css/admin/globals/variables.scss similarity index 100% rename from app/webpacker/css/admin_v3/globals/variables.scss rename to app/webpacker/css/admin/globals/variables.scss diff --git a/app/webpacker/css/admin_v3/mixins.scss b/app/webpacker/css/admin/mixins.scss similarity index 100% rename from app/webpacker/css/admin_v3/mixins.scss rename to app/webpacker/css/admin/mixins.scss diff --git a/app/webpacker/css/admin_v3/pages/_unit_popout.scss b/app/webpacker/css/admin/pages/_unit_popout.scss similarity index 100% rename from app/webpacker/css/admin_v3/pages/_unit_popout.scss rename to app/webpacker/css/admin/pages/_unit_popout.scss diff --git a/app/webpacker/css/admin_v3/pages/change_type_form.scss b/app/webpacker/css/admin/pages/change_type_form.scss similarity index 100% rename from app/webpacker/css/admin_v3/pages/change_type_form.scss rename to app/webpacker/css/admin/pages/change_type_form.scss diff --git a/app/webpacker/css/admin_v3/pages/dashboard-single-ent.scss b/app/webpacker/css/admin/pages/dashboard-single-ent.scss similarity index 100% rename from app/webpacker/css/admin_v3/pages/dashboard-single-ent.scss rename to app/webpacker/css/admin/pages/dashboard-single-ent.scss diff --git a/app/webpacker/css/admin_v3/pages/dfc_product_imports.scss b/app/webpacker/css/admin/pages/dfc_product_imports.scss similarity index 100% rename from app/webpacker/css/admin_v3/pages/dfc_product_imports.scss rename to app/webpacker/css/admin/pages/dfc_product_imports.scss diff --git a/app/webpacker/css/admin_v3/pages/edit_variant.scss b/app/webpacker/css/admin/pages/edit_variant.scss similarity index 100% rename from app/webpacker/css/admin_v3/pages/edit_variant.scss rename to app/webpacker/css/admin/pages/edit_variant.scss diff --git a/app/webpacker/css/admin_v3/pages/enterprise_index_panels.scss b/app/webpacker/css/admin/pages/enterprise_index_panels.scss similarity index 100% rename from app/webpacker/css/admin_v3/pages/enterprise_index_panels.scss rename to app/webpacker/css/admin/pages/enterprise_index_panels.scss diff --git a/app/webpacker/css/admin_v3/pages/product_import.scss b/app/webpacker/css/admin/pages/product_import.scss similarity index 100% rename from app/webpacker/css/admin_v3/pages/product_import.scss rename to app/webpacker/css/admin/pages/product_import.scss diff --git a/app/webpacker/css/admin_v3/pages/product_preview.scss b/app/webpacker/css/admin/pages/product_preview.scss similarity index 100% rename from app/webpacker/css/admin_v3/pages/product_preview.scss rename to app/webpacker/css/admin/pages/product_preview.scss diff --git a/app/webpacker/css/admin_v3/plugins/flatpickr-customization.scss b/app/webpacker/css/admin/plugins/flatpickr-customization.scss similarity index 100% rename from app/webpacker/css/admin_v3/plugins/flatpickr-customization.scss rename to app/webpacker/css/admin/plugins/flatpickr-customization.scss diff --git a/app/webpacker/css/admin_v3/plugins/powertip.scss b/app/webpacker/css/admin/plugins/powertip.scss similarity index 100% rename from app/webpacker/css/admin_v3/plugins/powertip.scss rename to app/webpacker/css/admin/plugins/powertip.scss diff --git a/app/webpacker/css/admin/plugins/select2.scss b/app/webpacker/css/admin/plugins/select2.scss deleted file mode 100644 index 6ef2d5887b..0000000000 --- a/app/webpacker/css/admin/plugins/select2.scss +++ /dev/null @@ -1,189 +0,0 @@ -.select2-container { - &:hover .select2-choice, - &.select2-container-active .select2-choice { - background-color: $color-sel-hover-bg !important; - border-color: $color-sel-hover-bg !important; - } - .select2-choice { - background-image: none !important; - background-color: $color-sel-bg; - border: none !important; - box-shadow: none !important; - @include border-radius($border-radius); - color: $color-1 !important; - font-size: 90%; - height: 31px; - line-height: inherit !important; - padding: 5px 15px 7px; - - span { - display: block; - padding: 2px; - } - - .select2-search-choice-close { - background-image: none !important; - font-size: 100% !important; - @extend .icon-remove; - @extend [class^="icon-"], :before; - margin-top: 2px; - } - } - - &.select2-container-active { - .select2-choice { - box-shadow: none !important; - } - - &.select2-dropdown-open .select2-choice div b { - @extend .icon-caret-up; - } - } -} - -.select2-drop { - border-color: $color-sel-hover-bg; - box-shadow: none !important; - z-index: 1000000; - - &.select2-drop-above { - border-color: $color-sel-hover-bg; - } -} - -.select2-search { - @extend .icon-search; - - font-size: 100%; - color: darken($color-border, 15); - padding: 0 9px 0 0; - - &:before { - @extend [class^="icon-"], :before; - - position: absolute; - top: 13px; - left: 13px; - } - - input { - @extend input, [type="text"]; - - padding: 6px 0 6px 25px; - margin: 5px 0 0 5px; - font-family: $base-font-family; - font-size: 90%; - box-shadow: none; - background-image: none; - } -} - -.select2-container .select2-choice .select2-arrow { - background-image: none; - background: transparent; - border: 0; - - b { - padding-top: 7px; - display: block; - width: 100%; - height: 100%; - background: none; - font-family: FontAwesome; - font-weight: 200 !important; - - &:before { - content: "\f0d7"; - } - } -} - -.select2-results { - padding-left: 0 !important; - - li { - font-size: 85% !important; - - &.select2-highlighted { - .select2-result-label { - &, - h6 { - color: $color-1 !important; - } - } - } - - .select2-result-label { - color: $color-body-text; - min-height: 22px; - clear: both; - overflow: auto; - } - - &.select2-no-results, - &.select2-searching { - padding: 5px; - background-color: transparent; - color: $color-body-text; - text-align: center; - font-weight: $font-weight-bold; - text-transform: uppercase; - } - } - - .select2-highlighted { - background-color: $color-sel-bg; - } -} - -.select2-container-multi { - &.select2-container-active, - &.select2-dropdown-open { - .select2-choices { - border-color: $color-sel-hover-bg !important; - box-shadow: none; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - } - } - .select2-choices { - @extend input, [type="text"]; - padding: 6px 3px 3px 3px; - box-shadow: none; - background-image: none !important; - - .select2-search-choice { - @include border-radius($border-radius); - margin: 0 0 3px 3px; - background-image: none; - background-color: $color-sel-bg; - border: none; - box-shadow: none; - color: $color-1 !important; - font-size: 85%; - - &:hover { - background-color: $color-sel-hover-bg; - } - - .select2-search-choice-close { - background-image: none !important; - font-size: 85% !important; - @extend .icon-remove; - @extend [class^="icon-"], :before; - margin-left: 2px; - color: $color-1; - } - } - } -} - -label .select2-container { - margin-top: -6px; - .select2-choice { - span { - text-transform: none; - font-weight: normal; - } - } -} diff --git a/app/webpacker/css/admin/product_import.scss b/app/webpacker/css/admin/product_import.scss deleted file mode 100644 index 5c6ccc2276..0000000000 --- a/app/webpacker/css/admin/product_import.scss +++ /dev/null @@ -1,299 +0,0 @@ -$pi-red: $color-warning; -$pi-green: lighten($spree-green, 10%); -$pi-orange: $bright-orange; -$pi-blue: lighten($spree-blue, 10%); -$pi-light-yellow: #faffaf; - -// scss-lint:disable NestingDepth - -div.panel-section { - .error { - color: $pi-red; - } - .warning { - color: $bright-orange; - } - .success { - color: $pi-green; - } - .info { - color: #68b7c0; - } - - div.panel-header { - width: 100%; - clear: both; - float: left; - padding: 0.5em; - - div { - font-size: 1.25em; - float: left; - } - - div.header-caret { - width: 2em; - text-align: center; - min-height: 0.1em; //Empty div fix - } - - div.header-icon { - width: 2.5em; - text-align: center; - padding-top: 0.18em; - - i { - font-size: 1.5em; - line-height: 0.9em; - } - } - - div.header-count { - min-width: 2em; - text-align: right; - padding-right: 0.5em; - } - - div.header-description { - width: auto; - } - } - - div.panel-header:hover { - cursor: pointer; - background-color: #f7f7f7; - } - - div.panel-header.active { - background-color: #efefef; - text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.75); - } - - div.panel-content { - width: 100%; - clear: both; - margin-bottom: 0.5em; - background-color: #f9f9f9; - padding: 1.5em; - - div.table-wrap { - width: 100%; - overflow: auto; - border-right: 1px solid #ceede3; - max-height: 23em; - } - - table { - background-color: white; - margin-bottom: 0; - td, - th { - white-space: nowrap; - } - - tr { - &.error { - color: #c84c4c; - } - - &:hover td.invalid { - background-color: darken(#f05c51, 5%); - } - - i { - display: block; - margin-bottom: -0.2em; - font-size: 1.4em !important; - } - } - - td { - &.invalid { - background-color: #f05c51; - box-shadow: inset 0px 0px 1px red; - color: white; - } - } - } - - div.import-errors { - margin-bottom: 0.85em; - - p.line { - font-size: 1.15em; - margin-bottom: 0.2em; - color: #577084; - } - p.error { - color: #cb1b1b; - margin-bottom: 0.2em; - } - } - } -} - -br.panels.clearfix { - clear: both; -} - -.panel-section.import-settings { - .header-description { - padding-left: 1em; - } - - span.header-error { - font-size: 0.85em; - color: $pi-red; - } - - .select2-search { - display: none; - } - - .select2-results { - margin: 0; - } -} - -.post-save-results { - p { - font-size: 1.25em; - margin-bottom: 0.5em; - - strong { - margin-right: 0.2em; - min-width: 1.8em; - display: inline-block; - text-align: right; - } - - i { - font-size: 1.4em; - vertical-align: middle; - position: relative; - } - - i.fa-check-circle { - color: $pi-green; - } - i.fa-info-circle { - color: $pi-blue; - } - } - - p.save-error { - color: #ee4728; - font-size: 1.05em; - margin-top: 0.4em; - } -} - -form.product-import, -div.post-save-results, -div.import-wrapper { - input[type="submit"] { - margin-right: 0.5em; - } - input[type="submit"], - button, - a.button { - min-width: 8em; - text-align: center; - } -} - -div.import-wrapper { - .alert-box { - margin: 0 0 1.75em; - } - - .ng-hide:not(.ng-hide-animate) { - // We have to use !important here to override angular's display properties - // scss-lint:disable ImportantRule - display: block !important; - position: absolute; - opacity: 0; - top: -9999px; - left: -9999px; - } - - .ng-hide-add, - .ng-hide-remove, - .ng-hide-animate { - transition: all 0.4s ease-in-out; - } - - form.product-import, - div.save-results { - transition: all 0.4s ease-in-out; - } - - div.progress-interface { - text-align: center; - transition: all 0.4s ease-in-out; - - button:disabled { - background: #ccc !important; - } - } - - .post-save-results { - a.button { - float: left; - margin-right: 0.5em; - } - } -} - -div.progress-bar { - height: 25px; - width: 30em; - max-width: 90%; - margin: 1em auto; - background: #f7f7f7; - padding: 3px; - border-radius: 0.3em; - border: 1px solid #eee; - - span.progress-track { - display: block; - background: lighten($pi-green, 10%); - height: 100%; - border-radius: 0.3em; - box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3); - transition: width 0.3s ease-in-out; - } -} - -#upload-sidebar { - float: right; - background-color: lighten($spree-light-blue, 2.5%); - border: 1px solid lighten($pale-blue, 2.5%); - width: 50%; - padding: 0 1.5em 1.5em; - - h4, - h5, - h6, - p { - margin: 1.25em 0 1em; - } - - a.download { - display: block; - font-size: 1.05em; - margin-bottom: 0.5em; - - i { - margin-right: 0.25em; - } - } - - span.category { - display: inline-block; - background-color: $pi-blue; - color: white; - padding: 0.3em 0.6em; - margin: 0 0.4em 0.5em 0; - } -} diff --git a/app/webpacker/css/admin/products_v3.scss b/app/webpacker/css/admin/products_v3.scss index 4dd6331775..7ea346638a 100644 --- a/app/webpacker/css/admin/products_v3.scss +++ b/app/webpacker/css/admin/products_v3.scss @@ -1,6 +1,6 @@ // Customisations for the new Bulk Edit Products page only // Scoped to containing div, because Turbo messes with body classes -@import "../admin_v3/pages/unit_popout"; +@import "pages/unit_popout"; #products_v3_page { #content > .row:first-child > .container:first-child { @@ -59,6 +59,7 @@ overflow: visible; background-color: white; } + .form-actions-wrapper2 { position: relative; // Stretch to cover table side borders @@ -157,6 +158,7 @@ tr:first-child td { border-top: 4px solid $color-tbl-bg; } + tr:last-child td { border-bottom: 1px solid $color-tbl-cell-shadow; } @@ -187,6 +189,7 @@ $columns: "image", "name", "sku", "unit_scale", "unit", "price", "on_hand", "producer", "category", "tax_category", "tags", "inherits_properties"; + @each $col in $columns { &.hide-#{$col} { .col-#{$col} { @@ -237,6 +240,7 @@ align-items: center; gap: 10px; } + .per-page { width: 9em; } @@ -286,6 +290,7 @@ .search-button { position: relative; + > input { padding-left: 30px; } @@ -295,6 +300,7 @@ // Blurred and non-clickable $disabled-blur: 1.5px; + .disabled-section { position: relative; @@ -346,6 +352,7 @@ from { transform: scaleY(1); } + to { transform: scaleY(0); } @@ -360,6 +367,7 @@ from { transform: scaleY(0); } + to { transform: scaleY(1); } diff --git a/app/webpacker/css/admin_v3/sections/orders.scss b/app/webpacker/css/admin/sections/orders.scss similarity index 100% rename from app/webpacker/css/admin_v3/sections/orders.scss rename to app/webpacker/css/admin/sections/orders.scss diff --git a/app/webpacker/css/admin/select2.scss b/app/webpacker/css/admin/select2.scss deleted file mode 100644 index f076e28335..0000000000 --- a/app/webpacker/css/admin/select2.scss +++ /dev/null @@ -1,63 +0,0 @@ -.select2-container { - .select2-choice { - .select2-search-choice-close { - display: none !important; - } - .select2-arrow { - width: 22px; - border: none; - background-image: none; - background-color: transparent; - } - } - - &.light { - .select2-choice { - background-color: #ffffff; - font-weight: normal; - color: $spree-blue !important; - border: 1px solid $color-border !important; - } - - &:hover, - &.select2-container-active { - .select2-choice { - background-color: #ffffff !important; - border: 1px solid $spree-green !important; - - .select2-arrow { - &:before { - color: $spree-blue; - } - } - } - } - } - - &.select2-container-multi { - .select2-search-field { - max-height: 20px; - input { - padding: 0 !important; - margin: 0 0 0 5px !important; - } - } - .select2-search-choice { - display: flex; - align-items: center; - justify-content: center; - padding-left: 7px; - - .select2-search-choice-close { - position: relative; - order: -1; - width: auto; - left: 0; - top: 0; - margin: 0; - padding: 0; - font-size: 100% !important; - } - } - } -} diff --git a/app/webpacker/css/admin_v3/shared/forms.scss b/app/webpacker/css/admin/shared/forms.scss similarity index 100% rename from app/webpacker/css/admin_v3/shared/forms.scss rename to app/webpacker/css/admin/shared/forms.scss diff --git a/app/webpacker/css/admin_v3/shared/icons.scss b/app/webpacker/css/admin/shared/icons.scss similarity index 100% rename from app/webpacker/css/admin_v3/shared/icons.scss rename to app/webpacker/css/admin/shared/icons.scss diff --git a/app/webpacker/css/admin_v3/shared/layout.scss b/app/webpacker/css/admin/shared/layout.scss similarity index 100% rename from app/webpacker/css/admin_v3/shared/layout.scss rename to app/webpacker/css/admin/shared/layout.scss diff --git a/app/webpacker/css/admin_v3/shared/question-mark-icon.scss b/app/webpacker/css/admin/shared/question-mark-icon.scss similarity index 100% rename from app/webpacker/css/admin_v3/shared/question-mark-icon.scss rename to app/webpacker/css/admin/shared/question-mark-icon.scss diff --git a/app/webpacker/css/admin_v3/shared/tables.scss b/app/webpacker/css/admin/shared/tables.scss similarity index 100% rename from app/webpacker/css/admin_v3/shared/tables.scss rename to app/webpacker/css/admin/shared/tables.scss diff --git a/app/webpacker/css/admin_v3/shared/typography.scss b/app/webpacker/css/admin/shared/typography.scss similarity index 100% rename from app/webpacker/css/admin_v3/shared/typography.scss rename to app/webpacker/css/admin/shared/typography.scss diff --git a/app/webpacker/css/admin/sidebar-item.scss b/app/webpacker/css/admin/sidebar-item.scss deleted file mode 100644 index 499c4e76e9..0000000000 --- a/app/webpacker/css/admin/sidebar-item.scss +++ /dev/null @@ -1,124 +0,0 @@ -div.sidebar_item { - margin-bottom: 30px; - - .centered { - text-align: center; - } - - div.header { - font-size: 105%; - color: #fff; - padding: 10px 0px; - position: relative; - - &.blue { - background-color: $spree-blue; - } - - &.red { - background-color: $color-warning; - } - } - - .list { - max-height: 400px; - overflow-y: auto; - overflow-x: hidden; - - &.red { - color: $color-warning; - - .list-item { - border: solid $color-warning; - border-width: 0px 3px 0px 3px; - - a.alpha, - span.alpha { - margin-left: -3px; - } - - &.odd { - background-color: #fcf6ef; - - &:hover { - background-color: $spree-green; - } - } - } - - a { - color: $color-warning; - } - } - } - - .list-item { - .icon-arrow-right { - padding-top: 6px; - font-size: 20px; - } - - border: solid $spree-blue; - border-width: 0px 1px 0px 1px; - - a.alpha, - span.alpha { - font-weight: bold; - margin-left: -1px; - padding: 10px 2px 10px 5%; - overflow: hidden; - text-overflow: ellipsis; - } - - span.omega { - padding: 8px 18px 8px 0px; - margin-right: -3px; - text-align: right; - } - - .icon-remove-sign { - color: $color-warning; - font-size: 18px; - } - - &.even { - background-color: #fff; - } - - &.odd { - background-color: $spree-light-blue; - } - - &.even, - &.odd { - &:hover { - color: #ffffff; - background-color: $spree-green; - - a { - color: #ffffff; - } - } - } - } - - a.button { - color: #fff; - padding: 15px 15px; - font-weight: bold; - text-align: center; - border-radius: 0px; - - &.blue { - background-color: $spree-blue; - } - - &.red { - background-color: $color-warning; - } - - &:hover { - background-color: $spree-green; - } - } -} diff --git a/app/webpacker/css/admin_v3/terms_of_service_banner.scss b/app/webpacker/css/admin/terms_of_service_banner.scss similarity index 100% rename from app/webpacker/css/admin_v3/terms_of_service_banner.scss rename to app/webpacker/css/admin/terms_of_service_banner.scss diff --git a/app/webpacker/css/admin_v3/variables.scss b/app/webpacker/css/admin/variables.scss similarity index 100% rename from app/webpacker/css/admin_v3/variables.scss rename to app/webpacker/css/admin/variables.scss diff --git a/app/webpacker/css/admin_v3/all.scss b/app/webpacker/css/admin_v3/all.scss deleted file mode 100644 index a9840b62f1..0000000000 --- a/app/webpacker/css/admin_v3/all.scss +++ /dev/null @@ -1,137 +0,0 @@ -// Admin v3 styles -// While in feature-toggle, we inherit all files from old admin design. -// Individual files may be copied in order to replace the old files. - -@import "vendor/assets/stylesheets/normalize"; -@import "vendor/assets/stylesheets/responsive-tables"; -@import "vendor/assets/stylesheets/jquery.powertip"; -@import "~jquery-ui/themes/base/core"; -@import "~jquery-ui/themes/base/button"; -@import "~jquery-ui/themes/base/resizable"; -@import "vendor/assets/stylesheets/jquery-ui-theme"; -@import "~jquery-ui/themes/base/dialog"; -@import "../shared/ng-tags-input.min"; -@import "vendor/assets/stylesheets/select2.css.scss"; -@import "~flatpickr/dist/flatpickr"; -@import "~flatpickr/dist/themes/material_blue"; -@import "~shortcut-buttons-flatpickr/dist/themes/light"; - -@import "../admin/globals/functions"; -@import "globals/palette"; // admin_v3 -@import "globals/variables"; // admin_v3 -@import "../admin/globals/mixins"; -@import "mixins"; // admin_v3 - -@import "../admin/plugins/font-awesome"; - -@import "../shared/variables/layout"; -@import "../shared/variables/variables"; -@import "../shared/utilities"; -@import "shared/typography"; // admin_v3 -@import "shared/tables"; // admin_v3 -@import "shared/icons"; // admin_v3 -@import "shared/forms"; // admin_v3 -@import "shared/layout"; // admin_v3 -@import "../admin/shared/scroll_bar"; - -@import "../shared/trix"; - -@import "plugins/flatpickr-customization"; // admin_v3 -@import "plugins/powertip"; // admin_v3 - -@import "sections/orders"; // admin_v3 -@import "../admin/sections/products"; - -@import "../admin/hacks/mozilla"; -@import "../admin/hacks/opera"; -@import "../admin/hacks/ie"; - -@import "components/actions"; // admin_v3 -@import "../admin/components/alert-box"; -@import "../admin/components/alert_row"; -@import "components/buttons"; // admin_v3 -@import "components/date-picker"; // admin_v3 -@import "../admin/components/dialogs"; -@import "../admin/components/input"; -@import "../admin/components/jquery_dialog"; -@import "components/messages"; // admin_v3 -@import "components/navigation"; // admin_v3 -@import "../admin/components/ng-cloak"; -@import "../admin/components/page_actions"; -@import "components/pagination"; // admin_v3 -@import "../admin/components/per_page_controls"; -@import "../admin/components/product_autocomplete"; -@import "../admin/components/progress"; -@import "../admin/components/save_bar"; -@import "components/sidebar"; // admin_v3 -@import "../admin/components/simple_modal"; -@import "../admin/components/states"; -@import "../admin/components/stripe_connect_button"; -@import "../admin/components/subscriptions_states"; -@import "../admin/components/table-filter"; -@import "../admin/components/table_loading"; -@import "../admin/components/timepicker"; -@import "../admin/components/todo"; -@import "../admin/components/tooltip"; -@import "../admin/components/wizard_progress"; - -@import "../admin/pages/enterprise_form"; -@import "../admin/pages/subscription_form"; -@import "../admin/pages/subscription_line_items"; -@import "../admin/pages/subscription_review"; - -@import "../admin/advanced_settings"; -@import "../admin/alert"; -@import "../admin/animations"; -@import "pages/change_type_form"; // admin_v3 -@import "../admin/connected_apps"; -@import "../admin/customers"; -@import "dashboard/dashboard_item"; // admin_v3 -@import "pages/dashboard-single-ent"; // admin_v3 -@import "../admin/dialog"; -@import "../admin/disabled"; -@import "components/dropdown"; // admin_v3 -@import "pages/edit_variant"; // admin_v3 -@import "pages/enterprise_index_panels"; // admin_v3 -@import "../admin/enterprises"; -@import "../admin/filters_and_controls"; -@import "../admin/grid"; -@import "../admin/icons"; -@import "../admin/index_panel_buttons"; -@import "../admin/index_panels"; -@import "../admin/modals"; -@import "../admin/offsets"; -@import "../admin/openfoodnetwork"; -@import "../admin/order_cycles"; -@import "../admin/orders"; -@import "pages/product_import"; // admin_v3 -@import "../admin/products"; -@import "../admin/products_v3"; -@import "../admin/question-mark-tooltip"; -@import "../admin/relationships"; -@import "../admin/reports"; -@import "components/select2"; // admin_v3 -@import "components/sidebar-item"; // admin_v3 -@import "../admin/side_menu"; -@import "../admin/tables"; -@import "../admin/tag_rules"; -@import "../admin/terms_of_service_files"; -@import "../admin/validation"; -@import "../admin/variant_overrides"; -@import "../admin/welcome"; - -@import "shared/question-mark-icon"; -@import "../admin/question-mark-tooltip"; - -@import "~tom-select/src/scss/tom-select.default"; -@import "components/tom_select"; // admin_v3 - -@import "app/components/modal_component/modal_component"; -@import "app/components/vertical_ellipsis_menu_component/vertical_ellipsis_menu_component"; // admin_v3 and only V3 -@import "app/components/tag_list_input_component/tag_list_input_component"; -@import "app/webpacker/css/admin/trix.scss"; - -@import "terms_of_service_banner"; // admin_v3 - -@import "pages/product_preview"; // admin_v3 -@import "pages/dfc_product_imports"; // admin_v3 diff --git a/app/webpacker/css/admin_v3/globals/palette.scss b/app/webpacker/css/admin_v3/globals/palette.scss deleted file mode 100644 index 225b00b368..0000000000 --- a/app/webpacker/css/admin_v3/globals/palette.scss +++ /dev/null @@ -1,38 +0,0 @@ -// Basic color palette for admin styles v3 -$white: #ffffff !default; // White -$green: #9fc820 !default; // Green -$teal: #008397 !default; // Teal (Allports) -$orient: #006878 !default; // Orient (Cerulean) -$dark-blue: #004e5b !default; // Dark Blue (Sherpa) -$pale-blue: #cee1f4; // Pale blue -$red: #c85136 !default; // Red/Orange (Mojo) -$bright-orange: #ffa92e; // Bright orange -$yellow: #ff9300 !default; // Yellow -$mystic: #d9e8eb !default; // Mystic -$lighter-grey: #f8f9fa !default; // Lighter grey -$light-grey: #eff1f2 !default; // Light grey (Porcelain) -$medium-light-grey: #babdbe !default; // Silver Sand -$medium-grey: #919191 !default; // Medium grey -$dark-grey: #2e3132 !default; // Dark Grey -$near-black: #191c1d !default; // Near-black (Shark) -$fair-pink: #ffefeb !default; // Fair Pink -$roof-terracotta: #b83b1f !default; // Roof Terracotta - -// Old colour variables for backwards compatibility -$spree-green: $green; -$spree-blue: $teal; -$spree-light-blue: #eff5fc; -$color-1: $white; -$color-2: $green; -$color-3: $teal; -$color-4: $dark-blue; -$color-5: $red; -$color-6: $yellow; -$color-7: $light-grey; -$color-8: $near-black; -$color-9: $dark-grey; -$color-10: $orient; -$color-11: $mystic; -$color-12: $fair-pink; -$color-13: $roof-terracotta; -$color-14: $lighter-grey; diff --git a/app/webpacker/css/darkswarm/account.scss b/app/webpacker/css/darkswarm/account.scss index 782c97cc32..6cb24bf05b 100644 --- a/app/webpacker/css/darkswarm/account.scss +++ b/app/webpacker/css/darkswarm/account.scss @@ -9,7 +9,8 @@ } } - .saved_cards, .no_cards { + .saved_cards, + .no_cards { margin-bottom: 1em; } @@ -26,7 +27,7 @@ } } - .authorised_shops{ + .authorised_shops { table { width: 100%; } @@ -39,7 +40,9 @@ a { color: $clr-brick; - &:hover, &:active, &:focus { + &:hover, + &:active, + &:focus { color: $clr-brick-med-bright; } } @@ -60,7 +63,8 @@ } } - i.ofn-i_059-producer, i.ofn-i_060-producer-reversed { + i.ofn-i_059-producer, + i.ofn-i_060-producer-reversed { font-size: 3rem; display: inline-block; margin-right: 0.25rem; @@ -92,7 +96,8 @@ visibility: hidden; } - .transaction-group {} + .transaction-group { + } table { border-radius: $radius-medium $radius-medium 0 0; @@ -161,6 +166,15 @@ table { // // Unfortunately we can't use Scss's interpolation // https://sass-lang.com/documentation/interpolation. We're using a too old version perhaps? - right: calc(12px + 2*2px + 2*1px); + right: calc(12px + 2 * 2px + 2 * 1px); + } +} + +// Webhook Endpoints +td.endpoints-actions { + display: flex; + + form { + padding-right: $padding-small; } } diff --git a/app/webpacker/css/darkswarm/all.scss b/app/webpacker/css/darkswarm/all.scss index cbab208f24..b9ea99065b 100644 --- a/app/webpacker/css/darkswarm/all.scss +++ b/app/webpacker/css/darkswarm/all.scss @@ -1,10 +1,10 @@ -@import 'vendor/assets/stylesheets/autocomplete'; -@import 'vendor/assets/stylesheets/leaflet'; +@import 'assets/stylesheets/autocomplete'; +@import 'assets/stylesheets/leaflet'; @import 'variables'; @import '../shared/variables/layout'; @import '../shared/utilities'; -@import '~foundation-sites/scss/foundation'; +@import 'foundation-sites/scss/foundation'; @import 'big-input'; @import 'branding'; @@ -77,4 +77,4 @@ ofn-modal { @import "../shared/question-mark-icon"; @import '../admin/shared/scroll_bar'; -@import 'app/components/modal_component/modal_component'; +@import 'modal_component/modal_component'; diff --git a/app/webpacker/css/darkswarm/home_panes.scss b/app/webpacker/css/darkswarm/home_panes.scss index d96e931466..93c36d7147 100644 --- a/app/webpacker/css/darkswarm/home_panes.scss +++ b/app/webpacker/css/darkswarm/home_panes.scss @@ -71,8 +71,50 @@ } } - a.text-vbig i { - font-size: 75px; + #brand-story-text { + text-align: center; + margin-top: 1rem; + + summary { + list-style: none; + cursor: pointer; + display: inline-block; + + &::-webkit-details-marker { + display: none; + } + + &::marker { + display: none; + } + + i { + font-size: 75px; + } + + .ofn-i_005-caret-down { + display: inline-block; + } + + .ofn-i_006-caret-up { + display: none; + } + } + + &[open] summary { + .ofn-i_005-caret-down { + display: none; + } + + .ofn-i_006-caret-up { + display: inline-block; + } + } + + .brand-story-content { + margin-top: 1rem; + text-align: left; + } } } diff --git a/app/webpacker/css/darkswarm/variables.scss b/app/webpacker/css/darkswarm/variables.scss index 28d7df1a25..1eea3e3ad7 100644 --- a/app/webpacker/css/darkswarm/variables.scss +++ b/app/webpacker/css/darkswarm/variables.scss @@ -1,4 +1,4 @@ -@import "~foundation-sites/scss/foundation/components/global"; +@import "foundation-sites/scss/foundation/components/global"; // Brand guide colours: // International: #81c26e diff --git a/app/webpacker/css/mail/all.scss b/app/webpacker/css/mail/all.scss new file mode 100644 index 0000000000..087d2d1310 --- /dev/null +++ b/app/webpacker/css/mail/all.scss @@ -0,0 +1,3 @@ +@import '../admin/globals/palette.scss'; +@import 'email'; +@import 'payments_list'; diff --git a/app/assets/stylesheets/mail/email.scss b/app/webpacker/css/mail/email.scss similarity index 100% rename from app/assets/stylesheets/mail/email.scss rename to app/webpacker/css/mail/email.scss diff --git a/app/assets/stylesheets/mail/payments_list.scss b/app/webpacker/css/mail/payments_list.scss similarity index 100% rename from app/assets/stylesheets/mail/payments_list.scss rename to app/webpacker/css/mail/payments_list.scss diff --git a/app/webpacker/js/turbo.js b/app/webpacker/js/turbo.js index 55d1fb2fa1..4414ddcd32 100644 --- a/app/webpacker/js/turbo.js +++ b/app/webpacker/js/turbo.js @@ -9,7 +9,7 @@ document.addEventListener("turbo:frame-missing", (event) => { event.preventDefault(); // show error message instead - showError(event.detail.response?.status); + showHttpError(event.detail.response?.status); }); document.addEventListener("turbo:submit-end", (event) => { diff --git a/app/webpacker/packs/admin-style-v3.scss b/app/webpacker/packs/admin-style-v3.scss deleted file mode 100644 index 170fae42e3..0000000000 --- a/app/webpacker/packs/admin-style-v3.scss +++ /dev/null @@ -1,5 +0,0 @@ -@import "../css/admin_v3/all.scss"; - -@import "../css/admin_v3/components/spinner.scss"; - -@import "../../../node_modules/trix/dist/trix.css"; diff --git a/app/webpacker/packs/admin-style.scss b/app/webpacker/packs/admin-style.scss new file mode 100644 index 0000000000..999b5a14fc --- /dev/null +++ b/app/webpacker/packs/admin-style.scss @@ -0,0 +1,5 @@ +@import "../css/admin/all.scss"; + +@import "../css/admin/components/spinner.scss"; + +@import "../../../node_modules/trix/dist/trix.css"; diff --git a/app/webpacker/packs/mail.scss b/app/webpacker/packs/mail.scss new file mode 100644 index 0000000000..d4f981e355 --- /dev/null +++ b/app/webpacker/packs/mail.scss @@ -0,0 +1 @@ +@import "../css/mail/all.scss"; diff --git a/babel.config.js b/babel.config.js index 6380fdbab0..eb9931d1d1 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,72 +1,6 @@ -module.exports = function(api) { - var validEnv = ['development', 'test', 'production'] - var currentEnv = api.env() - var isDevelopmentEnv = api.env('development') - var isProductionEnv = api.env('production') - var isTestEnv = api.env('test') +module.exports = function (api) { + const defaultConfigFunc = require("shakapacker/package/babel/preset.js"); + const resultConfig = defaultConfigFunc(api); - if (!validEnv.includes(currentEnv)) { - throw new Error( - 'Please specify a valid `NODE_ENV` or ' + - '`BABEL_ENV` environment variables. Valid values are "development", ' + - '"test", and "production". Instead, received: ' + - JSON.stringify(currentEnv) + - '.' - ) - } - - return { - presets: [ - isTestEnv && [ - '@babel/preset-env', - { - targets: { - node: 'current' - } - } - ], - (isProductionEnv || isDevelopmentEnv) && [ - '@babel/preset-env', - { - forceAllTransforms: true, - useBuiltIns: 'entry', - corejs: 3, - modules: false, - exclude: ['transform-typeof-symbol'] - } - ] - ].filter(Boolean), - plugins: [ - 'babel-plugin-macros', - '@babel/plugin-syntax-dynamic-import', - isTestEnv && 'babel-plugin-dynamic-import-node', - '@babel/plugin-transform-destructuring', - [ - '@babel/plugin-proposal-class-properties', - { - loose: true - } - ], - [ - '@babel/plugin-proposal-object-rest-spread', - { - useBuiltIns: true - } - ], - [ - '@babel/plugin-transform-runtime', - { - helpers: false - } - ], - [ - '@babel/plugin-transform-regenerator', - { - async: false - } - ], - ["@babel/plugin-proposal-private-property-in-object", { "loose": true }], - ["@babel/plugin-proposal-private-methods", { "loose": true }] - ].filter(Boolean) - } -} + return resultConfig; +}; diff --git a/bin/setup b/bin/setup index 52411f7240..a55bfa66b9 100755 --- a/bin/setup +++ b/bin/setup @@ -1,4 +1,10 @@ #!/usr/bin/env ruby +# +# Install dependencies and migrate data during production deployments or +# when updating your development environment. +# +# Take care when changing it and consider the ofn-install repository for +# the context of deployments. require "fileutils" # path to your application root. @@ -16,13 +22,13 @@ FileUtils.chdir APP_ROOT do # Add necessary setup steps to this file. puts "== Installing dependencies ==" - system! "script/install-bundler" + # Check first (it's quicker), then install new gems if necessary system("bundle check 2> /dev/null") || system!(BUNDLE_ENV, "bundle install") # Install JavaScript dependencies - system("script/nodenv-install.sh") - system("bin/yarn") + system!("script/nodenv-install.sh") + system!("bin/yarn") # puts "\n== Copying sample files ==" # unless File.exist?("config/database.yml") @@ -31,6 +37,16 @@ FileUtils.chdir APP_ROOT do puts "\n== Preparing database, removing old logs and tempfiles ==" system! "bin/rails db:prepare log:clear tmp:clear" + system! "rm -f tmp/capybara/screenshots/*.png" + system! "rm -f tmp/invoices/*.pdf" + system! "rm -f tmp/javascripts/*.js" + system! "rm -f tmp/karma_unit.js*" + system! "rm -rf tmp/product_import-*" + + puts "\n== Removing any precompiled assets that would be out of date now ==" + system! "rm -rf public/assets/" + system! "rm -rf public/packs/" + system! "rm -rf public/packs-test/" puts "\n== Restarting application server ==" # system! "bin/rails restart" diff --git a/bin/shakapacker b/bin/shakapacker new file mode 100755 index 0000000000..13a008dcfe --- /dev/null +++ b/bin/shakapacker @@ -0,0 +1,13 @@ +#!/usr/bin/env ruby + +ENV["RAILS_ENV"] ||= "development" +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", __FILE__) + +require "bundler/setup" +require "shakapacker" +require "shakapacker/webpack_runner" + +APP_ROOT = File.expand_path("..", __dir__) +Dir.chdir(APP_ROOT) do + Shakapacker::WebpackRunner.run(ARGV) +end diff --git a/bin/shakapacker-dev-server b/bin/shakapacker-dev-server new file mode 100755 index 0000000000..5ae8897989 --- /dev/null +++ b/bin/shakapacker-dev-server @@ -0,0 +1,13 @@ +#!/usr/bin/env ruby + +ENV["RAILS_ENV"] ||= "development" +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", __FILE__) + +require "bundler/setup" +require "shakapacker" +require "shakapacker/dev_server_runner" + +APP_ROOT = File.expand_path("..", __dir__) +Dir.chdir(APP_ROOT) do + Shakapacker::DevServerRunner.run(ARGV) +end diff --git a/bin/webpack b/bin/webpack deleted file mode 100755 index 685331ed86..0000000000 --- a/bin/webpack +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env ruby - -ENV["RAILS_ENV"] ||= ENV["RACK_ENV"] || "development" -ENV["NODE_ENV"] ||= "development" -ENV["NODE_OPTIONS"] ||= "--openssl-legacy-provider" - -require "pathname" -ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", - Pathname.new(__FILE__).realpath) - -require "bundler/setup" - -require "webpacker" -require "webpacker/webpack_runner" - -APP_ROOT = File.expand_path("..", __dir__) -Dir.chdir(APP_ROOT) do - Webpacker::WebpackRunner.run(ARGV) -end diff --git a/bin/webpack-dev-server b/bin/webpack-dev-server deleted file mode 100755 index fa0a5865ef..0000000000 --- a/bin/webpack-dev-server +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env ruby - -ENV["RAILS_ENV"] ||= ENV["RACK_ENV"] || "development" -ENV["NODE_ENV"] ||= "development" -ENV["NODE_OPTIONS"] ||= "--openssl-legacy-provider" - -require "pathname" -ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", - Pathname.new(__FILE__).realpath) - -require "bundler/setup" - -require "webpacker" -require "webpacker/dev_server_runner" - -APP_ROOT = File.expand_path("..", __dir__) -Dir.chdir(APP_ROOT) do - Webpacker::DevServerRunner.run(ARGV) -end diff --git a/bin/yarn b/bin/yarn index 460dd565b4..fe7338622b 100755 --- a/bin/yarn +++ b/bin/yarn @@ -1,9 +1,16 @@ #!/usr/bin/env ruby -APP_ROOT = File.expand_path('..', __dir__) + +APP_ROOT = File.expand_path("..", __dir__) Dir.chdir(APP_ROOT) do - begin - exec "yarnpkg", *ARGV - rescue Errno::ENOENT + yarn = ENV["PATH"].split(File::PATH_SEPARATOR). + select { |dir| File.expand_path(dir) != __dir__ }. + product(["yarn", "yarnpkg", "yarn.cmd", "yarn.ps1"]). + map { |dir, file| File.expand_path(file, dir) }. + find { |file| File.executable?(file) } + + if yarn + exec yarn, *ARGV + else $stderr.puts "Yarn executable was not detected in the system." $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install" exit 1 diff --git a/compose.yaml b/compose.yaml index 30128f5cdd..b879e2be72 100644 --- a/compose.yaml +++ b/compose.yaml @@ -53,9 +53,9 @@ services: OFN_REDIS_URL: redis://redis/ OFN_REDIS_JOBS_URL: redis://redis OFN_REDIS_TEST_URL: redis://redis/3 - WEBPACKER_DEV_SERVER_HOST: webpack - WEBPACKER_DEV_SERVER_PORT: 3035 - WEBPACKER_DEV_SERVER_PUBLIC: localhost:3035 + SHAKAPACKER_DEV_SERVER_HOST: webpack + SHAKAPACKER_DEV_SERVER_PORT: 3035 + SHAKAPACKER_DEV_SERVER_PUBLIC: localhost:3035 command: > sh -lc 'rm -f tmp/pids/server.pid; @@ -89,7 +89,7 @@ services: build: . command: > sh -lc 'until [ -f /bundles/.Gemfile.lock.sha ] && sha256sum -c /bundles/.Gemfile.lock.sha >/dev/null 2>&1; do sleep 0.5; done; - exec ./bin/webpack-dev-server' + exec ./bin/shakapacker-dev-server' ports: - "3035:3035" volumes: @@ -102,7 +102,7 @@ services: retries: 30 environment: - WEBPACKER_DEV_SERVER_HOST: 0.0.0.0 + SHAKAPACKER_DEV_SERVER_HOST: 0.0.0.0 volumes: gems: postgres: diff --git a/config/application.rb b/config/application.rb index 97d69a606b..37961e5757 100644 --- a/config/application.rb +++ b/config/application.rb @@ -58,10 +58,15 @@ module Openfoodnetwork Spree::Core::Engine.routes.default_url_options[:host] = ENV["SITE_URL"] if Rails.env == 'test' end - # We reload the routes here - # so that the appended/prepended routes are available to the application. config.after_initialize do + # We reload the routes here + # so that the appended/prepended routes are available to the application. Rails.application.routes_reloader.reload! + + # Subscribe to payment transition events + ActiveSupport::Notifications.subscribe( + "ofn.payment_transition", Payments::StatusChangedListenerService.new + ) end initializer "spree.environment", before: :load_config_initializers do |app| @@ -71,14 +76,6 @@ module Openfoodnetwork end end - initializer "spree.register.payment_methods" do |app| - Rails.application.reloader.to_prepare do - app.config.spree.payment_methods = [ - Spree::PaymentMethod::Check - ] - end - end - initializer "spree.mail.settings" do |_app| Rails.application.reloader.to_prepare do Spree::Core::MailSettings.init @@ -126,14 +123,6 @@ module Openfoodnetwork end end - # Register Spree payment methods - initializer "spree.gateway.payment_methods", :after => "spree.register.payment_methods" do |app| - Rails.application.reloader.to_prepare do - app.config.spree.payment_methods << Spree::Gateway::StripeSCA - app.config.spree.payment_methods << Spree::Gateway::PayPalExpress - end - end - initializer "ofn.reports" do |app| module ::Reporting; end Rails.application.reloader.to_prepare do @@ -206,7 +195,16 @@ module Openfoodnetwork Rails.autoloaders.main.ignore(Rails.root.join('app/webpacker')) - config.active_storage.service = ENV["S3_BUCKET"].present? ? :amazon : :local + config.active_storage.service = + if ENV["S3_BUCKET"].present? + if ENV["S3_ENDPOINT"].present? + :s3_compatible_storage + else + :amazon + end + else + :local + end config.active_storage.content_types_to_serve_as_binary -= ["image/svg+xml"] config.active_storage.variable_content_types += ["image/svg+xml"] config.active_storage.url_options = config.action_controller.default_url_options diff --git a/config/environments/test.rb b/config/environments/test.rb index 9fd47d1c3e..3d50e5348d 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -74,11 +74,6 @@ Rails.application.configure do allowed_warnings = [ # List strings here to allow matching deprecations. # - # `Rails.application.secrets` is deprecated in favor of `Rails.application.credentials` and will be removed in Rails 7.2 - "Rails.application.secrets", - - "Passing the class as positional argument", - # Spree::CreditCard model aliases `cc_type` and has a method called `cc_type=` defined. Starting in Rails 7.2 `brand=` will not be calling `cc_type=` anymore. You may want to additionally define `brand=` to preserve the current behavior. "model aliases", diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index 37ea1edf62..d6d7a932d6 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -19,6 +19,5 @@ Rails.application.config.assets.precompile += [ 'web/all.js', 'darkswarm/all.js', 'shared/*', - 'mail.scss', '*.jpg', '*.jpeg', '*.png', '*.gif' '*.svg', ] diff --git a/config/initializers/content_security_policy.rb b/config/initializers/content_security_policy.rb index 6b0cb839ae..f12339ccc1 100644 --- a/config/initializers/content_security_policy.rb +++ b/config/initializers/content_security_policy.rb @@ -7,7 +7,7 @@ Rails.application.config.content_security_policy do |policy| policy.default_src :self, :https policy.font_src :self, :https, :data, "fonts.gstatic.com" - policy.img_src :self, :https, :data, "*.s3.amazonaws.com" + policy.img_src :self, :https, :data, ENV.fetch("S3_CORS_POLICY_DOMAIN", "*.s3.amazonaws.com") policy.img_src :self, :http, :data, ENV["SITE_URL"] if Rails.env.development? policy.object_src :none policy.frame_ancestors :none diff --git a/config/initializers/db2fog.rb b/config/initializers/db2fog.rb index a030841b82..7ef7e77724 100644 --- a/config/initializers/db2fog.rb +++ b/config/initializers/db2fog.rb @@ -2,16 +2,27 @@ require_relative 'spree' Rails.application.reloader.to_prepare do # See: https://github.com/openfoodfoundation/db2fog - DB2Fog.config = { + if ENV['S3_BACKUPS_HOST'].present? + DB2Fog.config = { + aws_access_key_id: ENV['S3_BACKUPS_ACCESS_KEY'], + aws_secret_access_key: ENV['S3_BACKUPS_SECRET'], + directory: ENV['S3_BACKUPS_BUCKET'], + provider: 'AWS', + scheme: ENV['S3_BACKUPS_SCHEME'], + host: ENV['S3_BACKUPS_HOST'] + } + else + DB2Fog.config = { :aws_access_key_id => Spree::Config[:s3_access_key], :aws_secret_access_key => Spree::Config[:s3_secret], :directory => ENV['S3_BACKUPS_BUCKET'], :provider => 'AWS' - } + } - region = ENV['S3_BACKUPS_REGION'] || ENV['S3_REGION'] + region = ENV['S3_BACKUPS_REGION'] || ENV['S3_REGION'] - # If no region is defined we leave this config key undefined (instead of nil), - # so that db2fog correctly applies it's default - DB2Fog.config[:region] = region if region + # If no region is defined we leave this config key undefined (instead of nil), + # so that db2fog correctly applies it's default + DB2Fog.config[:region] = region if region + end end diff --git a/config/initializers/flipper.rb b/config/initializers/flipper.rb index e569c92859..3af7beb584 100644 --- a/config/initializers/flipper.rb +++ b/config/initializers/flipper.rb @@ -27,18 +27,6 @@ end Flipper.register(:new_2024_07_03) do |actor| actor.respond_to?(:created_at?) && actor.created_at >= Time.zone.parse("2024-07-03") end -Flipper.register(:enterprise_created_before_2025_08_11) do |actor| - # This group applies to enterprises only, so we return false if the actor is not an Enterprise - next false unless actor.actor.instance_of? Enterprise - - actor.respond_to?(:created_at?) && actor.created_at < Time.zone.parse("2025-08-11") -end -Flipper.register(:enterprise_created_after_2025_08_11) do |actor| - # This group applies to enterprises only, so we return false if the actor is not an Enterprise - next false unless actor.actor.instance_of? Enterprise - - actor.respond_to?(:created_at?) && actor.created_at >= Time.zone.parse("2025-08-11") -end Flipper.register(:enterprise_with_no_inventory) do |actor| # This group applies to enterprises only, so we return false if the actor is not an Enterprise diff --git a/config/initializers/new_framework_defaults_7_1.rb b/config/initializers/new_framework_defaults_7_1.rb index 3dc295db6d..988fe1b3a5 100644 --- a/config/initializers/new_framework_defaults_7_1.rb +++ b/config/initializers/new_framework_defaults_7_1.rb @@ -93,7 +93,7 @@ # serializer. Therefore, this setting should only be enabled after all replicas # have been successfully upgraded to Rails 7.1. #++ -# Rails.application.config.active_job.use_big_decimal_serializer = true +Rails.application.config.active_job.use_big_decimal_serializer = true ### # Specify if an `ArgumentError` should be raised if `Rails.cache` `fetch` or diff --git a/config/initializers/secret_token.rb b/config/initializers/secret_token.rb index e66b94f4b8..0f11ab5e6e 100644 --- a/config/initializers/secret_token.rb +++ b/config/initializers/secret_token.rb @@ -6,7 +6,4 @@ # no regular words or you'll be exposed to dictionary attacks. # Rails 4+ key for signing and encrypting cookies. -Openfoodnetwork::Application.config.secret_key_base = ENV["SECRET_TOKEN"] - -# Legacy secret_token variable. This is still used directly for encryption. -Openfoodnetwork::Application.config.secret_token = ENV["SECRET_TOKEN"] +Openfoodnetwork::Application.credentials.secret_key_base = ENV["SECRET_TOKEN"] diff --git a/config/initializers/webpack.rb b/config/initializers/webpack.rb deleted file mode 100644 index 4ccf08144e..0000000000 --- a/config/initializers/webpack.rb +++ /dev/null @@ -1,10 +0,0 @@ - -module WebpackImageExtension - def image_pack_path(image) - # The Webpacker::Helper#resolve_path_to_image method is incredibly useful - # for nicely fetching Webpacker image paths, but it's private. - resolve_path_to_image(image) - end -end - -Webpacker::Helper.include WebpackImageExtension diff --git a/config/locales/ar.yml b/config/locales/ar.yml index d1665777f7..78a5d33045 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -273,6 +273,13 @@ ar: join_community: "انظم إلى المجتمع" invite_manager: subject: "تلقيت دعوة من %{enterprise} لتصبح مديرًا" + payment_mailer: + authorize_payment: + subject: "يرجى تفويض الدفع الخاص بك إلى %{distributor} على OFN" + instructions: "يتطلب الدفع الخاص بك من %{amount} إلى %{distributor} مصادقة إضافية. الرجاء زيارة URL التالي لتفويض الدفع الخاص بك:" + authorization_required: + subject: "يتطلب الدفع إذنًا من العميل" + message: "يتطلب الدفع للطلب %{order_number} تفويضًا إضافيًا من العميل. تم إخطار العميل عبر البريد الإلكتروني وسيظهر الدفع على أنه معلق حتى يتم التصريح به." producer_mailer: order_cycle: subject: "تقرير دورة الطلبية لـ %{producer}" @@ -716,6 +723,7 @@ ar: label: التصنيفات tags: label: الاوسمة + none: لا شيء search: بحث sort: pagination: @@ -3764,6 +3772,7 @@ ar: alt_text: "نص بديل" thumbnail: "الباقة" back_to_images_list: "العودة إلى قائمة الصور" + api_key: "مفتاح API" email: البريد الإلكتروني account_updated: "تم تحديث الحساب!" email_updated: "سيتم تحديث الحساب بمجرد تأكيد البريد الإلكتروني الجديد." @@ -4064,9 +4073,7 @@ ar: providers: provider: "مزود" check: "النقد / التحويل الإلكتروني / إلخ. (المدفوعات التي لا تتطلب المصادقة التلقائية)" - pin: "المدفوعات دبوس" paypalexpress: "باي بال اكسبريس" - stripeconnect: "Stripe SCA" stripesca: "Stripe SCA" payments: source_forms: @@ -4289,13 +4296,6 @@ ar: subject: "تعليمات إعادة تعيين كلمة المرور" confirmation_instructions: subject: "يرجى تأكيد حسابك OFN" - payment_mailer: - authorize_payment: - subject: "يرجى تفويض الدفع الخاص بك إلى %{distributor} على OFN" - instructions: "يتطلب الدفع الخاص بك من %{amount} إلى %{distributor} مصادقة إضافية. الرجاء زيارة URL التالي لتفويض الدفع الخاص بك:" - authorization_required: - subject: "يتطلب الدفع إذنًا من العميل" - message: "يتطلب الدفع للطلب %{order_number} تفويضًا إضافيًا من العميل. تم إخطار العميل عبر البريد الإلكتروني وسيظهر الدفع على أنه معلق حتى يتم التصريح به." shipment_mailer: shipped_email: dear_customer: "عزيزي العميل،" @@ -4358,13 +4358,10 @@ ar: webhook_endpoints: title: نقاط نهاية Webhook description: قد تؤدي الأحداث في النظام إلى تشغيل webhooks للأنظمة الخارجية. - event_types: - order_cycle_opened: تم فتح دورة الطلب event_type: header: نوع الحدث url: header: عنوان URL لنقطة النهاية - create_placeholder: 'أدخل عنوان URL لنقطة نهاية webhook ' developer_settings: title: إعدادات المطور form: @@ -4564,3 +4561,8 @@ ar: add_tag_rule_modal: select_rule_type: "اختر نوع القاعدة:" add_rule: "أضف قاعدة " + webhook_endpoint_form: + url: + create_placeholder: 'أدخل عنوان URL لنقطة نهاية webhook ' + event_types: + order_cycle_opened: تم فتح دورة الطلب diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 09d886692d..0e68e03502 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -89,17 +89,6 @@ ca: messages: blank: "no es pot deixar en blanc" errors: - messages: - content_type_invalid: "té un tipus de contingut no vàlid" - file_size_out_of_range: "la mida %{file_size} no és entre el rang necessari" - limit_out_of_range: "el total està fora del marge" - image_metadata_missing: "no és una imatge vàlida" - aspect_ratio_not_square: "ha de ser una imatge quadrada" - aspect_ratio_not_portrait: "ha de ser una imatge vertical" - aspect_ratio_not_landscape: "ha de ser una imatge horitzontal" - aspect_ratio_is_not: "ha de tenir una relació d'aspecte de %{aspect_ratio} " - aspect_ratio_unknown: "té una relació d'aspecte desconeguda" - image_not_processable: "no és una imatge vàlida" not_found: title: "La pàgina que esteu cridant no existeix (404)" message_html: "Si us plau torna-ho a provar Això podria ser un problema temporal. Feu clic al botó Enrere per tornar a la pantalla anterior o torneu a Inici i torneu-ho a provar. Contacteu amb suport

Si el problema persisteix o és urgent, si us plau, digueu-nos-ho. Esn pots enviar un correua a suport

katuma.org .

Ens ajuda molt si pots donar tants detalls com sigui possible sobre de què estaves fent quan va aparèixer l'error.

" @@ -294,6 +283,13 @@ ca: join_community: "Uneix-te a la comunitat" invite_manager: subject: "%{enterprise} t'ha convidat a ser administrador" + payment_mailer: + authorize_payment: + subject: "Autoritzeu el vostre pagament a %{distributor} a OFN" + instructions: "El vostre pagament de %{amount} a %{distributor} requereix una autenticació addicional. Visiteu l’URL següent per autoritzar el vostre pagament:" + authorization_required: + subject: "Un pagament requereix l’autorització del client" + message: "El pagament de la comanda %{order_number} requereix una autorització addicional del client. El client ha rebut una notificació per correu electrònic i el pagament apareixerà pendent fins que no s’autoritzi." producer_mailer: order_cycle: subject: "Informe del cicle de comanda per %{producer}" @@ -773,6 +769,7 @@ ca: label: Categories tags: label: Etiquetes + none: Cap search: Cerca sort: pagination: @@ -3655,6 +3652,7 @@ ca: alt_text: "Text alternatiu" thumbnail: "Miniatura" back_to_images_list: "Torna a la llista d’imatges" + api_key: "Clau API" email: Correu electrònic account_updated: "Compte actualitzat!" email_updated: "El compte s’actualitzarà un cop es confirmi el nou correu electrònic." @@ -3953,9 +3951,7 @@ ca: providers: provider: "Proveïdor" check: "Efectiu / transferència / etc. (pagaments per als quals no és necessària la validació automàtica)" - pin: "Pin Payments" paypalexpress: "PayPal Express" - stripeconnect: "Stripe (obsolet)" stripesca: "Stripe SCA" payments: source_forms: @@ -4181,13 +4177,6 @@ ca: subject: "Instruccions per restablir la contrasenya" confirmation_instructions: subject: "Si us plau confirma el teu compte d'OFN" - payment_mailer: - authorize_payment: - subject: "Autoritzeu el vostre pagament a %{distributor} a OFN" - instructions: "El vostre pagament de %{amount} a %{distributor} requereix una autenticació addicional. Visiteu l’URL següent per autoritzar el vostre pagament:" - authorization_required: - subject: "Un pagament requereix l’autorització del client" - message: "El pagament de la comanda %{order_number} requereix una autorització addicional del client. El client ha rebut una notificació per correu electrònic i el pagament apareixerà pendent fins que no s’autoritzi." shipment_mailer: shipped_email: dear_customer: "Benvolguda consumidora:" @@ -4249,8 +4238,6 @@ ca: title: Clau API webhook_endpoints: title: Webhook Endpoints - event_types: - order_cycle_opened: Cicle de comanda obert form: account_settings: Configuració del compte show: @@ -4393,3 +4380,6 @@ ca: add_tag_rule_modal: select_rule_type: "Selecciona un tipus de regla:" add_rule: "Afegeix una regla" + webhook_endpoint_form: + event_types: + order_cycle_opened: Cicle de comanda obert diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 46e94452bf..46d7e4b6f6 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -115,27 +115,6 @@ cy: blank: "ni chaniateir ei adael yn wag" too_short: "rhy fyr (o leiaf %{count} cymeriad)" errors: - messages: - content_type_invalid: "math o gynnwys annilys" - file_size_out_of_range: "nid yw'r maint %{file_size} rhwng yr ystod ofynnol" - limit_out_of_range: "mae'r cyfanswm rhif tu hwnt i'r ystod" - image_metadata_missing: "nid yw'n llun dilys" - dimension_min_inclusion: "mae'n gorfod bod yn fwy neu'r un faint â %{width} x %{height} picsel." - dimension_max_inclusion: "mae'n gorfod bod yn llai neu'r un faint â %{width} x %{height} picsel." - dimension_width_inclusion: "nid yw lled yn cael ei gynnwys rhwng %{min} ac %{max} picsel." - dimension_height_inclusion: "nid yw uchder yn cael ei gynnwys rhwng %{min} acd %{max} picsel." - dimension_width_greater_than_or_equal_to: "mae'r lled yn gorfod bod yn fwy neu'r un faint â %{length} picsel." - dimension_height_greater_than_or_equal_to: "mae'r uchder yn gorfod bod yn fwy neu'r un faint â %{length} picsel." - dimension_width_less_than_or_equal_to: "mae'r lled yn gorfod bod yn llai neu'r un faint â %{length} picsel." - dimension_height_less_than_or_equal_to: "mae'r uchder yn gorfod bod yn llai neu'r un faint â %{length} picsel." - dimension_width_equal_to: "mae'r lled yn gorfod bod yr un faint â %{length} picsel." - dimension_height_equal_to: "mae'r uchder yn gorfod bod yr un faint â %{length} picsel." - aspect_ratio_not_square: "mae'n gorfod bod yn llun sgwâr" - aspect_ratio_not_portrait: "mae'n gorfod bod yn llun siâp portread" - aspect_ratio_not_landscape: "mae'n gorfod bod yn llun siâp tirlun" - aspect_ratio_is_not: "mae'n rhaid cael cymhareb agwedd o %{aspect_ratio}" - aspect_ratio_unknown: "yn meddu ar gymhareb agwedd anhysbys" - image_not_processable: "nid yw'n llun dilys" not_found: title: "Nid yw'r dudalen rydych yn chwilio amdani'n bodoli (404)" message_html: "Rhowch gynnig arall

. Hwyrach taw problem dros dro yw hon. Cliciwch y botwm ‘yn ôl’ i ddychwelyd at y sgrin flaenorol, neu ewch yn ôl i’r Hafan , a rhowch gynnig arall

. Cysylltwch â’r ddesg

Gymorth os bydd y broblem yn parhau neu os bydd yn fater brys, cofiwch ddweud wrthym amdano. Mae ein manylion cyswllt ar gael ar dudalen ‘Lleol’ y Rhwydwaith Bwyd Agored byd-eang .

Bydd o gymorth mawr inni os gallwch roi cymaint o fanylion â phosibl am y dudalen sydd ar goll.

" @@ -369,6 +348,13 @@ cy: join_community: "Ymunwch â'r gymuned" invite_manager: subject: "mae %{enterprise} wedi eich gwahodd i fod yn rheolwr" + payment_mailer: + authorize_payment: + subject: "Gofynnir ichi awdurdodi eich taliad i %{distributor} ar y Open Food Network" + instructions: "Mae angen dilysu ychwanegol ar gyfer eich taliad o %{amount} i %{distributor} . Dilynwch yr URL canlynol i awdurdodi eich taliad." + authorization_required: + subject: "Mae angen i gwsmer awdurdodi taliad." + message: "Mae angen awdurdod ychwanegol gan y cwsmer i dalu am archeb %{order_number} Hysbyswyd y cwsmer trwy ebost a bydd y taliad yn ymddangos fel taliad yn yr arfaeth nes ei awdurdodi." producer_mailer: order_cycle: subject: "Adroddiad cylch archebu ar gyfer %{producer}" @@ -902,6 +888,7 @@ cy: label: Categorïau tags: label: Tagiau + none: Dim search: Chwilio sort: pagination: @@ -4034,6 +4021,7 @@ cy: logourl: "url Logo" are_you_sure_delete: "Ydych chi'n siŵr eich bod chi am ddileu'r cofnod hwn?" confirm_delete: "Cadarnhau Dileu" + voucher: "Taleb" configurations: "Cyfluniadau" general_settings: "Gosodiadau Cyffredinol" site_name: "Enw'r Safle" @@ -4124,6 +4112,7 @@ cy: alt_text: "Testun Amgen" thumbnail: "Cryno-lun" back_to_images_list: "Yn ôl i'r Rhestr Delweddau" + api_key: "Allwedd API" email: E-bost account_updated: "Diweddarwyd y cyfrif!" email_updated: "Bydd y cyfrif yn cael ei ddiweddaru ar ôl cadarnhau'r cyfeiriad e-bost newydd." @@ -4439,9 +4428,7 @@ cy: providers: provider: "Darparwr" check: "Arian/TRhE/ac ati (taliadau lle nad oes angen dilysu awtomatig)." - pin: "Taliadau Pin" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" payments: source_forms: @@ -4689,13 +4676,6 @@ cy: subject: "Cyfarwyddiadau ailosod cyfrinair" confirmation_instructions: subject: "Gofynnir ichi gadarnhau eich cyfrif y Open Food Network os gwelwch yn dda" - payment_mailer: - authorize_payment: - subject: "Gofynnir ichi awdurdodi eich taliad i %{distributor} ar y Open Food Network" - instructions: "Mae angen dilysu ychwanegol ar gyfer eich taliad o %{amount} i %{distributor} . Dilynwch yr URL canlynol i awdurdodi eich taliad." - authorization_required: - subject: "Mae angen i gwsmer awdurdodi taliad." - message: "Mae angen awdurdod ychwanegol gan y cwsmer i dalu am archeb %{order_number} Hysbyswyd y cwsmer trwy ebost a bydd y taliad yn ymddangos fel taliad yn yr arfaeth nes ei awdurdodi." shipment_mailer: shipped_email: dear_customer: "Annwyl Gwsmer," @@ -4758,13 +4738,10 @@ cy: webhook_endpoints: title: Webhook Endpoints description: Events in the system may trigger webhooks to external systems. - event_types: - order_cycle_opened: Order Cycle Opened event_type: header: Event type url: header: Endpoint URL - create_placeholder: Enter the URL of the remote webhook endpoint developer_settings: title: Gosodiadau'r Datblygwr form: @@ -4938,6 +4915,11 @@ cy: add_tag_rule_modal: select_rule_type: "Dewis math o reol:" add_rule: "Ychwanegu Rheol" + webhook_endpoint_form: + url: + create_placeholder: Enter the URL of the remote webhook endpoint + event_types: + order_cycle_opened: Order Cycle Opened invisible_captcha: sentence_for_humans: "Gadewch yn wag os gwelwch yn dda." timestamp_error_message: "Rhowch gynnig arall ar ôl 5 eiliad." diff --git a/config/locales/de_CH.yml b/config/locales/de_CH.yml index bc33b6721e..437899d3d0 100644 --- a/config/locales/de_CH.yml +++ b/config/locales/de_CH.yml @@ -89,27 +89,6 @@ de_CH: messages: blank: "darf nicht leer sein" errors: - messages: - content_type_invalid: "hat ein ungültiges Datenformat" - file_size_out_of_range: "Dateigrösse %{file_size} liegt ausserhalb des zulässigen Bereichs" - limit_out_of_range: "Gesamtzahl liegt ausserhalb des zulässigen Bereichs" - image_metadata_missing: "ist kein gültiges Bild" - dimension_min_inclusion: "muss grösser oder gleich %{width} x %{height} Pixel sein" - dimension_max_inclusion: "muss kleiner oder gleich %{width} x %{height} Pixel sein" - dimension_width_inclusion: "Breite liegt nicht zwischen %{min} und %{max} Pixel" - dimension_height_inclusion: "Höhe liegt nicht zwischen %{min} und %{max} Pixel" - dimension_width_greater_than_or_equal_to: "Breite muss grösser oder gleich %{length} Pixel sein" - dimension_height_greater_than_or_equal_to: "Höhe muss grösser oder gleich %{length} Pixel sein" - dimension_width_less_than_or_equal_to: "Breite muss kleiner oder gleich %{length} Pixel sein" - dimension_height_less_than_or_equal_to: "Höhe muss kleiner oder gleich %{length} Pixel sein" - dimension_width_equal_to: "Breite muss %{length} Pixel sein" - dimension_height_equal_to: "Höhe muss %{length} Pixel sein" - aspect_ratio_not_square: "muss ein quadratisches Bild sein" - aspect_ratio_not_portrait: "muss ein Bild im Hochformat sein" - aspect_ratio_not_landscape: "muss ein Bild im Querformat sein" - aspect_ratio_is_not: "muss ein Seitenverhältnis von %{aspect_ratio} haben" - aspect_ratio_unknown: "hat ein unbekanntes Seitenverhältnis" - image_not_processable: "ist kein gültiges Bild" not_found: title: "Die gesuchte Seite existiert nicht (404)" stripe: @@ -294,6 +273,13 @@ de_CH: join_community: "Jetzt Teil der Community werden!" invite_manager: subject: "%{enterprise} hat Sie eingeladen, ein Manager zu sein" + payment_mailer: + authorize_payment: + subject: "Bitte autorisieren Sie Ihre Zahlung an %{distributor} im Open Food Network" + instructions: "Ihre Zahlung in Höhe von %{amount} an %{distributor} erfordert Ihre zusätzliche Autorisierung. Bitte klicken Sie auf den folgenden Link, um Ihre Zahlung zu bestätigen:" + authorization_required: + subject: "Eine Zahlung muss durch den Kunden autorisiert werden" + message: "Die Zahlung der Bestellung %{order_number} erfordert eine zusätzliche Autorisierung durch den Kunden. Der Kunde wurde per E-Mail benachrichtigt und die Zahlung wird bis zur Bestätigung als ausstehend angezeigt." producer_mailer: order_cycle: subject: "Bestellzyklusbericht für %{producer}" @@ -752,6 +738,7 @@ de_CH: label: Lieferkategorien tags: label: Stichwörter + none: Keine search: Suche sort: pagination: @@ -3615,6 +3602,7 @@ de_CH: logourl: "URL des Logos" are_you_sure_delete: "Möchten Sie diesen Datensatz wirklich löschen?" confirm_delete: "Löschen bestätigen" + voucher: "Gutschein" configurations: "Konfiguration" general_settings: "Allgemeine Einstellungen" site_name: "Name der Website" @@ -3995,9 +3983,7 @@ de_CH: providers: provider: "Anbieter" check: "Bargeld, EC etc. (Zahlungen, für die keine automatische Validierung erforderlich ist)" - pin: "Pin Zahlungen" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" payments: source_forms: @@ -4217,13 +4203,6 @@ de_CH: subject: "Anweisungen zum Zurücksetzen des Passworts" confirmation_instructions: subject: "Bitte bestätigen Sie Ihre Registrierung im Open Food Network" - payment_mailer: - authorize_payment: - subject: "Bitte autorisieren Sie Ihre Zahlung an %{distributor} im Open Food Network" - instructions: "Ihre Zahlung in Höhe von %{amount} an %{distributor} erfordert Ihre zusätzliche Autorisierung. Bitte klicken Sie auf den folgenden Link, um Ihre Zahlung zu bestätigen:" - authorization_required: - subject: "Eine Zahlung muss durch den Kunden autorisiert werden" - message: "Die Zahlung der Bestellung %{order_number} erfordert eine zusätzliche Autorisierung durch den Kunden. Der Kunde wurde per E-Mail benachrichtigt und die Zahlung wird bis zur Bestätigung als ausstehend angezeigt." shipment_mailer: shipped_email: dear_customer: "Liebe Kundin, lieber Kunde," diff --git a/config/locales/de_DE.yml b/config/locales/de_DE.yml index 05935bf797..52558b8621 100644 --- a/config/locales/de_DE.yml +++ b/config/locales/de_DE.yml @@ -105,27 +105,6 @@ de_DE: blank: "darf nicht leer sein." too_short: "ist zu kurz (mindestens %{count} Zeichen)" errors: - messages: - content_type_invalid: "hat ein ungültiges Datenformat" - file_size_out_of_range: "Dateigröße %{file_size} liegt außerhalb des zulässigen Bereichs" - limit_out_of_range: "Gesamtzahl liegt außerhalb des zulässigen Bereichs" - image_metadata_missing: "ist kein gültiges Bild" - dimension_min_inclusion: "muss größer oder gleich %{width} x %{height} Pixel sein" - dimension_max_inclusion: "muss kleiner oder gleich %{width} x %{height} Pixel sein" - dimension_width_inclusion: "Breite liegt nicht zwischen %{min} und %{max} Pixel" - dimension_height_inclusion: "Höhe liegt nicht zwischen %{min} und %{max} Pixel" - dimension_width_greater_than_or_equal_to: "Breite muss größer oder gleich %{length} Pixel sein" - dimension_height_greater_than_or_equal_to: "Höhe muss größer oder gleich %{length} Pixel sein" - dimension_width_less_than_or_equal_to: "Breite muss kleiner oder gleich %{length} Pixel sein" - dimension_height_less_than_or_equal_to: "Höhe muss kleiner oder gleich %{length} Pixel sein" - dimension_width_equal_to: "Breite muss %{length} Pixel sein" - dimension_height_equal_to: "Höhe muss %{length} Pixel sein" - aspect_ratio_not_square: "muss ein quadratisches Bild sein" - aspect_ratio_not_portrait: "muss ein Bild im Hochformat sein" - aspect_ratio_not_landscape: "muss ein Bild im Querformat sein" - aspect_ratio_is_not: "muss ein Seitenverhältnis von %{aspect_ratio} haben" - aspect_ratio_unknown: "hat ein unbekanntes Seitenverhältnis" - image_not_processable: "ist kein gültiges Bild" not_found: title: "Die gesuchte Seite existiert nicht (404). " message_html: "Bitte versuchen Sie es erneut

Dies könnte ein vorübergehendes Problem sein. Bitte klicken Sie auf die Zurück-Schaltfläche, um zum vorherigen Bildschirm zurückzukehren, oder gehen Sie zurück zur Startseite und versuchen Sie es erneut.

Kontaktieren Sie den Support

Wenn das Problem weiterhin besteht oder dringend ist, teilen Sie uns dies bitte mit. Unsere Kontaktdaten finden Sie auf der lokalen Seite des globalen Open Food Network .

Es hilft uns sehr, wenn Sie so detailliert wie möglich angeben können, worum es auf der fehlenden Seite geht.

" @@ -318,6 +297,13 @@ de_DE: join_community: "Jetzt Teil der Community werden!" invite_manager: subject: "%{enterprise} hat Sie eingeladen, ein Manager zu sein" + payment_mailer: + authorize_payment: + subject: "Bitte autorisieren Sie Ihre Zahlung an %{distributor} im Open Food Network" + instructions: "Ihre Zahlung in Höhe von %{amount} an %{distributor} erfordert Ihre zusätzliche Autorisierung. Bitte klicken Sie auf den folgenden Link, um Ihre Zahlung zu bestätigen:" + authorization_required: + subject: "Eine Zahlung muss durch den Kunden autorisiert werden" + message: "Die Zahlung der Bestellung %{order_number} erfordert eine zusätzliche Autorisierung durch den Kunden. Der Kunde wurde per E-Mail benachrichtigt und die Zahlung wird bis zur Bestätigung als ausstehend angezeigt." producer_mailer: order_cycle: subject: "Bestellzyklusbericht für %{producer}" @@ -795,14 +781,17 @@ de_DE: cancellation_text: "Produktvariante beibehalten" filters: search_products: Nach Produkten suchen + search_for_producers: Produzenten suchen all_producers: Alle Produzenten + search_for_categories: Kategorie suchen all_categories: Alle Kategorien producers: label: Unsere Produzenten categories: - label: Lieferkategorien + label: Produktkategorie tags: label: Stichwörter + none: Nichts search: Suche sort: pagination: @@ -845,6 +834,7 @@ de_DE: category_field_name: "Kategorie" tax_category_field_name: "Steuerkategorie" producer_field_name: "Produzent" + select_unit_scale: Einheit auswählen add_a_tag: Stichwort hinzufügen clone: success: Das Produkt wurde dupliziert. @@ -1098,6 +1088,7 @@ de_DE: images: legend: "Bilder" logo: Logo + logo_size: "300 x 300 Pixel" inventory_settings: legend: "Katalog" text1: Sie verwalten optional Ihre Lagerbestände und Preise auch in Ihrem @@ -1259,7 +1250,7 @@ de_DE: vouchers: legend: Gutscheine voucher_code: Gutschein-Code - rate: Steuersatz + rate: Gutscheinwert label: Bezeichnung purpose: Zweck expiry: Gültigkeit @@ -1516,6 +1507,7 @@ de_DE: shared: attachment_field: logo_label: "Logo" + logo_hint: 300 x 300 Pixel logo_remove: "Bild löschen" logo_remove_confirm: "Das Logo wird sofort nach Ihrer Bestätigung gelöscht." promo_image_note1: 'BITTE BEACHTEN SIE:' @@ -3078,6 +3070,8 @@ de_DE: report_header_transaction_fee: Transaktionsgebühr (keine Steuern) report_header_total_untaxable_admin: Summe nicht steuerpflichtiger Admin-Anpassungen (keine Steuern) report_header_total_taxable_admin: Summe steuerpflichtiger Admin-Anpassungen (inkl. Steuern) + report_header_voucher_label: Gutschein-Code + report_header_voucher_amount: "Gutscheinwert" report_line_cost_of_produce: Produktkosten report_line_line_items: Einzelposten report_header_last_completed_order_date: Letzte Bestellung @@ -3795,6 +3789,7 @@ de_DE: logourl: "URL des Logos" are_you_sure_delete: "Möchten Sie diesen Datensatz wirklich löschen?" confirm_delete: "Löschen bestätigen" + voucher: "Gutschein" configurations: "Konfiguration" general_settings: "Allgemeine Einstellungen" site_name: "Name der Website" @@ -3885,6 +3880,7 @@ de_DE: alt_text: "Alternativtext" thumbnail: "Miniaturansicht" back_to_images_list: "Zurück zur Bilderliste" + api_key: "API-Schlüssel" email: E-Mail-Adresse account_updated: "Konto aktualisiert!" email_updated: "Das Konto wird aktualisiert, sobald die neue E-Mail-Adresse bestätigt wurde." @@ -4195,9 +4191,7 @@ de_DE: providers: provider: "Anbieter" check: "Bargeld, EC etc. (Zahlungen, für die keine automatische Validierung erforderlich ist)" - pin: "Pin Zahlungen" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" payments: source_forms: @@ -4248,6 +4242,7 @@ de_DE: product_name: Produktname primary_taxon_form: product_category: Produktkategorie + search_for_categories: "Lieferkategorie suchen" group_buy_form: group_buy: "Gruppenkauf aktivieren?" bulk_unit_size: Erforderliche Gesamtbestellmenge (in Gramm, Liter oder Stück) @@ -4431,13 +4426,6 @@ de_DE: subject: "Anweisungen zum Zurücksetzen des Passworts" confirmation_instructions: subject: "Bitte bestätigen Sie Ihre Registrierung im Open Food Network" - payment_mailer: - authorize_payment: - subject: "Bitte autorisieren Sie Ihre Zahlung an %{distributor} im Open Food Network" - instructions: "Ihre Zahlung in Höhe von %{amount} an %{distributor} erfordert Ihre zusätzliche Autorisierung. Bitte klicken Sie auf den folgenden Link, um Ihre Zahlung zu bestätigen:" - authorization_required: - subject: "Eine Zahlung muss durch den Kunden autorisiert werden" - message: "Die Zahlung der Bestellung %{order_number} erfordert eine zusätzliche Autorisierung durch den Kunden. Der Kunde wurde per E-Mail benachrichtigt und die Zahlung wird bis zur Bestätigung als ausstehend angezeigt." shipment_mailer: shipped_email: dear_customer: "Liebe Kundin, lieber Kunde," @@ -4500,13 +4488,10 @@ de_DE: webhook_endpoints: title: Webhook-Endpunkte description: Ereignisse im System können Webhooks zu externen Systemen auslösen. - event_types: - order_cycle_opened: Bestellzyklus eröffnet event_type: header: Ereignistyp url: header: Endpunkt-URL - create_placeholder: Geben Sie die URL des Remote-Webhook-Endpunkts ein developer_settings: title: Entwicklereinstellungen form: @@ -4654,3 +4639,8 @@ de_DE: add_tag_rule_modal: select_rule_type: "Wählen Sie einen Regelart aus:" add_rule: "Regel hinzufügen" + webhook_endpoint_form: + url: + create_placeholder: Geben Sie die URL des Remote-Webhook-Endpunkts ein + event_types: + order_cycle_opened: Bestellzyklus eröffnet diff --git a/config/locales/el.yml b/config/locales/el.yml index ba99a8ca40..40017aaa95 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -106,27 +106,6 @@ el: blank: "δεν μπορεί να είναι κενό" too_short: "είναι πολύ σύντομο (το ελάχιστο είναι %{count} χαρακτήρες)" errors: - messages: - content_type_invalid: "περιέχει λανθασμένο τύπο περιεχομένου" - file_size_out_of_range: "μέγεθος %{file_size} δεν είναι εντός της απαιτούμενης εμβέλειας" - limit_out_of_range: "Ο συνολικός αριθμός βρίσκεται εκτός εύρους" - image_metadata_missing: "δεν είναι έγκυρη εικόνα" - dimension_min_inclusion: "πρέπει να είναι μεγαλύτερο η ίσο με %{width} x %{height} pixels." - dimension_max_inclusion: "πρέπει να είναι μικρότερο από ή ίσο με %{width} x %{height} pixels." - dimension_width_inclusion: "Το πλάτος δεν είναι μεταξύ %{min} και %{max} pixels." - dimension_height_inclusion: "Το ύψος δεν είναι μεταξύ %{min} και %{max} pixels. " - dimension_width_greater_than_or_equal_to: "Το πλάτος πρέπει να είναι μεγαλύτερο από η ίσο με %{length} pixels." - dimension_height_greater_than_or_equal_to: "Το ύψος πρέπει να είναι μεγαλύτερο από η ίσο με %{length} pixels." - dimension_width_less_than_or_equal_to: "Το πλάτος πρέπει να είναι μικρότερο από ή ίσο με %{length} pixels." - dimension_height_less_than_or_equal_to: "Το ύψος πρέπει να είναι μικρότερο από η ίσο με %{length} pixels." - dimension_width_equal_to: "Το πλάτος πρέπει να είναι ίσο με %{length} pixels." - dimension_height_equal_to: "Το ύψος πρέπει να είναι ίσο με %{length} pixels." - aspect_ratio_not_square: "πρέπει να είναι τετράγωνη εικόνα. " - aspect_ratio_not_portrait: "πρέπει να είναι εικόνα πορτρέτο. " - aspect_ratio_not_landscape: "πρέπει να είναι εικόνα τοπίου." - aspect_ratio_is_not: "πρέπει να έχει λόγο διαστάσεων %{aspect_ratio}" - aspect_ratio_unknown: "έχει άγνωστη αναλογία εμφάνισης (aspect ratio)." - image_not_processable: "δεν είναι έγκυρη εικόνα" not_found: title: "Η συγκεκριμένη σελίδα δεν υπάρχει (404) " message_html: "Παρακαλούμε προσπαθήστε ξανά

Πιθανόν να πρόκειται για προσωρινό σφάλμα. Παρακαλούμε επιστρέψτε στην προηγούμενη σελίδα ή πηγαίνετε πίσω στην Αρχική σελίδα και προσπαθήστε ξανά.

Επικοινωνήστε με την εξυπηρέτηση πελατών

Εάν το πρόβλημα παραμένει η επείγει, παρακαλούμε να μας ενημερώσετε. Βρείτε τα στοιχεία επικοινωνίας μας στο Open Food Network Local page.

Θα μας είναι απόλυτα χρήσιμο το να μας δώσετε όσες περισσότερες πληροφορίες γίνεται αναφορικά με τα στοιχεία της σελίδας που λείπουν.

" @@ -328,6 +307,13 @@ el: join_community: "Συμμετοχή στην κοινότητα" invite_manager: subject: "%{enterprise}σας έχει προσκαλέσει με τον ρόλο του manager." + payment_mailer: + authorize_payment: + subject: "Εξουσιοδοτήστε την πληρωμή σας στο %{distributor} στο OFN" + instructions: "Η πληρωμή σας από %{amount} σε %{distributor} απαιτεί επιπλέον έλεγχο ταυτότητας. Επισκεφτείτε την ακόλουθη διεύθυνση URL για να εξουσιοδοτήσετε την πληρωμή σας:" + authorization_required: + subject: "Μια πληρωμή απαιτεί εξουσιοδότηση από τον πελάτη" + message: "Για την πληρωμή της παραγγελίας %{order_number} απαιτείται επιπλέον εξουσιοδότηση από τον πελάτη. Ο πελάτης έχει ειδοποιηθεί μέσω ηλεκτρονικού ταχυδρομείου και η πληρωμή θα εμφανιστεί σε εκκρεμότητα έως ότου εξουσιοδοτηθεί." producer_mailer: order_cycle: subject: "Καταγραφή κύκλων παραγγελιών για %{producer}" @@ -817,6 +803,7 @@ el: label: Κατηγορίες tags: label: Ετικέτες + none: Κανένας search: Αναζήτηση sort: pagination: @@ -3798,6 +3785,7 @@ el: logourl: "Logourl" are_you_sure_delete: "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την εγγραφή;" confirm_delete: "Επιβεβαίωση διαγραφής" + voucher: "Κουπόνι" configurations: "Διαμορφώσεις" general_settings: "Γενικές Ρυθμίσεις" site_name: "Ονομα ιστοσελίδας" @@ -3886,6 +3874,7 @@ el: alt_text: "Εναλλακτικό Κείμενο" thumbnail: "Μικρογραφία (Thumnail) " back_to_images_list: "Επιστροφή στη λίστα εικόνων" + api_key: "Κλειδί API" email: ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ account_updated: "Ο λογαριασμός ενημερώθηκε!" email_updated: "Ο λογαριασμός θα ενημερωθεί μόλις επιβεβαιωθεί το νέο μήνυμα ηλεκτρονικού ταχυδρομείου." @@ -4200,9 +4189,7 @@ el: providers: provider: "Προμηθευτής" check: "Μετρητά/EFT/κλπ. (πληρωμές για τις οποίες δεν απαιτείται αυτόματη επικύρωση)" - pin: "Καρφίτσωμα πληρωμών" paypalexpress: "PayPal Express" - stripeconnect: "Ταινία" stripesca: "Stripe SCA" payments: source_forms: @@ -4444,13 +4431,6 @@ el: subject: "Επαναφορά οδηγιών κωδικού πρόσβασης" confirmation_instructions: subject: "Επιβεβαιώστε τον λογαριασμό σας OFN" - payment_mailer: - authorize_payment: - subject: "Εξουσιοδοτήστε την πληρωμή σας στο %{distributor} στο OFN" - instructions: "Η πληρωμή σας από %{amount} σε %{distributor} απαιτεί επιπλέον έλεγχο ταυτότητας. Επισκεφτείτε την ακόλουθη διεύθυνση URL για να εξουσιοδοτήσετε την πληρωμή σας:" - authorization_required: - subject: "Μια πληρωμή απαιτεί εξουσιοδότηση από τον πελάτη" - message: "Για την πληρωμή της παραγγελίας %{order_number} απαιτείται επιπλέον εξουσιοδότηση από τον πελάτη. Ο πελάτης έχει ειδοποιηθεί μέσω ηλεκτρονικού ταχυδρομείου και η πληρωμή θα εμφανιστεί σε εκκρεμότητα έως ότου εξουσιοδοτηθεί." shipment_mailer: shipped_email: dear_customer: "Αγαπητέ Πελάτη," @@ -4513,11 +4493,8 @@ el: webhook_endpoints: title: Webhook Endpoints description: Συμβάντα στο σύστημα μπορεί να πυροδοτήσουν webhooks σε εξωτερικά συστήματα. - event_types: - order_cycle_opened: Ο Κύκλος παραγγελίας άνοιξε url: header: Endpoint URL - create_placeholder: Εισάγετε το URL απο το απομακρυσμένο webhook endpoint. developer_settings: title: Ρυθμίσεις Developer form: @@ -4665,6 +4642,11 @@ el: add_tag_rule_modal: select_rule_type: "Επιλέξτε έναν τύπο κανόνα:" add_rule: "Προσθήκη κανόνα" + webhook_endpoint_form: + url: + create_placeholder: Εισάγετε το URL απο το απομακρυσμένο webhook endpoint. + event_types: + order_cycle_opened: Ο Κύκλος παραγγελίας άνοιξε invisible_captcha: sentence_for_humans: "Παρακαλώ αφήστε κενό" timestamp_error_message: "Παρακαλώ δοκιμάστε ξανά σε 5 δευτερόλεπτα." diff --git a/config/locales/en.yml b/config/locales/en.yml index d3fe23123d..bf2406c867 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -138,26 +138,66 @@ en: # Used by active_storage_validations errors: messages: - content_type_invalid: "has an invalid content type" - file_size_out_of_range: "size %{file_size} is not between required range" - limit_out_of_range: "total number is out of range" - image_metadata_missing: "is not a valid image" - dimension_min_inclusion: "must be greater than or equal to %{width} x %{height} pixel." - dimension_max_inclusion: "must be less than or equal to %{width} x %{height} pixel." - dimension_width_inclusion: "width is not included between %{min} and %{max} pixel." - dimension_height_inclusion: "height is not included between %{min} and %{max} pixel." - dimension_width_greater_than_or_equal_to: "width must be greater than or equal to %{length} pixel." - dimension_height_greater_than_or_equal_to: "height must be greater than or equal to %{length} pixel." - dimension_width_less_than_or_equal_to: "width must be less than or equal to %{length} pixel." - dimension_height_less_than_or_equal_to: "height must be less than or equal to %{length} pixel." - dimension_width_equal_to: "width must be equal to %{length} pixel." - dimension_height_equal_to: "height must be equal to %{length} pixel." - aspect_ratio_not_square: "must be a square image" - aspect_ratio_not_portrait: "must be a portrait image" - aspect_ratio_not_landscape: "must be a landscape image" - aspect_ratio_is_not: "must have an aspect ratio of %{aspect_ratio}" - aspect_ratio_unknown: "has an unknown aspect ratio" - image_not_processable: "is not a valid image" + content_type_invalid: + one: "has an invalid content type (authorized content type is %{authorized_human_content_types})" + other: "has an invalid content type (authorized content types are %{authorized_human_content_types})" + content_type_spoofed: + one: "has a content type that is not equivalent to the one that is detected through its content (authorized content type is %{authorized_human_content_types})" + other: "has a content type that is not equivalent to the one that is detected through its content (authorized content types are %{authorized_human_content_types})" + file_size_not_less_than: "file size must be less than %{max} (current size is %{file_size})" + file_size_not_less_than_or_equal_to: "file size must be less than or equal to %{max} (current size is %{file_size})" + file_size_not_greater_than: "file size must be greater than %{min} (current size is %{file_size})" + file_size_not_greater_than_or_equal_to: "file size must be greater than or equal to %{min} (current size is %{file_size})" + file_size_not_between: "file size must be between %{min} and %{max} (current size is %{file_size})" + file_size_not_equal_to: "file size must be equal to %{exact} (current size is %{file_size})" + total_file_size_not_less_than: "total file size must be less than %{max} (current size is %{total_file_size})" + total_file_size_not_less_than_or_equal_to: "total file size must be less than or equal to %{max} (current size is %{total_file_size})" + total_file_size_not_greater_than: "total file size must be greater than %{min} (current size is %{total_file_size})" + total_file_size_not_greater_than_or_equal_to: "total file size must be greater than or equal to %{min} (current size is %{total_file_size})" + total_file_size_not_between: "total file size must be between %{min} and %{max} (current size is %{total_file_size})" + total_file_size_not_equal_to: "total file size must be equal to %{exact} (current size is %{total_file_size})" + duration_not_less_than: "duration must be less than %{max} (current duration is %{duration})" + duration_not_less_than_or_equal_to: "duration must be less than or equal to %{max} (current duration is %{duration})" + duration_not_greater_than: "duration must be greater than %{min} (current duration is %{duration})" + duration_not_greater_than_or_equal_to: "duration must be greater than or equal to %{min} (current duration is %{duration})" + duration_not_between: "duration must be between %{min} and %{max} (current duration is %{duration})" + duration_not_equal_to: "duration must be equal to %{exact} (current duration is %{duration})" + limit_out_of_range: + zero: "no files attached (must have between %{min} and %{max} files)" + one: "only 1 file attached (must have between %{min} and %{max} files)" + other: "total number of files must be between %{min} and %{max} files (there are %{count} files attached)" + limit_min_not_reached: + zero: "no files attached (must have at least %{min} files)" + one: "only 1 file attached (must have at least %{min} files)" + other: "%{count} files attached (must have at least %{min} files)" + limit_max_exceeded: + zero: "no files attached (maximum is %{max} files)" + one: "too many files attached (maximum is %{max} files, got %{count})" + other: "too many files attached (maximum is %{max} files, got %{count})" + attachment_missing: "is missing its attachment" + media_metadata_missing: "is not a valid media file" + dimension_min_not_included_in: "must be greater than or equal to %{width} x %{height} pixels" + dimension_max_not_included_in: "must be less than or equal to %{width} x %{height} pixels" + dimension_width_not_included_in: "width is not included between %{min} and %{max} pixels" + dimension_height_not_included_in: "height is not included between %{min} and %{max} pixels" + dimension_width_not_greater_than_or_equal_to: "width must be greater than or equal to %{length} pixels" + dimension_height_not_greater_than_or_equal_to: "height must be greater than or equal to %{length} pixels" + dimension_width_not_less_than_or_equal_to: "width must be less than or equal to %{length} pixels" + dimension_height_not_less_than_or_equal_to: "height must be less than or equal to %{length} pixels" + dimension_width_not_equal_to: "width must be equal to %{length} pixels" + dimension_height_not_equal_to: "height must be equal to %{length} pixels" + aspect_ratio_not_square: "must be square (current file is %{width}x%{height}px)" + aspect_ratio_not_portrait: "must be portrait (current file is %{width}x%{height}px)" + aspect_ratio_not_landscape: "must be landscape (current file is %{width}x%{height}px)" + aspect_ratio_not_x_y: "must be %{authorized_aspect_ratios} (current file is %{width}x%{height}px)" + aspect_ratio_invalid: "has an invalid aspect ratio (valid aspect ratios are %{authorized_aspect_ratios})" + file_not_processable: "is not identified as a valid media file" + pages_not_less_than: "page count must be less than %{max} (current page count is %{pages})" + pages_not_less_than_or_equal_to: "page count must be less than or equal to %{max} (current page count is %{pages})" + pages_not_greater_than: "page count must be greater than %{min} (current page count is %{pages})" + pages_not_greater_than_or_equal_to: "page count must be greater than or equal to %{min} (current page count is %{pages})" + pages_not_between: "page count must be between %{min} and %{max} (current page count is %{pages})" + pages_not_equal_to: "page count must be equal to %{exact} (current page count is %{pages})" not_found: title: "The page you were looking for doesn't exist (404)" message_html: "Please try again @@ -248,6 +288,9 @@ en: success_code: disconnected: "Stripe account disconnected." + taler: + order_status: + claimed: "The payment request expired. Please try again." activemodel: errors: messages: @@ -415,6 +458,18 @@ en: join_community: "Join the community" invite_manager: subject: "%{enterprise} has invited you to be a manager" + payment_mailer: + authorize_payment: + subject: "Please authorize your payment to %{distributor} on OFN" + instructions: "Your payment of %{amount} to %{distributor} requires additional authentication. Please visit the following URL to authorize your payment:" + authorization_required: + subject: "A payment requires authorization from the customer" + message: "A payment for order %{order_number} requires additional authorization from the customer. The customer has been notified via email and the payment will appear as pending until it is authorized." + refund_available: + subject: "Refund from %{shop}" + message: | + Your payment of %{amount} to %{shop} is being refunded. + Accept your refund following the link below. producer_mailer: order_cycle: subject: "Order cycle report for %{producer}" @@ -587,6 +642,7 @@ en: errors: vine_api: "There was an error communicating with the API, please try again later." invalid_voucher: "The voucher is not valid" + expired: "The voucher has expired" not_found_voucher: "Sorry, we couldn't find that voucher, please check the code." vine_voucher_redeemer_service: errors: @@ -977,6 +1033,7 @@ en: label: Categories tags: label: Tags + none: None search: Search sort: pagination: @@ -3460,6 +3517,8 @@ en: payment_processing_failed: "Payment could not be processed, please check the details you entered" payment_method_not_supported: "That payment method is unsupported. Please choose another one." payment_updated: "Payment Updated" + payment_method_taler: + order_summary: "Open Food Network order" cannot_perform_operation: "Could not update the payment" action_required: "Action required" tag_rules: "Tag Rules" @@ -4088,6 +4147,8 @@ en: destroy: success: Webhook endpoint successfully deleted error: Webhook endpoint failed to delete + test: + success: Some test data will be sent to the webhook url spree: order_updated: "Order Updated" @@ -4195,6 +4256,8 @@ en: logourl: "Logourl" are_you_sure_delete: "Are you sure you want to delete this record?" confirm_delete: "Confirm Deletion" + tag_rule: "Tag Rule" + voucher: "Voucher" configurations: "Configurations" general_settings: "General Settings" @@ -4298,6 +4361,10 @@ en: thumbnail: "Thumbnail" back_to_images_list: "Back To Images List" + # Attributes of the Taler payment gateway + backend_url: "Backend URL" + api_key: "API key" + # TODO: remove `email` key once we get to Spree 2.0 email: Email # TODO: remove 'account_updated' key once we get to Spree 2.0 @@ -4618,10 +4685,9 @@ en: providers: provider: "Provider" check: "Cash/EFT/etc. (payments for which automatic validation is not required)" - pin: "Pin Payments" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" + taler: "Taler" payments: source_forms: stripe: @@ -4869,13 +4935,6 @@ en: subject: "Reset password instructions" confirmation_instructions: subject: "Please confirm your OFN account" - payment_mailer: - authorize_payment: - subject: "Please authorize your payment to %{distributor} on OFN" - instructions: "Your payment of %{amount} to %{distributor} requires additional authentication. Please visit the following URL to authorize your payment:" - authorization_required: - subject: "A payment requires authorization from the customer" - message: "A payment for order %{order_number} requires additional authorization from the customer. The customer has been notified via email and the payment will appear as pending until it is authorized." shipment_mailer: shipped_email: dear_customer: "Dear Customer," @@ -4938,13 +4997,10 @@ en: webhook_endpoints: title: Webhook Endpoints description: Events in the system may trigger webhooks to external systems. - event_types: - order_cycle_opened: Order Cycle Opened event_type: header: Event type url: header: Endpoint URL - create_placeholder: Enter the URL of the remote webhook endpoint developer_settings: title: Developer Settings form: @@ -5093,7 +5149,13 @@ en: add_tag_rule_modal: select_rule_type: "Select a rule type:" add_rule: "Add Rule" - + webhook_endpoint_form: + url: + create_placeholder: Enter the URL of the remote webhook endpoint + event_types: + order_cycle_opened: Order Cycle Opened + payment_status_changed: Post webhook on Payment status change + test_endpoint: Test webhook endpoint # Gem to prevent bot form submissions invisible_captcha: diff --git a/config/locales/en_AU.yml b/config/locales/en_AU.yml index fa671c65c1..fe0d60b509 100644 --- a/config/locales/en_AU.yml +++ b/config/locales/en_AU.yml @@ -561,6 +561,7 @@ en_AU: label: Categories tags: label: Tags + none: None search: Search sort: pagination: diff --git a/config/locales/en_BE.yml b/config/locales/en_BE.yml index 94c19acc9b..79ad74aef4 100644 --- a/config/locales/en_BE.yml +++ b/config/locales/en_BE.yml @@ -526,6 +526,7 @@ en_BE: label: Categories tags: label: Tags + none: None search: Search product_variant_row: new_variant: New variant diff --git a/config/locales/en_CA.yml b/config/locales/en_CA.yml index d5ed2d2d9e..71885ac642 100644 --- a/config/locales/en_CA.yml +++ b/config/locales/en_CA.yml @@ -116,26 +116,66 @@ en_CA: too_short: "is too short (minimum is %{count} characters)" errors: messages: - content_type_invalid: "has an invalid content type" - file_size_out_of_range: "size %{file_size} is not within required range" - limit_out_of_range: "total number is out of range" - image_metadata_missing: "is not a valid image" - dimension_min_inclusion: "must be greater than or equal to %{width} x %{height} pixels." - dimension_max_inclusion: "must be less than or equal to %{width} x %{height} pixels." - dimension_width_inclusion: "width is not between %{min} and %{max} pixels." - dimension_height_inclusion: "height is not between %{min} and %{max} pixels." - dimension_width_greater_than_or_equal_to: "width must be greater than or equal to %{length} pixels." - dimension_height_greater_than_or_equal_to: "height must be greater than or equal to %{length} pixels." - dimension_width_less_than_or_equal_to: "width must be less than or equal to %{length} pixels." - dimension_height_less_than_or_equal_to: "height must be less than or equal to %{length} pixels." - dimension_width_equal_to: "width must be equal to %{length} pixels." - dimension_height_equal_to: "height must be equal to %{length} pixels." - aspect_ratio_not_square: "must be a square image" - aspect_ratio_not_portrait: "must be a portrait image" - aspect_ratio_not_landscape: "must be a landscape image" - aspect_ratio_is_not: "must have an aspect ration of %{aspect_ratio}" - aspect_ratio_unknown: "has an unknown aspect ration" - image_not_processable: "is not a valid image" + content_type_invalid: + one: "has an invalid content type (authorized content type is %{authorized_human_content_types})" + other: "has an invalid content type (authorized content types are %{authorized_human_content_types})" + content_type_spoofed: + one: "has a content type that is not equivalent to the one that is detected through its content (authorized content type is %{authorized_human_content_types})" + other: "has a content type that is not equivalent to the one that is detected through its content (authorized content types are %{authorized_human_content_types})" + file_size_not_less_than: "file size must be less than %{max} (current size is %{file_size})" + file_size_not_less_than_or_equal_to: "file size must be less than or equal to %{max} (current size is %{file_size})" + file_size_not_greater_than: "file size must be greater than %{min} (current size is %{file_size})" + file_size_not_greater_than_or_equal_to: "file size must be greater than or equal to %{min} (current size is %{file_size})" + file_size_not_between: "file size must be between %{min} and %{max} (current size is %{file_size})" + file_size_not_equal_to: "file size must be equal to %{exact} (current size is %{file_size})" + total_file_size_not_less_than: "total file size must be less than %{max} (current size is %{total_file_size})" + total_file_size_not_less_than_or_equal_to: "total file size must be less than or equal to %{max} (current size is %{total_file_size})" + total_file_size_not_greater_than: "total file size must be greater than %{min} (current size is %{total_file_size})" + total_file_size_not_greater_than_or_equal_to: "total file size must be greater than or equal to %{min} (current size is %{total_file_size})" + total_file_size_not_between: "total file size must be between %{min} and %{max} (current size is %{total_file_size})" + total_file_size_not_equal_to: "total file size must be equal to %{exact} (current size is %{total_file_size})" + duration_not_less_than: "duration must be less than %{max} (current duration is %{duration})" + duration_not_less_than_or_equal_to: "duration must be less than or equal to %{max} (current duration is %{duration})" + duration_not_greater_than: "duration must be greater than %{min} (current duration is %{duration})" + duration_not_greater_than_or_equal_to: "duration must be greater than or equal to %{min} (current duration is %{duration})" + duration_not_between: "duration must be between %{min} and %{max} (current duration is %{duration})" + duration_not_equal_to: "duration must be equal to %{exact} (current duration is %{duration})" + limit_out_of_range: + zero: "no files attached (must have between %{min} and %{max} files)" + one: "only 1 file attached (must have between %{min} and %{max} files)" + other: "total number of files must be between %{min} and %{max} files (there are %{count} files attached)" + limit_min_not_reached: + zero: "no files attached (must have at least %{min} files)" + one: "only 1 file attached (must have at least %{min} files)" + other: "%{count} files attached (must have at least %{min} files)" + limit_max_exceeded: + zero: "no files attached (maximum is %{max} files)" + one: "too many files attached (maximum is %{max} files, got %{count})" + other: "too many files attached (maximum is %{max} files, got %{count})" + attachment_missing: "is missing its attachment" + media_metadata_missing: "is not a valid media file" + dimension_min_not_included_in: "must be greater than or equal to %{width} x %{height} pixels" + dimension_max_not_included_in: "must be less than or equal to %{width} x %{height} pixels" + dimension_width_not_included_in: "width is not included between %{min} and %{max} pixels" + dimension_height_not_included_in: "height is not included between %{min} and %{max} pixels" + dimension_width_not_greater_than_or_equal_to: "width must be greater than or equal to %{length} pixels" + dimension_height_not_greater_than_or_equal_to: "height must be greater than or equal to %{length} pixels" + dimension_width_not_less_than_or_equal_to: "width must be less than or equal to %{length} pixels" + dimension_height_not_less_than_or_equal_to: "height must be less than or equal to %{length} pixels" + dimension_width_not_equal_to: "width must be equal to %{length} pixels" + dimension_height_not_equal_to: "height must be equal to %{length} pixels" + aspect_ratio_not_square: "must be square (current file is %{width}x%{height}px)" + aspect_ratio_not_portrait: "must be portrait (current file is %{width}x%{height}px)" + aspect_ratio_not_landscape: "must be landscape (current file is %{width}x%{height}px)" + aspect_ratio_not_x_y: "must be %{authorized_aspect_ratios} (current file is %{width}x%{height}px)" + aspect_ratio_invalid: "has an invalid aspect ratio (valid aspect ratios are %{authorized_aspect_ratios})" + file_not_processable: "is not identified as a valid media file" + pages_not_less_than: "page count must be less than %{max} (current page count is %{pages})" + pages_not_less_than_or_equal_to: "page count must be less than or equal to %{max} (current page count is %{pages})" + pages_not_greater_than: "page count must be greater than %{min} (current page count is %{pages})" + pages_not_greater_than_or_equal_to: "page count must be greater than or equal to %{min} (current page count is %{pages})" + pages_not_between: "page count must be between %{min} and %{max} (current page count is %{pages})" + pages_not_equal_to: "page count must be equal to %{exact} (current page count is %{pages})" not_found: title: "The page you were looking for doesn't exist (404)" message_html: "Please try again

This might be a temporary problem. Please click the back button to return to the previous screen or go back to Homeand try again.

Contact support

If the problem persists or is urgent, please tell us about it. Find our contact details from the global Open Food Network Local page.

It really helps us if you can give as much detail as possible about what the missing page is about.

" @@ -206,6 +246,9 @@ en_CA: disconnect_failure: "Failed to disconnecct Stripe." success_code: disconnected: "Stripe account disconnected." + taler: + order_status: + claimed: "The payment request expired. Please try again." activemodel: errors: messages: @@ -371,6 +414,13 @@ en_CA: join_community: "Join the community" invite_manager: subject: "%{enterprise} has invited you to be a manager" + payment_mailer: + authorize_payment: + subject: "Please authorize your payment to %{distributor} on OFN" + instructions: "Your payment of %{amount} to %{distributor} requires additional authentication. Please visit the following URL to authorize your payment:" + authorization_required: + subject: "A payment requires authorization from the customer" + message: "A payment for order %{order_number} requires additional authorization from the customer. The customer has been notified via email and the payment will appear as pending until it is authorized." producer_mailer: order_cycle: subject: "Order cycle report for %{producer}" @@ -541,6 +591,7 @@ en_CA: errors: vine_api: "There was an error communicating with the API, please try again later." invalid_voucher: "The voucher is not valid" + expired: "The voucher has expired" not_found_voucher: "Sorry, we couldn't find that voucher, please check the code." vine_voucher_redeemer_service: errors: @@ -906,6 +957,7 @@ en_CA: label: Categories tags: label: Tags + none: None search: Search sort: pagination: @@ -3316,6 +3368,8 @@ en_CA: payment_processing_failed: "Payment could not be processed, please check the details you entered." payment_method_not_supported: "That payment method is unsupported. Please choose another one." payment_updated: "Payment Updated" + payment_method_taler: + order_summary: "Open Food Network order" cannot_perform_operation: "Could not update the payment" action_required: "Action required" tag_rules: "Tag Rules" @@ -3929,6 +3983,8 @@ en_CA: destroy: success: Webhook endpoint successfully deleted error: Webhood endpoint failed to delete + test: + success: Some test data will be sent to the webhook url spree: order_updated: "Order Updated" cannot_perform_operation: "Can not perform this operation" @@ -4035,6 +4091,8 @@ en_CA: logourl: "Logourl" are_you_sure_delete: "Are you sure you want to delete this record?" confirm_delete: "Confirm Deletion" + tag_rule: "Tag Rule" + voucher: "Voucher" configurations: "Configurations" general_settings: "General Settings" site_name: "Site Name" @@ -4125,6 +4183,8 @@ en_CA: alt_text: "Alternative Text" thumbnail: "Thumbnail" back_to_images_list: "Back to Images List" + backend_url: "Backend URL" + api_key: "API key" email: Email account_updated: "Account updated!" email_updated: "The account will be updated once the new email is confirmed." @@ -4441,10 +4501,9 @@ en_CA: providers: provider: "Provider" check: "Cash/EFT/Bank Transfer etc. (payments for which automatic validation is not required)" - pin: "Pin Payments (Only applicable to users in Australia)" paypalexpress: "PayPal Express" - stripeconnect: "Stripe For Deletion" stripesca: "Stripe SCA" + taler: "Taler" payments: source_forms: stripe: @@ -4691,13 +4750,6 @@ en_CA: subject: "Reset password instructions" confirmation_instructions: subject: "Please confirm your OFN account" - payment_mailer: - authorize_payment: - subject: "Please authorize your payment to %{distributor} on OFN" - instructions: "Your payment of %{amount} to %{distributor} requires additional authentication. Please visit the following URL to authorize your payment:" - authorization_required: - subject: "A payment requires authorization from the customer" - message: "A payment for order %{order_number} requires additional authorization from the customer. The customer has been notified via email and the payment will appear as pending until it is authorized." shipment_mailer: shipped_email: dear_customer: "Dear Customer, " @@ -4760,13 +4812,10 @@ en_CA: webhook_endpoints: title: Webhook Endpoints description: Events in the system may trigger webhooks to external systems. - event_types: - order_cycle_opened: Order Cycle Opened event_type: header: Event type url: header: Endpoint URL - create_placeholder: Enter the URL of the remove webhook endpoint developer_settings: title: Developer Settings form: @@ -4915,6 +4964,13 @@ en_CA: add_tag_rule_modal: select_rule_type: "Select a rule type:" add_rule: "Add Rule" + webhook_endpoint_form: + url: + create_placeholder: Enter the URL of the remove webhook endpoint + event_types: + order_cycle_opened: Order Cycle Opened + payment_status_changed: Post webhook on Payment status change + test_endpoint: Test webhook endpoint invisible_captcha: sentence_for_humans: "Please leave empty" timestamp_error_message: "Please try again after 5 seconds." diff --git a/config/locales/en_DE.yml b/config/locales/en_DE.yml index d13c7b16dc..6c1536533e 100644 --- a/config/locales/en_DE.yml +++ b/config/locales/en_DE.yml @@ -531,6 +531,7 @@ en_DE: label: Categories tags: label: Tags + none: None search: Search product_variant_row: new_variant: New variant diff --git a/config/locales/en_FR.yml b/config/locales/en_FR.yml index 311fbcc706..84f2a833a3 100644 --- a/config/locales/en_FR.yml +++ b/config/locales/en_FR.yml @@ -116,26 +116,66 @@ en_FR: too_short: "is too short (minimum is %{count} characters)" errors: messages: - content_type_invalid: "has an invalid content type" - file_size_out_of_range: "size %{file_size} is not between required range" - limit_out_of_range: "total number is out of range" - image_metadata_missing: "is not a valid image" - dimension_min_inclusion: "must be greater than or equal to %{width} x %{height} pixel." - dimension_max_inclusion: "must be less than or equal to %{width} x %{height} pixel." - dimension_width_inclusion: "width is not included between %{min} and %{max} pixel." - dimension_height_inclusion: "height is not included between %{min} and %{max} pixel." - dimension_width_greater_than_or_equal_to: "width must be greater than or equal to %{length} pixel." - dimension_height_greater_than_or_equal_to: "height must be greater than or equal to %{length} pixel." - dimension_width_less_than_or_equal_to: "width must be less than or equal to %{length} pixel." - dimension_height_less_than_or_equal_to: "height must be less than or equal to %{length} pixel." - dimension_width_equal_to: "width must be equal to %{length} pixel." - dimension_height_equal_to: "height must be equal to %{length} pixel." - aspect_ratio_not_square: "must be a square image" - aspect_ratio_not_portrait: "must be a portrait image" - aspect_ratio_not_landscape: "must be a landscape image" - aspect_ratio_is_not: "must have an aspect ratio of %{aspect_ratio}" - aspect_ratio_unknown: "has an unknown aspect ratio" - image_not_processable: "is not a valid image" + content_type_invalid: + one: "has an invalid content type (authorized content type is %{authorized_human_content_types})" + other: "has an invalid content type (authorized content types are %{authorized_human_content_types})" + content_type_spoofed: + one: "has a content type that is not equivalent to the one that is detected through its content (authorized content type is %{authorized_human_content_types})" + other: "has a content type that is not equivalent to the one that is detected through its content (authorized content types are %{authorized_human_content_types})" + file_size_not_less_than: "file size must be less than %{max} (current size is %{file_size})" + file_size_not_less_than_or_equal_to: "file size must be less than or equal to %{max} (current size is %{file_size})" + file_size_not_greater_than: "file size must be greater than %{min} (current size is %{file_size})" + file_size_not_greater_than_or_equal_to: "file size must be greater than or equal to %{min} (current size is %{file_size})" + file_size_not_between: "file size must be between %{min} and %{max} (current size is %{file_size})" + file_size_not_equal_to: "file size must be equal to %{exact} (current size is %{file_size})" + total_file_size_not_less_than: "total file size must be less than %{max} (current size is %{total_file_size})" + total_file_size_not_less_than_or_equal_to: "total file size must be less than or equal to %{max} (current size is %{total_file_size})" + total_file_size_not_greater_than: "total file size must be greater than %{min} (current size is %{total_file_size})" + total_file_size_not_greater_than_or_equal_to: "total file size must be greater than or equal to %{min} (current size is %{total_file_size})" + total_file_size_not_between: "total file size must be between %{min} and %{max} (current size is %{total_file_size})" + total_file_size_not_equal_to: "total file size must be equal to %{exact} (current size is %{total_file_size})" + duration_not_less_than: "duration must be less than %{max} (current duration is %{duration})" + duration_not_less_than_or_equal_to: "duration must be less than or equal to %{max} (current duration is %{duration})" + duration_not_greater_than: "duration must be greater than %{min} (current duration is %{duration})" + duration_not_greater_than_or_equal_to: "duration must be greater than or equal to %{min} (current duration is %{duration})" + duration_not_between: "duration must be between %{min} and %{max} (current duration is %{duration})" + duration_not_equal_to: "duration must be equal to %{exact} (current duration is %{duration})" + limit_out_of_range: + zero: "no files attached (must have between %{min} and %{max} files)" + one: "only 1 file attached (must have between %{min} and %{max} files)" + other: "total number of files must be between %{min} and %{max} files (there are %{count} files attached)" + limit_min_not_reached: + zero: "no files attached (must have at least %{min} files)" + one: "only 1 file attached (must have at least %{min} files)" + other: "%{count} files attached (must have at least %{min} files)" + limit_max_exceeded: + zero: "no files attached (maximum is %{max} files)" + one: "too many files attached (maximum is %{max} files, got %{count})" + other: "too many files attached (maximum is %{max} files, got %{count})" + attachment_missing: "is missing its attachment" + media_metadata_missing: "is not a valid media file" + dimension_min_not_included_in: "must be greater than or equal to %{width} x %{height} pixels" + dimension_max_not_included_in: "must be less than or equal to %{width} x %{height} pixels" + dimension_width_not_included_in: "width is not included between %{min} and %{max} pixels" + dimension_height_not_included_in: "height is not included between %{min} and %{max} pixels" + dimension_width_not_greater_than_or_equal_to: "width must be greater than or equal to %{length} pixels" + dimension_height_not_greater_than_or_equal_to: "height must be greater than or equal to %{length} pixels" + dimension_width_not_less_than_or_equal_to: "width must be less than or equal to %{length} pixels" + dimension_height_not_less_than_or_equal_to: "height must be less than or equal to %{length} pixels" + dimension_width_not_equal_to: "width must be equal to %{length} pixels" + dimension_height_not_equal_to: "height must be equal to %{length} pixels" + aspect_ratio_not_square: "must be square (current file is %{width}x%{height}px)" + aspect_ratio_not_portrait: "must be portrait (current file is %{width}x%{height}px)" + aspect_ratio_not_landscape: "must be landscape (current file is %{width}x%{height}px)" + aspect_ratio_not_x_y: "must be %{authorized_aspect_ratios} (current file is %{width}x%{height}px)" + aspect_ratio_invalid: "has an invalid aspect ratio (valid aspect ratios are %{authorized_aspect_ratios})" + file_not_processable: "is not identified as a valid media file" + pages_not_less_than: "page count must be less than %{max} (current page count is %{pages})" + pages_not_less_than_or_equal_to: "page count must be less than or equal to %{max} (current page count is %{pages})" + pages_not_greater_than: "page count must be greater than %{min} (current page count is %{pages})" + pages_not_greater_than_or_equal_to: "page count must be greater than or equal to %{min} (current page count is %{pages})" + pages_not_between: "page count must be between %{min} and %{max} (current page count is %{pages})" + pages_not_equal_to: "page count must be equal to %{exact} (current page count is %{pages})" not_found: title: "The page you were looking for doesn't exist (404)" message_html: " Please try again

This might be a temporary problem. Please click the back button to return to the previous screen or go back to Home and try again.

Contact support

f the problem persists or is urgent, please tell us about it.

" @@ -206,6 +246,9 @@ en_FR: disconnect_failure: "Failed to disconnect Stripe." success_code: disconnected: "Stripe account disconnected." + taler: + order_status: + claimed: "The payment request expired. Please try again." activemodel: errors: messages: @@ -371,6 +414,13 @@ en_FR: join_community: "Join the community" invite_manager: subject: "%{enterprise} has invited you to be a manager" + payment_mailer: + authorize_payment: + subject: "Please authorize your payment to %{distributor} on CoopCircuits" + instructions: "Your payment of %{amount} to %{distributor} requires additional authentication. Please visit the following URL to authorize your payment:" + authorization_required: + subject: "A payment requires authorization from the customer" + message: "A payment for order %{order_number} requires additional authorization from the customer. The customer has been notified via email and the payment will appear as pending until it is authorized." producer_mailer: order_cycle: subject: "Order cycle report for %{producer}" @@ -541,6 +591,7 @@ en_FR: errors: vine_api: "There was an error communicating with the API, please try again later." invalid_voucher: "The voucher is not valid" + expired: "The voucher has expired" not_found_voucher: "Sorry, we couldn't find that voucher, please check the code." vine_voucher_redeemer_service: errors: @@ -906,6 +957,7 @@ en_FR: label: Categories tags: label: Tags + none: None search: Search sort: pagination: @@ -3316,6 +3368,8 @@ en_FR: payment_processing_failed: "Payment could not be processed, please check the details you entered" payment_method_not_supported: "That payment method is unsupported. Please choose another one." payment_updated: "Payment Updated" + payment_method_taler: + order_summary: "Open Food Network order" cannot_perform_operation: "Could not update the payment" action_required: "Action required" tag_rules: "Tag Rules" @@ -3930,6 +3984,8 @@ en_FR: destroy: success: Webhook endpoint successfully deleted error: Webhook endpoint failed to delete + test: + success: Some test data will be sent to the webhook url spree: order_updated: "Order Updated" cannot_perform_operation: "Can not perform this operation" @@ -4036,6 +4092,8 @@ en_FR: logourl: "Logourl" are_you_sure_delete: "Are you sure you want to delete this record?" confirm_delete: "Confirm Deletion" + tag_rule: "Tag Rule" + voucher: "Voucher" configurations: "Configurations" general_settings: "General Settings" site_name: "Site Name" @@ -4126,6 +4184,8 @@ en_FR: alt_text: "Alternative Text" thumbnail: "Thumbnail" back_to_images_list: "Back To Images List" + backend_url: "Backend URL" + api_key: "API key" email: Email account_updated: "Account updated!" email_updated: "The account will be updated once the new email is confirmed." @@ -4442,10 +4502,9 @@ en_FR: providers: provider: "Provider" check: "Cash/EFT/etc. (payments for which automatic validation is not required)" - pin: "Pin Payments" paypalexpress: "PayPal Express" - stripeconnect: "Stripe (old version)" stripesca: "Stripe" + taler: "Taler" payments: source_forms: stripe: @@ -4692,13 +4751,6 @@ en_FR: subject: "Reset password instructions" confirmation_instructions: subject: "Please confirm your OFN account" - payment_mailer: - authorize_payment: - subject: "Please authorize your payment to %{distributor} on CoopCircuits" - instructions: "Your payment of %{amount} to %{distributor} requires additional authentication. Please visit the following URL to authorize your payment:" - authorization_required: - subject: "A payment requires authorization from the customer" - message: "A payment for order %{order_number} requires additional authorization from the customer. The customer has been notified via email and the payment will appear as pending until it is authorized." shipment_mailer: shipped_email: dear_customer: "Dear Customer," @@ -4761,13 +4813,10 @@ en_FR: webhook_endpoints: title: Webhook Endpoints description: Events in the system may trigger webhooks to external systems. - event_types: - order_cycle_opened: Order Cycle Opened event_type: header: Event type url: header: Endpoint URL - create_placeholder: Enter the URL of the remote webhook endpoint developer_settings: title: Developer Settings form: @@ -4916,6 +4965,13 @@ en_FR: add_tag_rule_modal: select_rule_type: "Select a rule type:" add_rule: "Add Rule" + webhook_endpoint_form: + url: + create_placeholder: Enter the URL of the remote webhook endpoint + event_types: + order_cycle_opened: Order Cycle Opened + payment_status_changed: Post webhook on Payment status change + test_endpoint: Test webhook endpoint invisible_captcha: sentence_for_humans: "Please leave empty" timestamp_error_message: "Please try again after 5 seconds." diff --git a/config/locales/en_GB.yml b/config/locales/en_GB.yml index 90078da6df..01c13f2a6d 100644 --- a/config/locales/en_GB.yml +++ b/config/locales/en_GB.yml @@ -116,26 +116,66 @@ en_GB: too_short: "is too short (minimum is %{count} characters)" errors: messages: - content_type_invalid: "has an invalid content type" - file_size_out_of_range: "size %{file_size} is not between required range" - limit_out_of_range: "total number is out of range" - image_metadata_missing: "is not a valid image" - dimension_min_inclusion: "must be greater than or equal to %{width} x %{height} pixel." - dimension_max_inclusion: "must be less than or equal to %{width} x %{height} pixel." - dimension_width_inclusion: "width is not included between %{min} and %{max} pixel." - dimension_height_inclusion: "height is not included between %{min} and %{max} pixel." - dimension_width_greater_than_or_equal_to: "width must be greater than or equal to %{length} pixel." - dimension_height_greater_than_or_equal_to: "height must be greater than or equal to %{length} pixel." - dimension_width_less_than_or_equal_to: "width must be less than or equal to %{length} pixel." - dimension_height_less_than_or_equal_to: "height must be less than or equal to %{length} pixel." - dimension_width_equal_to: "width must be equal to %{length} pixel." - dimension_height_equal_to: "height must be equal to %{length} pixel." - aspect_ratio_not_square: "must be a square image" - aspect_ratio_not_portrait: "must be a portrait image" - aspect_ratio_not_landscape: "must be a landscape image" - aspect_ratio_is_not: "must have an aspect ratio of %{aspect_ratio}" - aspect_ratio_unknown: "has an unknown aspect ratio" - image_not_processable: "is not a valid image" + content_type_invalid: + one: "has an invalid content type (authorised content type is %{authorized_human_content_types})" + other: "has an invalid content type (authorised content types are\n%{authorized_human_content_types})" + content_type_spoofed: + one: "has a content type that is not equivalent to the one that is detected through its content (authorised content type is %{authorized_human_content_types})" + other: "has a content type that is not equivalent to the one that is detected through its content (authorised content types are %{authorized_human_content_types})" + file_size_not_less_than: "file size must be less than %{max} (current size is %{file_size})" + file_size_not_less_than_or_equal_to: "file size must be less than or equal to %{max} (current size is %{file_size})" + file_size_not_greater_than: "file size must be greater than %{min} (current size is %{file_size})" + file_size_not_greater_than_or_equal_to: "file size must be greater than or equal to %{min} (current size is %{file_size})" + file_size_not_between: "file size must be between %{min} and %{max} (current size is %{file_size})" + file_size_not_equal_to: "file size must be equal to %{exact} (current size is %{file_size})" + total_file_size_not_less_than: "total file size must be less than %{max} (current size is %{total_file_size})" + total_file_size_not_less_than_or_equal_to: "total file size must be less than or equal to %{max} (current size is %{total_file_size})" + total_file_size_not_greater_than: "total file size must be greater than %{min} (current size is %{total_file_size})" + total_file_size_not_greater_than_or_equal_to: "total file size must be greater than or equal to %{min} (current size is %{total_file_size})" + total_file_size_not_between: "total file size must be between %{min} and %{max} (current size is %{total_file_size})" + total_file_size_not_equal_to: "total file size must be equal to %{exact} (current size is %{total_file_size})" + duration_not_less_than: "duration must be less than %{max} (current duration is %{duration})" + duration_not_less_than_or_equal_to: "duration must be less than or equal to %{max} (current duration is %{duration})" + duration_not_greater_than: "duration must be greater than %{min} (current duration is %{duration})" + duration_not_greater_than_or_equal_to: "duration must be greater than or equal to %{min} (current duration is %{duration})" + duration_not_between: "duration must be between %{min} and %{max} (current duration is %{duration})" + duration_not_equal_to: "duration must be equal to %{exact} (current duration is %{duration})" + limit_out_of_range: + zero: "no files attached (must have between %{min} and %{max}files)" + one: "only 1 file attached (must have between %{min} and %{max}files)" + other: "total number of files must be between %{min} and %{max} files (there are %{count}files attached)" + limit_min_not_reached: + zero: "no files attached (must have at least %{min} files)" + one: "only 1 file attached (must have at least %{min} files)" + other: "%{count} files attached (must have at least %{min} files)" + limit_max_exceeded: + zero: "no files attached (maximum is %{max} files)" + one: "too many files attached (maximum is %{max} files, got %{count})" + other: "too many files attached (maximum is %{max} files, got %{count})" + attachment_missing: "is missing its attachment" + media_metadata_missing: "is not a valid media file" + dimension_min_not_included_in: "must be greater than or equal to %{width} x %{height} pixels" + dimension_max_not_included_in: "must be less than or equal to %{width} x %{height} pixels" + dimension_width_not_included_in: "width is not included between %{min} and %{max} pixels" + dimension_height_not_included_in: "height is not included between %{min} and %{max} pixels" + dimension_width_not_greater_than_or_equal_to: "width must be greater than or equal to %{length} pixels" + dimension_height_not_greater_than_or_equal_to: "height must be greater than or equal to %{length} pixels" + dimension_width_not_less_than_or_equal_to: "width must be less than or equal to %{length} pixels" + dimension_height_not_less_than_or_equal_to: "height must be less than or equal to %{length} pixels" + dimension_width_not_equal_to: "width must be equal to %{length} pixels" + dimension_height_not_equal_to: "height must be equal to %{length} pixels" + aspect_ratio_not_square: "must be square (current file is %{width}x%{height}px)" + aspect_ratio_not_portrait: "must be portrait (current file is %{width}x%{height}px)" + aspect_ratio_not_landscape: "must be landscape (current file is %{width}x%{height}px)" + aspect_ratio_not_x_y: "must be %{authorized_aspect_ratios} (current file is %{width}x%{height}px)" + aspect_ratio_invalid: "has an invalid aspect ratio (valid aspect ratios are %{authorized_aspect_ratios})" + file_not_processable: "is not identified as a valid media file" + pages_not_less_than: "page count must be less than %{max} (current page count is %{pages})" + pages_not_less_than_or_equal_to: "page count must be less than or equal to %{max} (current page count is %{pages})" + pages_not_greater_than: "page count must be greater than %{min} (current page count is %{pages})" + pages_not_greater_than_or_equal_to: "page count must be greater than or equal to %{min} (current page count is %{pages})" + pages_not_between: "page count must be between %{min} and %{max} (current page count is %{pages})" + pages_not_equal_to: "page count must be equal to %{exact} (current page count is %{pages})" not_found: title: "The page you were looking for doesn't exist (404)" message_html: "Please try again

This might be a temporary problem. Please click the back button to return to the previous screen or go back to Home and try again.

Contact support

If the problem persists or is urgent, please tell us about it. Find our contact details from the global Open Food Network Local page.

It really helps us if you can give as much detail as possible about what the missing page is about.

" @@ -206,6 +246,9 @@ en_GB: disconnect_failure: "Failed to disconnect Stripe." success_code: disconnected: "Stripe account disconnected." + taler: + order_status: + claimed: "The payment request expired. Please try again." activemodel: errors: messages: @@ -371,6 +414,13 @@ en_GB: join_community: "Join the community" invite_manager: subject: "%{enterprise} has invited you to be a manager" + payment_mailer: + authorize_payment: + subject: "Please authorise your payment to %{distributor} on OFN" + instructions: "Your payment of %{amount} to %{distributor} requires additional authentication. Please visit the following URL to authorise your payment:" + authorization_required: + subject: "A payment requires authorisation from the customer" + message: "A payment for order %{order_number} requires additional authorisation from the customer. The customer has been notified via email and the payment will appear as pending until it is authorised." producer_mailer: order_cycle: subject: "Order cycle report for %{producer}" @@ -541,6 +591,7 @@ en_GB: errors: vine_api: "There was an error communicating with the API, please try again later." invalid_voucher: "The voucher is not valid" + expired: "The voucher has expired" not_found_voucher: "Sorry, we couldn't find that voucher, please check the code." vine_voucher_redeemer_service: errors: @@ -906,6 +957,7 @@ en_GB: label: Categories tags: label: Tags + none: None search: Search sort: pagination: @@ -954,6 +1006,10 @@ en_GB: clone: success: Successfully cloned the product error: Unable to clone the product + tag_rules: + rules_per_tag: + one: "%{tag} has 1 rule" + other: "%{tag} has %{count} rules" product_import: title: Product Import file_not_found: File not found or could not be opened @@ -2394,9 +2450,9 @@ en_GB: order_includes_tax: (includes tax) order_payment_paypal_successful: Your payment via PayPal has been processed successfully. order_hub_info: Hub info - order_back_to_store: Back To Store - order_back_to_cart: Back To Cart - order_back_to_website: Back To Website + order_back_to_store: Back to shop + order_back_to_cart: Back to cart + order_back_to_website: Back to website checkout_details_title: Checkout Details checkout_payment_title: Checkout Payment checkout_summary_title: Checkout Summary @@ -3312,11 +3368,13 @@ en_GB: payment_processing_failed: "Payment could not be processed, please check the details you entered" payment_method_not_supported: "That payment method is unsupported. Please choose another one." payment_updated: "Payment Updated" + payment_method_taler: + order_summary: "Open Food Network order" cannot_perform_operation: "Could not update the payment" action_required: "Action required" tag_rules: "Tag Rules" enterprise_fee_whole_order: Whole order - enterprise_fee_by_name: "%{name} fee by %{role}%{enterprise_name}" + enterprise_fee_by_name: "%{name} fee by %{role} %{enterprise_name}" validation_msg_relationship_already_established: "^That relationship is already established." validation_msg_at_least_one_hub: "^At least one hub must be selected" validation_msg_tax_category_cant_be_blank: "^Tax Category can't be blank" @@ -3357,6 +3415,7 @@ en_GB: order_cycles_no_permission_to_coordinate_error: "None of your enterprises have permission to coordinate an order cycle" order_cycles_no_permission_to_create_error: "You don't have permission to create an order cycle coordinated by that enterprise" order_cycle_closed: "The order cycle you've selected has just closed." + order_cycle_closed_next_steps: "The order cycle you've selected has just closed. Please contact us to complete your order #\n%{order_number}!" back_to_orders_list: "Back To Orders List" no_orders_found: "No Orders Found" order_information: "Order Information" @@ -3931,6 +3990,8 @@ en_GB: destroy: success: Webhook endpoint successfully deleted error: Webhook endpoint failed to delete + test: + success: Some test data will be sent to the webhook url spree: order_updated: "Order Updated" cannot_perform_operation: "Can not perform this operation" @@ -4037,6 +4098,8 @@ en_GB: logourl: "Logo url" are_you_sure_delete: "Are you sure you want to delete this record?" confirm_delete: "Confirm Deletion" + tag_rule: "Tag Rule" + voucher: "Voucher" configurations: "Configurations" general_settings: "General Settings" site_name: "Site Name" @@ -4127,6 +4190,8 @@ en_GB: alt_text: "Alternative Text" thumbnail: "Thumbnail" back_to_images_list: "Back To Images List" + backend_url: "Backend URL" + api_key: "API key" email: Email account_updated: "Account updated!" email_updated: "The account will be updated once the new email is confirmed." @@ -4443,10 +4508,9 @@ en_GB: providers: provider: "Provider" check: "Cash/EFT/etc. (payments for which automatic validation is not required)" - pin: "Pin Payments" paypalexpress: "PayPal Express" - stripeconnect: "depreciated card payment method (no longer in use in UK)" stripesca: "Stripe SCA " + taler: "Taler" payments: source_forms: stripe: @@ -4693,13 +4757,6 @@ en_GB: subject: "Reset password instructions" confirmation_instructions: subject: "Please confirm your OFN account" - payment_mailer: - authorize_payment: - subject: "Please authorise your payment to %{distributor} on OFN" - instructions: "Your payment of %{amount} to %{distributor} requires additional authentication. Please visit the following URL to authorise your payment:" - authorization_required: - subject: "A payment requires authorisation from the customer" - message: "A payment for order %{order_number} requires additional authorisation from the customer. The customer has been notified via email and the payment will appear as pending until it is authorised." shipment_mailer: shipped_email: dear_customer: "Dear Customer," @@ -4762,13 +4819,10 @@ en_GB: webhook_endpoints: title: Webhook Endpoints description: Events in the system may trigger webhooks to external systems. - event_types: - order_cycle_opened: Order Cycle Opened event_type: header: Event type url: header: Endpoint URL - create_placeholder: Enter the URL of the remote webhook endpoint developer_settings: title: Developer Settings form: @@ -4906,6 +4960,7 @@ en_GB: order_cycle_tagged_bottom: "are:" inventory_tagged_top: "Inventory variants tagged" inventory_tagged_bottom: "are:" + variant_tagged_top: "Variants tagged" variant_tagged_bottom: "are:" visible: VISIBLE not_visible: NOT VISIBLE @@ -4916,6 +4971,13 @@ en_GB: add_tag_rule_modal: select_rule_type: "Select a rule type:" add_rule: "Add Rule" + webhook_endpoint_form: + url: + create_placeholder: Enter the URL of the remote webhook endpoint + event_types: + order_cycle_opened: Order Cycle Opened + payment_status_changed: Post webhook on Payment status change + test_endpoint: Test webhook endpoint invisible_captcha: sentence_for_humans: "Please leave empty" timestamp_error_message: "Please try again after 5 seconds." diff --git a/config/locales/en_IE.yml b/config/locales/en_IE.yml index 559a5d894f..82cd3ab577 100644 --- a/config/locales/en_IE.yml +++ b/config/locales/en_IE.yml @@ -115,27 +115,6 @@ en_IE: blank: "can't be blank" too_short: "is too short (minimum is %{count} characters)" errors: - messages: - content_type_invalid: "has an invalid content type" - file_size_out_of_range: "size %{file_size} is not between required range" - limit_out_of_range: "total number is out of range" - image_metadata_missing: "is not a valid image" - dimension_min_inclusion: "must be greater than or equal to %{width} x %{height} pixel." - dimension_max_inclusion: "must be less than or equal to %{width} x %{height} pixel." - dimension_width_inclusion: "width is not included between %{min} and %{max} pixel." - dimension_height_inclusion: "height is not included between %{min} and %{max} pixel." - dimension_width_greater_than_or_equal_to: "width must be greater than or equal to %{length} pixel." - dimension_height_greater_than_or_equal_to: "height must be greater than or equal to %{length} pixel." - dimension_width_less_than_or_equal_to: "width must be less than or equal to %{length} pixel." - dimension_height_less_than_or_equal_to: "height must be less than or equal to %{length} pixel." - dimension_width_equal_to: "width must be equal to %{length} pixel." - dimension_height_equal_to: "height must be equal to %{length} pixel." - aspect_ratio_not_square: "must be a square image" - aspect_ratio_not_portrait: "must be a portrait image" - aspect_ratio_not_landscape: "must be a landscape image" - aspect_ratio_is_not: "must have an aspect ratio of %{aspect_ratio}" - aspect_ratio_unknown: "has an unknown aspect ratio" - image_not_processable: "is not a valid image" not_found: title: "The page you were looking for doesn't exist (404)" message_html: "Please try again

This might be a temporary problem. Please click the back button to return to the previous screen or go back to Home and try again.

Contact support

If the problem persists or is urgent, please tell us about it. Find our contact details from the global Open Food Network Local page.

It really helps us if you can give as much detail as possible about what the missing page is about.

" @@ -364,6 +343,13 @@ en_IE: join_community: "Join the community" invite_manager: subject: "%{enterprise} has invited you to be a manager" + payment_mailer: + authorize_payment: + subject: "Please authorize your payment to %{distributor} on OFN" + instructions: "Your payment of %{amount} to %{distributor} requires additional authentication. Please visit the following URL to authorize your payment:" + authorization_required: + subject: "A payment requires authorization from the customer" + message: "A payment for order %{order_number} requires additional authorization from the customer. The customer has been notified via email and the payment will appear as pending until it is authorized." producer_mailer: order_cycle: subject: "Order cycle report for %{producer}" @@ -866,6 +852,7 @@ en_IE: label: Categories tags: label: Tags + none: None search: Search sort: pagination: @@ -3900,6 +3887,7 @@ en_IE: logourl: "Logourl" are_you_sure_delete: "Are you sure you want to delete this record?" confirm_delete: "Confirm Deletion" + voucher: "Voucher" configurations: "Configurations" general_settings: "General Settings" site_name: "Site Name" @@ -3990,6 +3978,7 @@ en_IE: alt_text: "Alternative Text" thumbnail: "Thumbnail" back_to_images_list: "Back To Images List" + api_key: "API key" email: Email account_updated: "Account updated!" email_updated: "The account will be updated once the new email is confirmed." @@ -4305,9 +4294,7 @@ en_IE: providers: provider: "Provider" check: "Cash/EFT/etc. (payments for which automatic validation is not required)" - pin: "Pin Payments" paypalexpress: "PayPal Express" - stripeconnect: "Stripe (Obsolete version)" stripesca: "Stripe" payments: source_forms: @@ -4552,13 +4539,6 @@ en_IE: subject: "Reset password instructions" confirmation_instructions: subject: "Please confirm your OFN account" - payment_mailer: - authorize_payment: - subject: "Please authorize your payment to %{distributor} on OFN" - instructions: "Your payment of %{amount} to %{distributor} requires additional authentication. Please visit the following URL to authorize your payment:" - authorization_required: - subject: "A payment requires authorization from the customer" - message: "A payment for order %{order_number} requires additional authorization from the customer. The customer has been notified via email and the payment will appear as pending until it is authorized." shipment_mailer: shipped_email: dear_customer: "Dear Customer," @@ -4621,13 +4601,10 @@ en_IE: webhook_endpoints: title: Webhook Endpoints description: Events in the system may trigger webhooks to external systems. - event_types: - order_cycle_opened: Order Cycle Opened event_type: header: Event type url: header: Endpoint URL - create_placeholder: Enter the URL of the remote webhook endpoint developer_settings: title: Developer Settings form: @@ -4775,6 +4752,11 @@ en_IE: add_tag_rule_modal: select_rule_type: "Select a rule type:" add_rule: "Add Rule" + webhook_endpoint_form: + url: + create_placeholder: Enter the URL of the remote webhook endpoint + event_types: + order_cycle_opened: Order Cycle Opened invisible_captcha: sentence_for_humans: "Please leave empty" timestamp_error_message: "Please try again after 5 seconds." diff --git a/config/locales/en_IN.yml b/config/locales/en_IN.yml index ca37036928..8fd0618c22 100644 --- a/config/locales/en_IN.yml +++ b/config/locales/en_IN.yml @@ -545,6 +545,7 @@ en_IN: label: Categories tags: label: Tags + none: None search: Search sort: pagination: diff --git a/config/locales/en_NZ.yml b/config/locales/en_NZ.yml index 29407e4c12..be545e81f8 100644 --- a/config/locales/en_NZ.yml +++ b/config/locales/en_NZ.yml @@ -72,28 +72,6 @@ en_NZ: limited_stock_but_no_count_on_hand: "must be specified because forcing limited stock" messages: blank: "can't be blank" - errors: - messages: - content_type_invalid: "has an invalid content type" - file_size_out_of_range: "size %{file_size} is not between required range" - limit_out_of_range: "total number is out of range" - image_metadata_missing: "is not a valid image" - dimension_min_inclusion: "must be greater than or equal to %{width} x %{height} pixel." - dimension_max_inclusion: "must be less than or equal to %{width} x %{height} pixel." - dimension_width_inclusion: "width is not included between %{min} and %{max} pixel." - dimension_height_inclusion: "height is not included between %{min} and %{max} pixel." - dimension_width_greater_than_or_equal_to: "width must be greater than or equal to %{length} pixel." - dimension_height_greater_than_or_equal_to: "height must be greater than or equal to %{length} pixel." - dimension_width_less_than_or_equal_to: "width must be less than or equal to %{length} pixel." - dimension_height_less_than_or_equal_to: "height must be less than or equal to %{length} pixel." - dimension_width_equal_to: "width must be equal to %{length} pixel." - dimension_height_equal_to: "height must be equal to %{length} pixel." - aspect_ratio_not_square: "must be a square image" - aspect_ratio_not_portrait: "must be a portrait image" - aspect_ratio_not_landscape: "must be a landscape image" - aspect_ratio_is_not: "must have an aspect ratio of %{aspect_ratio}" - aspect_ratio_unknown: "has an unknown aspect ratio" - image_not_processable: "is not a valid image" stripe: error_code: incorrect_number: "The card number is incorrect." @@ -268,6 +246,13 @@ en_NZ: join_community: "Join the community" invite_manager: subject: "%{enterprise} has invited you to be a manager" + payment_mailer: + authorize_payment: + subject: "Please authorize your payment to %{distributor} on OFN" + instructions: "Your payment of %{amount} to %{distributor} requires additional authentication. Please visit the following URL to authorize your payment:" + authorization_required: + subject: "A payment requires authorization from the customer" + message: "A payment for order %{order_number} requires additional authorization from the customer. The customer has been notified via email and the payment will appear as pending until it is authorized." producer_mailer: order_cycle: subject: "Order cycle report for %{producer}" @@ -701,6 +686,7 @@ en_NZ: label: Categories tags: label: Tags + none: None search: Search sort: pagination: @@ -3773,9 +3759,7 @@ en_NZ: providers: provider: "Provider" check: "Cash/EFT/etc. (payments for which automatic validation is not required)" - pin: "Pin Payments" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" payments: source_forms: @@ -3989,13 +3973,6 @@ en_NZ: subject: "Reset password instructions" confirmation_instructions: subject: "Please confirm your OFN account" - payment_mailer: - authorize_payment: - subject: "Please authorize your payment to %{distributor} on OFN" - instructions: "Your payment of %{amount} to %{distributor} requires additional authentication. Please visit the following URL to authorize your payment:" - authorization_required: - subject: "A payment requires authorization from the customer" - message: "A payment for order %{order_number} requires additional authorization from the customer. The customer has been notified via email and the payment will appear as pending until it is authorized." shipment_mailer: shipped_email: dear_customer: "Dear Customer," diff --git a/config/locales/en_PH.yml b/config/locales/en_PH.yml index c607fcf6ac..f937526545 100644 --- a/config/locales/en_PH.yml +++ b/config/locales/en_PH.yml @@ -541,6 +541,7 @@ en_PH: label: Categories tags: label: Tags + none: None search: Search product_variant_row: new_variant: New variant diff --git a/config/locales/en_US.yml b/config/locales/en_US.yml index dee7e09dd9..19eea30904 100644 --- a/config/locales/en_US.yml +++ b/config/locales/en_US.yml @@ -247,6 +247,13 @@ en_US: join_community: "Join the community" invite_manager: subject: "%{enterprise} has invited you to be a manager" + payment_mailer: + authorize_payment: + subject: "Please authorize your payment to %{distributor} on OFN" + instructions: "Your payment of %{amount} to %{distributor} requires additional authentication. Please visit the following URL to authorize your payment:" + authorization_required: + subject: "A payment requires authorization from the customer" + message: "A payment for order %{order_number} requires additional authorization from the customer. The customer has been notified via email and the payment will appear as pending until it is authorized." producer_mailer: order_cycle: subject: "Order cycle report for %{producer}" @@ -680,6 +687,7 @@ en_US: label: Categories tags: label: Tags + none: None search: Search sort: pagination: @@ -3788,9 +3796,7 @@ en_US: providers: provider: "Provider" check: "Cash/EFT/etc. (payments for which automatic validation is not required)" - pin: "Pin Payments" paypalexpress: "PayPal Express" - stripeconnect: "retired, please use Stripe SCA" stripesca: "Stripe SCA" payments: source_forms: @@ -4006,13 +4012,6 @@ en_US: subject: "Reset password instructions" confirmation_instructions: subject: "Please confirm your OFN account" - payment_mailer: - authorize_payment: - subject: "Please authorize your payment to %{distributor} on OFN" - instructions: "Your payment of %{amount} to %{distributor} requires additional authentication. Please visit the following URL to authorize your payment:" - authorization_required: - subject: "A payment requires authorization from the customer" - message: "A payment for order %{order_number} requires additional authorization from the customer. The customer has been notified via email and the payment will appear as pending until it is authorized." shipment_mailer: shipped_email: dear_customer: "Dear Customer," diff --git a/config/locales/en_ZA.yml b/config/locales/en_ZA.yml index cf3402148e..bc2e8804b7 100644 --- a/config/locales/en_ZA.yml +++ b/config/locales/en_ZA.yml @@ -541,6 +541,7 @@ en_ZA: label: Categories tags: label: Tags + none: None search: Search sort: pagination: diff --git a/config/locales/es.yml b/config/locales/es.yml index c9b29726ae..d2bfd6c905 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -115,27 +115,6 @@ es: blank: "no puede estar vacío" too_short: "es demasiado corto (el mínimo es %{count}caracteres)" errors: - messages: - content_type_invalid: "Tiene un tipo de contenido invalido" - file_size_out_of_range: "el tamaño %{file_size} no está en el rango requerido" - limit_out_of_range: "El número total está fuera de rango" - image_metadata_missing: "no es una imagen valida" - dimension_min_inclusion: "debe ser mayor o igual a %{width} x %{height} píxeles." - dimension_max_inclusion: "debe ser inferior o igual a %{width} x %{height} píxeles." - dimension_width_inclusion: "la anchura no se incluye entre %{min} y %{max} píxel." - dimension_height_inclusion: "la altura no se incluye entre %{min} y %{max} píxel." - dimension_width_greater_than_or_equal_to: "La anchura debe ser mayor o igual a %{length} píxeles." - dimension_height_greater_than_or_equal_to: "La altura debe ser mayor o igual que %{length} píxel." - dimension_width_less_than_or_equal_to: "La anchura debe ser menor o igual a %{length} píxeles." - dimension_height_less_than_or_equal_to: "La altura debe ser menor o igual a %{length} píxel." - dimension_width_equal_to: "La anchura debe ser igual a %{length} píxeles." - dimension_height_equal_to: "la altura debe ser igual a %{length} pixel." - aspect_ratio_not_square: "la imagen tiene que ser cuadrada" - aspect_ratio_not_portrait: "la imagen tiene que ser un retrato" - aspect_ratio_not_landscape: "debe ser una imagen de paisaje" - aspect_ratio_is_not: "debe tener una relación de aspecto de %{aspect_ratio}" - aspect_ratio_unknown: "tiene una relación de aspecto desconocida" - image_not_processable: "no es una imagen valida" not_found: title: "La página que estas buscando no existe (404)" message_html: "Por favor, inténtelo de nuevo

Esto puede ser un problema temporal. Haga clic en el botón Atrás para volver a la pantalla anterior o vuelva a Inicio e inténtelo de nuevo

. Póngase en contacto con el servicio de asistencia

Si el problema persiste o es urgente, comuníquenoslo. Encuentre nuestros datos de contacto en la página local de Open Food Network.

Nos será de gran ayuda que nos facilite todos los detalles posibles sobre el motivo de la página que falta.

" @@ -371,6 +350,13 @@ es: join_community: "Unirse a la comunidad" invite_manager: subject: "%{enterprise} te ha invitado a ser administrador" + payment_mailer: + authorize_payment: + subject: "Autorice su pago a %{distributor} en OFN" + instructions: "Su pago de %{amount} a %{distributor} requiere autenticación adicional. Visite la siguiente URL para autorizar su pago:" + authorization_required: + subject: "Un pago requiere autorización del cliente" + message: "El pago del pedido %{order_number} requiere una autorización adicional del cliente. El cliente ha sido notificado vía email y el pago aparecerá como pendiente hasta que sea autorizado." producer_mailer: order_cycle: subject: "Informe Ciclo de Pedido para %{producer}" @@ -510,7 +496,7 @@ es: none: Ninguno notes: Notas error: Error - voucher: Bono + voucher: Cupón processing_payment: "Procesando el pago..." no_pending_payments: "No tiene pagos pendientes" invalid_payment_state: "Estado de pago inválido: %{state}" @@ -540,12 +526,13 @@ es: vine_voucher_validator_service: errors: vine_api: "Se ha producido un error en la comunicación con la API, inténtelo de nuevo más tarde." - invalid_voucher: "El bono no es válido" - not_found_voucher: "Lo sentimos, no hemos podido encontrar ese vale, por favor, compruebe el código." + invalid_voucher: "El cupón no es válido" + expired: "El cupón se ha caducado" + not_found_voucher: "Lo sentimos, no hemos podido encontrar ese cupón, por favor, compruebe el código." vine_voucher_redeemer_service: errors: vine_api: "Ha habido un error en la comunicación con el API" - redeeming_failed: "Error al canjear el bono" + redeeming_failed: "Error al canjear el cupón" actions: create_and_add_another: "Crear y agregar otro" create: "Crear" @@ -739,6 +726,7 @@ es: enabled_legend: "Aplicaciones conectadas habilitadas" connected_apps_enabled: discover_regen: Descubrir el Portal Regenerativo + vine: Voucher Integration Engine (VINE) update: resource: Ajustes de la aplicación conectada customers: @@ -901,6 +889,7 @@ es: label: Categorías tags: label: Etiquetas + none: Ninguno search: Buscar sort: pagination: @@ -1098,6 +1087,7 @@ es: orders: edit: order_sure_want_to: ¿Está seguro de que desea %{event} este pedido? + voucher_tax_included_in_price: "%{label} (impuestos incluidos en el cupón)" tax_on_fees: "Impuesto sobre las tasas" invoice_email_sent: 'Se ha enviado correo electrónico con la factura.' order_email_resent: 'El correo electrónico del pedido se ha reenviado' @@ -1367,8 +1357,8 @@ es: email_confirmed: "Correo electrónico confirmado" email_not_confirmed: "Correo electrónico no confirmado" vouchers: - legend: Bonos - voucher_code: Código promocional + legend: cupón + voucher_code: Código del cupón rate: Impuesto label: Etiqueta purpose: Propósito @@ -1378,7 +1368,7 @@ es: net_value: Valor neto active: ¿Activo? add_new: Añadir nuevo - no_voucher_yet: Todavía no hay bonos + no_voucher_yet: Todavía no hay cupones white_label: legend: "Etiqueta blanca" hide_ofn_navigation: "Ocultar la navegación de OFN" @@ -1400,6 +1390,8 @@ es: loading: "Cargando" need_to_be_manager: "Sólo los administradores pueden conectar aplicaciones." vine: + title: "Voucher Integration Engine (VINE)" + tagline: "Permitir el canje de cupones de VINE en tu tienda ." enable: "Conectar" disable: "Desconectar" need_to_be_manager: "Sólo los administradores pueden conectar aplicaciones." @@ -1668,7 +1660,7 @@ es: tag_rules: "Reglas de las Etiquetas" shop_preferences: "Configuración de la tienda" users: "Usuarias" - vouchers: Bonos + vouchers: Cupones white_label: "Etiqueta blanca" connected_apps: "Aplicaciones connectadas" enterprise_group: @@ -1879,11 +1871,12 @@ es: associated_subscriptions_error: Este horario no se puede eliminar porque tiene suscripciones asociadas vouchers: new: - legend: Nuevo bono + legend: Nuevo cupón back: Atrás save: Guardar - voucher_code: Código promocional + voucher_code: Código del cupón voucher_amount: Cantidad + voucher_type: Tipo de cupón percentage_rate: Porcentaje (%) controllers: enterprises: @@ -1973,6 +1966,12 @@ es: explaination: Puede revisar y confirmar su pedido en el siguiente paso cual incluye costos finales. submit: Siguiente - Resumen del pedido cancel: Regresar a Su información + voucher: + voucher: "%{voucher_amount} Cupón" + apply_voucher: Utilizar cupón + placeholder: Introducir el código del cupón + confirm_delete: ¿Está seguro de que desea eliminar este cupón? + warning_forfeit_remaining_amount: "Nota: si el total de su pedido es menor que su cupón, es posible que no pueda gastar el valor restante." step3: delivery_details: title: Detalles de entrega @@ -2004,6 +2003,10 @@ es: invalid_email: "Introduce un email válido" select_a_shipping_method: Seleccionar método de envío select_a_payment_method: Seleccionar método de pago + voucher_code_blank: Por favor introduzca un código de cupón válido + add_voucher_error: Ha habido un error al agregar el cupón + create_voucher_error: "Se ha producido un error al crear el cupón: %{error}" + voucher_redeeming_error: Se ha producido un error al intentar canjear su cupón shops: hubs: show_closed_shops: "Mostrar tiendas cerradas" @@ -2328,6 +2331,7 @@ es: email_order_summary_subtotal: "Subtotal:" email_order_summary_total: "Total:" email_order_summary_includes_tax: "(incluye impuestos):" + email_order_summary_voucher_label: "Cupón ( %{code} ):" email_payment_paid: PAGADO email_payment_not_paid: NO PAGADO email_payment_description: Descripción de pago de la compra @@ -3140,8 +3144,8 @@ es: report_header_transaction_fee: Comisión por transacción (sin impuestos) report_header_total_untaxable_admin: Total de ajustes administrativos no tributables (sin impuestos) report_header_total_taxable_admin: Total de ajustes tributarios de administración (impuestos incluidos) - report_header_voucher_label: Etiqueta del bono - report_header_voucher_amount: "Cantidad del bono (%{currency_symbol})" + report_header_voucher_label: Etiqueta del cupón + report_header_voucher_amount: "Cantidad del cupón (%{currency_symbol})" report_line_cost_of_produce: Coste de los productos agrícolas report_header_last_completed_order_date: Fecha del último pedido completado initial_invoice_number: "Número de factura inicial" @@ -3892,6 +3896,7 @@ es: logourl: "URL del logo" are_you_sure_delete: "¿Está seguro de que desea eliminar este registro?" confirm_delete: "Confirmar la eliminación" + voucher: "Cupón" configurations: "Configuraciones" general_settings: "Configuración general" site_name: "Nombre del sitio" @@ -3981,6 +3986,7 @@ es: alt_text: "Texto Alternativo" thumbnail: "Miniatura" back_to_images_list: "Volver a lista de imágenes " + api_key: "API key" email: Email account_updated: "Cuenta actualizada!" email_updated: "La cuenta se actualizará una vez que se confirme el nuevo correo electrónico." @@ -4289,9 +4295,7 @@ es: providers: provider: "Proveedor" check: "Efectivo / transferencia / etc. (pagos para los que no se requiere validación automática)" - pin: "Pin Payments" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" payments: source_forms: @@ -4534,13 +4538,6 @@ es: subject: "Instrucciones para restablecer la contraseña" confirmation_instructions: subject: "Por favor, confirma tu cuenta de OFN" - payment_mailer: - authorize_payment: - subject: "Autorice su pago a %{distributor} en OFN" - instructions: "Su pago de %{amount} a %{distributor} requiere autenticación adicional. Visite la siguiente URL para autorizar su pago:" - authorization_required: - subject: "Un pago requiere autorización del cliente" - message: "El pago del pedido %{order_number} requiere una autorización adicional del cliente. El cliente ha sido notificado vía email y el pago aparecerá como pendiente hasta que sea autorizado." shipment_mailer: shipped_email: dear_customer: "Estimada consumidora," @@ -4602,8 +4599,6 @@ es: title: API key webhook_endpoints: description: Los eventos del sistema pueden desencadenar webhooks a sistemas externos. - event_types: - order_cycle_opened: Ciclo de pedidos abierto developer_settings: title: Configuración de desarrollo form: @@ -4762,6 +4757,9 @@ es: add_tag_rule_modal: select_rule_type: "Selecciona un tipo de regla:" add_rule: "Añadir regla" + webhook_endpoint_form: + event_types: + order_cycle_opened: Ciclo de pedidos abierto invisible_captcha: sentence_for_humans: "Por favor, dejalo vacio" timestamp_error_message: "Por favor, inténtelo de nuevo después de 5 segundos." diff --git a/config/locales/es_CO.yml b/config/locales/es_CO.yml index 0cb2735c88..f1fe6cdccf 100644 --- a/config/locales/es_CO.yml +++ b/config/locales/es_CO.yml @@ -568,6 +568,7 @@ es_CO: label: Categorías tags: label: Etiquetas + none: Ninguno search: Buscar product_variant_row: new_variant: Nueva variante diff --git a/config/locales/es_CR.yml b/config/locales/es_CR.yml index d7774e2a9b..84c7b7d878 100644 --- a/config/locales/es_CR.yml +++ b/config/locales/es_CR.yml @@ -72,28 +72,6 @@ es_CR: limited_stock_but_no_count_on_hand: "debe estar especificado porque se ha definido un inventario limitado" messages: blank: "no puede estar en blanco" - errors: - messages: - content_type_invalid: "tiene un tipo de contenido no válido" - file_size_out_of_range: "el tamaño %{file_size} no está entre el rango requerido" - limit_out_of_range: "el número total está fuera de rango" - image_metadata_missing: "no es una imagen valida" - dimension_min_inclusion: "debe ser mayor o igual a %{width}x %{height} píxel." - dimension_max_inclusion: "debe ser menor o igual a %{width} x %{height} píxel." - dimension_width_inclusion: "el ancho no está incluido entre %{min} y %{max} píxel." - dimension_height_inclusion: "la altura no está incluida entre %{min} y %{max} píxel." - dimension_width_greater_than_or_equal_to: "el ancho debe ser mayor o igual al %{length} píxel." - dimension_height_greater_than_or_equal_to: "la altura debe ser mayor o igual al %{length} píxel." - dimension_width_less_than_or_equal_to: "el ancho debe ser menor o igual al %{length} píxel." - dimension_height_less_than_or_equal_to: "la altura debe ser menor o igual al %{length} píxel." - dimension_width_equal_to: "el ancho debe ser igual al %{length} píxel." - dimension_height_equal_to: "la altura debe ser igual al %{length} píxel." - aspect_ratio_not_square: "debe ser una imagen cuadrada" - aspect_ratio_not_portrait: "debe ser una imagen de retrato" - aspect_ratio_not_landscape: "debe ser una imagen de paisaje" - aspect_ratio_is_not: "debe tener una relación de aspecto de %{aspect_ratio}" - aspect_ratio_unknown: "tiene una relación de aspecto desconocida" - image_not_processable: "no es una imagen valida" stripe: error_code: incorrect_number: "El número de tarjeta es incorrecto." @@ -704,6 +682,7 @@ es_CR: label: Categorías tags: label: Etiquetas + none: Ninguno search: Buscar sort: pagination: diff --git a/config/locales/es_US.yml b/config/locales/es_US.yml index d858ff0cf1..30842dc998 100644 --- a/config/locales/es_US.yml +++ b/config/locales/es_US.yml @@ -243,6 +243,13 @@ es_US: join_community: "Unirse a la comunidad" invite_manager: subject: "%{enterprise} te ha invitado a ser administrador" + payment_mailer: + authorize_payment: + subject: "Autorice su pago a %{distributor} en OFN" + instructions: "Su pago de %{amount} a %{distributor} requiere autenticación adicional. Visite la siguiente URL para autorizar su pago:" + authorization_required: + subject: "Un pago requiere autorización del cliente" + message: "El pago del pedido %{order_number} requiere una autorización adicional del cliente. El cliente ha sido notificado vía email y el pago aparecerá como pendiente hasta que sea autorizado." producer_mailer: order_cycle: subject: "Informe Ciclo de Pedido para %{producer}" @@ -675,6 +682,7 @@ es_US: label: Categorías tags: label: Etiquetas + none: Ninguno search: Buscar sort: pagination: @@ -3736,9 +3744,7 @@ es_US: providers: provider: "Proveedor" check: "Efectivo / transferencia / etc. (pagos para los que no se requiere validación automática)" - pin: "Pin Payments" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" payments: source_forms: @@ -3953,13 +3959,6 @@ es_US: subject: "Instrucciones para restablecer la contraseña" confirmation_instructions: subject: "Por favor, confirma tu cuenta de OFN" - payment_mailer: - authorize_payment: - subject: "Autorice su pago a %{distributor} en OFN" - instructions: "Su pago de %{amount} a %{distributor} requiere autenticación adicional. Visite la siguiente URL para autorizar su pago:" - authorization_required: - subject: "Un pago requiere autorización del cliente" - message: "El pago del pedido %{order_number} requiere una autorización adicional del cliente. El cliente ha sido notificado vía email y el pago aparecerá como pendiente hasta que sea autorizado." shipment_mailer: shipped_email: dear_customer: "Estimada consumidora," diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 9ac4443536..6e4aad35ad 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -111,27 +111,6 @@ eu: blank: "ezin da hutsik egon" too_short: "laburregia da (gutxienekoa %{count} karaktere da)" errors: - messages: - content_type_invalid: "Eduki-mota baliogabea du" - file_size_out_of_range: " %{file_size} tamaina ez dago eskatutako barrutian" - limit_out_of_range: "Guztizko kopurua tartetik kanpo dago" - image_metadata_missing: "ez da irudi balioduna" - dimension_min_inclusion: " %{width} x %{height} pixelen adinakoa edo handiagoa izan behar du." - dimension_max_inclusion: " %{width} x %{height} pixelak baino txikiagoa edo berdina izan behar du." - dimension_width_inclusion: "zabalera ez da sartzen %{min} eta %{max} pixelen artean." - dimension_height_inclusion: "altuera ez da sartzen %{min} eta %{max} pixelen artean." - dimension_width_greater_than_or_equal_to: "Zabalerak %{length} pixelekoa edo handiagoa izan behar du." - dimension_height_greater_than_or_equal_to: "Altuerak %{length} pixela baino handiagoa edo berdina izan behar du." - dimension_width_less_than_or_equal_to: "Zabalerak %{length} pixelekoa edo txikiagoa izan behar du." - dimension_height_less_than_or_equal_to: "Altuerak %{length} pixela edo txikiagoa izan behar du." - dimension_width_equal_to: "Zabalerak %{length} pixelen berdina izan behar du." - dimension_height_equal_to: "altuerak %{length} pixel izan behar du." - aspect_ratio_not_square: "irudiak karratua izan behar du" - aspect_ratio_not_portrait: "irudiak erretratua izan behar du" - aspect_ratio_not_landscape: "paisaiaren irudia izan behar du" - aspect_ratio_is_not: " %{aspect_ratio} itxura-erlazioa izan behar du" - aspect_ratio_unknown: "itxura ezezaguneko harremana du" - image_not_processable: "ez da irudi balioduna" not_found: title: "Bilatzen ari zaren orrialdea ez da existitzen (404)" message_html: "Mesedez, saiatu berriro Hau denbora arazo bat izan daiteke.

Egin klik Atzera botoian aurreko pantailara itzultzeko edo itzuli Hasiera botoira eta saiatu berriro. Jarri harremanetan laguntza-zerbitzuarekin Arazoak jarraitzen badu edo premiazkoa bada, jakinaraz iezaguzu.

Aurkitu gure harremanetarako datuak Open Food Network-en tokiko orrian.

Oso lagungarria izango zaigu falta den orriaren arrazoiari buruzko xehetasun posible guztiak ematea.

" @@ -357,6 +336,13 @@ eu: join_community: "Komunitatearekin bat egin" invite_manager: subject: " %{enterprise} administratzaile izatera gonbidatu zaitu" + payment_mailer: + authorize_payment: + subject: "Baimena eman OFNn %{distributor} ri ordaintzeko" + instructions: " %{amount} tik %{distributor} ra ordaintzeko autentifikazio gehigarria behar da. Bisitatu URL hau ordainketa baimentzeko: " + authorization_required: + subject: "Ordainketa batek bezeroaren baimena behar du" + message: " %{order_number} eskaera ordaintzeko, bezeroaren baimen gehigarria behar da. Bezeroa posta elektronikoz jakinarazi da, eta ordainketa egiteke agertuko da baimena eman arte. " producer_mailer: order_cycle: subject: "Eskaera-zikloaren txostena %-rako {producer}" @@ -527,6 +513,7 @@ eu: errors: vine_api: "Errorea gertatu da HJArekiko komunikazioan, saia zaitez geroago." invalid_voucher: "Bonuak ez du balio" + expired: "Bonua iraungi da" not_found_voucher: "Sentitzen dugu, ezin izan dugu txartel hori aurkitu, mesedez, egiaztatu kodea." vine_voucher_redeemer_service: errors: @@ -719,6 +706,8 @@ eu: edit: title: "Konektatutako aplikazioaren doikuntzak" enabled_legend: "Gaitutako aplikazio konektatuak" + connected_apps_enabled: + vine: Voucher Integration Engine (VINE) update: resource: Konektatutako aplikazioaren doikuntzak customers: @@ -851,6 +840,7 @@ eu: label: Kategoriak tags: label: Tags + none: Bat ere ez search: Bilatu sort: pagination: @@ -1028,6 +1018,7 @@ eu: orders: edit: order_sure_want_to: Ziur al zaude eskaera hau %{event} nahi duzula? + voucher_tax_included_in_price: "%{label} (bonuan zerga barne)" tax_on_fees: "Tasen gaineko zerga" invoice_email_sent: 'Posta elektronikoa bidali da fakturarekin.' order_email_resent: 'Eskaeraren posta elektronikoa berriz bidali da' @@ -1322,6 +1313,8 @@ eu: loading: "Kargatzen" need_to_be_manager: "Administratzaileek bakarrik konekta ditzakete aplikazioak." vine: + title: "Voucher Integration Engine (VINE)" + tagline: "Utzi VINE bonoen trukea zure dendaren erakusleihoan." enable: "Konektatu" disable: "Deskonektatu" need_to_be_manager: "Administratzaileek bakarrik konekta ditzakete aplikazioak." @@ -1804,6 +1797,7 @@ eu: save: Gorde voucher_code: Sustapen-kodea voucher_amount: Kopurua + voucher_type: Bonu mota controllers: enterprises: stripe_connect_cancelled: "Striperako konexioa bertan behera geratu da" @@ -1892,6 +1886,12 @@ eu: explaination: Zure eskaera berrikusteko eta berresteko aukera duzu hurrengo urratsean, azken kostuak barne. submit: Hurrengoa - Eskaeraren laburpena cancel: Itzuli Zure informazioa atalera + voucher: + voucher: "%{voucher_amount} Bonua" + apply_voucher: Aplikatu bonoa + placeholder: Sartu bonoaren kodea + confirm_delete: Ziur zaude bonoa kendu nahi duzula? + warning_forfeit_remaining_amount: "Oharra: zure eskaeraren guztizkoa zure bonoa baino txikiagoa bada, baliteke gainerako balioa ezin gastatu ahal izatea." step3: delivery_details: title: Entregaren xehetasunak @@ -1923,7 +1923,10 @@ eu: invalid_email: "Sartu baliozko mezu elektroniko bat" select_a_shipping_method: Hautatu bidalketa-metodoa select_a_payment_method: Hautatu ordainketa-metodoa + voucher_code_blank: Mesedez, sartu bono-kode baliodun bat add_voucher_error: Errore bat gertatu da bonoa gehitzean + create_voucher_error: "Errore bat gertatu da bonoa sortzerakoan: %{error}" + voucher_redeeming_error: Errore bat gertatu da zure bonoa trukatzen saiatzean shops: hubs: show_closed_shops: "Denda itxiak erakutsi" @@ -2247,6 +2250,7 @@ eu: email_order_summary_subtotal: "Subtotala:" email_order_summary_total: "Guztira:" email_order_summary_includes_tax: "(zergak barne):" + email_order_summary_voucher_label: "Bonua ( %{code} ):" email_payment_paid: ORDAINDUA email_payment_not_paid: ORDAINDU GABE email_payment_description: Erosketaren ordainketaren deskribapena @@ -3687,6 +3691,7 @@ eu: logourl: "Logoaren URLa" are_you_sure_delete: "Ziur zaude erregistro hau ezabatu nahi duzula?" confirm_delete: "Ezeztapena baieztatu" + voucher: "Bonoa" configurations: "Konfigurazioak" general_settings: "Konfigurazio orokorra" site_name: "Gunearen izena" @@ -4077,9 +4082,7 @@ eu: providers: provider: "Hornitzailea" check: "Eskudirua/transferentzia/etab. (automatikoki baliozkotzea eskatzen ez duten ordainketak)" - pin: "Pin Payments" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" payments: source_forms: @@ -4310,13 +4313,6 @@ eu: subject: "Pasahitza berrezartzeko jarraibideak" confirmation_instructions: subject: "Mesedez, berretsi zure OFN kontua" - payment_mailer: - authorize_payment: - subject: "Baimena eman OFNn %{distributor} ri ordaintzeko" - instructions: " %{amount} tik %{distributor} ra ordaintzeko autentifikazio gehigarria behar da. Bisitatu URL hau ordainketa baimentzeko: " - authorization_required: - subject: "Ordainketa batek bezeroaren baimena behar du" - message: " %{order_number} eskaera ordaintzeko, bezeroaren baimen gehigarria behar da. Bezeroa posta elektronikoz jakinarazi da, eta ordainketa egiteke agertuko da baimena eman arte. " shipment_mailer: shipped_email: dear_customer: "Kontsumitzaile estimatua," @@ -4376,8 +4372,6 @@ eu: regenerate_key: "Giltza birsortu" webhook_endpoints: description: Sistemaren gertaerek webhook-ak eragin diezazkiekete kanpoko sistemei. - event_types: - order_cycle_opened: Eskaera-ziklo irekia developer_settings: title: Garapenaren konfigurazioa form: @@ -4484,6 +4478,9 @@ eu: add_tag_rule_modal: select_rule_type: "Hautatu erregela mota bat:" add_rule: "Erregela gehitu" + webhook_endpoint_form: + event_types: + order_cycle_opened: Eskaera-ziklo irekia invisible_captcha: sentence_for_humans: "Mesedez, utzi hutsik" timestamp_error_message: "Mesedez, saia zaitez berriro 5 segundoren ondoren." diff --git a/config/locales/fi.yml b/config/locales/fi.yml index f6747bebf7..eaefa83580 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -18,7 +18,7 @@ fi: phone: "Puhelinnumero" firstname: "Etunimi" lastname: "Sukunimi" - zipcode: "Toimituspostinumero" + zipcode: "Toimitusosoitteen postinumero" spree/order/bill_address: address1: "Laskutusosoite (Katu ja talonumero)" zipcode: "Laskutuspostinumero" @@ -116,26 +116,66 @@ fi: too_short: "on liian lyhyt (vähintään %{count} merkkiä)" errors: messages: - content_type_invalid: "sisältötyyppi on virheellinen" - file_size_out_of_range: "koko %{file_size} ei ole vaaditulla välillä" - limit_out_of_range: "kokonaismäärä on sallitun alueen ulkopuolella" - image_metadata_missing: "ei ole kelvollinen kuva" - dimension_min_inclusion: "täytyy olla vähintään %{width} x %{height} pikseliä." - dimension_max_inclusion: "täytyy olla enintään %{width} x %{height} pikseliä." - dimension_width_inclusion: "leveys ei ole välillä %{min} ja %{max} pikseliä." - dimension_height_inclusion: "korkeus ei ole välillä %{min} ja %{max} pikseliä." - dimension_width_greater_than_or_equal_to: "leveyden täytyy olla vähintään %{length} pikseliä." - dimension_height_greater_than_or_equal_to: "korkeuden täytyy olla vähintään %{length} pikseliä." - dimension_width_less_than_or_equal_to: "leveyden täytyy olla enintään %{length} pikseliä." - dimension_height_less_than_or_equal_to: "korkeuden täytyy olla enintään %{length} pikseliä." - dimension_width_equal_to: "leveyden täytyy olla %{length} pikseliä." - dimension_height_equal_to: "korkeuden täytyy olla %{length} pikseliä." - aspect_ratio_not_square: "täytyy olla neliömäinen kuva" - aspect_ratio_not_portrait: "täytyy olla pystysuuntainen kuva" - aspect_ratio_not_landscape: "täytyy olla vaakasuuntainen kuva" - aspect_ratio_is_not: "täytyy olla kuvasuhde %{aspect_ratio}" - aspect_ratio_unknown: "on tuntematon kuvasuhde" - image_not_processable: "ei ole kelvollinen kuva" + content_type_invalid: + one: "sisältää virheellisen sisältötyypin (valtuutettu sisältötyyppi on %{authorized_human_content_types} )" + other: "sisältää virheellisen sisältötyypin (valtuutetut sisältötyypit ovat %{authorized_human_content_types} )" + content_type_spoofed: + one: "sisältötyyppi ei vastaa sisällöstä havaittua tyyppiä (valtuutettu sisältötyyppi on %{authorized_human_content_types} )" + other: "sisältötyyppi ei vastaa sisällöstä havaittua tyyppiä (valtuutetut sisältötyypit ovat %{authorized_human_content_types} )" + file_size_not_less_than: "tiedoston koko on oltava pienempi kuin %{max} (nykyinen koko on %{file_size} )" + file_size_not_less_than_or_equal_to: "tiedoston koko on oltava pienempi tai yhtä suuri kuin %{max} (nykyinen koko on %{file_size} )" + file_size_not_greater_than: "tiedoston koko on oltava suurempi kuin %{min} (nykyinen koko on %{file_size} )" + file_size_not_greater_than_or_equal_to: "tiedoston koko on oltava suurempi tai yhtä suuri kuin %{min} (nykyinen koko on %{file_size} )" + file_size_not_between: "koko on oltava %{min} ja %{max} välillä (nykyinen koko on %{file_size} )" + file_size_not_equal_to: "tiedoston koko on oltava yhtä suuri kuin %{exact} (nykyinen koko on %{file_size} )" + total_file_size_not_less_than: "yhteensä tiedoston koko on oltava pienempi kuin %{max} (nykyinen koko on %{total_file_size} )" + total_file_size_not_less_than_or_equal_to: "yhteensä tiedoston koko on oltava pienempi tai yhtä suuri kuin %{max} (nykyinen koko on %{total_file_size} )" + total_file_size_not_greater_than: "yhteensä tiedoston koko on oltava suurempi kuin %{min} (nykyinen koko on %{total_file_size} )" + total_file_size_not_greater_than_or_equal_to: "yhteensä tiedoston koko on oltava suurempi tai yhtä suuri kuin %{min} (nykyinen koko on %{total_file_size} )" + total_file_size_not_between: "yhteensä tiedoston koko on oltava %{min} ja %{max} välillä (nykyinen koko on %{total_file_size} )" + total_file_size_not_equal_to: "yhteensä tiedoston koko on oltava yhtä suuri kuin %{exact} (nykyinen koko on %{total_file_size} )" + duration_not_less_than: "keston on oltava pienempi kuin %{max} (nykyinen kesto on %{duration} )" + duration_not_less_than_or_equal_to: "keston on oltava pienempi tai yhtä suuri kuin %{max} (nykyinen kesto on %{duration} )" + duration_not_greater_than: "keston on oltava suurempi kuin %{min} (nykyinen kesto on %{duration} )" + duration_not_greater_than_or_equal_to: "keston on oltava suurempi tai yhtä suuri kuin %{min} (nykyinen kesto on %{duration} )" + duration_not_between: "keston on oltava välillä %{min} ja %{max} (nykyinen kesto on %{duration} )" + duration_not_equal_to: "keston on oltava yhtä suuri kuin %{exact} (nykyinen kesto on %{duration} )" + limit_out_of_range: + zero: "ei liitettyjä tiedostoja (tiedostojen on oltava %{min} ja %{max} välillä)" + one: "vain yksi liitetty tiedosto (tiedostojen on oltava %{min} ja %{max} välillä)" + other: "Tiedostojen yhteensä on oltava %{min} ja %{max} välillä (liitteenä on %{count} tiedostot)" + limit_min_not_reached: + zero: "ei liitettyjä tiedostoja (tiedostoissa on oltava vähintään %{min} )" + one: "vain yksi tiedosto liitettynä (tiedostojen on oltava vähintään %{min} )" + other: "%{count} tiedostot liitteenä (vähintään %{min} tiedostoja on oltava)" + limit_max_exceeded: + zero: "ei liitettyjä tiedostoja (enintään %{max} tiedostoja)" + one: "liian monta tiedostoa liitettynä (suurin sallittu määrä on %{max} , sain tulokseksi %{count} )" + other: "liian monta tiedostoa liitettynä (suurin sallittu määrä on %{max} , sain tulokseksi %{count} )" + attachment_missing: "puuttuu sen liite" + media_metadata_missing: "ei ole kelvollinen mediatiedosto" + dimension_min_not_included_in: "on oltava suurempi tai yhtä suuri kuin %{width} x %{height} pikseliä" + dimension_max_not_included_in: "on oltava pienempi tai yhtä suuri kuin %{width} x %{height} pikseliä" + dimension_width_not_included_in: "Leveys ei sisälly %{min} ja %{max} pikselien väliin" + dimension_height_not_included_in: "Korkeutta ei ole %{min} ja %{max} pikselien välillä." + dimension_width_not_greater_than_or_equal_to: "leveyden on oltava suurempi tai yhtä suuri kuin %{length} pikseliä" + dimension_height_not_greater_than_or_equal_to: "korkeuden on oltava suurempi tai yhtä suuri kuin %{length} pikseliä" + dimension_width_not_less_than_or_equal_to: "leveyden on oltava pienempi tai yhtä suuri kuin %{length} pikseliä" + dimension_height_not_less_than_or_equal_to: "korkeuden on oltava pienempi tai yhtä suuri kuin %{length} pikseliä" + dimension_width_not_equal_to: "leveyden on oltava yhtä suuri kuin %{length} pikseliä" + dimension_height_not_equal_to: "korkeuden on oltava yhtä suuri kuin %{length} pikselit" + aspect_ratio_not_square: "on oltava neliön muotoinen (nykyinen tiedosto on %{width} x %{height} px)" + aspect_ratio_not_portrait: "tiedoston on oltava pystysuuntainen (nykyinen tiedosto on %{width} x %{height} px)" + aspect_ratio_not_landscape: "tiedoston on oltava vaakasuuntainen (nykyinen tiedosto on %{width} x %{height} px)" + aspect_ratio_not_x_y: "tiedoston on oltava %{authorized_aspect_ratios} (nykyinen tiedosto on %{width} x %{height} px)" + aspect_ratio_invalid: "kuvasuhde on virheellinen (kelvolliset kuvasuhteet ovat %{authorized_aspect_ratios} )" + file_not_processable: "ei ole tunnistettu kelvolliseksi mediatiedostoksi" + pages_not_less_than: "sivumäärän on oltava pienempi kuin %{max} (nykyinen sivumäärä on %{pages} )" + pages_not_less_than_or_equal_to: "sivumäärän on oltava pienempi tai yhtä suuri kuin %{max} (nykyinen sivumäärä on %{pages} )" + pages_not_greater_than: "sivumäärän on oltava suurempi kuin %{min} (nykyinen sivumäärä on %{pages} )" + pages_not_greater_than_or_equal_to: "sivumäärän on oltava suurempi tai yhtä suuri kuin %{min} (nykyinen sivumäärä on %{pages} )" + pages_not_between: "sivumäärän on oltava välillä %{min} ja %{max} (nykyinen sivumäärä on %{pages} )" + pages_not_equal_to: "sivumäärän on oltava yhtä suuri kuin %{exact} (nykyinen sivumäärä on %{pages} )" not_found: title: "Etsimääsi sivua ei löytynyt (404)" message_html: "Yritä uudelleen

Tämä voi olla tilapäinen ongelma. Palaa edelliselle sivulle tai etusivulle ja yritä uudelleen.

Ota yhteyttä tukeen

Jos ongelma jatkuu tai on kiireellinen, kerro siitä meille. Löydä yhteystiedot globaalilta Open Food Network Local -sivulta.

Autat meitä paljon, jos annat mahdollisimman paljon yksityiskohtia puuttuvasta sivusta.

" @@ -206,6 +246,9 @@ fi: disconnect_failure: "Stripe-tilin irrottaminen epäonnistui." success_code: disconnected: "Stripe-tili irrotettu." + taler: + order_status: + claimed: "Maksupyyntö vanheni. Yritä uudelleen." activemodel: errors: messages: @@ -369,6 +412,13 @@ fi: join_community: "Liity yhteisöön" invite_manager: subject: "%{enterprise} on kutsunut sinut hallinnoijaksi" + payment_mailer: + authorize_payment: + subject: "Valtuuta maksusi käyttäjälle %{distributor} OFN-palvelussa" + instructions: "Maksusi summalle %{amount} maksuun %{distributor} vaatii lisätunnistuksen. Valtuuta maksusi seuraavasta URL-osoitteesta:" + authorization_required: + subject: "Maksu vaatii asiakkaan valtuutuksen" + message: "Tilauksen %{order_number} maksu vaatii asiakkaalta lisävaltuutuksen. Asiakkaalle on ilmoitettu sähköpostitse, ja maksu näkyy odottavana, kunnes se on hyväksytty." producer_mailer: order_cycle: subject: "Tilausjakson raportti tuottajalle %{producer}" @@ -539,6 +589,7 @@ fi: errors: vine_api: "API-yhteydessä tapahtui virhe, yritä myöhemmin uudelleen." invalid_voucher: "Alennuskuponki ei ole kelvollinen" + expired: "Kuponki on vanhentunut" not_found_voucher: "Anteeksi, emme löytäneet tätä alennuskuponkia, tarkista koodi." vine_voucher_redeemer_service: errors: @@ -904,6 +955,7 @@ fi: label: Kategoriat tags: label: Tägit + none: Ei mitään search: Haku sort: pagination: @@ -952,6 +1004,10 @@ fi: clone: success: Tuote kloonattiin onnistuneesti error: Tuotteen kloonaaminen epäonnistui + tag_rules: + rules_per_tag: + one: "%{tag} llä on 1 sääntö" + other: "%{tag} llä on %{count} säännöt." product_import: title: Tuontituotteet file_not_found: Tiedostoa ei löytynyt tai sitä ei voitu avata @@ -1346,6 +1402,9 @@ fi: add_new_button: '+ Lisää uusi oletussääntö' no_tags_yet: Tähän yritykseen ei vielä liity tägejä add_new_tag: '+ Lisää uusi tägi' + show_hide_variants: 'Näytä tai Piilota variantit myymälästäni' + show_hide_shipping: 'Näytä tai piilota toimitustavat kassalla' + show_hide_payment: 'Näytä tai Piilota maksutavat kassalla' show_hide_order_cycles: 'Näytä tai piilota tilausjaksot verkkokaupassani' users: legend: "Käyttäjät" @@ -1499,6 +1558,10 @@ fi: invite_manager: user_already_exists: "Käyttäjä on jo olemassa" error: "Jotain meni pieleen" + tag_rules: + not_supported_type: tägi -sääntötyyppiä ei tueta + confirm_delete: Haluatko varmasti poistaa tämän säännön? + destroy_error: tägi -säännön poistamisessa oli ongelma. order_cycles: loading_flash: loading_order_cycles: LADATAAN TILAUSJAKSOJA @@ -1722,6 +1785,8 @@ fi: not_visible: "%{enterprise} ei ole näkyvissä, joten sitä ei löydy kartalta tai hauista" reports: none: ei yhtään + metadata: + report_title: Ilmianna otsikko deprecated: "Tämä raportti on vanhentunut ja se poistetaan tulevasta julkaisusta." hidden_field: "< Piilotettu >" unitsize: YKSIKKÖKOKO @@ -1824,6 +1889,7 @@ fi: display: Näyttö summary_row: Yhteenvetorivi header_row: Otsikkorivi + metadata_rows: Metadata-rivit raw_data: Raakadata formatted_data: Muotoiltu data packing: @@ -2399,8 +2465,15 @@ fi: email_confirmed: "Kiitos sähköpostiosoitteesi vahvistamisesta." email_confirmation_activate_account: "Ennen kuin voimme aktivoida uuden tilisi, meidän on vahvistettava sähköpostiosoitteesi." email_confirmation_greeting: "Hei, %{contact} !" + email_confirmation_profile_created: > + Profiili käyttäjälle %{name} on luotu onnistuneesti! Profiilisi aktivoimiseksi + meidän on vahvistettava tämä sähköpostiosoite. email_confirmation_click_link: "Vahvista sähköpostiosoitteesi ja jatka profiilisi luomista napsauttamalla alla olevaa linkkiä." email_confirmation_link_label: "Vahvista tämä sähköpostiosoite »" + email_confirmation_help_html: > + Kun olet vahvistanut sähköpostiosoitteesi, voit käyttää ylläpitäjän tiliäsi + tässä yrityksessä. Katso %{link} saadaksesi about %{sitename} :n ominaisuuksista + ja aloittaaksesi profiilisi tai verkkokauppasi käytön. email_confirmation_notice_unexpected: "Sait tämän viestin, koska rekisteröidyit palvelussa %{sitename} tai joku luultavasti tuntemasi henkilö kutsui sinut rekisteröitymään. Jos et ymmärrä, miksi saat tämän sähköpostin, kirjoita osoitteeseen %{contact} ." email_social: "Ota yhteyttä:" email_contact: "Lähetä meille sähköpostia:" @@ -3296,6 +3369,8 @@ fi: payment_processing_failed: "Payment could not be processed, please check the details you entered" payment_method_not_supported: "Maksutapaa ei tueta. Valitse toinen." payment_updated: "Maksu päivitetty" + payment_method_taler: + order_summary: "Open Food Network tilaus" cannot_perform_operation: "Maksua ei voitu päivittää" action_required: "Toimenpide vaaditaan" tag_rules: "Tägisäännöt" @@ -3341,6 +3416,7 @@ fi: order_cycles_no_permission_to_coordinate_error: "Yhdelläkään yritykselläsi ei ole lupaa koordinoida tilauskiertoa." order_cycles_no_permission_to_create_error: "Sinulla ei ole oikeutta luoda kyseisen yrityksen koordinoimaa tilausjaksoa." order_cycle_closed: "Valitsemasi tilausjakso on juuri päättynyt. Yritä uudelleen!" + order_cycle_closed_next_steps: "Valitsemasi tilausjakso on juuri sulkeutunut. Ota meihin yhteyttä täydentääksesi tilaustasi# %{order_number} !" back_to_orders_list: "Takaisin tilauslistaan" no_orders_found: "Ei tilaukset löytynyt" order_information: "Tilaustiedot" @@ -3908,6 +3984,8 @@ fi: destroy: success: Webhook-päätepiste poistettu onnistuneesti error: Webhook-päätepisteen poistaminen epäonnistui + test: + success: Joitakin testitietoja lähetetään webhookin URL-osoitteeseen spree: order_updated: "Tilaus päivitetty" cannot_perform_operation: "Tätä toimintoa ei voida suorittaa" @@ -4014,6 +4092,8 @@ fi: logourl: "Logourl" are_you_sure_delete: "Haluatko varmasti poistaa tämän tietueen?" confirm_delete: "Vahvista poisto" + tag_rule: "tägi Rule" + voucher: "Alennuskuponki" configurations: "Asetukset" general_settings: "Yleiset asetukset" site_name: "Sivuston nimi" @@ -4104,6 +4184,8 @@ fi: alt_text: "Vaihtoehtoinen teksti" thumbnail: "Pienoiskuva" back_to_images_list: "Takaisin kuvaluetteloon" + backend_url: "Taustapalvelun URL-osoite" + api_key: "API-avain" email: Sähköposti account_updated: "Tili päivitetty!" email_updated: "Tili päivitetään, kun uusi sähköpostiosoite on vahvistettu." @@ -4420,10 +4502,9 @@ fi: providers: provider: "Palveluntarjoaja" check: "Käteinen/sähköinen maksu/jne. (maksut, joille ei vaadita automaattista vahvistusta)" - pin: "PIN-maksut" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" + taler: "Taleri" payments: source_forms: stripe: @@ -4600,8 +4681,8 @@ fi: or_enter_new_card: "Tai anna uuden kortin tiedot:" remember_this_card: Muistatko tämän kortin? date_picker: - flatpickr_date_format: "Vuosi" - flatpickr_datetime_format: "Vuosi H:i" + flatpickr_date_format: "d.m.Y" + flatpickr_datetime_format: "d.m.Y H:i" today: "Tänään" now: "Nyt" close: "Sulje" @@ -4670,13 +4751,6 @@ fi: subject: "Salasanan palauttamisen ohjeet" confirmation_instructions: subject: "Vahvista OFN-tilisi" - payment_mailer: - authorize_payment: - subject: "Valtuuta maksusi käyttäjälle %{distributor} OFN-palvelussa" - instructions: "Maksusi summalle %{amount} maksuun %{distributor} vaatii lisätunnistuksen. Valtuuta maksusi seuraavasta URL-osoitteesta:" - authorization_required: - subject: "Maksu vaatii asiakkaan valtuutuksen" - message: "Tilauksen %{order_number} maksu vaatii asiakkaalta lisävaltuutuksen. Asiakkaalle on ilmoitettu sähköpostitse, ja maksu näkyy odottavana, kunnes se on hyväksytty." shipment_mailer: shipped_email: dear_customer: "Hyvät asiakas ," @@ -4739,13 +4813,10 @@ fi: webhook_endpoints: title: Webhook-päätepisteet description: Järjestelmän tapahtumat voivat laukaista webhookeja ulkoisiin järjestelmiin. - event_types: - order_cycle_opened: Tilausjakso avattu event_type: header: Tapahtuman tyyppi url: header: Päätepisteen URL-osoite - create_placeholder: Anna etäwebhook-päätepisteen URL-osoite developer_settings: title: Kehittäjäasetukset form: @@ -4876,13 +4947,31 @@ fi: tag_rule_form: tag_rules: shipping_method_tagged_top: "Toimitustavat merkitty tägillä" + shipping_method_tagged_bottom: "ovat:" payment_method_tagged_top: "Maksutavat merkitty tägillä" + payment_method_tagged_bottom: "ovat:" order_cycle_tagged_top: "Tilausjaksot merkitty tägillä" + order_cycle_tagged_bottom: "ovat:" inventory_tagged_top: "Tägätyt varastomuunnelmat" + inventory_tagged_bottom: "ovat:" + variant_tagged_top: "Variantit -tunnisteella" + variant_tagged_bottom: "ovat:" + visible: NÄKYVÄ + not_visible: EI NÄKYVÄ tag_rule_group_form: for_customers_tagged: 'Asiakkaille, jotka on tägätty:' add_new_rule: '+ Lisää uusi sääntö' no_rules_yet: Tähän tägiin ei vielä sovelleta sääntöjä + add_tag_rule_modal: + select_rule_type: "Valitse säännön tyyppi:" + add_rule: "lisää sääntö" + webhook_endpoint_form: + url: + create_placeholder: Anna etäwebhook-päätepisteen URL-osoite + event_types: + order_cycle_opened: Tilausjakso avattu + payment_status_changed: Lähetä webhook maksun tilan muutoksesta + test_endpoint: Testaa webhookin päätepiste invisible_captcha: sentence_for_humans: "Jätä tyhjäksi" timestamp_error_message: "Yritä uudelleen 5 sekunnin kuluttua." diff --git a/config/locales/fil_PH.yml b/config/locales/fil_PH.yml index b549499d6c..54933f8096 100644 --- a/config/locales/fil_PH.yml +++ b/config/locales/fil_PH.yml @@ -541,6 +541,7 @@ fil_PH: label: mga kategorya tags: label: tags + none: wala search: hanapin product_variant_row: new_variant: bagong uri diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 49c3475e13..5badf0c937 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -116,26 +116,68 @@ fr: too_short: "est trop court (minimum %{count} caractère)" errors: messages: - content_type_invalid: "a un contenu invalide" - file_size_out_of_range: "la taille %{file_size} n'est pas dans la fourchette requise" - limit_out_of_range: "le nombre total est hors de la fourchette" - image_metadata_missing: "n'est pas une image valide" - dimension_min_inclusion: "doit être plus grand ou égal à %{width} x %{height} pixel." - dimension_max_inclusion: "doit être plus petit our égal à %{width} x %{height} pixel." - dimension_width_inclusion: "la largeur n'est pas comprise entre %{min} et %{max} pixel." - dimension_height_inclusion: "la hauteur n'est pas comprise entre %{min} et %{max} pixel." - dimension_width_greater_than_or_equal_to: "la largeur doit être supérieure ou égale à %{length} pixel." - dimension_height_greater_than_or_equal_to: "la hauteur doit être supérieure ou égale à %{length} pixel." - dimension_width_less_than_or_equal_to: "la largeur doit être inférieure ou égale à %{length} pixel." - dimension_height_less_than_or_equal_to: "la hauteur doit être inférieure ou égale à %{length} pixel." - dimension_width_equal_to: "la largeur doit être égale à %{length} pixel." - dimension_height_equal_to: "la hauteur doit être égale à %{length} pixel." - aspect_ratio_not_square: "doit être une image carrée" - aspect_ratio_not_portrait: "doit être une image en mode portrait" - aspect_ratio_not_landscape: "doit être une image en mode paysage" - aspect_ratio_is_not: "doit avoir un rapport d'aspect de %{aspect_ratio}" - aspect_ratio_unknown: "a un rapport d'aspect inconnu" - image_not_processable: "n'est pas une image valide" + content_type_invalid: + one: "a un contenu invalide (le type de contenu autorisé est %{authorized_human_content_types})" + many: "a un contenu invalide (les types de contenus autorisés sont %{authorized_human_content_types})" + other: "a un contenu invalide (les types de contenus autorisés sont %{authorized_human_content_types})" + content_type_spoofed: + one: "a un type de contenu qui n'est pas équivalent avec celui détecté (le type de contenu autorisé est %{authorized_human_content_types})" + many: "a un type de contenu qui n'est pas équivalent avec celui détecté (les types de contenus autorisés sont %{authorized_human_content_types})" + other: "a un type de contenu qui n'est pas équivalent avec celui détecté (les types de contenus autorisés sont %{authorized_human_content_types})" + file_size_not_less_than: "la taille du fichier doit être inférieure à %{max} (la taille actuelle est %{file_size})" + file_size_not_less_than_or_equal_to: "la taille du fichier doit être inférieure ou égale à %{max} (la taille actuelle est %{file_size})" + file_size_not_greater_than: "la taille du fichier doit être supérieure à %{min} (la taille actuelle est %{file_size})" + file_size_not_greater_than_or_equal_to: "la taille du fichier doit être supérieure ou égale à %{min} (la taille actuelle est %{file_size})" + file_size_not_between: "la taille du fichier doit être comprise entre %{min} et %{max} (la taille actuelle est %{file_size})" + file_size_not_equal_to: "La taille du fichier doit être égale à %{exact} (la taille actuelle est %{file_size} )" + total_file_size_not_less_than: "La taille totale du fichier doit être inférieure à %{max} (la taille actuelle est %{total_file_size} )." + total_file_size_not_less_than_or_equal_to: "La taille totale du fichier doit être inférieure ou égale à %{max} (la taille actuelle est %{total_file_size} )." + total_file_size_not_greater_than: "La taille totale du fichier doit être supérieure à %{min} (la taille actuelle est %{total_file_size} )." + total_file_size_not_greater_than_or_equal_to: "La taille totale du fichier doit être supérieure ou égale à %{min} (la taille actuelle est %{total_file_size} )." + total_file_size_not_between: "La taille totale du fichier doit être comprise entre %{min} et %{max} (la taille actuelle est %{total_file_size} )." + total_file_size_not_equal_to: "La taille totale du fichier doit être égale à %{exact} (la taille actuelle est %{total_file_size} )." + duration_not_less_than: "La durée doit être inférieure à %{max} (la durée actuelle est %{duration} )" + duration_not_less_than_or_equal_to: "La durée doit être inférieure ou égale à %{max} (la durée actuelle est %{duration})." + duration_not_greater_than: "La durée doit être supérieure à %{min} (la durée actuelle est %{duration})" + duration_not_greater_than_or_equal_to: "La durée doit être supérieure ou égale à %{min} (la durée actuelle est %{duration})" + duration_not_between: "La durée doit être comprise entre %{min} et %{max} (la durée actuelle est %{duration})" + duration_not_equal_to: "La durée doit être égale à %{exact} (la durée actuelle est %{duration})" + limit_out_of_range: + zero: "Aucun fichier joint (doit contenir entre %{min} et %{max} fichiers)" + one: "Seulement 1 fichier joint (doit contenir entre %{min} et %{max} fichiers)" + other: "Le nombre total de fichiers doit être compris entre %{min} et %{max} (il y a %{count} fichiers joints)." + limit_min_not_reached: + zero: "Aucun fichier joint (doit contenir au moins %{min} fichiers)" + one: "Seulement 1 fichier joint (doit contenir au moins %{min} fichiers)" + other: "%{count} fichiers joints (doit contenir au moins %{min} fichiers)" + limit_max_exceeded: + zero: "Aucun fichier joint (au maximum %{max} fichiers)" + one: "Trop de fichiers joints (le maximum est %{max} fichiers, il y en a %{count} )" + other: "Trop de fichiers joints (le maximum est %{max} fichiers, il y en a %{count} )" + attachment_missing: "une pièce jointe est manquante" + media_metadata_missing: "n'est pas un fichier multimédia valide" + dimension_min_not_included_in: "doit être plus grand ou égal à %{width} x %{height} pixels" + dimension_max_not_included_in: "doit être plus petit ou égal à %{width} x %{height} pixels" + dimension_width_not_included_in: "la largeur n'est pas comprise entre %{min} et %{max} pixels" + dimension_height_not_included_in: "la hauteur n'est pas comprise entre %{min} et %{max} pixels" + dimension_width_not_greater_than_or_equal_to: "la largeur doit être supérieure ou égale à %{length} pixels" + dimension_height_not_greater_than_or_equal_to: "la hauteur doit être supérieure ou égale à %{length} pixels" + dimension_width_not_less_than_or_equal_to: "la largeur doit être inférieure ou égale à %{length} pixels" + dimension_height_not_less_than_or_equal_to: "la hauteur doit être inférieure ou égale à %{length} pixels" + dimension_width_not_equal_to: "la largeur doit être égale à %{length} pixels" + dimension_height_not_equal_to: "La hauteur doit être égale à %{length} pixels" + aspect_ratio_not_square: "doit être carré (le fichier actuel est %{width} x %{height} px)" + aspect_ratio_not_portrait: "doit être au format portrait (le fichier actuel mesure %{width} x %{height} px)" + aspect_ratio_not_landscape: "doit être au format paysage (le fichier actuel mesure %{width} x %{height} px)" + aspect_ratio_not_x_y: "doit être %{authorized_aspect_ratios} (le fichier actuel est %{width} x %{height} px)" + aspect_ratio_invalid: "possède un ratio d'image invalide (les ratios d'image valides sont %{authorized_aspect_ratios})" + file_not_processable: "n'est pas identifié comme un fichier multimédia valide" + pages_not_less_than: "La durée doit être inférieure à %{max} (la durée actuelle est %{pages})" + pages_not_less_than_or_equal_to: "La durée doit être inférieure ou égale à %{max} (la durée actuelle est %{pages})" + pages_not_greater_than: "La durée doit être supérieure à %{max} (la durée actuelle est %{pages})" + pages_not_greater_than_or_equal_to: "La durée doit être supérieure ou égale à %{min} (la durée actuelle est %{pages})" + pages_not_between: "La durée doit être comprise entre %{min} et %{max} (la durée actuelle est %{pages})" + pages_not_equal_to: "La durée doit être égale à %{exact} (la durée actuelle est %{pages})" not_found: title: "La page que vous recherchez n'existe pas (erreur 404)" message_html: " Veuillez essayer à nouveau

Il s'agit peut-être d'un problème temporaire. Veuillez cliquer sur le bouton retour de votre navigateur ou retourner à l' Accueil et recommencez.

Contacter notre support

Si le problème persiste ou si c'est urgent, veuillez nous contacter.

" @@ -206,6 +248,9 @@ fr: disconnect_failure: "Déconnecter Stripe a échoué." success_code: disconnected: "Le compte Stripe est déconnecté." + taler: + order_status: + claimed: "La demande de paiement a expiré. Merci d'essayer à nouveau." activemodel: errors: messages: @@ -370,6 +415,13 @@ fr: join_community: "Accéder au forum" invite_manager: subject: "%{enterprise} vous a invité comme gestionnaire" + payment_mailer: + authorize_payment: + subject: "Veuillez autoriser votre paiement à %{distributor} sur CoopCircuits." + instructions: "Votre paiement de %{amount} à %{distributor} demande une autorisation additionnelle. Veuillez suivre ce lien afin d'autoriser votre paiement :" + authorization_required: + subject: "Un paiement nécessite une autorisation de l'acheteur" + message: "Un paiement pour la commande %{order_number} nécessite une autorisation supplémentaire de la part de l'acheteur. L'acheteur a reçu un email et le statut du paiement restera en attente jusqu'à ce que l'autorisation soit attribuée." producer_mailer: order_cycle: subject: "Rapport de cycle de vente pour %{producer}" @@ -540,6 +592,7 @@ fr: errors: vine_api: "Il y a eu une erreur de communication avec l'API, merci de réessayer." invalid_voucher: "Le bon de réduction n'est pas valide." + expired: "Le bon de réduction a expiré." not_found_voucher: "Désolé, nous n'avons pas trouvé ce bon de réduction. Merci de vérifier le code qui vous a été transmis." vine_voucher_redeemer_service: errors: @@ -905,6 +958,7 @@ fr: label: Catégories tags: label: Tags + none: Aucun search: Rechercher sort: pagination: @@ -1457,6 +1511,7 @@ fr: owner: Gestionnaire principal producer: Producteur sells_options: + unspecified: non spécifié none: aucun own: les miens any: tous @@ -2897,7 +2952,7 @@ fr: shipping_method_destroy_error: "Cette méthode de livraison ne peut pas être supprimée car elle est référencée dans une commande : %{number}." fees: "Frais" fee_name: "Nom de la marge/commission" - fee_owner: "Propriétaire des droits" + fee_owner: "Propriétaire de la marge/commission" item_cost: "Coût du produit" bulk: "Vrac" shop_variant_quantity_min: "min" @@ -3322,6 +3377,8 @@ fr: payment_processing_failed: "Le paiement n'a pas pu être traité, veuillez vérifier les informations saisies" payment_method_not_supported: "Cette méthode de paiement n'est pas maintenue. Veuillez en sélectionner une autre." payment_updated: "Paiement mis à jour" + payment_method_taler: + order_summary: "Commande CoopCircuits" cannot_perform_operation: "Le paiement n'a pas pu être mis à jour." action_required: "Une action est requise" tag_rules: "Règles de tag" @@ -3998,6 +4055,8 @@ fr: destroy: success: Le webhook a bien été supprimé. error: Le webhook n'a pas pu être supprimé. + test: + success: Des données test vont être envoyées à l'URL du webhook spree: order_updated: "La commande a été mise à jour" cannot_perform_operation: "Cette opération ne peut pas être réalisée" @@ -4104,6 +4163,8 @@ fr: logourl: "URL logo" are_you_sure_delete: "Etes-vous certain de vouloir supprimer cet élément ?" confirm_delete: "Confirmer la suppression" + tag_rule: "Règle de tag" + voucher: "Bon de réduction" configurations: "Configurations" general_settings: "Configurations générales" site_name: "Nom du site" @@ -4194,6 +4255,8 @@ fr: alt_text: "Texte alternatif" thumbnail: "Miniature" back_to_images_list: "Retour à la liste des images" + backend_url: "URL du backend" + api_key: "Clé API" email: Email account_updated: "Compte mis à jour!" email_updated: "Le compte sera mis à jour une fois la nouvelle adresse email confirmée." @@ -4510,10 +4573,9 @@ fr: providers: provider: "Fournisseur" check: "Espèces / chèques / virements / autres " - pin: "Méthode de paiement réservée à l'Australie (Pin Payments)" paypalexpress: "PayPal Express" - stripeconnect: "Stripe (ancienne version)" stripesca: "Stripe" + taler: "Taler" payments: source_forms: stripe: @@ -4761,13 +4823,6 @@ fr: subject: "Instructions de mise à jour du mot de passe" confirmation_instructions: subject: "Veuillez confirmer votre compte" - payment_mailer: - authorize_payment: - subject: "Veuillez autoriser votre paiement à %{distributor} sur CoopCircuits." - instructions: "Votre paiement de %{amount} à %{distributor} demande une autorisation additionnelle. Veuillez suivre ce lien afin d'autoriser votre paiement :" - authorization_required: - subject: "Un paiement nécessite une autorisation de l'acheteur" - message: "Un paiement pour la commande %{order_number} nécessite une autorisation supplémentaire de la part de l'acheteur. L'acheteur a reçu un email et le statut du paiement restera en attente jusqu'à ce que l'autorisation soit attribuée." shipment_mailer: shipped_email: dear_customer: "Cher Acheteur," @@ -4830,13 +4885,10 @@ fr: webhook_endpoints: title: 'Webhook ' description: Les événements dans le système peuvent déclencher des webhooks vers des systèmes externes. - event_types: - order_cycle_opened: Cycle de vente ouvert event_type: header: Type d'évènement url: header: URL du point de terminaison - create_placeholder: Entrez l'URL du point de terminaison du webhook developer_settings: title: Paramètres développeurs form: @@ -4998,6 +5050,13 @@ fr: add_tag_rule_modal: select_rule_type: "Choisir le type de règle:" add_rule: "Valider" + webhook_endpoint_form: + url: + create_placeholder: Entrez l'URL du point de terminaison du webhook + event_types: + order_cycle_opened: Cycle de vente ouvert + payment_status_changed: Poster webhook sur le changement du statut de paiement + test_endpoint: Tester le point de terminaison du webhook invisible_captcha: sentence_for_humans: "Merci de laisser ce champ libre" timestamp_error_message: "S'il vous plaît réessayez après 5 secondes." diff --git a/config/locales/fr_BE.yml b/config/locales/fr_BE.yml index bb751f227b..88865a60f3 100644 --- a/config/locales/fr_BE.yml +++ b/config/locales/fr_BE.yml @@ -72,10 +72,17 @@ fr_BE: preferred_first_item: "Premier élément de la calculatrice :" preferred_additional_item: "Coût supplémentaire de l'article :" preferred_max_items: "Nombre maximum d'éléments de la calculatrice :" + preferred_minimal_amount: "Montant minimum" + preferred_normal_amount: "Montant normal" + preferred_discount_amount: "Montant de la réduction" + preferred_unit_from_list: "A l'unité depuis la liste" + preferred_per_unit: "A l'unité" enterprise: white_label_logo_link: "Lien pour le logo utilisé en vitrine" errors: models: + enterprise_fee: + inherit_tax_requires_per_item_calculator: "L'héritage de la catégorie de taxe nécessite un calculateur par article." spree/image: attributes: attachment: @@ -109,26 +116,68 @@ fr_BE: too_short: "est trop court (le minimum est %{count} caractères)" errors: messages: - content_type_invalid: "a un type de contenu non valide" - file_size_out_of_range: "la taille %{file_size} n'est pas comprise dans la plage requise" - limit_out_of_range: "le nombre total est hors plage" - image_metadata_missing: "n'est pas une image valide" - dimension_min_inclusion: "doit être supérieur ou égal à %{width} x %{height} pixel." - dimension_max_inclusion: "doit être inférieur ou égal à %{width} x %{height} pixel." - dimension_width_inclusion: "la largeur n'est pas incluse entre les pixels %{min} et %{max} ." - dimension_height_inclusion: "la hauteur n'est pas incluse entre %{min} et %{max} pixel." - dimension_width_greater_than_or_equal_to: "la largeur doit être supérieure ou égale au pixel %{length} ." - dimension_height_greater_than_or_equal_to: "la hauteur doit être supérieure ou égale au pixel %{length} ." - dimension_width_less_than_or_equal_to: "la largeur doit être inférieure ou égale au pixel %{length} ." - dimension_height_less_than_or_equal_to: "la hauteur doit être inférieure ou égale au pixel %{length} ." - dimension_width_equal_to: "la largeur doit être égale au pixel %{length} ." - dimension_height_equal_to: "la hauteur doit être égale au pixel %{length} ." - aspect_ratio_not_square: "doit être une image carrée" - aspect_ratio_not_portrait: "doit être une image en format portrait" - aspect_ratio_not_landscape: "doit être une image en format paysage" - aspect_ratio_is_not: "doit avoir un rapport hauteur / largeur de %{aspect_ratio}" - aspect_ratio_unknown: "a un rapport hauteur/largeur inconnu" - image_not_processable: "n'est pas une image valide" + content_type_invalid: + one: "a un contenu invalide (le type de contenu autorisé est %{authorized_human_content_types})" + many: "a un contenu invalide (les types de contenus autorisés sont %{authorized_human_content_types})" + other: "a un contenu invalide (les types de contenus autorisés sont %{authorized_human_content_types})" + content_type_spoofed: + one: "a un type de contenu qui ne correspond pas a celui détecté grâce au contenu (type de contenu autorisé %{authorized_human_content_types})" + many: "a un type de contenu qui ne correspond pas a celui détecté grâce au contenu (les types de contenus autorisés sont %{authorized_human_content_types})" + other: "a un type de contenu qui ne correspond pas a celui détecté grâce au contenu (les types de contenus autorisés sont %{authorized_human_content_types})" + file_size_not_less_than: "la taille du fichier doit être inférieure à %{max} (taille actuelle %{file_size})" + file_size_not_less_than_or_equal_to: "la taille du fichier doit être inférieure ou égale à %{max} (taille actuelle : %{file_size})" + file_size_not_greater_than: "la taille du fichier doit être supérieure à%{min} (taille actuelle : %{file_size})" + file_size_not_greater_than_or_equal_to: "la taille du fichier doit être supérieure ou égale à %{min} (taille actuelle : %{file_size})" + file_size_not_between: "la taille du fichier doit être comprise entre %{min} et %{max} (taille actuelle : %{file_size})" + file_size_not_equal_to: "La taille du fichier doit être égale à %{exact} (la taille actuelle est %{file_size} )" + total_file_size_not_less_than: "La taille totale du fichier doit être inférieure à %{max} (taille actuelle : %{total_file_size} )." + total_file_size_not_less_than_or_equal_to: "La taille totale du fichier doit être inférieure ou égale à %{max} (taille actuelle : %{total_file_size} )." + total_file_size_not_greater_than: "La taille totale du fichier doit être supérieure à %{min} (taille actuelle : %{total_file_size} )." + total_file_size_not_greater_than_or_equal_to: "La taille totale du fichier doit être supérieure ou égale à %{min} (la taille actuelle est %{total_file_size} )." + total_file_size_not_between: "La taille totale du fichier doit être comprise entre %{min} et %{max} (la taille actuelle est %{total_file_size} )." + total_file_size_not_equal_to: "La taille totale du fichier doit être égale à %{exact} (la taille actuelle est %{total_file_size} )." + duration_not_less_than: "La durée doit être inférieure à %{max} (la durée actuelle est %{duration} )" + duration_not_less_than_or_equal_to: "La durée doit être inférieure ou égale à %{max} (la durée actuelle est %{duration} )." + duration_not_greater_than: "La durée doit être supérieure à %{min} (la durée actuelle est %{duration} )" + duration_not_greater_than_or_equal_to: "La durée doit être supérieure ou égale à %{min} (la durée actuelle est %{duration} )." + duration_not_between: "La durée doit être comprise entre %{min} et %{max} (la durée actuelle est %{duration} )." + duration_not_equal_to: "La durée doit être égale à %{exact} (la durée actuelle est %{duration} )" + limit_out_of_range: + zero: "Aucun fichier joint (doit contenir entre %{min} et %{max} fichiers)" + one: "Seulement 1 fichier joint (doit contenir entre %{min} et %{max} fichiers)" + other: "Le nombre total de fichiers doit être compris entre %{min} et %{max} (il y a %{count} fichiers joints)." + limit_min_not_reached: + zero: "Aucun fichier joint (doit contenir au moins %{min} fichiers)" + one: "Seulement 1 fichier joint (doit contenir au moins %{min} fichiers)" + other: "%{count} fichiers joints (doit contenir au moins %{min} fichiers)" + limit_max_exceeded: + zero: "Aucun fichier joint (au maximum %{max} fichiers)" + one: "Trop de fichiers joints (le maximum est %{max} , il y en a %{count} )" + other: "Trop de fichiers joints (le maximum est %{max} , il y en a %{count} )" + attachment_missing: "une pièce jointe est manquante" + media_metadata_missing: "n'est pas un fichier multimédia valide" + dimension_min_not_included_in: "doit être plus grand ou égal à %{width} x %{height} pixels" + dimension_max_not_included_in: "doit être plus petit ou égal à %{width} x %{height} pixels" + dimension_width_not_included_in: "la largeur n'est pas comprise entre %{min} et %{max} pixels" + dimension_height_not_included_in: "la hauteur n'est pas comprise entre %{min} et %{max} pixels" + dimension_width_not_greater_than_or_equal_to: "la largeur doit être supérieure ou égale à %{length} pixels" + dimension_height_not_greater_than_or_equal_to: "la hauteur doit être supérieure ou égale à %{length} pixels" + dimension_width_not_less_than_or_equal_to: "la largeur doit être inférieure ou égale à %{length} pixels" + dimension_height_not_less_than_or_equal_to: "la hauteur doit être inférieure ou égale à %{length} pixels" + dimension_width_not_equal_to: "la largeur doit être égale à %{length} pixels" + dimension_height_not_equal_to: "La hauteur doit être égale à %{length} pixels" + aspect_ratio_not_square: "doit être carré (le fichier actuel est %{width} x %{height} px)" + aspect_ratio_not_portrait: "doit être au format portrait (le fichier actuel mesure %{width} x %{height} px)" + aspect_ratio_not_landscape: "doit être au format paysage (le fichier actuel mesure %{width} x %{height} px)" + aspect_ratio_not_x_y: "doit être %{authorized_aspect_ratios} (le fichier actuel est %{width} x %{height} px)" + aspect_ratio_invalid: "possède un ratio d'image invalide (les ratios d'iimage valides sont %{authorized_aspect_ratios} )" + file_not_processable: "n'est pas identifié comme un fichier multimédia valide" + pages_not_less_than: "Le nombre de pages doit être inférieur à %{max} (le nombre de pages actuel est %{pages} )" + pages_not_less_than_or_equal_to: "Le nombre de pages doit être inférieur ou égal à %{max} (le nombre de pages actuel est %{pages} )." + pages_not_greater_than: "Le nombre de pages doit être supérieur à %{min} (le nombre de pages actuel est %{pages} )." + pages_not_greater_than_or_equal_to: "Le nombre de pages doit être supérieur ou égal à %{min} (le nombre de pages actuel est %{pages} )." + pages_not_between: "Le nombre de pages doit être compris entre %{min} et %{max} (le nombre de pages actuel est %{pages} )." + pages_not_equal_to: "Le nombre de pages doit être égal à %{exact} (le nombre de pages actuel est %{pages} )." not_found: title: "La page que vous cherchiez n'existe pas (404)" message_html: "Veuillez réessayer

Il s'agit peut-être d'un problème temporaire. Veuillez cliquer sur le bouton Précédent pour revenir à l'écran précédent ou revenir à l'accueil et réessayer.

Contactez le support

Si le problème persiste ou est urgent, veuillez nous en informer. Retrouvez nos coordonnées sur la page locale mondiale d’Open Food Network .

Cela nous aide vraiment si vous pouvez donner autant de détails que possible sur le sujet de la page manquante.

" @@ -155,6 +204,7 @@ fr_BE: incorrect_cvc: "Le code de sécurité de la carte est incorrect." incorrect_zip: "Le code postal de la carte n'a pas été validé." card_declined: "La carte a été refusée." + missing: "Un client qui n'a pas de carte bancaire est entrain d'être facturé. " processing_error: "Une erreur s'est produite lors du traitement de la carte." rate_limit: "Une erreur s'est produite en raison de requêtes atteignant l'API trop rapidement. Veuillez nous faire savoir si vous rencontrez constamment cette erreur." authentication_required: "Le paiement a été refusé car la transaction nécessite une authentification." @@ -198,6 +248,9 @@ fr_BE: disconnect_failure: "Échec à la déconnexion de Stripe" success_code: disconnected: "Le compte Stripe a été déconnecté." + taler: + order_status: + claimed: "La demande de paiement a expiré. Veuillez réessayer." activemodel: errors: messages: @@ -231,6 +284,8 @@ fr_BE: community_forum_url: "Lien vers le forum communautaire" customer_instructions: "Précisions pour la personne qui achète" additional_information: "Information complémentaire" + connect_app: + url: "https://n8n.openfoodnetwork.org/webhook/regen/connect-enterprise" devise: passwords: spree_user: @@ -267,17 +322,36 @@ fr_BE: updated_not_active: "Votre mot de passe a bien été réinitialisé, mais votre email n'a pas encore été confirmé." updated: "Votre mot de passe a été changé avec succès. Vous êtes à présent connecté." send_instructions: "Un email a été envoyé avec des instructions pour confirmer votre adresse email. Vérifiez votre boite mail!" + oidc: + failure: "Impossible de se connecter : %{error}" + record_not_unique: "%{uid} est déjà associé à un autre compte" + home_page_alert_html: "Alerte HTML de la page d'accueil" item_description: "Description de l'article" + menu_1_icon_name: "Nom de l'icône du menu 1" + menu_2_icon_name: "Nom de l'icône du menu 2" + menu_3_icon_name: "Nom de l'icône du menu 3" + menu_4_icon_name: "Nom de l'icône du menu 4" + menu_5_icon_name: "Nom de l'icône du menu 5" + menu_6_icon_name: "Nom de l'icône du menu 6" + menu_7_icon_name: "Nom de l'icône du menu 7" models: order_cycle: cloned_order_cycle_name: "Copie de %{order_cycle}" tax_rate: included_in_price: "Inclus dans le prix" open_street_map_enabled: "Open Street Map activé" + open_street_map_default_latitude: "Latitude par défaut Open Street Map" + open_street_map_default_longitude: "Longitude par défaut Open Street Map" + open_street_map_provider_name: "Nom du fournisseur Open Street Map" + open_street_map_provider_options: "Options du fournisseur Open Street Map" + producer_signup_pricing_table_html: "Tableau HTML des prix d'inscription des producteurs" + producers_social: "Réseau social producteur" resume_order: "Reprendre la commande" sku: "Référence produit" subtotal: "Sous-total" tax_rate: "TVA applicable" + with_tax_incl: "%{amount} taxe inclue" + producer_mail_qty: Qté validators: date_time_string_validator: not_string_error: "doit être une chaîne" @@ -291,19 +365,34 @@ fr_BE: Nous allons examiner la question, mais n'hésitez pas à nous faire savoir si le problème persiste. backorder_mailer: backorder_failed: + subject: "Une commande fournisseur automatique a échoué" + headline: "La commande fournisseur a échoué" + description: | + Nous avons essayé de passer ou mettre à jour une commande fournisseur pour des articles en rupture de stock mais + cela n'a pas fonctionné. Il se peut que vous ayez un stock négatif et que vous deviez résoudre + le problème pour commander un stock plus important. hints: | Il se peut que vous deviez aller dans les paramètres du cycle de vente et reconnecter votre compte. Vérifiez également que le catalogue de votre fournisseur n'a pas changé et qu'il fournit toujours les produits dont vous avez besoin. N'hésitez pas à nous contacter si vous avez des questions. + order: "Commande impactée : %{number}" stock: "Stock" product: "Produit" backorder_incomplete: + subject: "Une commande fournisseur automatique n'a pas pu aboutir" + headline: "Votre commande fournisseur n'est pas terminée" + description: | + Nous avons essayé de passer ou mettre à jour une commande fournisseur pour des articles en rupture de stock mais + cela n'a pas fonctionné. Les quantités en attente peuvent être trop élevées si + vous avez eu des annulations. De plus, votre commande fournisseur ne sera pas exécutée + tant qu'elle est à l'état de projet. hints: | Il se peut que vous deviez aller dans les paramètres du cycle de vente et reconnecter votre compte. Vérifiez également que le catalogue de votre fournisseur n'a pas changé et qu'il fournit toujours les produits dont vous avez besoin. N'hésitez pas à nous contacter si vous avez des questions. + affected: "%{enterprise}: %{order_cycle}" enterprise_mailer: confirmation_instructions: subject: "Confirmez l'adresse email pour %{enterprise}" @@ -319,6 +408,13 @@ fr_BE: join_community: "Rejoindre la communauté" invite_manager: subject: "%{enterprise} vous a invité comme manager" + payment_mailer: + authorize_payment: + subject: "Veuillez autoriser votre paiement à %{distributor} sur OFN." + instructions: "Votre paiement de %{amount} à %{distributor} demande une autorisation additionnelle. Veuillez suivre ce lien afin d'autoriser votre paiement :" + authorization_required: + subject: "Un paiement nécessite une autorisation de l'acheteur" + message: "Un paiement pour la commande %{order_number} nécessite une autorisation supplémentaire de la part de l'acheteur. L'acheteur a reçu un email et le statut du paiement restera en attente jusqu'à ce que le paiement soit autorisé." producer_mailer: order_cycle: subject: "Rapport de cycle de vente pour %{producer}" @@ -395,6 +491,7 @@ fr_BE: cancel_order: "Annuler la commande" confirm_send_invoice: "La facture de cette commande va être transmise au client. Etes-vous sûr de vouloir continuer ?" confirm_resend_order_confirmation: "Etes-vous sûr de vouloir renvoyer le mail de confirmation de commande ?" + must_have_valid_business_number: "%{enterprise_name} doit avoir un SIRET valide avant que les factures puissent être utilisées." invoice: "Facture" invoices: "Factures" file: "Fichier" @@ -460,6 +557,7 @@ fr_BE: voucher: Bon d'achat processing_payment: "Paiement en cours..." no_pending_payments: "Aucun paiement en attente" + invalid_payment_state: "Statut de paiement invalide : %{state}" filter_results: Filtrer les résultats clear_filters: Effacer les filtres quantity: Quantité @@ -485,7 +583,14 @@ fr_BE: payment_could_not_complete: "Le paiement n'a pas pu être finalisé" vine_voucher_validator_service: errors: + vine_api: "Il y a eu une erreur de communication avec l'API, merci de réessayer." invalid_voucher: "Le bon de réduction n'est pas valide." + expired: "Le bon de réduction a expiré." + not_found_voucher: "Désolé, nous n'avons pas trouvé ce bon de réduction. Merci de vérifier le code qui vous a été transmis." + vine_voucher_redeemer_service: + errors: + vine_api: "Il y a eu une erreur de communication avec l'API" + redeeming_failed: "Echec de la prise en compte du bon de réduction" actions: create_and_add_another: "Créer et ajouter un nouveau" create: "Créer" @@ -656,6 +761,7 @@ fr_BE: status: Statut ok: Ok instance_secret_key: Clé Secrète de l'Instance + instance_publishable_key: Clé publiable de l'instance account_id: Identifiant Compte business_name: Nom de l'entreprise charges_enabled: Frais activés @@ -674,7 +780,12 @@ fr_BE: connected_app_settings: edit: title: "Paramètres de l'application connectée" - enabled_legend: "Activer les applications connectées" + info_html: "Les applications autorisées apparaitront dans Configuration Entreprise > Applications connectées" + enabled_legend: "Applications connectées activées" + connected_apps_enabled: + discover_regen: Portail Discover Regenerative + affiliate_sales_data: API de commandes anonymisées DFC à fins de recherche + vine: Éditeur de bons de réduction (VINE) update: resource: Paramètres de l'application connectée customers: @@ -718,18 +829,35 @@ fr_BE: user_guide: Guide d'utilisation map: Carte dfc_product_imports: + connection_invalid_html: | + La connexion avec votre compte OIDC a échoué. + Merci de rafraîchir votre connexion OIDC à : %{oidc_settings_link} absent_variant: reset: "Réinitialiser le stock" index: title: "Catalogue produit DFC" + catalog_url: "%{count}produits à importer de : %{catalog_url}" + absent_products: + one: | + Un produit n'est plus dans le catalogue produits. + Il sera marqué indisponible en remettant votre stock à zéro. + other: | + %{count}produits ne sont plus dans votre catalogue produits. + Ils seront marqués indisponibles quand vous remettrez votre stock à zéro. + enterprise: "Importation vers l'entreprise : %{enterprise_name}" select_all: "Sélectionner / désélectionner tout" update: Mettre à jour new: Nouveau selected: zero: "0 sélectionné" one: "1 sélectionné" + other: "%{count} sélectionné" import: Importer invalid_url: L'URL de ce catalogue n'est pas valide. + import: + title: "Import du catalogue produit DFC" + imported_products: "Produits importés : %{count}" + reset_products: "Réinitialiser le stock pour les produits absents : %{count}" enterprise_fees: index: title: "Marges et Commissions" @@ -811,15 +939,19 @@ fr_BE: filters: search_products: Rechercher des produits search_for_producers: Rechercher des producteurs + select_producer: Sélectionner producteur all_producers: Tous les producteurs search_for_categories: Rechercher des catégories + select_category: Sélectionner catégorie all_categories: Toutes catégories + select_tag: Choisir le tag producers: label: Producteur·trice·s categories: label: Les catégories tags: label: Tags + none: Aucun search: Rechercher sort: pagination: @@ -856,6 +988,9 @@ fr_BE: delete_product: success: Le produit a bien été supprimé error: Le produit n'a pas pu être supprimé + delete_variant: + success: La variante a bien été supprimée + error: La variante n'a pas pu être supprimée variant_row: none_tax_category: Aucun search_for_tax_categories: "Rechercher des catégories de taxes" @@ -867,6 +1002,11 @@ fr_BE: clone: success: Le produit a bien été dupliqué error: Impossible de dupliquer le produit + tag_rules: + rules_per_tag: + one: "%{tag} comporte 1 règle" + many: "%{tag} comporte %{count} règles" + other: "%{tag} comporte %{count} règles" product_import: title: Import liste produits file_not_found: Fichier non trouvé ou impossible à ouvrir @@ -909,6 +1049,9 @@ fr_BE: tax_categories: TVA applicable shipping_categories: Condition de transport dfc_import_form: + title: "Importer depuis le catalogue DFC" + enterprise: "Créer les produits pour l'entreprise" + catalog_url: "URL du catalogue DFC" preview: Aperçu import: review: Vérifier @@ -1037,6 +1180,9 @@ fr_BE: variants_without_unit_value: "ATTENTION: certaines variantes n'ont pas de nombre d'unités" all: "Tous" select_variant: "Choisir une variante" + note: + note_label: "Note :" + no_note_present: "Aucune note n'a été ajoutée." enterprise: select_outgoing_oc_products_from: Sélectionner les produits sortants pour le cycle de vente parmi enterprises: @@ -1077,6 +1223,7 @@ fr_BE: disabled: Désactiver business_address: company_legal_name: Nom légal d'entreprise + company_placeholder: Exemple Soc. address1: Adresse du siège social address1_placeholder: 123, rue High. address2: Adresse (suite) @@ -1107,6 +1254,7 @@ fr_BE: create_button: Créer une commission enterprise_permissions: legend: "Permissions Inter-entreprises" + enterprise_relationships: Relations inter-entreprises images: legend: "Images" logo: Logo @@ -1146,6 +1294,9 @@ fr_BE: own: Les miens sells: Produits vendus sells_tip: "Aucun - l'entreprise ne vend pas en direct aux acheteurs.
Les miens - l'entreprise vend ses propres produits aux acheteurs.
Tous - l'entreprise vend ses propres produits et/ou les produits d'autres entreprises.
" + external_billing_id: Identifiant Dolibarr + external_billing_id_placeholder: 'ex : INV-2024-123456' + external_billing_id_tip: "Ceci est l'identifiant utilisé par la plateforme Dolibarr pour identifier cette entreprise." visible_in_search: Apparaît sur la plateforme? visible_in_search_tip: "Les profils peuvent être 1 1. Visibles publiquement, sur la carte et la liste des comptoirs. 2 2. Invisibles sur la carte et la liste des comptoirs, mais référencées sur les profils des comptoirs et producteurs de leur réseau. 3 3. Complètement invisibles (sauf si on dispose du lien)." visible: Visible par tous @@ -1190,8 +1341,11 @@ fr_BE: enable_subscriptions_true: "Activé" customer_names_in_reports: "Nom de client dans le rapport" customer_names_tip: "Autoriser vos fourniseurs à voir les noms des clients dans le rapport " + producers_to_edit_orders: "Possibilité pour les producteurs de modifier les commandes" + producers_to_edit_orders_tip: "Permettre à vos fournisseurs de visualiser les commandes comprenant leurs produits et de modifier la quantité et le poids de leurs produits seulement." customer_names_false: "Désactivé" customer_names_true: "Activé" + customer_contacts_in_reports: "Coordonnées du client dans les rapports" customer_contacts_tip: "Autoriser vos fournisseurs de voir l'adresse mail et le téléphone des clients dans les rapports" customer_contacts_false: "Désactivé" customer_contacts_true: "Activé" @@ -1214,6 +1368,7 @@ fr_BE: open_date: "Date d'ouverture" close_date: "Date de fermeture" display_ordering_in_shopfront: "Ordre d'affichage sur le comptoir :" + shopfront_sort_by_product: "Par produit" shopfront_sort_by_category: "Par catégorie" shopfront_sort_by_producer: "Par producteur" shopfront_sort_by_category_placeholder: "Catégorie" @@ -1276,7 +1431,11 @@ fr_BE: voucher_code: Code du bon d'achat rate: 'Taux ' label: Étiquette + purpose: Raison + expiry: Date d'expiration + use_limit: Date limite customers: Acheteur·euse + net_value: Valeur nette active: Actif? add_new: Ajouter un nouveau no_voucher_yet: Pas encore de bons d'achat @@ -1291,21 +1450,41 @@ fr_BE: connected_apps: legend: "Applications connectées" affiliate_sales_data: + title: "Programme de recherche INRAE / UFC QUE CHOISIR" + tagline: "Autoriser ce programme de recherche à accéder à vos données de commandes anonymisées" enable: "Autoriser le partage de données" disable: "Arrêter le partage" loading: "Chargement en cours" need_to_be_manager: "Seuls les gestionnaires peuvent connecter des applications." + description: "L'INRAE et UFC QUE CHOISIR travaillent conjointement sur les prix des produits distribués en circuit court, comparés aux prix des mêmes produits vendus en supermarché, pour un échantillon de produits. Les données utilisées dans le cadre de ce programme de recherche sont une agrégation des données fournies par plusieurs plateformes de vente en circuit court en Belgique. Aucun prix de produit d'une boutique en particulier ne sera transmis publiquement à travers ce programme." + link_label_html: "En savoir plus à propos de ce projet de recherche " + link_url: "https://apropos.coopcircuits.fr/" discover_regen: + title: "Discover Regenerative" + tagline: "Autoriser Discover Regenerative à publier les informations de votre entreprise" enable: "Autoriser le partage de données" disable: "Arrêter le partage" loading: "Chargement en cours" need_to_be_manager: "Seuls les gestionnaires peuvent connecter des applications." + note: | + Votre compte Open Food Network est connecté à Discover Regenerative. + Ajouter et mettre à jour les informations sur votre liste Discover Regenerative ici. + link_label: "Gérer la liste" + description: "Les producteurs admissibles peuvent présenter leurs certifications en matière d'agriculture régénératrice, leurs pratiques agricoles et plus encore grâce à un profil. Cela simplifie la recherche de produits issus de l'agriculture régénératrice et la prise de contact avec les producteurs qui les intéressent." + link_label_html: "En savoir plus sur Discover Regenerative " vine: + title: "Éditeur de bons de réduction (VINE)" + tagline: "Autoriser l'utilisation de bons de réduction VINE dans votre boutique" enable: "Se connecter" disable: "Déconnecter" need_to_be_manager: "Seuls les gestionnaires peuvent connecter des applications." vine_api_key: "clé API VINE" + description: "Pour autoriser l'éditeur de bons de réduction VINE pour votre entreprise, entrer votre clé API et clé secrète" + link_label_html: "VINE " + api_parameters_empty: "Entrez une clé API et un secret" + api_parameters_error: "Vérifiez que vous avez entré la clé API et le secret correctement. Contactez l'équipe support de la plateforme si l'erreur persiste. " connection_error: "Erreur de connexion à l'API. Merci de réessayer." + setup_error: "L'API VINE n'est pas configurée. Veuillez contacter l'équipe support de la plateforme." actions: edit_profile: Paramètres properties: Labels / propriétés @@ -1323,8 +1502,10 @@ fr_BE: owner: Gestionnaire principal producer: Producteur sells_options: + unspecified: indéterminé none: aucun own: les miens + any: tous change_type_form: producer_profile: Profil producteur connect_ofn: Gagnez en visibilité via Open Food Network @@ -1525,6 +1706,7 @@ fr_BE: proceed: Continuer status: undated: sans date + upcoming: prochainement open: ouvert closed: fermé producer_properties: @@ -1536,6 +1718,7 @@ fr_BE: resume: could_not_resume_the_order: La commande n'a pas pu être reprise select2: + minimal_search_length: Entrez %{count} caractères ou plus searching: Recherche... no_matches: Pas de correspondance trouvée shared: @@ -1603,12 +1786,14 @@ fr_BE: metadata: report_title: Type de rapport deprecated: "Ce rapport est obsolète et sera supprimé dans une prochaine mise à jour." + hidden_field: "< Masqué >" unitsize: Unité de mesure total: Total total_items: Nb Articles total_by_customer: Total par client total_by_supplier: Total par fournisseur supplier_totals: Totaux Cycle de Vente par Producteur + percentage: "%{value} %" supplier_totals_by_distributor: Totaux Cycle de Vente par Producteur pour chaque Comptoir totals_by_supplier: Totaux Cycle de Vente par Comptoir pour chaque Producteur customer_totals: Totaux Cycle de Vente par Acheteur·euse @@ -1673,9 +1858,11 @@ fr_BE: suppliers: name: Fournisseurs enterprise_fees_with_tax_report_by_order: "Frais d'entreprise avec rapport fiscal par commande" + enterprise_fees_with_tax_report_by_producer: "Frais d'entreprise avec rapport fiscal par producteur" errors: no_report_type: "Veuillez spécifier un type de rapport" report_not_found: "Rapport introuvable" + missing_ransack_params: " Veuillez fournir les paramètres de recherche Ransack dans la requête" summary_row: total: "Total" table: @@ -1699,20 +1886,30 @@ fr_BE: display: Ecran summary_row: Ligne TOTAL header_row: Ligne titre + metadata_rows: Lignes de métadonnées raw_data: Données brutes formatted_data: Données formatées packing: name: "Rapports de préparation des paniers" oidc_settings: index: + title: "Paramètres OIDC" connect: "Se connecter à votre compte" disconnect: "Déconnecter" + connected: "Votre compte est relié à %{uid}." + les_communs_link: "Serveur OIDC Les Communs" + link_your_account: "Vous devez d'abord lier votre compte avec le fournisseur d'autorisation utilisé par DFC (Les Communs Open ID Connect)" + link_account_button: "Relier votre compte OIDC Les Communs" + note_expiry: | + Les approbations permettant d'accéder aux applications connectées ont expiré. Veuillez rafraîchir + la connexion à votre compte pour que toutes les intégrations fonctionnent. refresh: "Rafraichir l'autorisation" view_account: "Pour voir votre compte, consultez :" subscriptions: index: title: "Commandes récurrentes" new: "Nouvel abonnement" + issue: "Problème" new: title: "Nouvel abonnement" edit: @@ -1827,9 +2024,15 @@ fr_BE: one: "E-mail de confirmation envoyé pour une commande." many: "E-mail de confirmation envoyé pour %{count} commandes." other: "E-mail de confirmation envoyé pour %{count} commandes." + send_invoice_feedback: + one: "Email de facturation envoyé pour 1 commande." + many: "Emails de facturation envoyés pour les commandes %{count} ." + other: "Emails de facturation envoyés pour les commandes %{count} ." api: + unknown_error: "Quelque chose n'a pas fonctionné. Notre équipe a été prévenue." invalid_api_key: "Clé API invalide (%{key}) spécifiée." unauthorized: "Vous n'êtes pas autorisé à effectuer cette action." + unpermitted_parameters: "Paramètres non autorisés dans cette requête : %{params}" missing_parameter: "Un paramètre nécessaire est manquant ou vide : %{param}" invalid_resource: "Ressource non valable. Veuillez corriger les erreurs et réessayer." resource_not_found: "La ressource que vous cherchiez n'a pas pu être trouvée." @@ -1844,6 +2047,7 @@ fr_BE: query_param: error: title: Paramètre de la requête invalide + extra_fields: "Champs invalides: %{fields}" checkout: failed: "La vente a échouée. Veuillez nous le faire savoir afin que nous puissions traiter votre commande." payment_cancelled_due_to_stock: "Paiement annulé : la commande n'a pas pu être finalisée en raison d'un problème de stock." @@ -1890,6 +2094,7 @@ fr_BE: form: card_number: label: Numéro de carte + placeholder: par ex. 4242 4242 4242 4242 card_verification_value: label: CVC card_month: @@ -1898,6 +2103,7 @@ fr_BE: label: Année stripe: use_saved_card: Utiliser la carte enregistrée + use_new_card: Entrez les informations de votre carte save_card: Enregistrer la carte pour une utilisation ultérieure create_new_card: ou entrez les détails de la nouvelle carte ci-dessous explaination: Vous pouvez vérifier et confirmer votre commande à l'étape suivante qui comprend les coûts finaux. @@ -1908,6 +2114,7 @@ fr_BE: apply_voucher: Appliquer le bon d'achat apply: Appliquer placeholder: Entrer le code du bon d'achat + remove_code: Supprimer le code confirm_delete: Êtes-vous sûr de vouloir supprimer le bon ? warning_forfeit_remaining_amount: "Remarque : si le total de votre commande est inférieur à votre bon, vous ne pourrez peut-être pas dépenser la valeur restante." step3: @@ -1943,7 +2150,10 @@ fr_BE: select_a_payment_method: Choisissez une méthode de paiement no_shipping_methods_available: Le paiement n'est pas possible en raison de l'absence d'options d'expédition. Veuillez contacter le propriétaire du magasin. voucher_code_blank: Veuillez entrer un bon de réduction valide + voucher_code_not_found: Invalide. Soit il n'existe pas, soit il a été utilisé en totalité add_voucher_error: Une erreur s'est produite lors de l'ajout du bon + create_voucher_error: "Il y a eu une erreur lors de la création du bon de réduction : %{error}" + voucher_redeeming_error: Il y a eu une erreur lors de la tentative d'utilisation de votre bon de réduction. shops: hubs: show_closed_shops: "Afficher les comptoirs fermés" @@ -1953,6 +2163,7 @@ fr_BE: mailers: powered_by: open_food_network: "Open Food Network" + powered_html: "Votre expérience d'achat a été rendue possible par %{open_food_network}." menu: cart: cart: "Panier" @@ -2014,14 +2225,17 @@ fr_BE: invoice_column_unit_price_without_taxes: "Prix unitaire HT" invoice_column_price_with_taxes: "Prix total TTC" invoice_column_price_without_taxes: "Prix total HT" + invoice_column_price_per_unit_without_taxes: "Prix par unité (hors taxe)" invoice_column_tax_rate: "TVA applicable" invoice_tax_total: "Total TVA :" + invoice_cancel_and_replace_invoice: "annule et remplace la facture" tax_invoice: "FACTURE" tax_total: "Total taxe (%{rate}) :" invoice_shipping_category_delivery: "Livraison" invoice_shipping_category_pickup: "Retrait" total_excl_tax: "Total HT :" total_incl_tax: "Total TTC :" + total_all_tax: "Taxe totale :" abn: "Numéro d'entreprise : " acn: "n° TVA intracommunautaire" invoice_issued_on: "Date de facture :" @@ -2237,6 +2451,9 @@ fr_BE: order_back_to_store: Retour au comptoir order_back_to_cart: Retour au panier order_back_to_website: Retour au site Web + checkout_details_title: Détails de la commande + checkout_payment_title: Paiement de la commande + checkout_summary_title: Résumé de la commande bom_tip: "Utilisez cette page pour modifier les quantités sur plusieurs commandes à la fois. Les produits peuvent aussi être supprimés des commandes si nécessaire." unsaved_changes_warning: "Des modifications n'ont pas été enregistrées et seront perdues si vous continuez." unsaved_changes_error: "Les champs entourés en rouge contiennent des erreurs." @@ -2247,8 +2464,15 @@ fr_BE: email_confirmed: "Veuillez confirmer votre adresse email." email_confirmation_activate_account: "Avant de pouvoir activer votre compte, nous devons nous assurer de la validité de votre adresse email." email_confirmation_greeting: "Bonjour %{contact}!" + email_confirmation_profile_created: > + Un profil pour %{name} a été créé avec succès ! Pour activer votre profil, nous + avons besoin de la confirmation de cette adresse mail. email_confirmation_click_link: "Veuillez cliquer sur le lien ci-dessous pour confirmer votre email et continuer la configuration de votre compte." email_confirmation_link_label: "Confirmer cette adresse email »" + email_confirmation_help_html: > + Après avoir confirmé votre mail, vous pourrez accéder à votre compte administrateur + pour l'entreprise concernée. Regardez %{link} pour en savoir plus sur les fonctionnalités + de %{sitename} et pour commencer à utiliser votre profil ou boutique en ligne." email_confirmation_notice_unexpected: "Vous recevez ce message car vous vous êtes inscrit sur %{sitename}, ou avez été invité à vous inscrire par l'un de vos contacts. Si vous ne comprenez pas pourquoi vous recevez ce message, écrivez à %{contact}." email_social: "Nous suivre:" email_contact: "Nous écrire:" @@ -2625,6 +2849,7 @@ fr_BE: locate_address: "Localiser l'adresse sur la carte" drag_pin: "Faites glisser et déposez la broche à l'emplacement correct si elle n'est pas précise." confirm_address: "Je confirme que la position indiquée sur la carte est correcte. " + drag_map_marker: "En raison de nombreux producteurs opérant dans les zones rurales, la précision des cartes est toujours en cours d'amélioration. Aidez-nous à mieux comprendre où vous vous trouvez en interagissant avec la carte ci-dessus. Déplacez le pointeur en cliquant ou en appuyant dessus pour le maintenir, puis en le faisant glisser vers l'emplacement le plus précis d'après vos connaissances. " contact: title: "Contact" who_is_managing_enterprise: "Qui gère %{enterprise}?" @@ -2635,6 +2860,7 @@ fr_BE: whatsapp_phone_field: "Numéro de téléphone Whatsapp" whatsapp_phone_tooltip: "Ce numéro sera affiché dans votre profil public pour être ouvert en tant que lien WhatsApp." phone_field_placeholder: "ex : +32 (0) 000 00 00 00 " + whatsapp_phone_field_placeholder: "ex. +61 4 1234 5678" type: title: "Catégorie" headline: "Dernière étape pour ajouter %{enterprise} !" @@ -2733,6 +2959,7 @@ fr_BE: price_graph: "Légende détail du prix" included_tax: "Inclut TVA" tax: "Taxe" + tax_amount_included: "%{amount} (inclus)" remove_tax: "Retirer TVA" balance: "Solde" transaction: "Transaction" @@ -2841,6 +3068,7 @@ fr_BE: spree_admin_enterprises_fees: "Marges et commissions" spree_admin_enterprises_none_create_a_new_enterprise: "CRÉER UNE NOUVELLE ENTREPRISE" spree_admin_enterprises_none_text: "Vous n'avez pas encore d'entreprise" + spree_admin_enterprises_showing: "Montrer %{count} de %{total}" spree_admin_enterprises_producers_manage_products: "GÉRER LES PRODUITS" spree_admin_enterprises_create_new_product: "CRÉER UN NOUVEAU PRODUIT" spree_admin_supplier: Fournisseur @@ -2937,9 +3165,13 @@ fr_BE: report_header_hub_address: Adresse du comptoir report_header_to_hub: Comptoir report_header_hub_code: Code du comptoir + report_header_hub_id: Numéro d’identification du Hub + report_header_hub_business_number: "Numéro d'entreprise du Hub" + report_header_hub_external_billing_id: "Identifiant Dolibarr" report_header_hub_legal_name: "Nom légal du comptoir" report_header_hub_contact_name: "Nom du contact du comptoir" report_header_hub_email: "Email public" + report_header_hub_contact_email: e-mail de contact de la boutique report_header_hub_owner_email: Email gestionnaire principal report_header_hub_phone: "Numéro de téléphone" report_header_hub_address_line1: "Adresse ligne 1" @@ -3010,6 +3242,9 @@ fr_BE: report_header_producer: Producteur·trice report_header_producer_suburb: Ville Producteur·trice report_header_producer_tax_status: Statut fiscal du producteur + report_header_producer_charges_sales_tax?: Soumis à la TVA / TPS + report_header_producer_abn_acn: Numéro de SIRET/SIREN du producteur + report_header_producer_address: Adresse du producteur report_header_unit: Unité report_header_group_buy_unit_quantity: Nb d'unités achetées (vente par lots) report_header_cost: Coût @@ -3054,6 +3289,8 @@ fr_BE: report_header_item_fees_price: "Coût produits + Marge (%{currency})" report_header_admin_handling_fees: "Frais si par commande (%{currency})" report_header_ship_price: "Frais de livraison (%{currency})" + report_header_producer_charges_gst: Le producteur facture-t-il la TVA ? + report_header_total_tax_on_product: "Taxe totale sur produit (%{currency})" report_header_pay_fee_price: "Frais de Transaction (%{currency})" report_header_total_price: "Total (%{currency})" report_header_product_total_price: "Total Produit (%{currency})" @@ -3070,7 +3307,11 @@ fr_BE: report_header_total_units: Vol. total report_header_sum_max_total: "Somme Max Total" report_header_total_excl_vat: "Total HT (%{currency_symbol})" + report_header_total_fees_excl_tax: "Total commission fournisseur hors taxe (%{currency_symbol})" + report_header_total_tax_on_fees: "Total taxe sur les commissions fournisseur (%{currency_symbol})" + report_header_total: "Total (%{currency_symbol})" report_header_total_incl_vat: "Total TTC (%{currency_symbol})" + report_header_total_excl_fees_and_tax: "Total hors commission fournisseur et taxe (%{currency_symbol})" report_header_temp_controlled: Temp Contrôlée ? report_header_shipment_state: "Statut livraison" report_header_shipping_method: "Méthode de Livraison" @@ -3086,6 +3327,9 @@ fr_BE: report_header_transaction_fee: Frais de Transaction (TVA non incluse) report_header_total_untaxable_admin: Total ajustements non taxables report_header_total_taxable_admin: Total ajustments soumis à TVA (inclut TVA) + report_header_voucher_label: Label du bon d'achat + report_header_voucher_amount: "Montant du bon d'achat (%{currency_symbol})" + report_line_cost_of_produce: Coût des produits report_line_line_items: Ces articles report_header_last_completed_order_date: Date de la dernière commande terminée report_xero_configuration: Configuration Xero @@ -3122,6 +3366,8 @@ fr_BE: payment_processing_failed: "Le paiement n' a pu être effectué , merci de vérifier les données rentrées" payment_method_not_supported: "Ce mode de paiement n'est pas possible. Veuillez en choisir un autre." payment_updated: "Paiement mis à jour " + payment_method_taler: + order_summary: "Commande Open Food Network" cannot_perform_operation: "Le paiement n'a pas pu être mis à jour." action_required: "Action requise" tag_rules: "Règles de tag" @@ -3169,6 +3415,7 @@ fr_BE: order_cycles_no_permission_to_coordinate_error: "Aucune de vos entreprises n'a les droits requis pour coordonner un cycle de vente" order_cycles_no_permission_to_create_error: "Vous n'avez pas les droits requis pour créer un cycle de vente coordonné par cette entreprise" order_cycle_closed: "Le cycle de commande que vous avez sélectionner vient de fermer. Essayer plus tard." + order_cycle_closed_next_steps: "Le cycle de vente que vous avez sélectionné vient de se terminer. Merci de nous contacter pour finaliser votre commande #%{order_number}!" back_to_orders_list: "Retour vers la liste des commandes " no_orders_found: "Aucune commande trouvée pour ces critères" order_information: "Info commande" @@ -3178,6 +3425,7 @@ fr_BE: amount: "Montant" invoice_number: "Numéro de facture" invoice_file: "Fichier" + invalid_url: "'%{url}' est une URL non valide" state_names: ready: Prêt pending: En attente @@ -3459,6 +3707,8 @@ fr_BE: variant: add_to_cart: "Ajouter" in_cart: "dans le panier" + quantity_in_cart: "%{num}article dans le panier" + remaining_in_stock: "Seulement %{quantity} produits restants" bulk_buy_modal: min_quantity: "Quantité min" max_quantity: "Quantité max" @@ -3524,14 +3774,21 @@ fr_BE: signup_or_login: "Commencez par vous inscrire (ou connexion)" have_an_account: "Déjà inscrit?" action_login: "Se connecter." + stripe_elements: + unknown_error_from_stripe: | + Il a eu un problème lors de la prise en compte de votre carte. + Merci de rafraîchir la page. Si cela ne fonctionne pas une seconde fois, + merci de nous contacter. trix: bold: "Gras" bullets: "Puces" code: "Code" heading1: "En-tête" + hr: "Règle horizontale" indent: "Augmenter d'un niveau" italic: "Italique" link: "Lien" + numbers: "Nombres" outdent: "Diminuer d'un niveau" quote: "Citation" redo: "Refaire" @@ -3553,6 +3810,10 @@ fr_BE: one: "caisse" many: "caisses" other: "caisses" + box: + one: "boîte" + many: "boîtes" + other: "boîtes" bottle: one: "bouteille" many: "bouteilles" @@ -3561,10 +3822,98 @@ fr_BE: one: "bocal" many: "bocaux" other: "bocaux" + head: + one: "tête" + many: "têtes" + other: "têtes" + bag: + one: "sac" + many: "sacs" + other: "sacs" + loaf: + one: "pain" + many: "pains" + other: "pains" + single: + one: "unité" + many: "unités" + other: "unités" + tub: + one: "bac" + many: "bacs" + other: "bacs" + punnet: + one: "barquette" + many: "barquettes" + other: "barquettes" + packet: + one: "paquet" + many: "paquets" + other: "paquets" item: one: "article" many: "articles" other: "articles" + dozen: + one: "dizaine" + many: "des dizaines" + other: "des dizaines" + unit: + one: "unité" + many: "unités" + other: "unités" + serve: + one: "service" + many: "services" + other: "services" + tray: + one: "plateau" + many: "plateaux" + other: "plateaux" + piece: + one: "pièce" + many: "pièces" + other: "pièces" + pot: + one: "pot" + many: "pots" + other: "pots" + flask: + one: "flacon" + many: "flacons" + other: "flacons" + basket: + one: "panier" + many: "paniers" + other: "paniers" + sack: + one: "sachet" + many: "sachets" + other: "sachets" + bucket: + one: "seau" + many: "seaux" + other: "seaux" + pail: + one: seau + many: seaux + other: seaux + stem: + one: "tige" + many: "tiges" + other: "tiges" + plug: + one: "bouchon" + many: "bouchons" + other: "bouchons" + bulb: + one: "bulbe" + many: "bulbes" + other: "bulbes" + root: + one: "racine" + many: "racines" + other: "racines" producers: signup: start_free_profile: "Commencez par créer votre profil entreprise, et présentez votre formule quand vous êtes prêt !" @@ -3654,15 +4003,27 @@ fr_BE: first: "Début" previous: "Précédent" last: "Fin" + webhook_endpoints: + create: + success: Le webhook a bien été créé. + error: Le webhook n'a pas pu être créé. + destroy: + success: Le webhook a bien été supprimé. + error: Le webhook n'a pas pu être supprimé. + test: + success: Des données de test vont être envoyées à l'URL du webhook spree: order_updated: "Commande mise à jour" + cannot_perform_operation: "Cette opération ne peut pas être réalisée" add_country: "Ajouter un pays" add_state: "Ajouter une province" adjustment: "Ajustement" all: "Tous" + associated_adjustment_closed: "L'ajustement associé est fermé" back_to_adjustments_list: "Retour aux ajustements" back_to_users_list: "Retour aux utilisateurs" back_to_zones_list: "Retour aux zones" + card_code: "Code de la carte" card_number: "Numéro de carte" category: "Catégorie" created_successfully: "Créé avec succès" @@ -3674,6 +4035,7 @@ fr_BE: expiration: "Expiration" invalid_payment_provider: "Fournisseur de paiement invalide" items_cannot_be_shipped: "Les articles ne peuvent pas être expédiés" + gateway_config_unavailable: "Configuration de la passerelle indisponible" gateway_error: "Paiement échoué" more: "Plus" new_adjustment: "Nouvel ajustement" @@ -3743,6 +4105,7 @@ fr_BE: credit_card: "Carte de crédit" new_payment: "Nouveau paiement" capture: "Payée" + capture_and_complete_order: "Capturer et terminer la commande" void: "Vide" login: "Se connecter" password: "Mot de passe" @@ -3754,6 +4117,8 @@ fr_BE: logourl: "Url logo" are_you_sure_delete: "Etes-vous certain de vouloir supprimer cet élément ?" confirm_delete: "Confirmer la suppression" + tag_rule: "Règle de tag" + voucher: "Bon d'achat" configurations: "Configurations" general_settings: "Réglages Généraux" site_name: "Nom du site" @@ -3787,6 +4152,7 @@ fr_BE: tax_rate_amount_explanation: "Les taux sont décimaux pour faciliter les calculs (par ex. un taux de 5% sera entré en tant que 0.05) " included_in_price: "Inclus dans le prix " show_rate_in_label: "Montrer le taux sur l'étiquette " + back_to_tax_rates_list: "Revenir à la liste des taux de taxe" tax_settings: "Paramètres TVA" zones: "Zones" new_zone: "Nouvelle zone " @@ -3843,6 +4209,8 @@ fr_BE: alt_text: "Texte alternatif" thumbnail: "Miniature" back_to_images_list: "Retour à la liste d'images" + backend_url: "URL du serveur" + api_key: "clé API" email: Email account_updated: "Compte mis à jour!" email_updated: "Le compte sera mis à jour une fois la nouvelle adresse-mail confirmée" @@ -3858,6 +4226,7 @@ fr_BE: cannot_create_payment_without_payment_methods: "Vous ne pouvez pas créer un paiement pour une commande sans qu'aucun mode de paiement ne soit défini." please_define_payment_methods: "Veuillez d'abord définir certains modes de paiement." options: "Options" + has_no_shipped_units: "n'a pas d'éléments envoyés" successfully_created: '%{resource}est crée avec succès! ' successfully_updated: '%{resource}a été enregistrée avec succès' payment_method: "Méthode de paiement" @@ -3885,6 +4254,7 @@ fr_BE: payment_state: "Statut du Paiement" errors: messages: + included_price_validation: "ne peut pas être sélectionné à moins d'avoir une zone de taxe par défaut" blank: "Champ obligatoire" invalid_instagram_url: "Doit être uniquement le nom d'utilisateur, par exemple. le_prod" layouts: @@ -3927,6 +4297,7 @@ fr_BE: enterprise_relationships: "Permissions" customers: "Acheteur·euse·s" groups: "Groupes" + oidc_settings: "Paramètres OIDC" overview: "Aperçu" product_import: "Importer" enterprise_roles: "Roles" @@ -3961,6 +4332,7 @@ fr_BE: continue: "Suivant" new: new_return_authorization: "Nouvelle autorisation de retour" + back_to_return_authorizations_list: "Revenir à la liste des autorisations" continue: "Suivant" edit: receive: "recevoir" @@ -3986,6 +4358,11 @@ fr_BE: orders: add_product: cannot_add_item_to_canceled_order: "Impossible d'ajouter un article à une commande annulée" + cannot_add_item_to_shipped_order: "Il n'est pas possible d'ajouter des produits sur une commande livrée." + include_out_of_stock_variants: "Inclure les variantes sans stock disponible" + shipment: + mark_as_shipped_message_html: "Cette action marque la commande comme livrée.
Etes-vous certain de vouloir faire ceci? " + mark_as_shipped_label_message: "Envoyer une notification de livraison / distribution par e-mail au client" index: listing_orders: "Liste des commandes" new_order: "Nouvelle commande" @@ -4033,6 +4410,9 @@ fr_BE: payment_method: "Mode de paiement" payment_state: "Statut du paiement" amount: "Quantité" + note: + note_label: "Note :" + no_note_present: "Aucune note n'a été ajoutée." form: distribution_fields: title: "Distribution" @@ -4041,6 +4421,9 @@ fr_BE: line_item_adjustments: "Ajustements d'élément de ligne" order_adjustments: "Ajustement de commandes" order_total: "Total commande " + invoices: + index: + order_has_changed: "La commande a changé depuis la dernière mise à jour de la facture. La facture affichée ici risque donc de ne pas être à jour." overview: enterprises_header: ofn_with_tip: Les Entreprises sont des Producteur·trice·s et/ou Comptoirs, et sont donc les organisations de base qui utilisent Open Food Network. @@ -4049,6 +4432,7 @@ fr_BE: has_no_payment_methods: "n'a aucune méthode de paiement" has_no_shipping_methods: "n'a aucune méthode de retrait/livraison" products: + products_tip: "Les produits que vous vendez via Open Food Network." active_products: zero: "Vous n'avez aucun produit actif." one: "U heeft één aktieve product" @@ -4065,6 +4449,8 @@ fr_BE: many: "Vous avez %{count} cycles de vente actifs." other: "Vous avez %{count} cycles de vente actifs." manage_order_cycles: "GERER LES CYCLES DE VENTE" + version: + view_all_releases: Voir toutes les mises à jour shipping_methods: index: shipping_methods: "Méthodes de livraison" @@ -4142,7 +4528,8 @@ fr_BE: provider: "Fournisseur" check: "Espèces / chèques / virements / autres (sans validation automatique)" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" + stripesca: "Stripe SCA" + taler: "Taler" payments: source_forms: stripe: @@ -4158,6 +4545,8 @@ fr_BE: new_product: "Nouveau Produit" supplier: "Fournisseur" supplier_select_placeholder: "Sélectionnez un fournisseur" + search_for_suppliers: "Chercher des fournisseurs" + search_for_units: "Chercher des unités" product_name: "Nom du Produit" units: "Unité de mesure" value: "Nb unités" @@ -4203,6 +4592,7 @@ fr_BE: reports: table: select_and_search: "Sélectionnez les filtres et cliquez sur %{option} pour accéder à vos données." + hidden_customer_details_tip: "Si les noms et/ou contacts des clients sont masqués, vous pouvez demander au gestionnaire de la boutique de modifier les paramètres de sa boutique pour permettre aux fournisseurs de voir les détails des clients dans les rapports" products_and_inventory: all_products: message: "Notez que les niveaux de stock indiqués proviennent uniquement des listes de produits des fournisseurs. Si vous utilisez le \"catalogue magasin\" pour gérer vos stocks, ces valeurs seront ignorées dans ce rapport." @@ -4273,6 +4663,7 @@ fr_BE: total: "Total" billing_address_name: "Nom" taxons: + back_to_list: "Revenir à la liste des catégories de produits" index: title: "Catégorie Produit" new_taxon: 'Nouvelle catégorie de produit' @@ -4280,9 +4671,17 @@ fr_BE: title: "Nouvelle catégorie de produit" edit: title: "Editer la catégorie de produit" + destroy: + delete_taxon: + success: "Catégorie de produit supprimée avec succès" + error: "Impossible de supprimer la catégorie de produit car des produits sont liés à cette catégorie." form: name: Nom + meta_title: Titre de référencement web + meta_description: Description de référencement Web + meta_keywords: Mot-clés de référencement web description: Description + dfc_id: URI DFC general_settings: edit: legal_settings: "Configuration légales" @@ -4307,6 +4706,8 @@ fr_BE: or_enter_new_card: "Ou entrez les informations pour utiliser une nouvelle carte :" remember_this_card: Se souvenir de cette carte ? date_picker: + flatpickr_date_format: "Y-m-d" + flatpickr_datetime_format: "Y-m-d H:i" today: "Aujourd'hui" now: "Maintenant" close: "Ferme" @@ -4339,6 +4740,7 @@ fr_BE: requires_authorization: "Autorisation nécessaire" void: faire un avoir invalid: invalide + authorise: autorise order_mailer: cancel_email: customer_greeting: "Chère %{name}" @@ -4378,11 +4780,13 @@ fr_BE: shipment_mailer: shipped_email: dear_customer: "Cher Client," + instructions: "Votre commande de %{distributor} : a été expédiée." shipment_summary: "Résumé de l'envoi" subject: "Notification d'expédition" thanks: "Merci pour votre commande." track_information: "Informations de suivi : %{tracking}" track_link: "Lien de suivi : %{url}" + picked_up_instructions: "Votre commande de %{distributor} a été réceptionnée" picked_up_subject: "Notification de réception" test_mailer: test_email: @@ -4411,17 +4815,34 @@ fr_BE: paused: mis en pause canceled: annulé paypal: + already_refunded: "Ce paiement a été remboursé et aucune autre action ne peut être entreprise à son sujet." + no_payment_via_admin_backend: "Vous ne pouvez pas réaliser de paiements via Paypal depuis l'interface d'administration pour le moment." transaction: "Transaction Paypal" + payer_id: "Identifiant du payeur" + transaction_id: "Identifiant de la transaction" + token: "Jeton d'authentification (token)" refund: "Remboursement" refund_amount: "Quantité" + original_amount: "Montant initial : %{amount}" + refund_successful: "Remboursement PayPal réussi" + refund_unsuccessful: "Echec du remboursement PayPal" actions: refund: "Remboursement" + flash: + cancel: "Vous ne voulez pas utiliser PayPal ? Pas de soucis." + connection_failed: "Impossible de se connecter à PayPal." + generic_error: "PayPal a échoué. %{reasons}" users: api_keys: regenerate_key: "Regénération de clé" + title: clé API webhook_endpoints: + title: Points de terminaison Webhook + description: Les événements dans le système peuvent déclencher des webhooks vers des systèmes externes. event_type: header: Type d'évènement + url: + header: URL du point de terminaison developer_settings: title: Paramètres développeurs form: @@ -4440,6 +4861,7 @@ fr_BE: transactions: transaction_history: Historique des Transactions authorisation_required: Autorisation requise + authorise: Autoriser open_orders: order: Commander shop: Faire mes courses @@ -4469,6 +4891,8 @@ fr_BE: saved_cards_popover: Voilà la liste des cartes de paiement que vous avez enregistrées. Votre carte par défaut sera automatiquement sélectionnée au moment de la finalisation d'une commande, et pourra être débitée par les comptoirs auxquels vous avez donné cette autorisation (voir à droite). authorised_shops: shop_name: "Nom du comptoir" + allow_charges?: "Autoriser les paiements sur la carte par défaut ?" + no_default_saved_cards_tooltip: Vous devez sélectionner une carte bancaire par défaut pour autoriser les paiements. localized_number: invalid_format: n'est pas un format valide. Veuillez entrer un nombre. api: @@ -4514,16 +4938,45 @@ fr_BE: many: presque %{count} ans other: presque %{count} an(s) half_a_minute: 30 secondes + less_than_x_seconds: + one: moins d' 1 seconde + many: moins de %{count} secondes + other: moins de %{count} secondes + less_than_x_minutes: + one: moins d'une minute + many: moins de %{count} minutes + other: moins de %{count} minutes + over_x_years: + one: plus d'1 an + many: plus de %{count} années + other: plus de %{count} années + x_seconds: + one: "1 seconde" + many: "%{count} secondes" + other: "%{count} secondes" + x_minutes: + one: "1 minute" + many: "%{count} minutes" + other: "%{count} minutes" x_days: one: "Un jour" many: "%{count} jours" other: "%{count} jour(s)" + x_months: + one: "1 mois" + many: "%{count} mois" + other: "%{count} mois" + x_years: + one: "1 an" + many: "%{count} années" + other: "%{count} années" components: multiple_checked_select: filter_placeholder: "Options de filtre" search_input: placeholder: Rechercher selector_with_filter: + selected_items: "%{count} sélectionné" search_placeholder: Rechercher pagination: next: Suivant @@ -4551,6 +5004,13 @@ fr_BE: add_tag_rule_modal: select_rule_type: "Choisir le type de règle:" add_rule: "Ajouter une règle" + webhook_endpoint_form: + url: + create_placeholder: Entrez l'URL du point de terminaison du webhook + event_types: + order_cycle_opened: Cycle de vente ouvert + payment_status_changed: Post-webhook lors d'un changement de statut de paiement + test_endpoint: Tester le point de terminaison du webhook invisible_captcha: sentence_for_humans: "Veuillez laisser vide" timestamp_error_message: "Veuillez réessayer après 5 secondes." diff --git a/config/locales/fr_CA.yml b/config/locales/fr_CA.yml index f2bf5d317d..4db4fb238a 100644 --- a/config/locales/fr_CA.yml +++ b/config/locales/fr_CA.yml @@ -116,26 +116,68 @@ fr_CA: too_short: "est trop court (minimum %{count} caractère)" errors: messages: - content_type_invalid: "a un contenu invalide" - file_size_out_of_range: "la taille %{file_size} n'est pas dans la fourchette requise" - limit_out_of_range: "le nombre total est hors de la fourchette" - image_metadata_missing: "n'est pas une image valide" - dimension_min_inclusion: "doit être plus grand ou égal à %{width} x %{height} pixel." - dimension_max_inclusion: "doit être plus grand ou égal à %{width} x %{height} pixel." - dimension_width_inclusion: "la largeur n'est pas comprise entre %{min} et %{max} pixel." - dimension_height_inclusion: "la hauteur n'est pas comprise entre %{min} et %{max} pixel." - dimension_width_greater_than_or_equal_to: "la largeur doit être supérieure ou égale à %{length} pixel." - dimension_height_greater_than_or_equal_to: "la hauteur doit être supérieure ou égale à %{length} pixel." - dimension_width_less_than_or_equal_to: "la largeur doit être inférieure ou égale à %{length} pixel." - dimension_height_less_than_or_equal_to: "la hauteur doit être inférieure ou égale à %{length} pixel." - dimension_width_equal_to: "la largeur doit être égale à %{length} pixel." - dimension_height_equal_to: "la hauteur doit être égale à %{length} pixel. " - aspect_ratio_not_square: "doit être une image carrée" - aspect_ratio_not_portrait: "doit être une image en mode portrait" - aspect_ratio_not_landscape: "doit être une image en mode paysage" - aspect_ratio_is_not: "doit avoir un rapport d'aspect de %{aspect_ratio}" - aspect_ratio_unknown: "a un rapport d'aspect inconnu" - image_not_processable: "n'est pas une image valide" + content_type_invalid: + one: "a un contenu invalide (le type de contenu autorisé est %{authorized_human_content_types})" + many: "a un contenu invalide (les types de contenus autorisés sont %{authorized_human_content_types})" + other: "a un contenu invalide (les types de contenus autorisés sont %{authorized_human_content_types})" + content_type_spoofed: + one: "a un type de contenu qui n'est pas équivalent avec celui détecté (le type de contenu autorisé est %{authorized_human_content_types})" + many: "a un type de contenu qui n'est pas équivalent avec celui détecté (les types de contenus autorisés sont %{authorized_human_content_types})" + other: "a un type de contenu qui n'est pas équivalent avec celui détecté (les types de contenus autorisés sont %{authorized_human_content_types})" + file_size_not_less_than: "la taille du fichier doit être inférieure à %{max} (la taille actuelle est %{file_size})" + file_size_not_less_than_or_equal_to: "la taille du fichier doit être inférieure ou égale à %{max} (la taille actuelle est %{file_size})" + file_size_not_greater_than: "la taille du fichier doit être supérieure à %{min} (la taille actuelle est%{file_size})" + file_size_not_greater_than_or_equal_to: "la taille du fichier doit être supérieure ou égale à %{min} (la taille actuelle est %{file_size})" + file_size_not_between: "la taille du fichier doit être comprise entre%{min} et %{max} (la taille actuelle est %{file_size})" + file_size_not_equal_to: "la taille du fichier doit être égale à %{exact} (la taille actuelle est %{file_size})" + total_file_size_not_less_than: "La taille totale du fichier doit être inférieure à %{max} (la taille actuelle est%{total_file_size})" + total_file_size_not_less_than_or_equal_to: "La taille totale du fichier doit être inférieure ou égale à %{max} (la taille actuelle est %{total_file_size})" + total_file_size_not_greater_than: "La taille totale du fichier doit être supérieure à %{min} (la taille actuelle est%{total_file_size})" + total_file_size_not_greater_than_or_equal_to: "La taille totale du fichier doit être supérieure ou égale à %{min} (la taille actuelle est %{total_file_size})" + total_file_size_not_between: "La taille totale du fichier doit être comprise entre %{min} et %{max} (la taille actuelle est %{total_file_size})" + total_file_size_not_equal_to: "La taille totale du fichier doit être égale à %{exact} (la taille actuelle est%{total_file_size})" + duration_not_less_than: "La durée doit être inférieure à %{max} (la durée actuelle est %{duration})" + duration_not_less_than_or_equal_to: "La durée doit être inférieure ou égale à %{max} (la durée actuelle est%{duration})" + duration_not_greater_than: "La durée doit être supérieure à %{min} (la durée actuelle est %{duration})" + duration_not_greater_than_or_equal_to: "La durée doit être supérieure ou égale à %{min} (la durée actuelle est%{duration})" + duration_not_between: "La durée doit être comprise entre %{min} et %{max} (la durée actuelle est %{duration})" + duration_not_equal_to: "La durée doit être égale à %{exact} (la durée actuelle est %{duration})" + limit_out_of_range: + zero: "Aucun fichier joint (doit contenir entre %{min} et %{max} fichiers)" + one: "Seulement 1 fichier joint (doit contenir entre%{min} et %{max} fichiers)" + other: "Le nombre total de fichiers doit être compris entre %{min} et %{max} fichiers (il y a %{count} fichiers joints)" + limit_min_not_reached: + zero: "Aucun fichier joint (doit contenir au moins %{min} fichiers)" + one: "Seulement 1 fichier joint (doit contenir au moins %{min} fichiers)" + other: "%{count} Aucun fichier joint (doit contenir au moins %{min} fichiers)" + limit_max_exceeded: + zero: "Aucun fichier joint (au maximum %{max} fichiers)" + one: "Trop de fichiers joints (le maximum est %{max} fichiers, il y en a %{count})" + other: "Trop de fichiers joints (le maximum est %{max} fichiers, il y en a%{count})" + attachment_missing: "une pièce jointe est manquante" + media_metadata_missing: "n'est pas un fichier multimédia valide" + dimension_min_not_included_in: "doit être plus grand ou égal à %{width} x %{height} pixels" + dimension_max_not_included_in: "doit être plus petit ou égal à %{width} x %{height} pixels" + dimension_width_not_included_in: "la largeur n'est pas comprise entre %{min} et %{max} pixels" + dimension_height_not_included_in: "la hauteur n'est pas comprise entre %{min} et %{max} pixels" + dimension_width_not_greater_than_or_equal_to: "la largeur doit être supérieure ou égale à %{length} pixels" + dimension_height_not_greater_than_or_equal_to: "la hauteur doit être supérieure ou égale à %{length} pixels" + dimension_width_not_less_than_or_equal_to: "la largeur doit être inférieure ou égale à %{length} pixels" + dimension_height_not_less_than_or_equal_to: "la hauteur doit être inférieure ou égale à %{length} pixels" + dimension_width_not_equal_to: "la largeur doit être égale à %{length} pixels" + dimension_height_not_equal_to: "La hauteur doit être égale à %{length} pixels" + aspect_ratio_not_square: "doit être carré (le fichier actuel est %{width}x%{height}px)" + aspect_ratio_not_portrait: "doit être au format portrait (le fichier actuel mesure %{width}x%{height}px)" + aspect_ratio_not_landscape: "doit être au format paysage (le fichier actuel mesure %{width}x%{height}px)" + aspect_ratio_not_x_y: "doit être %{authorized_aspect_ratios} (le fichier actuel est %{width}x%{height}px)" + aspect_ratio_invalid: "possède un ratio d'image invalide (les ratios d'image valides sont %{authorized_aspect_ratios})" + file_not_processable: "n'est pas identifié comme un fichier multimédia valide" + pages_not_less_than: "La durée doit être inférieure à %{max} (la durée actuelle est %{pages})" + pages_not_less_than_or_equal_to: "La durée doit être inférieure ou égale à %{max} (la durée actuelle est %{pages})" + pages_not_greater_than: "La durée doit être supérieure à %{min}(la durée actuelle est %{pages})" + pages_not_greater_than_or_equal_to: "La durée doit être supérieure ou égale à %{min} (la durée actuelle %{pages})" + pages_not_between: "La durée doit être comprise entre %{min} et %{max} (la durée actuelle est %{pages})" + pages_not_equal_to: "La durée doit être égale à %{exact} (la durée actuelle est %{pages})" not_found: title: "La page que vous recherchez n'existe pas (erreur 404)" message_html: "Veuillez essayer à nouveau

Il s'agit peut-être d'un problème temporaire. Veuillez cliquer sur le bouton retour de votre navigateur ou retourner à l' Accueil et recommencez. Contacter notre support 

Si le problème persiste ou si c'est urgent, veuillez nous contacter.

" @@ -206,6 +248,9 @@ fr_CA: disconnect_failure: "Déconnecter Stripe a échoué." success_code: disconnected: "Le compte Stripe est déconnecté." + taler: + order_status: + claimed: "La demande de paiement a expiré. Merci d'essayer à nouveau." activemodel: errors: messages: @@ -371,6 +416,13 @@ fr_CA: join_community: "Rejoindre la communauté" invite_manager: subject: "%{enterprise} vous a invité comme manager" + payment_mailer: + authorize_payment: + subject: "Veuillez autoriser votre paiement à %{distributor} on OFN." + instructions: "Votre paiement de %{amount} to %{distributor} demande une autorisation additionnelle. Veuillez suivre ce lien afin d'autoriser votre paiement:" + authorization_required: + subject: "Un paiement nécessite une autorisation de l'acheteur" + message: "Un paiement pour la commande %{order_number} nécessite une autorisation supplémentaire de la part de l'acheteur. L'acheteur a reçu un email et le statut du paiement restera en attente jusqu'à ce que l'autorisation soit attribuée." producer_mailer: order_cycle: subject: "Rapport de cycle de vente pour %{producer}" @@ -541,6 +593,7 @@ fr_CA: errors: vine_api: "There was an error communicating with the API, please try again later." invalid_voucher: "The voucher is not valid" + expired: "Le bon de réduction a expiré." not_found_voucher: "Désolé, nous n'avons pas trouvé ce bon de réduction. Merci de vérifier le code qui vous a été transmis." vine_voucher_redeemer_service: errors: @@ -906,6 +959,7 @@ fr_CA: label: Conditions de transport tags: label: Tags + none: Aucun search: Chercher sort: pagination: @@ -3325,6 +3379,8 @@ fr_CA: payment_processing_failed: "Le paiement n'a pas pu être traité, veuillez vérifier les informations saisies" payment_method_not_supported: "Cette méthode de paiement n'est pas maintenue. Veuillez en sélectionner une autre." payment_updated: "Paiement mis à jour" + payment_method_taler: + order_summary: "Commande Open Food Network" cannot_perform_operation: "Le paiement n'a pas pu être mis à jour." action_required: "Une action est requise" tag_rules: "Règles de tag" @@ -3985,6 +4041,8 @@ fr_CA: destroy: success: Le webhook a bien été supprimé. error: Le webhook n'a pas pu être supprimé. + test: + success: Des données test vont être envoyées à l'URL du webhook spree: order_updated: "La commande a été mise à jour" cannot_perform_operation: "Cette opération ne peut pas être réalisée" @@ -4091,6 +4149,8 @@ fr_CA: logourl: "URL du logo" are_you_sure_delete: "Etes-vous certain de vouloir supprimer cet élément ?" confirm_delete: "Confirmer la suppression" + tag_rule: "Règle de tag" + voucher: "Bon de réduction" configurations: "Configurations" general_settings: "Configurations générales" site_name: "Nom du site" @@ -4181,6 +4241,8 @@ fr_CA: alt_text: "Texte alternatif" thumbnail: "Miniature" back_to_images_list: "Retour à la liste des images" + backend_url: "URL du backend" + api_key: "Clé API" email: Email account_updated: "Compte mis à jour!" email_updated: "Le compte sera mis à jour une fois la nouvelle adresse email confirmée." @@ -4497,10 +4559,9 @@ fr_CA: providers: provider: "Fournisseur" check: "Espèces / chèques / virements / autres " - pin: "Méthode de paiement réservée à l'Australie (Pin Payments)" paypalexpress: "PayPal Express" - stripeconnect: "Stripe (ancienne version)" stripesca: "Stripe SCA" + taler: "Taler" payments: source_forms: stripe: @@ -4748,13 +4809,6 @@ fr_CA: subject: "Reprendre" confirmation_instructions: subject: "Veuillez confirmer votre compte" - payment_mailer: - authorize_payment: - subject: "Veuillez autoriser votre paiement à %{distributor} on OFN." - instructions: "Votre paiement de %{amount} to %{distributor} demande une autorisation additionnelle. Veuillez suivre ce lien afin d'autoriser votre paiement:" - authorization_required: - subject: "Un paiement nécessite une autorisation de l'acheteur" - message: "Un paiement pour la commande %{order_number} nécessite une autorisation supplémentaire de la part de l'acheteur. L'acheteur a reçu un email et le statut du paiement restera en attente jusqu'à ce que l'autorisation soit attribuée." shipment_mailer: shipped_email: dear_customer: "Cher Acheteur," @@ -4817,13 +4871,10 @@ fr_CA: webhook_endpoints: title: 'Webhook ' description: Les événements dans le système peuvent déclencher des webhooks vers des systèmes externes. - event_types: - order_cycle_opened: Cycle de vente ouvert event_type: header: Type d'évènement url: header: URL du point de terminaison - create_placeholder: Entrez l'URL du point de terminaison du webhook developer_settings: title: Paramètres développeurs form: @@ -4985,6 +5036,13 @@ fr_CA: add_tag_rule_modal: select_rule_type: "Choisir le type de règle:" add_rule: "Ajouter une règle" + webhook_endpoint_form: + url: + create_placeholder: Entrez l'URL du point de terminaison du webhook + event_types: + order_cycle_opened: Cycle de vente ouvert + payment_status_changed: Poster webhook sur le changement du statut de paiement + test_endpoint: Tester le point de terminaison du webhook invisible_captcha: sentence_for_humans: "Merci de laisser ce champ libre" timestamp_error_message: "S'il vous plaît réessayez après 5 secondes." diff --git a/config/locales/fr_CH.yml b/config/locales/fr_CH.yml index 81263cc94d..eaf4c81aa6 100644 --- a/config/locales/fr_CH.yml +++ b/config/locales/fr_CH.yml @@ -75,28 +75,6 @@ fr_CH: limited_stock_but_no_count_on_hand: "doit être spécifié car pas \"à volonté\"" messages: blank: "Champ obligatoire" - errors: - messages: - content_type_invalid: "a un contenu invalide" - file_size_out_of_range: "la taille %{file_size} n'est pas dans la fourchette requise" - limit_out_of_range: "le nombre total est hors de la fourchette" - image_metadata_missing: "n'est pas une image valide" - dimension_min_inclusion: "doit être plus grand ou égal à %{width} x %{height} pixel." - dimension_max_inclusion: "doit être plus petit ou égal à %{width} x %{height} pixel." - dimension_width_inclusion: "la largeur n'est pas comprise entre %{min} et %{max} pixel." - dimension_height_inclusion: "la hauteur n'est pas comprise entre %{min} et %{max} pixel." - dimension_width_greater_than_or_equal_to: "la largeur doit être supérieure ou égale à %{length} pixel." - dimension_height_greater_than_or_equal_to: "la hauteur doit être supérieure ou égale à %{length} pixel." - dimension_width_less_than_or_equal_to: "la largeur doit être inférieure ou égale à %{length} pixel." - dimension_height_less_than_or_equal_to: "la hauteur doit être inférieure ou égale à %{length} pixel." - dimension_width_equal_to: "la largeur doit être égale à %{length} pixel." - dimension_height_equal_to: "la hauteur doit être égale à %{length} pixel." - aspect_ratio_not_square: "doit être une image carrée" - aspect_ratio_not_portrait: "doit être une image en mode portrait" - aspect_ratio_not_landscape: "doit être une image en mode paysage" - aspect_ratio_is_not: "doit avoir un rapport d'aspect de %{aspect_ratio}" - aspect_ratio_unknown: "a un rapport d'aspect inconnu" - image_not_processable: "n'est pas une image valide" stripe: error_code: incorrect_number: "Le numéro de carte bancaire est incorrect." @@ -270,6 +248,13 @@ fr_CH: join_community: "Accéder au forum" invite_manager: subject: "%{enterprise} vous a invité comme gestionnaire" + payment_mailer: + authorize_payment: + subject: "Veuillez autoriser votre paiement à %{distributor} sur Open Food Suisse." + instructions: "Votre paiement de %{amount} à %{distributor} demande une autorisation additionnelle. Veuillez suivre ce lien afin d'autoriser votre paiement :" + authorization_required: + subject: "Un paiement nécessite une autorisation de l'acheteur" + message: "Un paiement pour la commande %{order_number} nécessite une autorisation supplémentaire de la part de l'acheteur. L'acheteur a reçu un email et le statut du paiement restera en attente jusqu'à ce que l'autorisation soit attribuée." producer_mailer: order_cycle: subject: "Rapport de cycle de vente pour %{producer}" @@ -703,6 +688,7 @@ fr_CH: label: Conditions de transport tags: label: Tags + none: Aucun search: Rechercher sort: pagination: @@ -3896,9 +3882,7 @@ fr_CH: providers: provider: "Fournisseur" check: "Espèces / chèques / virements / autres " - pin: "Méthode de paiement réservée à l'Australie (Pin Payments)" paypalexpress: "PayPal Express" - stripeconnect: "Stripe (ancienne version)" stripesca: "Stripe" payments: source_forms: @@ -4115,13 +4099,6 @@ fr_CH: subject: "Instructions de mise à jour du mot de passe" confirmation_instructions: subject: "Veuillez confirmer votre compte" - payment_mailer: - authorize_payment: - subject: "Veuillez autoriser votre paiement à %{distributor} sur Open Food Suisse." - instructions: "Votre paiement de %{amount} à %{distributor} demande une autorisation additionnelle. Veuillez suivre ce lien afin d'autoriser votre paiement :" - authorization_required: - subject: "Un paiement nécessite une autorisation de l'acheteur" - message: "Un paiement pour la commande %{order_number} nécessite une autorisation supplémentaire de la part de l'acheteur. L'acheteur a reçu un email et le statut du paiement restera en attente jusqu'à ce que l'autorisation soit attribuée." shipment_mailer: shipped_email: dear_customer: "Cher Acheteur," diff --git a/config/locales/fr_CM.yml b/config/locales/fr_CM.yml index d86ce7aa6e..2976e9fcdf 100644 --- a/config/locales/fr_CM.yml +++ b/config/locales/fr_CM.yml @@ -202,6 +202,13 @@ fr_CM: join_community: "Accéder au forum" invite_manager: subject: "%{enterprise} vous a invité comme gestionnaire" + payment_mailer: + authorize_payment: + subject: "Veuillez autoriser votre paiement à %{distributor} sur CoopCircuits." + instructions: "Votre paiement de %{amount} à %{distributor} demande une autorisation additionnelle. Veuillez suivre ce lien afin d'autoriser votre paiement :" + authorization_required: + subject: "Un paiement nécessite une autorisation de l'acheteur" + message: "Un paiement pour la commande %{order_number} nécessite une autorisation supplémentaire de la part de l'acheteur. L'acheteur a reçu un email et le statut du paiement restera en attente jusqu'à ce que l'autorisation soit attribuée." producer_mailer: order_cycle: subject: "Rapport de cycle de vente pour %{producer}" @@ -634,6 +641,7 @@ fr_CM: label: Conditions de transport tags: label: Tags + none: Aucun search: Rechercher sort: pagination: @@ -3784,9 +3792,7 @@ fr_CM: providers: provider: "Fournisseur" check: "Espèces / chèques / virements / autres " - pin: "Méthode de paiement réservée à l'Australie (Pin Payments)" paypalexpress: "PayPal Express" - stripeconnect: "Stripe (ancienne version)" stripesca: "Stripe" payments: source_forms: @@ -4003,13 +4009,6 @@ fr_CM: subject: "Instructions de mise à jour du mot de passe" confirmation_instructions: subject: "Veuillez confirmer votre compte" - payment_mailer: - authorize_payment: - subject: "Veuillez autoriser votre paiement à %{distributor} sur CoopCircuits." - instructions: "Votre paiement de %{amount} à %{distributor} demande une autorisation additionnelle. Veuillez suivre ce lien afin d'autoriser votre paiement :" - authorization_required: - subject: "Un paiement nécessite une autorisation de l'acheteur" - message: "Un paiement pour la commande %{order_number} nécessite une autorisation supplémentaire de la part de l'acheteur. L'acheteur a reçu un email et le statut du paiement restera en attente jusqu'à ce que l'autorisation soit attribuée." shipment_mailer: shipped_email: dear_customer: "Cher Acheteur," diff --git a/config/locales/hi.yml b/config/locales/hi.yml index 54e849a4a1..980b0403aa 100644 --- a/config/locales/hi.yml +++ b/config/locales/hi.yml @@ -105,27 +105,6 @@ hi: blank: "खाली नहीं हो सकता" too_short: "बहुत छोटा है (न्यूनतम %{count} वर्ण है)" errors: - messages: - content_type_invalid: "में एक अमान्य कंटेन्ट प्रकार है" - file_size_out_of_range: "आकार %{file_size} आवश्यक सीमा के बीच नहीं है" - limit_out_of_range: "कुल संख्या सीमा से बाहर है" - image_metadata_missing: "मान्य छवि नहीं है" - dimension_min_inclusion: "%{width} x %{height} पिक्सेल से बड़ा या बराबर होना चाहिए" - dimension_max_inclusion: "%{width} x %{height} पिक्सेल से कम या बराबर होना चाहिए" - dimension_width_inclusion: "चौड़ाई %{min} और %{max} पिक्सेल के बीच में शामिल नहीं है" - dimension_height_inclusion: "%{min} और %{max} पिक्सल के बीच ऊंचाई शामिल नहीं है।" - dimension_width_greater_than_or_equal_to: "चौड़ाई %{length} पिक्सल से ज्यादा या उसके बराबर होनी चाहिए।" - dimension_height_greater_than_or_equal_to: "ऊंचाई %{length} पिक्सल से ज्यादा या उसके बराबर होनी चाहिए।" - dimension_width_less_than_or_equal_to: "चौड़ाई %{length} पिक्सल से कम या उसके बराबर होनी चाहिए।" - dimension_height_less_than_or_equal_to: "ऊंचाई %{length} पिक्सल से कम या उसके बराबर होनी चाहिए।" - dimension_width_equal_to: "चौड़ाई %{length} पिक्सल के बराबर होनी चाहिए।" - dimension_height_equal_to: "ऊंचाई %{length} पिक्सल के बराबर होनी चाहिए।" - aspect_ratio_not_square: "चौकोर इमेज होनी चाहिए" - aspect_ratio_not_portrait: "पोर्ट्रेट इमेज होनी चाहिए" - aspect_ratio_not_landscape: "लैंडस्केप इमेज होनी चाहिए" - aspect_ratio_is_not: "का आस्पेक्ट रेशियो %{aspect_ratio} होना चाहिए" - aspect_ratio_unknown: "इसका एक अज्ञात आस्पेक्ट रेशियो है" - image_not_processable: "मान्य छवि नहीं है" not_found: title: "जिस पेज को आप खोज रहे थे वह मौजूद नहीं है (404)" message_html: "कृपया फिर से कोशिश करें

यह एक अस्थायी समस्या हो सकती है। कृपया पिछली स्क्रीन पर रिटर्न के लिए वापस जाएं बटन पर क्लिक करें या होम पर वापस जाएं और फिर से कोशिश करें।

समर्थन से संपर्क करें

यदि समस्या बनी रहती है या अत्यावश्यक है, तो कृपया हमें इसके बारे में बताएं। वैश्विक Open Food Network लोकल पेजसे हमारे संपर्क विवरण प्राप्त करें।

अगर आप गुम हुए पेज के बारे में जितना संभव हो उतना विवरण दे सकते हैं, तो यह वास्तव में हमारी मदद करता है।

" @@ -318,6 +297,13 @@ hi: join_community: "कम्यूनिटी को जॉइन करें" invite_manager: subject: "%{enterprise} ने आपको प्रबंधक बनने के लिए आमंत्रित किया है" + payment_mailer: + authorize_payment: + subject: "कृपया OFN पर %{distributor} के लिए अपने भुगतान को अधिकृत करें" + instructions: "%{amount} से %{distributor} के आपके भुगतान के लिए अतिरिक्त प्रमाणीकरण की आवश्यकता होती है। अपने भुगतान को अधिकृत करने के लिए कृपया निम्नलिखित URL पर जाएं:" + authorization_required: + subject: "भुगतान के लिए ग्राहक से प्राधिकरण की आवश्यकता होती है" + message: "ऑर्डर %{order_number} के लिए भुगतान के लिए ग्राहक से अतिरिक्त प्राधिकरण की आवश्यकता होती है। ग्राहक को ईमेल के माध्यम से सूचित किया गया है और भुगतान अधिकृत होने तक पेंडिंग दिखाई देगा।" producer_mailer: order_cycle: subject: "%{producer} के लिए साइकल रिपोर्ट ऑर्डर करें" @@ -779,6 +765,7 @@ hi: label: श्रेणियां tags: label: टैग्स + none: कोई नहीं search: सर्च sort: pagination: @@ -3722,6 +3709,7 @@ hi: logourl: "लॉग-आउट करें" are_you_sure_delete: "क्या आप वाकई इस रिकॉर्ड को मिटाना चाहते हैं?" confirm_delete: "हटाने की पुष्टि करें" + voucher: "वाउचर" configurations: "कॉन्फ़िगरेशन करें" general_settings: "सामान्य सेटिंग" site_name: "साइट का नाम" @@ -3810,6 +3798,7 @@ hi: alt_text: "वैकल्पिक टेक्स्ट" thumbnail: "थंबनेल" back_to_images_list: "छवियों की सूची पर वापस जाएं" + api_key: "API कुंजी" email: ईमेल account_updated: "अकाउंट अपडेट किया गया!" email_updated: "नए ईमेल की पुष्टि होने के बाद अकाउंट अपडेट हो जाएगा।" @@ -4115,9 +4104,7 @@ hi: providers: provider: "प्रदाता" check: "नकद/EFT/आदि (ऐसे भुगतान जिनके लिए ऑटोमैटिक वेरिफिकेशन की आवश्यकता नहीं है)" - pin: "Pin Payments" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" payments: source_forms: @@ -4342,13 +4329,6 @@ hi: subject: "पासवर्ड निर्देश रिसेट करें" confirmation_instructions: subject: "कृपया अपने OFN अकाउंट की पुष्टि करें" - payment_mailer: - authorize_payment: - subject: "कृपया OFN पर %{distributor} के लिए अपने भुगतान को अधिकृत करें" - instructions: "%{amount} से %{distributor} के आपके भुगतान के लिए अतिरिक्त प्रमाणीकरण की आवश्यकता होती है। अपने भुगतान को अधिकृत करने के लिए कृपया निम्नलिखित URL पर जाएं:" - authorization_required: - subject: "भुगतान के लिए ग्राहक से प्राधिकरण की आवश्यकता होती है" - message: "ऑर्डर %{order_number} के लिए भुगतान के लिए ग्राहक से अतिरिक्त प्राधिकरण की आवश्यकता होती है। ग्राहक को ईमेल के माध्यम से सूचित किया गया है और भुगतान अधिकृत होने तक पेंडिंग दिखाई देगा।" shipment_mailer: shipped_email: dear_customer: "प्रिय ग्राहक," @@ -4411,13 +4391,10 @@ hi: webhook_endpoints: title: Webhook एंडपॉइंट्स description: सिस्टम में होने वाले इवेंट्स webhook को बाहरी सिस्टम में ट्रिगर कर सकती हैं। - event_types: - order_cycle_opened: ऑर्डर साइकल खोला गया event_type: header: इवेंट प्रकार url: header: एंडपॉइंट URL - create_placeholder: रिमोट webhook एंडपॉइंट का URL एंटर करें developer_settings: title: डेवलपर सेटिंग form: @@ -4565,3 +4542,8 @@ hi: add_tag_rule_modal: select_rule_type: "नियम का प्रकार चुनें:" add_rule: "नियम जोड़ें" + webhook_endpoint_form: + url: + create_placeholder: रिमोट webhook एंडपॉइंट का URL एंटर करें + event_types: + order_cycle_opened: ऑर्डर साइकल खोला गया diff --git a/config/locales/hu.yml b/config/locales/hu.yml index bf5f80167f..7d4b1074b4 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -115,27 +115,6 @@ hu: blank: "nem lehet üres" too_short: "túl rövid (minimum %{count}karakter)" errors: - messages: - content_type_invalid: "érvénytelen tartalom típus" - file_size_out_of_range: "a %{file_size} mérete nem esik bele a kívánt tartományba" - limit_out_of_range: "az összmenyiség kívül esik a megengedett tartományon" - image_metadata_missing: "nem használható kép" - dimension_min_inclusion: "legyen nagyobb vagy egyenlő %{width} x %{height} pixel" - dimension_max_inclusion: "legyen kisebb vagy egyenlő %{width} x %{height} pixel" - dimension_width_inclusion: "a szélesség nincs %{min} és %{max} pixel közt" - dimension_height_inclusion: "magasság nincs %{min} és %{max} pixel között" - dimension_width_greater_than_or_equal_to: "a szélesség legyen nagyobb vagy egyenlő %{length} pixel" - dimension_height_greater_than_or_equal_to: "a magasság legyen nagyobb vagy egyenlő %{length} pixel" - dimension_width_less_than_or_equal_to: "a szélesség legyen kisebb vagy egyenlő %{length} pixel" - dimension_height_less_than_or_equal_to: "a magasság legyen kisebb vagy egyenlő %{length} pixel" - dimension_width_equal_to: "a szélesség legyen egyenlő %{length} pixel" - dimension_height_equal_to: "a magasság legyen egyenlő %{length} pixel" - aspect_ratio_not_square: "négyzet alakú képnek kell lennie" - aspect_ratio_not_portrait: "portré képnek kell lennie" - aspect_ratio_not_landscape: "fekvő tájolású kép legyen" - aspect_ratio_is_not: "%{aspect_ratio} arányú legyen" - aspect_ratio_unknown: "ismeretlen arány" - image_not_processable: "nem használható kép" not_found: title: "A keresett oldal nem található! (404)" message_html: "Kérjük, próbáld újra!

Ez lehet egy átmeneti probléma. Kattints a vissza gombra, hogy visszatérj az előző képernyőre, vagy menj vissza a(z) Kezdőlapra és próbáld újra.

Fordulj az Ügyfélszolgálathoz.

Ha a probléma továbbra is fennáll, vagy sürgős, kérjük, értesíts minket róla. Elérhetőségeinket a globális Open Food Network helyi oldalán találod.

Nagy segítség, ha minél több részletet meg tudsz adni a nem található oldalról.

" @@ -347,6 +326,13 @@ hu: join_community: "Csatlakozz a közösséghez" invite_manager: subject: "%{enterprise} meghívott téged menedzsernek" + payment_mailer: + authorize_payment: + subject: "Kérjük, engedélyezd a fizetést %{distributor} részére az Open Food-on" + instructions: "%{amount} összegű befizetésed %{distributor} részére további hitelesítést igényel. Kérjük, keresd fel a következő URL-t a fizetés engedélyezéséhez:" + authorization_required: + subject: "A fizetéshez az ügyfél engedélye szükséges" + message: "A(z) %{order_number} rendelés kifizetéséhez további engedély szükséges az ügyféltől. Az ügyfelet e-mailben értesítették, és a fizetés függőben lévőként jelenik meg az engedélyezésig." producer_mailer: order_cycle: subject: "Rendelési ciklus jelentés a következőhöz: %{producer}" @@ -862,6 +848,7 @@ hu: label: Kategóriák tags: label: Címkék + none: Egyik sem search: Keresés sort: pagination: @@ -1637,7 +1624,7 @@ hu: has_no_shipping_methods: "%{enterprise} nem rendelkezik szállítási móddal" has_no_enterprise_fees: "A %{enterprise}-nek nincsenek vállalkozási díjai" flashes: - dismiss: Elutasítás + dismiss: Bezárás side_menu: enterprise: primary_details: "Főbb adatok" @@ -2641,7 +2628,7 @@ hu: failed_to_create_enterprise: "Nem sikerült létrehozni a vállalkozást." failed_to_create_enterprise_unknown: "Nem sikerült létrehozni a vállalkozást. Győződj meg arról, hogy minden mezőt hiánytalanul kitöltöttél." failed_to_update_enterprise_unknown: "Nem sikerült frissíteni a vállalkozást. Győződj meg arról, hogy minden mezőt hiánytalanul kitöltöttél." - enterprise_confirm_delete_message: "Ezzel a vállalkozás által szállított %{product} is törlődik. Biztos, hogy akarod folytatni?" + enterprise_confirm_delete_message: "Ezzel a vállalkozás %{product} terméke is törlődik. Biztos, hogy akarod folytatni?" order_not_saved_yet: "Megrendelésed még nem lett elmentve. Adj nekünk néhány másodpercet, hogy befejezzük!" filter_by: "Szűrés" hide_filters: "Szűrők elrejtése" @@ -2803,7 +2790,7 @@ hu: instagram: "Instagram" instagram_placeholder: "pl. @instagram_handle" limit_reached: - headline: "Ó ne!" + headline: "Ó, ne!" message: "Elérted a korlátot!" text: "Elérted a vállalkozások számának korlátját, amelyeknek a tulajdonosa lehetsz" action: "Vissza a kezdőlapra" @@ -3930,6 +3917,7 @@ hu: logourl: "Logourl" are_you_sure_delete: "Biztosan törli ezt a rekordot?" confirm_delete: "Törlés megerősítése" + voucher: "Kupon" configurations: "Konfigurációk" general_settings: "Általános beállítások" site_name: "Webhely neve" @@ -4020,6 +4008,7 @@ hu: alt_text: "Alternatív szöveg" thumbnail: "Miniatűr" back_to_images_list: "Vissza a képek listájához" + api_key: "API kulcs" email: Email account_updated: "Fiók frissítve!" email_updated: "A fiók az új e-mail-cím megerősítését követően frissül." @@ -4335,9 +4324,7 @@ hu: providers: provider: "Szolgáltató" check: "Készpénz/EFT/stb. (olyan kifizetések, amelyeknél nincs szükség automatikus érvényesítésre)" - pin: "Pin Payments" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" payments: source_forms: @@ -4585,13 +4572,6 @@ hu: subject: "Jelszó visszaállítási utasítások" confirmation_instructions: subject: "Kérjük, erősítsd meg Open Food fiókod" - payment_mailer: - authorize_payment: - subject: "Kérjük, engedélyezd a fizetést %{distributor} részére az Open Food-on" - instructions: "%{amount} összegű befizetésed %{distributor} részére további hitelesítést igényel. Kérjük, keresd fel a következő URL-t a fizetés engedélyezéséhez:" - authorization_required: - subject: "A fizetéshez az ügyfél engedélye szükséges" - message: "A(z) %{order_number} rendelés kifizetéséhez további engedély szükséges az ügyféltől. Az ügyfelet e-mailben értesítették, és a fizetés függőben lévőként jelenik meg az engedélyezésig." shipment_mailer: shipped_email: dear_customer: "Kedves Ügyfelünk," @@ -4654,13 +4634,10 @@ hu: webhook_endpoints: title: Webhook végpontok description: A rendszerben bekövetkező események webhookokat indíthatnak külső rendszerek felé. - event_types: - order_cycle_opened: Rendelési ciklus megnyitva event_type: header: Esemény típusa url: header: Végpont URL - create_placeholder: Add meg a távoli webhook végpont URL-címét developer_settings: title: Fejlesztői beállítások form: @@ -4809,6 +4786,11 @@ hu: add_tag_rule_modal: select_rule_type: "Válassz egy szabálytípust:" add_rule: "Szabály hozzáadása" + webhook_endpoint_form: + url: + create_placeholder: Add meg a távoli webhook végpont URL-címét + event_types: + order_cycle_opened: Rendelési ciklus megnyitva invisible_captcha: sentence_for_humans: "Kérjük, hagyd üresen" timestamp_error_message: "Kérjük, próbáld meg 5 másodperc múlva." diff --git a/config/locales/it.yml b/config/locales/it.yml index a6e5769570..0eacc20c32 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -87,27 +87,6 @@ it: messages: blank: "non può essere lasciato vuoto" errors: - messages: - content_type_invalid: "tipo di contenuto non valido" - file_size_out_of_range: "la dimensione %{file_size} non rientra nell'intervallo richiesto" - limit_out_of_range: "numero totale fuori intervallo" - image_metadata_missing: "immagine non valida" - dimension_min_inclusion: "deve essere maggiore o uguale a %{width} x %{height} pixel." - dimension_max_inclusion: "deve essere minore o uguale a %{width} x %{height} pixel." - dimension_width_inclusion: "la larghezza non è inclusa tra %{min} e %{max} pixel." - dimension_height_inclusion: "l'altezza non è inclusa tra %{min} e %{max} pixel." - dimension_width_greater_than_or_equal_to: "la larghezza deve essere maggiore o uguale a %{length} pixel." - dimension_height_greater_than_or_equal_to: "l'altezza deve essere maggiore o uguale a %{length} pixel." - dimension_width_less_than_or_equal_to: "la larghezza deve essere minore o uguale a %{length} pixel." - dimension_height_less_than_or_equal_to: "l'altezza deve essere minore o uguale a %{length} pixel." - dimension_width_equal_to: "la larghezza deve essere uguale a %{length} pixel." - dimension_height_equal_to: "l'altezza deve essere uguale a %{length} pixel." - aspect_ratio_not_square: "deve essere un'immagine quadrata" - aspect_ratio_not_portrait: "deve essere un ritratto" - aspect_ratio_not_landscape: "deve essere un paesaggio" - aspect_ratio_is_not: "deve avere propozioni di %{aspect_ratio}" - aspect_ratio_unknown: "ha proporzioni sconosciute" - image_not_processable: "immagine non valida" not_found: title: "La pagina che stai cercando non esiste (404)" message_html: "Per favore riprova

Questo potrebbe essere un problema temporaneo. Per favore clicca il pulsante \"Indietro\" per tornare alla schermata precedente o alla Home e prova ancora.

Contatta il supporto

Se il problema persiste o è urgente, per favore segnalacelo. Trova i nostri dettagli di contatto su pagina Open Food Network Locale.

Ci aiuterebbe molto se ci fornissi più dettagli possibili circa la pagina mancante.

" @@ -294,6 +273,13 @@ it: join_community: "Unisciti alla community" invite_manager: subject: "%{enterprise} ti a invitato ad essere un referente" + payment_mailer: + authorize_payment: + subject: "Per favore autorizza il tuo pagamento a %{distributor} su OFN" + instructions: "Il tuo pagamento di %{amount} a %{distributor} richiede ulteriore autentificazione. Per favore visita il seguente URL per autorizzare il tuo pagamento: " + authorization_required: + subject: "Un pagamento richiede l'autorizzazione del cliente" + message: "Un pagamento per l'ordine %{order_number} richiede una ulteriore autorizzazione da parte del cliente. Il cliente è stato avvisato tramite e-mail e il pagamento apparirà come in sospeso fino a quando non sarà autorizzato." producer_mailer: order_cycle: subject: "Resoconto degli ordini per %{producer}" @@ -737,6 +723,7 @@ it: label: categorie tags: label: Etichette + none: Nessuno search: Cerca sort: pagination: @@ -3676,6 +3663,7 @@ it: alt_text: "Testo alternativo" thumbnail: "Thumbnail" back_to_images_list: "Torna alla lista Immagini" + api_key: "Chiave API" email: Email account_updated: "Account aggiornato!" email_updated: "L'account sarà aggiornato una volta confermata la nuova email" @@ -3973,9 +3961,7 @@ it: providers: provider: "Provider" check: "Contanti o altri metodi di pagamento per cui non è richiesta una validazione automatica" - pin: "Pin Payments" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" payments: source_forms: @@ -4198,13 +4184,6 @@ it: subject: "Istruzioni per il reset della password" confirmation_instructions: subject: "Per favore conferma il tuo account OFN" - payment_mailer: - authorize_payment: - subject: "Per favore autorizza il tuo pagamento a %{distributor} su OFN" - instructions: "Il tuo pagamento di %{amount} a %{distributor} richiede ulteriore autentificazione. Per favore visita il seguente URL per autorizzare il tuo pagamento: " - authorization_required: - subject: "Un pagamento richiede l'autorizzazione del cliente" - message: "Un pagamento per l'ordine %{order_number} richiede una ulteriore autorizzazione da parte del cliente. Il cliente è stato avvisato tramite e-mail e il pagamento apparirà come in sospeso fino a quando non sarà autorizzato." shipment_mailer: shipped_email: dear_customer: "Caro Cliente," diff --git a/config/locales/it_CH.yml b/config/locales/it_CH.yml index f9d135f325..e267b218c5 100644 --- a/config/locales/it_CH.yml +++ b/config/locales/it_CH.yml @@ -243,6 +243,13 @@ it_CH: join_community: "Unisciti alla community" invite_manager: subject: "%{enterprise} ti a invitato ad essere un referente" + payment_mailer: + authorize_payment: + subject: "Per favore autorizza il tuo pagamento a %{distributor} su OFN" + instructions: "Il tuo pagamento di %{amount} a %{distributor} richiede ulteriore autentificazione. Per favore visita il seguente URL per autorizzare il tuo pagamento: " + authorization_required: + subject: "Un pagamento richiede l'autorizzazione del cliente" + message: "Un pagamento per l'ordine %{order_number} richiede una ulteriore autorizzazione da parte del cliente. Il cliente è stato avvisato tramite e-mail e il pagamento apparirà come in sospeso fino a quando non sarà autorizzato." producer_mailer: order_cycle: subject: "Resoconto degli ordini per %{producer}" @@ -675,6 +682,7 @@ it_CH: label: categorie tags: label: Etichette + none: Nessuno search: Cerca sort: pagination: @@ -3819,9 +3827,7 @@ it_CH: providers: provider: "Provider" check: "Contanti o altri metodi di pagamento per cui non è richiesta una validazione automatica" - pin: "Pin Payments" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" payments: source_forms: @@ -4037,13 +4043,6 @@ it_CH: subject: "Istruzioni per il reset della password" confirmation_instructions: subject: "Per favore conferma il tuo account OFN" - payment_mailer: - authorize_payment: - subject: "Per favore autorizza il tuo pagamento a %{distributor} su OFN" - instructions: "Il tuo pagamento di %{amount} a %{distributor} richiede ulteriore autentificazione. Per favore visita il seguente URL per autorizzare il tuo pagamento: " - authorization_required: - subject: "Un pagamento richiede l'autorizzazione del cliente" - message: "Un pagamento per l'ordine %{order_number} richiede una ulteriore autorizzazione da parte del cliente. Il cliente è stato avvisato tramite e-mail e il pagamento apparirà come in sospeso fino a quando non sarà autorizzato." shipment_mailer: shipped_email: dear_customer: "Caro Cliente," diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 90acb904d2..3d1a0b9e72 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -70,28 +70,6 @@ ko: limited_stock_but_no_count_on_hand: "한정된 재고 사항에 따라 명시되어야 합니다." messages: blank: "빈칸이 될 수 없습니다." - errors: - messages: - content_type_invalid: "사용 불가한 컨텐츠 타입입니다." - file_size_out_of_range: "%{file_size}의 크기는 요구된 범위에 있지 않습니다." - limit_out_of_range: "총합이 범위를 넘어섭니다." - image_metadata_missing: "가능한 이미지 파일이 아닙니다." - dimension_min_inclusion: "%{width} x %{height} 픽셀보다 크거나 같아야 합니다." - dimension_max_inclusion: "%{width} x %{height} 픽셀보다 작거나 같아야 합니다." - dimension_width_inclusion: "가로의 길이가 %{min} 과 %{max} 픽셀 사이에 있지 않습니다." - dimension_height_inclusion: "세로이 길이가 %{min} 과%{max} 픽셀 사이에 있지 않습니다." - dimension_width_greater_than_or_equal_to: "가로의 길이는%{length} 픽셀보다 크거나 같아야 합니다." - dimension_height_greater_than_or_equal_to: "세로의 길이는 %{length} 픽셀보다 크거나 같아야 합니다." - dimension_width_less_than_or_equal_to: "가로의 길이는 %{length} 픽셀보다 작거나 같아야 합니다." - dimension_height_less_than_or_equal_to: "세로의 길이는 %{length} 픽셀보다 작거나 같아야 합니다." - dimension_width_equal_to: "가로의 길이는 %{length} 픽셀이어야 합니다." - dimension_height_equal_to: "세로의 길이는 %{length} 픽셀이어야 합니다." - aspect_ratio_not_square: "정사각형 형태의 사진이어야 합니다." - aspect_ratio_not_portrait: "세로로 찍은 사진이어야 합니다." - aspect_ratio_not_landscape: "가로로 찍은 사진이어야 합니다." - aspect_ratio_is_not: "화면 비율이 %{aspect_ratio} 이어야 합니다." - aspect_ratio_unknown: "알 수 없는 화면 비율 입니다." - image_not_processable: "가능한 이미지 파일이 아닙니다." stripe: error_code: incorrect_number: "카드 숫자가 맞지 않습니다." @@ -266,6 +244,13 @@ ko: join_community: "커뮤니티에 참여하세요" invite_manager: subject: "%{enterprise}가 당신을 매니저로 초대합니다." + payment_mailer: + authorize_payment: + subject: "OFN으로 %{distributor}에게 지불을 승인하십시오." + instructions: "%{distributor}에게 %{amount}를 지불하시려면 추가 인증이 필요합니다. 결제를 승인하려면 다음 URL을 방문하십시오." + authorization_required: + subject: "결제를 수행하려면 고객의 승인이 필요합니다." + message: "주문 %{order_number}에 대한 결제는 고객의 추가 승인이 필요합니다. 고객에게 이메일을 통해 통보되었으며 결제가 승인될 때까지 보류 중인 것으로 표시됩니다." producer_mailer: order_cycle: subject: "%{producer}의 주문 사이클 기록" @@ -698,6 +683,7 @@ ko: label: 카테고리 tags: label: 태그 + none: None search: 탐색 sort: pagination: @@ -3785,9 +3771,7 @@ ko: providers: provider: "제공자" check: "현금/온라인 이체/기타 등등 (자동 유효성 검사가 필요하지 않은 지불)" - pin: "핀 결제" paypalexpress: "페이팔 익스프레스" - stripeconnect: "Stripe" stripesca: "Stripe SCA" payments: source_forms: @@ -4004,13 +3988,6 @@ ko: subject: "비밀번호 지침 초기화" confirmation_instructions: subject: "OFN 계정을 확인하세요." - payment_mailer: - authorize_payment: - subject: "OFN으로 %{distributor}에게 지불을 승인하십시오." - instructions: "%{distributor}에게 %{amount}를 지불하시려면 추가 인증이 필요합니다. 결제를 승인하려면 다음 URL을 방문하십시오." - authorization_required: - subject: "결제를 수행하려면 고객의 승인이 필요합니다." - message: "주문 %{order_number}에 대한 결제는 고객의 추가 승인이 필요합니다. 고객에게 이메일을 통해 통보되었으며 결제가 승인될 때까지 보류 중인 것으로 표시됩니다." shipment_mailer: shipped_email: dear_customer: "고객님 에게," diff --git a/config/locales/ml.yml b/config/locales/ml.yml index 1dd14847b2..2c0bb067e9 100644 --- a/config/locales/ml.yml +++ b/config/locales/ml.yml @@ -105,27 +105,6 @@ ml: blank: "ശൂന്യമായിരിക്കാൻ കഴിയില്ല" too_short: "വളരെ ചെറുതാണ് (കുറഞ്ഞത് %{count} അക്ഷരങ്ങൾ ഉണ്ടാകണം)" errors: - messages: - content_type_invalid: "ഒരു അസാധുവായ ഉള്ളടക്കം ഉണ്ട്" - file_size_out_of_range: "%{file_size} വലുപ്പം ആവശ്യമായ ശ്രേണിയ്‌ക്കിടയിലല്ല" - limit_out_of_range: "ആകെ എണ്ണം പരിധിക്ക് പുറത്താണ്" - image_metadata_missing: "ചിത്രം സാധുതയുള്ളതല്ല" - dimension_min_inclusion: "%{width} x %{height} പിക്സലിനു തുല്യമോ വലുതോ ആയിരിക്കണം." - dimension_max_inclusion: "%{width} x %{height} പിക്സലിനു തുല്യമോ കുറവോ ആയിരിക്കണം." - dimension_width_inclusion: "%{min} പിക്സലിനും %{max} പിക്സലിനും ഇടയിൽ വീതി ഉൾപ്പെടുത്തിയിട്ടില്ല." - dimension_height_inclusion: "%{min} പിക്സലിനും %{max} പിക്സലിനും ഇടയിൽ ഉയരം ഉൾപ്പെടുത്തിയിട്ടില്ല." - dimension_width_greater_than_or_equal_to: "വീതി %{length} പിക്സലിനു തുല്യമോ വലുതോ ആയിരിക്കണം." - dimension_height_greater_than_or_equal_to: "ഉയരം %{length} പിക്സലിനു തുല്യമോ വലുതോ ആയിരിക്കണം." - dimension_width_less_than_or_equal_to: "വീതി %{length} പിക്സലിനു തുല്യമോ കുറവോ ആയിരിക്കണം." - dimension_height_less_than_or_equal_to: "ഉയരം %{length} പിക്സലിനു തുല്യമോ കുറവോ ആയിരിക്കണം." - dimension_width_equal_to: "വീതി %{length} പിക്സലിന് തുല്യമായിരിക്കണം." - dimension_height_equal_to: "ഉയരം %{length} പിക്സലിന് തുല്യമായിരിക്കണം." - aspect_ratio_not_square: "ഒരു ചതുര ചിത്രം ആയിരിക്കണം" - aspect_ratio_not_portrait: "ഒരു ഛായാചിത്രം ആയിരിക്കണം" - aspect_ratio_not_landscape: "ഒരു ഭൂപ്രകൃതി ചിത്രമായിരിക്കണം" - aspect_ratio_is_not: "%{aspect_ratio} എന്ന വീക്ഷണാനുപാതം ഉണ്ടായിരിക്കണം" - aspect_ratio_unknown: "വീക്ഷണാനുപാതം അജ്ഞാതമാണ് " - image_not_processable: "ചിത്രം സാധുതയുള്ളതല്ല" not_found: title: "നിങ്ങൾ തിരയുന്ന പേജ് നിലവിലില്ല (404)" message_html: "ദയവായി വീണ്ടും ശ്രമിക്കുക

ഇതൊരു താൽക്കാലിക പ്രശ്നമായിരിക്കാം. മുൻപുണ്ടായിരുന്ന സ്‌ക്രീനിലേക്ക് മടങ്ങാൻ ബാക്ക് ബട്ടൺ ക്ലിക്ക് ചെയ്യുക അല്ലെങ്കിൽ ഹോം പേജ് ലേക്ക് തിരികെ പോയി വീണ്ടും ശ്രമിക്കുക.

പിന്തുണയ്ക്കായി ബന്ധപ്പെടുക

പ്രശ്‌നം നിലനിൽക്കുന്നുണ്ടെങ്കിലോ അത്യാവശ്യമോ ആണെങ്കിൽ, അതിനെക്കുറിച്ച് ഞങ്ങളോട് പറയുക. ആഗോള ഓപ്പൺ ഫുഡ് നെറ്റ്‌വർക്ക് ലോക്കൽ പേജിൽ നിന്ന് ഞങ്ങളുടെ ബന്ധപ്പെടുന്നതിനുള്ള വിശദാംശങ്ങൾ കണ്ടെത്തുക.

നഷ്‌ടമായ പേജ് എന്തിനെക്കുറിച്ചാണെന്ന് നിങ്ങൾക്ക് കഴിയുന്നത്ര വിശദാംശങ്ങൾ നൽകാൻ കഴിയുമെങ്കിൽ അത് ശരിക്കും ഞങ്ങളെ സഹായിക്കും.

" @@ -318,6 +297,13 @@ ml: join_community: "കമ്മ്യൂണിറ്റിയിൽ ചേരുക" invite_manager: subject: "%{enterprise} നിങ്ങളെ മാനേജരാകാൻ ക്ഷണിച്ചു" + payment_mailer: + authorize_payment: + subject: "ഓഎഫ്എൻ-ൽ %{distributor} -ലേക്കുള്ള നിങ്ങളുടെ പേയ്‌മെന്റ് അംഗീകരിക്കുക" + instructions: "%{distributor} -ക്കുള്ള നിങ്ങളുടെ %{amount}പേയ്‌മെന്റിന് അധിക പ്രാമാണീകരണം ആവശ്യമാണ്. നിങ്ങളുടെ പേയ്‌മെന്റ് അംഗീകരിക്കുന്നതിന് ഇനിപ്പറയുന്ന യുആർഎൽ സന്ദർശിക്കുക:" + authorization_required: + subject: "ഒരു പേയ്‌മെന്റിന് ഉപഭോക്താവിന്റെ അനുമതി ആവശ്യമാണ്" + message: "%{order_number} എന്ന ഓർഡറിന്റെ പേയ്‌മെന്റിന് ഉപഭോക്താവിൽ നിന്ന് അധിക അനുമതി ആവശ്യമാണ്. ഉപഭോക്താവിന് ഇമെയിൽ വഴി അറിയിപ്പ് ലഭിച്ചു, അത് അംഗീകരിക്കപ്പെടുന്നതുവരെ പേയ്‌മെന്റ് തീർച്ചപ്പെടുത്തിയിട്ടില്ലെന്ന് ദൃശ്യമാകും." producer_mailer: order_cycle: subject: "%{producer}-നുള്ള ഓർഡർ സൈക്കിൾ റിപ്പോർട്ട് " @@ -782,6 +768,7 @@ ml: label: വിഭാഗങ്ങൾ tags: label: ടാഗുകൾ + none: ഒന്നുമില്ല search: തിരയുക sort: pagination: @@ -3746,6 +3733,7 @@ ml: logourl: "ലോഗോ യുആർഎൽ" are_you_sure_delete: "ഈ റെക്കോർഡ് ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ?" confirm_delete: "ഇല്ലാതാക്കൽ സ്ഥിരീകരിക്കുക" + voucher: "വൗച്ചർ" configurations: "കോൺഫിഗറേഷനുകൾ" general_settings: "പൊതുവായ ക്രമീകരണങ്ങൾ" site_name: "സൈറ്റിന്റെ പേര്" @@ -3834,6 +3822,7 @@ ml: alt_text: "ഇതര വാചകം" thumbnail: "ലഘുചിത്രം" back_to_images_list: "ചിത്രങ്ങളുടെ പട്ടികയിലേക്ക് മടങ്ങുക" + api_key: "എപിഐ കീ" email: ഇമെയിൽ account_updated: "അക്കൗണ്ട് അപ്ഡേറ്റ് ചെയ്തു!" email_updated: "പുതിയ ഇമെയിൽ സ്ഥിരീകരിച്ചുകഴിഞ്ഞാൽ അക്കൗണ്ട് അപ്‌ഡേറ്റ് ചെയ്യും." @@ -4140,9 +4129,7 @@ ml: providers: provider: "ദാതാവ്" check: "പണം/ഇഎഫ്ടി/ മുതലായവ (ഓട്ടോമാറ്റിക് മൂല്യനിർണ്ണയം ആവശ്യമില്ലാത്ത പേയ്‌മെന്റുകൾ)" - pin: "പേയ്‌മെന്റുകൾ പിൻ ചെയ്യുക" paypalexpress: "പേപാൽ എക്സ്പ്രസ്" - stripeconnect: "സ്‌ട്രൈപ്പ്" stripesca: "സ്‌ട്രൈപ്പ് എസ്സിഎ" payments: source_forms: @@ -4369,13 +4356,6 @@ ml: subject: "പാസ്‌വേഡ് പുനഃസജ്ജമാക്കുന്നതിനുള്ള നിർദ്ദേശങ്ങൾ " confirmation_instructions: subject: "നിങ്ങളുടെ ഓഎഫ്എൻ അക്കൗണ്ട് സ്ഥിരീകരിക്കുക" - payment_mailer: - authorize_payment: - subject: "ഓഎഫ്എൻ-ൽ %{distributor} -ലേക്കുള്ള നിങ്ങളുടെ പേയ്‌മെന്റ് അംഗീകരിക്കുക" - instructions: "%{distributor} -ക്കുള്ള നിങ്ങളുടെ %{amount}പേയ്‌മെന്റിന് അധിക പ്രാമാണീകരണം ആവശ്യമാണ്. നിങ്ങളുടെ പേയ്‌മെന്റ് അംഗീകരിക്കുന്നതിന് ഇനിപ്പറയുന്ന യുആർഎൽ സന്ദർശിക്കുക:" - authorization_required: - subject: "ഒരു പേയ്‌മെന്റിന് ഉപഭോക്താവിന്റെ അനുമതി ആവശ്യമാണ്" - message: "%{order_number} എന്ന ഓർഡറിന്റെ പേയ്‌മെന്റിന് ഉപഭോക്താവിൽ നിന്ന് അധിക അനുമതി ആവശ്യമാണ്. ഉപഭോക്താവിന് ഇമെയിൽ വഴി അറിയിപ്പ് ലഭിച്ചു, അത് അംഗീകരിക്കപ്പെടുന്നതുവരെ പേയ്‌മെന്റ് തീർച്ചപ്പെടുത്തിയിട്ടില്ലെന്ന് ദൃശ്യമാകും." shipment_mailer: shipped_email: dear_customer: "പ്രിയ ഉപഭോക്താവേ," @@ -4438,13 +4418,10 @@ ml: webhook_endpoints: title: വെബ്‌ഹുക്ക് എൻഡ്‌പോയിന്റുകൾ description: സിസ്റ്റത്തിലെ ഇവന്റുകൾ ബാഹ്യ സിസ്റ്റങ്ങളിലേക്ക് വെബ്‌ഹുക്കുകളെ ട്രിഗർ ചെയ്‌തേക്കാം. - event_types: - order_cycle_opened: ഓർഡർ സൈക്കിൾ തുറന്നു event_type: header: ഇവന്റ് തരം url: header: എൻഡ്‌പോയിന്റ് യുആർഎൽ - create_placeholder: റിമോട്ട് വെബ്ഹുക്ക് എൻഡ് പോയിന്റിന്റെ യുആർഎൽ നൽകുക developer_settings: title: ഡെവലപ്പർ ക്രമീകരണങ്ങൾ form: @@ -4592,3 +4569,8 @@ ml: add_tag_rule_modal: select_rule_type: "ഒരു റൂൾ തരം തിരഞ്ഞെടുക്കുക:" add_rule: "നിയമം ചേർക്കുക" + webhook_endpoint_form: + url: + create_placeholder: റിമോട്ട് വെബ്ഹുക്ക് എൻഡ് പോയിന്റിന്റെ യുആർഎൽ നൽകുക + event_types: + order_cycle_opened: ഓർഡർ സൈക്കിൾ തുറന്നു diff --git a/config/locales/mr.yml b/config/locales/mr.yml index 8d08ece38b..569e936705 100644 --- a/config/locales/mr.yml +++ b/config/locales/mr.yml @@ -105,27 +105,6 @@ mr: blank: "रिक्त असू शकत नाही" too_short: "खूप छोटा आहे (किमान %{count} अक्षरे )" errors: - messages: - content_type_invalid: "सामग्री प्रकार अवैध आहे" - file_size_out_of_range: "आकार %{file_size} आवश्यक रेंज मध्ये नाही" - limit_out_of_range: "एकूण संख्या श्रेणीबाहेर आहे" - image_metadata_missing: "वैध इमेज़ नाही" - dimension_min_inclusion: "%{width} x %{height} पिक्सेल पेक्षा मोठे किंवा समान असणे आवश्यक आहे." - dimension_max_inclusion: "%{width} x %{height} पिक्सेल पेक्षा कमी किंवा समान असणे आवश्यक आहे." - dimension_width_inclusion: "रुंदी %{min} आणि %{max} पिक्सेल दरम्यान समाविष्ट केलेली नाही." - dimension_height_inclusion: "उंची %{min} आणि %{max} पिक्सेल च्या दरम्यान नाही." - dimension_width_greater_than_or_equal_to: "रुंदी %{length} पिक्सेलपेक्षा जास्त किंवा समान असणे आवश्यक आहे." - dimension_height_greater_than_or_equal_to: "उंची %{length} पिक्सेल पेक्षा जास्त किंवा समान असणे आवश्यक आहे." - dimension_width_less_than_or_equal_to: "रुंदी %{length} पिक्सेल पेक्षा कमी किंवा समान असणे आवश्यक आहे." - dimension_height_less_than_or_equal_to: "उंची %{length} पिक्सेल पेक्षा कमी किंवा समान असणे आवश्यक आहे." - dimension_width_equal_to: "रुंदी %{length} पिक्सेल इतकी असणे आवश्यक आहे." - dimension_height_equal_to: "उंची %{length} पिक्सेल इतकी असणे आवश्यक आहे." - aspect_ratio_not_square: "इमेज़ चौरसाकृती असावी" - aspect_ratio_not_portrait: "पोर्ट्रेट इमेज़ असणे आवश्यक आहे" - aspect_ratio_not_landscape: "लँडस्केप इमेज़ असणे आवश्यक आहे" - aspect_ratio_is_not: "%{aspect_ratio} चा ॲस्पेक्ट रेशो आवश्यक आहे" - aspect_ratio_unknown: "ॲस्पेक्ट रेशो अज्ञात आहे" - image_not_processable: "वैध इमेज़ नाही" not_found: title: "आपण शोधत असलेले पृष्ठ अस्तित्वात नाही (404)" message_html: "कृपया पुन्हा प्रयत्न करा

ही तात्पुरती समस्या असू शकते. कृपया मागील स्क्रीनवर परत जाण्यासाठी बॅक बटणावर क्लिक करा किंवा होम वर परत जा आणि पुन्हा प्रयत्न करा.

ग्राहकसेवेशी संपर्क साधा

समस्या कायम राहिल्यास किंवा तातडीची असल्यास, कृपया आम्हाला त्याबद्दल सांगा. ग्लोबल ओपन फूड नेटवर्क लोकल पेजवरून आमचे संपर्क तपशील शोधा.

गहाळ पृष्ठ कशाबद्दल आहे याबद्दल आपण शक्य तितके तपशील देऊ शकत असल्यास आम्हाला खूप मदत होईल.

" @@ -318,6 +297,12 @@ mr: join_community: "समुदायात सामील व्हा" invite_manager: subject: "%{enterprise} ने तुम्हाला व्यवस्थापक होण्यासाठी आमंत्रित केले आहे" + payment_mailer: + authorize_payment: + instructions: "तुमच्या %{amount} ते %{distributor} च्या पेमेंटसाठी अतिरिक्त प्रमाणीकरण आवश्यक आहे. तुमचे पेमेंट अधिकृत करण्यासाठी कृपया खालील URL ला भेट द्या:" + authorization_required: + subject: "पेमेंटसाठी ग्राहकाकडून प्रमाणीकरण आवश्यक आहे" + message: "ऑर्डर %{order_number} साठी पेमेंटसाठी ग्राहकाकडून अतिरिक्त प्रमाणीकरण आवश्यक आहे. ग्राहकाला ईमेलद्वारे सूचित केले गेले आहे आणि ते अधिकृत होईपर्यंत पेमेंट प्रलंबित म्हणून दिसून येईल." producer_mailer: order_cycle: subject: "%{producer} साठी सायकल अहवाल ऑर्डर करा" @@ -764,6 +749,8 @@ mr: label: उत्पादक categories: label: श्रेण्या + tags: + none: कोणतेही नाही search: शोधा sort: pagination: @@ -3715,6 +3702,7 @@ mr: alt_text: "पर्यायी मजकूर" thumbnail: "लघुप्रतिमा" back_to_images_list: "प्रतिमा सूचीकडे परत" + api_key: "API key" email: ईमेल account_updated: "खाते अपडेट केले!" email_updated: "नवीन ईमेलची पुष्टी झाल्यानंतर खाते अद्यतनित केले जाईल." @@ -4014,9 +4002,7 @@ mr: providers: provider: "प्रदाता" check: "रोख/EFT/इ. (स्वयंचलित प्रमाणीकरण आवश्यक नसलेली पेमेंट्स)" - pin: "पेमेंट्स पिन करा" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" payments: source_forms: @@ -4237,13 +4223,6 @@ mr: subject: "पासवर्ड सूचना रीसेट करा" confirmation_instructions: subject: "कृपया तुमच्या OFN खात्याची पुष्टी करा" - payment_mailer: - authorize_payment: - subject: "कृपया तुमचे पेमेंट OFN वर %{distributor} वर अधिकृत करा" - instructions: "तुमच्या %{amount} ते %{distributor} च्या पेमेंटसाठी अतिरिक्त प्रमाणीकरण आवश्यक आहे. तुमचे पेमेंट अधिकृत करण्यासाठी कृपया खालील URL ला भेट द्या:" - authorization_required: - subject: "पेमेंटसाठी ग्राहकाकडून प्रमाणीकरण आवश्यक आहे" - message: "ऑर्डर %{order_number} साठी पेमेंटसाठी ग्राहकाकडून अतिरिक्त प्रमाणीकरण आवश्यक आहे. ग्राहकाला ईमेलद्वारे सूचित केले गेले आहे आणि ते अधिकृत होईपर्यंत पेमेंट प्रलंबित म्हणून दिसून येईल." shipment_mailer: shipped_email: dear_customer: "प्रिय ग्राहक," @@ -4306,13 +4285,10 @@ mr: webhook_endpoints: title: वेबहुक एंडपॉइंट्स description: सिस्टम मधील इव्हेंट्स बाह्य सिस्टम्सवर वेबहुक ट्रिगर करू शकतात. - event_types: - order_cycle_opened: ऑर्डर सायकल उघडली event_type: header: कार्यक्रमाचा प्रकार url: header: एंडपॉइंट URL - create_placeholder: रिमोट वेबहुक एंडपॉइंटची URL एंटर करा developer_settings: title: विकासक सेटिंग्ज form: @@ -4442,3 +4418,6 @@ mr: for_customers_tagged: 'टॅग केलेल्या ग्राहकांसाठी:' add_new_rule: '+ एक नवीन नियम जोडा' no_rules_yet: या टॅगवर अद्याप कोणतेही नियम लागू नाहीत + webhook_endpoint_form: + url: + create_placeholder: रिमोट वेबहुक एंडपॉइंटची URL एंटर करा diff --git a/config/locales/nb.yml b/config/locales/nb.yml index 44f62a82af..16ba7d558a 100644 --- a/config/locales/nb.yml +++ b/config/locales/nb.yml @@ -115,27 +115,6 @@ nb: blank: "kan ikke være tomt" too_short: "er for kort (minimum er %{count} tegn)" errors: - messages: - content_type_invalid: "har en ugyldig innholdstype" - file_size_out_of_range: "størrelse %{file_size} er ikke i det nødvendige området" - limit_out_of_range: "totalt antall er utenfor rekkevidde" - image_metadata_missing: "er ikke et gyldig bilde" - dimension_min_inclusion: "må være større enn eller lik %{width} x %{height} piksel." - dimension_max_inclusion: "må være mindre enn eller lik %{width} x %{height} piksel." - dimension_width_inclusion: "bredde er ikke inkludert mellom %{min} og %{max} piksel." - dimension_height_inclusion: "høyde er ikke inkludert mellom %{min} og %{max} piksel." - dimension_width_greater_than_or_equal_to: "bredden må være større enn eller lik %{length} piksel." - dimension_height_greater_than_or_equal_to: "høyden må være større enn eller lik %{length} piksel." - dimension_width_less_than_or_equal_to: "bredden må være mindre enn eller lik %{length} piksel." - dimension_height_less_than_or_equal_to: "høyden må være mindre enn eller lik %{length} piksel." - dimension_width_equal_to: "bredde må være lik %{length} piksel." - dimension_height_equal_to: "høyden må være lik %{length} piksel." - aspect_ratio_not_square: "må være et firkantet bilde" - aspect_ratio_not_portrait: "må være et portrettbilde" - aspect_ratio_not_landscape: "må være et landskapsbilde" - aspect_ratio_is_not: "må ha et størrelsesforhold på %{aspect_ratio}" - aspect_ratio_unknown: "har et ukjent størrelsesforhold" - image_not_processable: "er ikke et gyldig bilde" not_found: title: "Siden du lette etter eksisterer ikke (404)" message_html: "Vennligst prøv på nytt

Dette kan være et midlertidig problem. Klikk tilbake-knappen for å gå tilbake til forrige skjermbilde eller gå tilbake til Hjem og prøv igjen.

Kontakt support

Hvis problemet vedvarer eller haster, vennligst fortell oss om det. Finn kontaktinformasjonen vår fra den globale Open Food Network Local-siden .

Det hjelper oss virkelig hvis du kan gi så mange detaljer som mulig om hva den manglende siden handler om.

" @@ -371,6 +350,13 @@ nb: join_community: "Bli med" invite_manager: subject: "%{enterprise} har invitert deg til å være en administrator" + payment_mailer: + authorize_payment: + subject: "Vennligst autoriser betalingen din til %{distributor} på OFN" + instructions: "Din betaling av %{amount} til %{distributor} krever ytterligere godkjenning. Gå til følgende URL for å godkjenne betalingen din:" + authorization_required: + subject: "En betaling krever autorisasjon fra kunden" + message: "En betaling for bestilling %{order_number} krever ytterligere autorisasjon fra kunden. Kunden har fått beskjed via epost og betalingen vil fremstå som ventende til den er autorisert." producer_mailer: order_cycle: subject: "Bestillingsrunderapport for %{producer}" @@ -905,6 +891,7 @@ nb: label: Kategorier tags: label: Merkelapper + none: Ingen search: Søk sort: pagination: @@ -3942,6 +3929,7 @@ nb: logourl: "Logourl" are_you_sure_delete: "Er du sikker på at du vil slette denne posten?" confirm_delete: "Bekreft Sletting" + voucher: "Kupong" configurations: "Konfigurasjoner" general_settings: "Generelle innstillinger" site_name: "Sidenavn" @@ -4032,6 +4020,7 @@ nb: alt_text: "Alternativ Tekst" thumbnail: "Miniatyrbilde" back_to_images_list: "Tilbake til bildelisten" + api_key: "API-nøkkel" email: Epost account_updated: "Konto oppdatert!" email_updated: "Kontoen vil bli oppdatert når den nye epostadressen er bekreftet." @@ -4347,9 +4336,7 @@ nb: providers: provider: "Tilbyder" check: "Kontanter/ EFT/osv. (betalinger som det ikke kreves automatisk validering av)" - pin: "Pin Payments" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" payments: source_forms: @@ -4594,13 +4581,6 @@ nb: subject: "Tilbakestill passordinstruksjonene" confirmation_instructions: subject: "Vennligst bekreft OFN-kontoen din" - payment_mailer: - authorize_payment: - subject: "Vennligst autoriser betalingen din til %{distributor} på OFN" - instructions: "Din betaling av %{amount} til %{distributor} krever ytterligere godkjenning. Gå til følgende URL for å godkjenne betalingen din:" - authorization_required: - subject: "En betaling krever autorisasjon fra kunden" - message: "En betaling for bestilling %{order_number} krever ytterligere autorisasjon fra kunden. Kunden har fått beskjed via epost og betalingen vil fremstå som ventende til den er autorisert." shipment_mailer: shipped_email: dear_customer: "Kjære Kunde," @@ -4663,13 +4643,10 @@ nb: webhook_endpoints: title: Webhook-endepunkter description: Hendelser i systemet kan utløse webhooks til eksterne systemer. - event_types: - order_cycle_opened: Bestillingsrunde åpnet event_type: header: Hendelsestype url: header: Endepunkt URL - create_placeholder: Skriv inn URL-en til det eksterne webhook-endepunktet developer_settings: title: Utviklerinnstillinger form: @@ -4817,6 +4794,11 @@ nb: add_tag_rule_modal: select_rule_type: "Velg en regeltype:" add_rule: "Legg til Regel" + webhook_endpoint_form: + url: + create_placeholder: Skriv inn URL-en til det eksterne webhook-endepunktet + event_types: + order_cycle_opened: Bestillingsrunde åpnet invisible_captcha: sentence_for_humans: "Vennligst la stå tomt" timestamp_error_message: "Vennligst prøv igjen etter 5 sekunder." diff --git a/config/locales/nl_BE.yml b/config/locales/nl_BE.yml index 0a257514e6..80d233cf74 100644 --- a/config/locales/nl_BE.yml +++ b/config/locales/nl_BE.yml @@ -554,6 +554,7 @@ nl_BE: label: Categorieën tags: label: Tags + none: Geen enkele search: Zoeken sort: pagination: diff --git a/config/locales/pa.yml b/config/locales/pa.yml index 187ba7f8a6..b5d9ef90ff 100644 --- a/config/locales/pa.yml +++ b/config/locales/pa.yml @@ -102,27 +102,6 @@ pa: blank: "ਖਾਲੀ ਨਹੀਂ ਹੋ ਸਕਦਾ" too_short: "ਬਹੁਤ ਛੋਟਾ (ਨਿਊਨਤਮ %{count} ਅੱਖਰ)" errors: - messages: - content_type_invalid: "ਅਵੈਧ ਸਮੱਗਰੀ ਦੀ ਕਿਸਮ ਸ਼ਾਮਲ ਹੈ" - file_size_out_of_range: "ਸਾਈਜ਼ %{file_size} ਲੋੜੀਂਦੀ ਸੀਮਾ ਵਿੱਚਕਾਰ ਨਹੀਂ ਹੈ" - limit_out_of_range: "ਕੁੱਲ ਗਿਣਤੀ ਸੀਮਾ ਤੋਂ ਬਾਹਰ ਹੈ" - image_metadata_missing: "ਇਹ ਇੱਕ ਵੈਧ ਫੋਟੋ ਨਹੀਂ ਹੈ" - dimension_min_inclusion: "%{width} x %{height} ਪਿਕਸਲ ਤੋਂ ਵੱਧ ਜਾਂ ਬਰਾਬਰ ਦਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।" - dimension_max_inclusion: "%{width} x %{height} ਪਿਕਸਲ ਤੋਂ ਘੱਟ ਜਾਂ ਬਰਾਬਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।" - dimension_width_inclusion: "ਚੌੜਾਈ %{min} ਅਤੇ %{max} ਪਿਕਸਲਾਂ ਵਿੱਚਕਾਰ ਸ਼ਾਮਲ ਨਹੀਂ ਹੈ।" - dimension_height_inclusion: "ਲੰਬਾਈ %{min} ਅਤੇ %{max} ਪਿਕਸਲਾਂ ਵਿੱਚਕਾਰ ਸ਼ਾਮਲ ਨਹੀਂ ਹੈ।" - dimension_width_greater_than_or_equal_to: "ਚੌੜਾਈ %{length} ਪਿਕਸਲ ਤੋਂ ਵੱਧ ਜਾਂ ਬਰਾਬਰ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ।" - dimension_height_greater_than_or_equal_to: "ਲੰਬਾਈ %{length} ਪਿਕਸਲ ਤੋਂ ਵੱਧ ਜਾਂ ਬਰਾਬਰ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ।" - dimension_width_less_than_or_equal_to: "ਚੌੜਾਈ %{length} ਪਿਕਸਲ ਤੋਂ ਘੱਟ ਜਾਂ ਬਰਾਬਰ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ।" - dimension_height_less_than_or_equal_to: "ਲੰਬਾਈ %{length} ਪਿਕਸਲ ਤੋਂ ਘੱਟ ਜਾਂ ਬਰਾਬਰ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ।" - dimension_width_equal_to: "width must be equal to %{length} pixel." - dimension_height_equal_to: "ਲੰਬਾਈ %{length} ਪਿਕਸਲ ਦੇ ਬਰਾਬਰ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ।" - aspect_ratio_not_square: "ਇੱਕ ਚੌਰਸ ਫੋਟੋ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ" - aspect_ratio_not_portrait: "ਇੱਕ ਪੋਰਟਰੇਟ ਫੋਟੋ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ" - aspect_ratio_not_landscape: "ਇੱਕ ਲੈਂਡਸਕੇਪ ਫੋਟੋ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ" - aspect_ratio_is_not: "ਅਸਪੈਕਟ ਅਨੁਪਾਤ %{aspect ratio} ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ" - aspect_ratio_unknown: "ਇੱਕ ਅਗਿਆਤ ਅਸਪੈਕਟ ਅਨੁਪਾਤ ਹੈ" - image_not_processable: "ਇਹ ਇੱਕ ਵੈਧ ਫੋਟੋ ਨਹੀਂ ਹੈ" not_found: title: "ਜਿਹੜਾ ਪੰਨਾ ਤੁਸੀਂ ਲੱਭ ਰਹੇ ਸੀ ਉਹ ਮੌਜੂਦ ਨਹੀਂ ਹੈ (404)" message_html: "ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ

ਇਹ ਇੱਕ ਅਸਥਾਈ ਸਮੱਸਿਆ ਹੋ ਸਕਦੀ ਹੈ। ਪਿਛਲੀ ਸਕ੍ਰੀਨ ਤੇ ਵਾਪਸ ਜਾਣ ਲਈ ਕਿਰਪਾ ਕਰਕੇ ਬੈਕ ਬਟਨ ਤੇ ਕਲਿੱਕ ਕਰੋ ਜਾਂ ਹੋਮ ਤੇ ਵਾਪਸ ਜਾਓ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।

ਸਹਾਇਤਾ ਨਾਲ ਸੰਪਰਕ ਕਰੋ

ਜੇਕਰ ਸਮੱਸਿਆ ਬਣੀ ਰਹਿੰਦੀ ਹੈ ਜਾਂ ਜ਼ਰੂਰੀ ਹੈ, ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ ਸਾਨੂੰ ਇੱਸ ਦੇ ਬਾਰੇ ਵਿੱਚ ਦੱਸੋ। ਗਲੋਬਲ ਓਪਨ ਫੂਡ ਨੈੱਟਵਰਕ ਦੇ ਲੋਕਲ ਪੰਨੇ ਤੋਂ ਸਾਡੇ ਸੰਪਰਕ ਵੇਰਵੇ ਪ੍ਰਾਪਤ ਕਰੋ

ਤੁਹਾਡਾ ਸਾਨੂੰ ਗੁੰਮ ਹੋਏ ਪੰਨੇ ਬਾਰੇ ਜਿੰਨਾ ਸੰਭਵ ਹੋ ਸਕੇ ਉਨ੍ਹੇਂ ਜਿਆਦਾ ਵੇਰਵੇ ਪ੍ਰਦਾਨ ਕਰਨਾ ਅਸਲ ਵਿੱਚ ਸਾਡੀ ਵਧੇਰੀ ਮਦਦ ਕਰਦਾ ਹੈ।

" @@ -311,6 +290,13 @@ pa: join_community: "ਭਾਈਚਾਰੇ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਵੋ" invite_manager: subject: "%{enterprise} ਨੇ ਤੁਹਾਨੂੰ ਪ੍ਰਬੰਧਕ ਬਣਨ ਲਈ ਸੱਦਾ ਦਿੱਤਾ ਹੈ" + payment_mailer: + authorize_payment: + subject: "ਕਿਰਪਾ ਕਰਕੇ OFN ਤੇ %{distributor} ਨੂੰ ਆਪਣਾ ਭੁਗਤਾਨ ਅਧਿਕਾਰਤ ਕਰੋ" + instructions: "%{distributor} ਨੂੰ %{amount} ਦੇ ਤੁਹਾਡੇ ਭੁਗਤਾਨ ਲਈ ਵਾਧੂ ਪ੍ਰਮਾਣਿਕਤਾ ਦੀ ਲੋੜ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਭੁਗਤਾਨ ਨੂੰ ਅਧਿਕਾਰਤ ਕਰਨ ਲਈ ਹੇਠਾਂ ਦਿੱਤੇ URL ਉਤੇ ਜਾਓ:" + authorization_required: + subject: "ਭੁਗਤਾਨ ਲਈ ਗਾਹਕ ਤੋਂ ਅਧਿਕਾਰ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ" + message: "ਆਰਡਰ %{order_number} ਦੇ ਭੁਗਤਾਨ ਲਈ ਗਾਹਕ ਤੋਂ ਵਾਧੂ ਅਧਿਕਾਰ ਦੀ ਲੋੜ ਹੈ। ਗਾਹਕ ਨੂੰ ਈਮੇਲ ਰਾਹੀਂ ਸੂਚਿਤ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਜਦੋਂ ਤੱਕ ਇਹ ਅਧਿਕਾਰਤ ਨਹੀਂ ਹੋ ਜਾਂਦਾ, ਭੁਗਤਾਨ ਬਕਾਏ ਵਜੋਂ ਵਿਖਾਈ ਦੇਵੇਗਾ।" producer_mailer: order_cycle: subject: "%{producer} ਲਈ ਆਰਡਰ ਸਾਈਕਲ ਰਿਪੋਰਟ" @@ -771,6 +757,7 @@ pa: label: ਸ਼੍ਰੇਣੀਆਂ tags: label: ਟੈਗ + none: ਕੋਈ ਨਹੀਂ search: ਖੋਜੋ sort: pagination: @@ -3616,6 +3603,7 @@ pa: logourl: "ਲੋਗੋurl" are_you_sure_delete: "ਕੀ ਤੁਸੀਂ ਵਾਕਈ ਇਸ ਰਿਕਾਰਡ ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?" confirm_delete: "ਹਟਾਉਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ" + voucher: "ਵਾਊਚਰ" configurations: "ਕੌਂਫਿਗਰੇਸ਼ਨ" general_settings: "ਆਮ ਸੈਟਿੰਗਾਂ" site_name: "ਸਾਈਟ ਦਾ ਨਾਂ" @@ -3704,6 +3692,7 @@ pa: alt_text: "ਵੈਕਲਪਿਕ ਟੈਕਸਟ" thumbnail: "ਥੰਬਨੇਲ" back_to_images_list: "ਫੋਟੋ ਸੂਚੀ ਤੇ ਵਾਪਸ" + api_key: "API ਕੁੰਜੀ" email: ਈਮੇਲ account_updated: "ਖਾਤਾ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ!" email_updated: "ਨਵੇਂ ਈਮੇਲ ਦੀ ਪੁਸ਼ਟੀ ਹੋਣ ਤੋਂ ਬਾਅਦ ਖਾਤਾ ਅੱਪਡੇਟ ਕੀਤਾ ਜਾਵੇਗਾ।" @@ -4009,9 +3998,7 @@ pa: providers: provider: "ਪ੍ਰਦਾਤਾ" check: "ਨਕਦ/ਈਐਫਟੀ/ਆਦਿ (ਭੁਗਤਾਨ ਜਿਸ ਲਈ ਸਵੈਚਲਿਤ ਪ੍ਰਮਾਣਿਕਤਾ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ)" - pin: "ਪਿੰਨ ਭੁਗਤਾਨ" paypalexpress: "ਪੇਪਾਲ ਐਕਸਪ੍ਰੈਸ" - stripeconnect: "ਸਟ੍ਰਾਈਪ" stripesca: "ਸਟ੍ਰਾਈਪ SCA" payments: source_forms: @@ -4236,13 +4223,6 @@ pa: subject: "ਪਾਸਵਰਡ ਰੀਸੈਟ ਕਰਨ ਦੀਆਂ ਹਦਾਇਤਾਂ" confirmation_instructions: subject: "ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ OFN ਖਾਤੇ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ" - payment_mailer: - authorize_payment: - subject: "ਕਿਰਪਾ ਕਰਕੇ OFN ਤੇ %{distributor} ਨੂੰ ਆਪਣਾ ਭੁਗਤਾਨ ਅਧਿਕਾਰਤ ਕਰੋ" - instructions: "%{distributor} ਨੂੰ %{amount} ਦੇ ਤੁਹਾਡੇ ਭੁਗਤਾਨ ਲਈ ਵਾਧੂ ਪ੍ਰਮਾਣਿਕਤਾ ਦੀ ਲੋੜ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਭੁਗਤਾਨ ਨੂੰ ਅਧਿਕਾਰਤ ਕਰਨ ਲਈ ਹੇਠਾਂ ਦਿੱਤੇ URL ਉਤੇ ਜਾਓ:" - authorization_required: - subject: "ਭੁਗਤਾਨ ਲਈ ਗਾਹਕ ਤੋਂ ਅਧਿਕਾਰ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ" - message: "ਆਰਡਰ %{order_number} ਦੇ ਭੁਗਤਾਨ ਲਈ ਗਾਹਕ ਤੋਂ ਵਾਧੂ ਅਧਿਕਾਰ ਦੀ ਲੋੜ ਹੈ। ਗਾਹਕ ਨੂੰ ਈਮੇਲ ਰਾਹੀਂ ਸੂਚਿਤ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਜਦੋਂ ਤੱਕ ਇਹ ਅਧਿਕਾਰਤ ਨਹੀਂ ਹੋ ਜਾਂਦਾ, ਭੁਗਤਾਨ ਬਕਾਏ ਵਜੋਂ ਵਿਖਾਈ ਦੇਵੇਗਾ।" shipment_mailer: shipped_email: dear_customer: "ਪਿਆਰੇ ਗਾਹਕ," @@ -4305,13 +4285,10 @@ pa: webhook_endpoints: title: ਵੈਬਹੁੱਕ ਐਂਡਪੁਆਇੰਟ description: ਸਿਸਟਮ ਵਿੱਚ ਇਵੈਂਟਸ ਵੈਬਹੁੱਕ ਨੂੰ ਬਾਹਰੀ ਸਿਸਟਮਾਂ ਲਈ ਟਰਿੱਗਰ ਕਰ ਸਕਦੇ ਹਨ। - event_types: - order_cycle_opened: ਆਰਡਰ ਸਾਈਕਲ ਖੋਲ੍ਹਿਆ ਗਿਆ event_type: header: ਇਵੇੰਟ ਦੀ ਕਿਸਮ url: header: ਐਂਡਪੁਆਇੰਟ URL - create_placeholder: ਰਿਮੋਟ ਵੈਬਹੁੱਕ ਐਂਡਪੁਆਇੰਟ ਦਾ URL ਦਾਖਲ ਕਰੋ developer_settings: title: ਡਿਵੈਲਪਰ ਸੈਟਿੰਗਜ਼ form: @@ -4418,3 +4395,8 @@ pa: add_tag_rule_modal: select_rule_type: "ਇੱਕ ਨਿਯਮ ਕਿਸਮ ਚੁਣੋ:" add_rule: "ਨਿਯਮ ਜੋੜੋ" + webhook_endpoint_form: + url: + create_placeholder: ਰਿਮੋਟ ਵੈਬਹੁੱਕ ਐਂਡਪੁਆਇੰਟ ਦਾ URL ਦਾਖਲ ਕਰੋ + event_types: + order_cycle_opened: ਆਰਡਰ ਸਾਈਕਲ ਖੋਲ੍ਹਿਆ ਗਿਆ diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 909d27218f..398f9f78c4 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -532,6 +532,7 @@ pl: label: Producenci tags: label: Tagi + none: Nic search: Szukaj variant_row: none_tax_category: Nic diff --git a/config/locales/pt.yml b/config/locales/pt.yml index a82519b572..d3054a2dac 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -593,6 +593,7 @@ pt: label: Categorias tags: label: Etiquetas + none: Nenhum search: Procurar product_variant_row: new_variant: Nova variante diff --git a/config/locales/pt_BR.yml b/config/locales/pt_BR.yml index cfc3719c49..0a4b79bdb5 100644 --- a/config/locales/pt_BR.yml +++ b/config/locales/pt_BR.yml @@ -68,28 +68,6 @@ pt_BR: limited_stock_but_no_count_on_hand: "deve ser especificado porque está forçando o estoque limitado" messages: blank: "Não pode ser vazio" - errors: - messages: - content_type_invalid: "possui um tipo de conteúdo inválido" - file_size_out_of_range: "o tamanho %{file_size}não está entre os limites válidos. " - limit_out_of_range: "o valor total está fora dos limites." - image_metadata_missing: "não é uma imagem válida" - dimension_min_inclusion: "precisa ser maior ou igual a%{width}x%{height} pixel. " - dimension_max_inclusion: "precisa ser menor ou igual a %{width} x %{height} pixel." - dimension_width_inclusion: "a largura não está inclusa entre %{min} e %{max} pixel. " - dimension_height_inclusion: "a altura não está incluisa entre %{min} e %{max} pixel. " - dimension_width_greater_than_or_equal_to: "a largura precisa ser maior ou igual a %{length} pixel. " - dimension_height_greater_than_or_equal_to: "a altura precisa ser maior ou igual a %{length} pixel. " - dimension_width_less_than_or_equal_to: "a largura precisa ser menor ou igual a %{length} pixel. " - dimension_height_less_than_or_equal_to: "a altura precisa ser menor ou igual a %{length} pixel." - dimension_width_equal_to: "a largura precisa ser igual a %{length} pixel. " - dimension_height_equal_to: "a altura precisa ser igual a %{length} pixel. " - aspect_ratio_not_square: "precisa ser uma imagem quadrada. " - aspect_ratio_not_portrait: "precisa ser uma imagem no formato retrato. " - aspect_ratio_not_landscape: "precisa ser uma imagem no formato paisagem. " - aspect_ratio_is_not: "precisa ter uma proporção de %{aspect_ratio}" - aspect_ratio_unknown: "tem uma proporção desconhecida" - image_not_processable: "não é uma imagem válida" stripe: error_code: incorrect_number: "O número do cartão está incorreto." @@ -208,6 +186,13 @@ pt_BR: join_community: "Faça parte da comunidade" invite_manager: subject: "%{enterprise}convidou você para ser um gerente" + payment_mailer: + authorize_payment: + subject: "Favor autorizar seu pagamento para %{distributor}na Ajunta" + instructions: "Seu pagamento de %{amount}para %{distributor}necessita uma autenticação adicional. Favor visitar o seguinte endereço URL para autorizar o seu pagamento:" + authorization_required: + subject: "Um pagamento requer autorização do comprador" + message: "Um pagamento para o pedido %{order_number}requer uma autorização adicional por parte do comprador. O comprador foi notificado via email e o pagamento irá aparecer como pendente até que seja autorizado. " producer_mailer: order_cycle: subject: "Relatório de ciclo de pedidos para%{producer}" @@ -634,6 +619,7 @@ pt_BR: label: Produtores tags: label: Tags + none: Nenhum search: Buscar sort: pagination: @@ -3670,9 +3656,7 @@ pt_BR: providers: provider: "Provedor" check: "Dinheiro / Transferência Bancária / Maquininha / etc. (pagamentos para os quais é necessária a validação manual)." - pin: "Pagamentos via Pin" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" payments: source_forms: @@ -3885,13 +3869,6 @@ pt_BR: subject: "Instruções para redefinição de senha" confirmation_instructions: subject: "Confirme sua conta na Ajunta" - payment_mailer: - authorize_payment: - subject: "Favor autorizar seu pagamento para %{distributor}na Ajunta" - instructions: "Seu pagamento de %{amount}para %{distributor}necessita uma autenticação adicional. Favor visitar o seguinte endereço URL para autorizar o seu pagamento:" - authorization_required: - subject: "Um pagamento requer autorização do comprador" - message: "Um pagamento para o pedido %{order_number}requer uma autorização adicional por parte do comprador. O comprador foi notificado via email e o pagamento irá aparecer como pendente até que seja autorizado. " shipment_mailer: shipped_email: dear_customer: "Estimado cliente," diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 7296ec0d74..b76cbe2b93 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -109,27 +109,6 @@ ru: blank: "не может быть пустым" too_short: "слишком короткий (минимум %{count} символов)" errors: - messages: - content_type_invalid: "имеет неверный тип контента" - file_size_out_of_range: "размер %{file_size} не входит в требуемый диапазон" - limit_out_of_range: "общее количество вне диапазона" - image_metadata_missing: "недопустимое изображение" - dimension_min_inclusion: "должно быть больше или равно %{width} x %{height} пикселей." - dimension_max_inclusion: "должно быть меньше или равно %{width} x %{height} пикселей." - dimension_width_inclusion: "ширина не включена между %{min} и %{max} пикселей." - dimension_height_inclusion: "высота не включена между %{min} и %{max} пикселями." - dimension_width_greater_than_or_equal_to: "ширина должна быть больше или равна %{length} пикселя." - dimension_height_greater_than_or_equal_to: "высота должна быть больше или равна %{length} пикселя." - dimension_width_less_than_or_equal_to: "ширина должна быть меньше или равна %{length} пикселя." - dimension_height_less_than_or_equal_to: "высота должна быть меньше или равна %{length} пикселя." - dimension_width_equal_to: "ширина должна быть равна %{length} пикселю." - dimension_height_equal_to: "высота должна быть равна %{length} пикселю." - aspect_ratio_not_square: "должно быть квадратное изображение" - aspect_ratio_not_portrait: "должно быть портретное изображение" - aspect_ratio_not_landscape: "должно быть пейзажное изображение" - aspect_ratio_is_not: "должен иметь соотношение сторон %{aspect_ratio}" - aspect_ratio_unknown: "имеет неизвестное соотношение сторон" - image_not_processable: "недопустимое изображение" not_found: title: "Страница не существует (404)" message_html: "Пожалуйста, попробуйте еще раз

Это может быть временной проблемой. Нажмите кнопку «Назад», чтобы вернуться к предыдущему экрану, или вернитесь на Главную страницу и повторите попытку.

Свяжитесь с поддержкой

Если проблема сохраняется или срочная, пожалуйста, сообщите нам об этом. Найдите наши контактные данные на глобальной странице Open Food Network Local .

Нам очень поможет, если вы сможете дать как можно больше подробностей о том, о чем пропавшая страница.

" @@ -323,6 +302,13 @@ ru: join_community: "Присоединяйтесь к сообществу" invite_manager: subject: "%{enterprise} пригласил Вас стать менеджером" + payment_mailer: + authorize_payment: + subject: "Авторизуйте платеж на адрес %{distributor} в ОСП" + instructions: "Ваш платеж %{amount} на %{distributor} требует дополнительной аутентификации. Перейдите по следующему URL-адресу, чтобы авторизовать платеж:" + authorization_required: + subject: "Платеж требует согласия клиента" + message: "Для оплаты заказа %{order_number} требуется дополнительное согласие со стороны покупателя. Клиент был уведомлен по электронной почте и платеж будет отображаться как ожидающий, пока он не будет подтвержден." producer_mailer: order_cycle: subject: "Отчет по Циклу Заказа для %{producer}" @@ -803,6 +789,7 @@ ru: label: Категории tags: label: Метки + none: Нет search: Поиск sort: pagination: @@ -3848,6 +3835,7 @@ ru: logourl: "URL логотипа" are_you_sure_delete: "Вы уверены, что хотите удалить эту запись?" confirm_delete: "Подтвердить Удаление" + voucher: "Ваучер" configurations: "Настройки" general_settings: "Основные Настройки" site_name: "Имя Сайта" @@ -3936,6 +3924,7 @@ ru: alt_text: "Альтернативный Текст" thumbnail: "Миниатюра" back_to_images_list: "Назад К Списку Изображений" + api_key: "Ключ API" email: Email account_updated: "Профиль обновлен!" email_updated: "Профиль будет обновлен после подтверждения нового адреса электронной почты..." @@ -4250,9 +4239,7 @@ ru: providers: provider: "Провайдер" check: "Наличные/ EFT/т. д. (платежи, для которых автоматическая проверка не требуется)" - pin: "Пин Платежи" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" payments: source_forms: @@ -4482,13 +4469,6 @@ ru: subject: "Инструкции по сбросу пароля" confirmation_instructions: subject: "Пожалуйста, подтвердите Вашу ОСП учетную запись" - payment_mailer: - authorize_payment: - subject: "Авторизуйте платеж на адрес %{distributor} в ОСП" - instructions: "Ваш платеж %{amount} на %{distributor} требует дополнительной аутентификации. Перейдите по следующему URL-адресу, чтобы авторизовать платеж:" - authorization_required: - subject: "Платеж требует согласия клиента" - message: "Для оплаты заказа %{order_number} требуется дополнительное согласие со стороны покупателя. Клиент был уведомлен по электронной почте и платеж будет отображаться как ожидающий, пока он не будет подтвержден." shipment_mailer: shipped_email: dear_customer: "Уважаемый Клиент," @@ -4551,13 +4531,10 @@ ru: webhook_endpoints: title: Конечные точки веб-хука description: События в системе могут запускать веб-хуки к внешним системам. - event_types: - order_cycle_opened: Цикл Заказа Открыт event_type: header: Тип события url: header: URL-адрес конечной точки - create_placeholder: Введите URL-адрес конечной точки удаленного веб-хука. developer_settings: title: Настройки Разработчика form: @@ -4731,3 +4708,8 @@ ru: add_tag_rule_modal: select_rule_type: "Выберите тип правила:" add_rule: "Добавить Правило" + webhook_endpoint_form: + url: + create_placeholder: Введите URL-адрес конечной точки удаленного веб-хука. + event_types: + order_cycle_opened: Цикл Заказа Открыт diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 22c2343dcb..658e90c50d 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -115,27 +115,6 @@ sr: blank: "не може бити празно" too_short: "је прекратак (минимум је %{count} знакова)" errors: - messages: - content_type_invalid: "има неважећи тип садржаја" - file_size_out_of_range: "величина %{file_size} није између захтеваног опсега" - limit_out_of_range: "укупан број је ван опсега" - image_metadata_missing: "није важећа слика" - dimension_min_inclusion: "мора бити већи или једнак %{width} к %{height} пиксела." - dimension_max_inclusion: "мора бити мањи или једнак %{width} к %{height} пиксела." - dimension_width_inclusion: "ширина није укључена између %{min} и %{max} пиксела." - dimension_height_inclusion: "висина није укључена између %{min} и %{max} пиксела." - dimension_width_greater_than_or_equal_to: "ширина мора бити већа или једнака %{length} пиксела." - dimension_height_greater_than_or_equal_to: "висина мора бити већа или једнака %{length} пиксела." - dimension_width_less_than_or_equal_to: "ширина мора бити мања или једнака %{length} пиксела." - dimension_height_less_than_or_equal_to: "висина мора бити мања или једнака %{length} пиксела." - dimension_width_equal_to: "ширина мора бити једнака %{length} пиксела." - dimension_height_equal_to: "висина мора бити једнака %{length} пиксела." - aspect_ratio_not_square: "мора бити квадратна слика" - aspect_ratio_not_portrait: "мора бити портретна слика" - aspect_ratio_not_landscape: "мора бити пејзажна слика" - aspect_ratio_is_not: "мора имати однос ширине и висине %{aspect_ratio}" - aspect_ratio_unknown: "има непознати однос ширине и висине" - image_not_processable: "није важећа слика" not_found: title: "Страница коју сте тражили не постоји (404)" message_html: "Молим вас, покушајте поново

Ово може бити привремени проблем. Кликните на дугме за повратак да бисте се вратили на претходни екран или се вратите на почетну страницу и покушајте поново.

Контактирајте подршку

Ако проблем и даље постоји или је хитан, реците нам о томе. Пронађите наше контакт податке на глобалној локалној страници Опен Фоод Нетворк .

Заиста нам помаже ако можете дати што више детаља о томе о чему се ради на страници која недостаје.

" @@ -4287,9 +4266,7 @@ sr: providers: provider: "Провајдер" check: "Готовина/ЕФТ/итд. (плаћања за која није потребна аутоматска валидација)" - pin: "Пин Паиментс" paypalexpress: "ПаиПал Екпресс" - stripeconnect: "Стрипе" stripesca: "Стрипе СЦА" payments: source_forms: @@ -4533,13 +4510,6 @@ sr: subject: "Ресетујте упутства за лозинку" confirmation_instructions: subject: "Потврдите свој ОФН налог" - payment_mailer: - authorize_payment: - subject: "Овластите своју уплату на %{distributor} на ОФН-у" - instructions: "Ваша уплата %{amount} за %{distributor} захтева додатну аутентификацију. Посетите следећу УРЛ адресу да бисте ауторизовали своју уплату:" - authorization_required: - subject: "За плаћање је потребно овлашћење купца" - message: "За плаћање наруџбе %{order_number} потребно је додатно овлашћење купца. Купац је обавештен путем е-поште и плаћање ће се појавити као на чекању док се не овласти." shipment_mailer: shipped_email: dear_customer: "Драги купац," @@ -4602,13 +4572,10 @@ sr: webhook_endpoints: title: Вебхоок Ендпоинтс description: Догађаји у систему могу покренути веб-хукове ка спољним системима. - event_types: - order_cycle_opened: Отворен циклус наруџби event_type: header: Тип догађаја url: header: УРЛ крајње тачке - create_placeholder: Унесите УРЛ крајње тачке удаљеног веб-хука developer_settings: title: Подешавања програмера form: diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 76263c3487..224d2c8cce 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -337,6 +337,7 @@ sv: label: 'Producenter ' tags: label: Taggar + none: Ingen search: Sök variant_row: none_tax_category: Ingen diff --git a/config/locales/tr.yml b/config/locales/tr.yml index c9fba34f71..c9daf42de4 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -185,6 +185,13 @@ tr: join_community: "Topluluğa katılın !" invite_manager: subject: "%{enterprise} sizi yönetici olmaya davet etti" + payment_mailer: + authorize_payment: + subject: "Lütfen ödemenizi AGA'da %{distributor}dağıtımcısına yetkilendirin." + instructions: "%{distributor}Dağıtımcısına olan %{amount}ödemeniz detaylandırma gerektiriyor. Lütfen ödemenizi yetkilendirmek için bu URL'ye gidin:" + authorization_required: + subject: "Ödeme için müşterinin yetkilendirmesi gerekiyor. " + message: "%{order_number}siparişinin ödemesi için müşterinin ek yetkilendirmesi gerekiyor. Müşteri maille bilgilendirildi, ödeme yetkilendirilene kadar 'bekliyor' olarak görünecek. " producer_mailer: order_cycle: subject: "%{producer} için sipariş dönemi raporu" @@ -616,6 +623,7 @@ tr: label: Kategoriler tags: label: ETİKETLER + none: SATIŞ YAPMIYOR search: Ara sort: pagination: @@ -3675,9 +3683,7 @@ tr: providers: provider: "Sağlayıcı" check: "Nakit/EFT/vb. (otomatik doğrulamanın gerekli olmadığı ödemeler)" - pin: "Pin Ödemeleri" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" payments: source_forms: @@ -3893,13 +3899,6 @@ tr: subject: "Şifre talimatlarını sıfırla" confirmation_instructions: subject: "Lütfen AGA hesabınızı onaylayın" - payment_mailer: - authorize_payment: - subject: "Lütfen ödemenizi AGA'da %{distributor}dağıtımcısına yetkilendirin." - instructions: "%{distributor}Dağıtımcısına olan %{amount}ödemeniz detaylandırma gerektiriyor. Lütfen ödemenizi yetkilendirmek için bu URL'ye gidin:" - authorization_required: - subject: "Ödeme için müşterinin yetkilendirmesi gerekiyor. " - message: "%{order_number}siparişinin ödemesi için müşterinin ek yetkilendirmesi gerekiyor. Müşteri maille bilgilendirildi, ödeme yetkilendirilene kadar 'bekliyor' olarak görünecek. " shipment_mailer: shipped_email: dear_customer: "Değerli Müşterimiz," diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 4985ad4b94..1377230fda 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -72,28 +72,6 @@ uk: limited_stock_but_no_count_on_hand: "необхідно вказати, оскільки запаси обмежені" messages: blank: "не може бути порожнім" - errors: - messages: - content_type_invalid: "має невірний тип контенту" - file_size_out_of_range: "розмір %{file_size} не знаходиться в необхідному діапазоні" - limit_out_of_range: "загальна кількість виходить за межі діапазону" - image_metadata_missing: "не є дійсним зображенням" - dimension_min_inclusion: "має бути більшим або дорівнювати %{width} x %{height} пікселям." - dimension_max_inclusion: "має бути меншим або дорівнювати %{width} x %{height} пікселям." - dimension_width_inclusion: "ширина не включається між %{min} та %{max} пікселями." - dimension_height_inclusion: "висота не включається між %{min} та %{max} пікселями." - dimension_width_greater_than_or_equal_to: "ширина має бути більшою або дорівнювати %{length} пікселю." - dimension_height_greater_than_or_equal_to: "висота має бути більшою або дорівнювати %{length} пікселям." - dimension_width_less_than_or_equal_to: "ширина має бути меншою або дорівнювати %{length} пікселям." - dimension_height_less_than_or_equal_to: "висота має бути меншою або дорівнювати %{length} пікселю." - dimension_width_equal_to: "ширина має дорівнювати %{length} пікселям." - dimension_height_equal_to: "висота має дорівнювати %{length} пікселям." - aspect_ratio_not_square: "має бути квадратне зображення" - aspect_ratio_not_portrait: "має бути портретне зображення" - aspect_ratio_not_landscape: "має бути пейзажним зображенням" - aspect_ratio_is_not: "має мати співвідношення сторін %{aspect_ratio}" - aspect_ratio_unknown: "має невідоме співвідношення сторін" - image_not_processable: "не є дійсним зображенням" stripe: error_code: incorrect_number: "Номер картки неправильний." @@ -268,6 +246,13 @@ uk: join_community: "Приєднуйтесь до спільноти" invite_manager: subject: "%{enterprise} запросив вас стати менеджером" + payment_mailer: + authorize_payment: + subject: "Авторизуйте свій платіж на %{distributor} на OFN" + instructions: "Ваш платіж %{amount} на адресу %{distributor} вимагає додаткової автентифікації. Перейдіть за такою URL-адресою, щоб авторизувати свій платіж:" + authorization_required: + subject: "Платіж потребує авторизації клієнта" + message: "Оплата замовлення %{order_number} потребує додаткової авторизації від клієнта. Клієнта було сповіщено електронною поштою, і платіж відображатиметься як очікуваний, доки його не буде авторизовано." producer_mailer: order_cycle: subject: "Замовити циклічний звіт для %{producer}" @@ -703,6 +688,7 @@ uk: label: Категорії tags: label: Мітки + none: Жодного search: Пошук sort: pagination: @@ -3909,9 +3895,7 @@ uk: providers: provider: "Провайдер" check: "Готівка/електронний переказ коштів/і т.д. (платежі, для яких не потрібна автоматична перевірка)" - pin: "Pin Payments" paypalexpress: "PayPal Express" - stripeconnect: "Stripe" stripesca: "Stripe SCA" payments: source_forms: @@ -4129,13 +4113,6 @@ uk: subject: "Інструкції щодо скидання пароля" confirmation_instructions: subject: "Будь ласка, підтвердьте свій обліковий запис OFN" - payment_mailer: - authorize_payment: - subject: "Авторизуйте свій платіж на %{distributor} на OFN" - instructions: "Ваш платіж %{amount} на адресу %{distributor} вимагає додаткової автентифікації. Перейдіть за такою URL-адресою, щоб авторизувати свій платіж:" - authorization_required: - subject: "Платіж потребує авторизації клієнта" - message: "Оплата замовлення %{order_number} потребує додаткової авторизації від клієнта. Клієнта було сповіщено електронною поштою, і платіж відображатиметься як очікуваний, доки його не буде авторизовано." shipment_mailer: shipped_email: dear_customer: "Дорогий клієнт," diff --git a/config/routes.rb b/config/routes.rb index 0946d21ab7..555718df81 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -16,7 +16,6 @@ Openfoodnetwork::Application.routes.draw do get "/register", to: "registration#index", as: :registration get "/register/auth", to: "registration#authenticate", as: :registration_auth - post "/user/registered_email", to: "spree/users#registered_email" resources :locales, only: [:show] # Redirects to global website @@ -82,6 +81,8 @@ Openfoodnetwork::Application.routes.draw do get "/stripe/confirm", to: "stripe#confirm", as: :confirm_stripe get "/stripe/authorize/:order_number", to: "stripe#authorize", as: :authorize_stripe + + get "/taler/:payment_id", to: "taler#confirm", as: :confirm_taler end get '/checkout', to: 'checkout#edit' diff --git a/config/routes/admin.rb b/config/routes/admin.rb index b80d340bd4..305ef999f6 100644 --- a/config/routes/admin.rb +++ b/config/routes/admin.rb @@ -136,7 +136,15 @@ Openfoodnetwork::Application.routes.draw do put :resume, on: :member, format: :json end - get '/reports', to: 'reports#index', as: :reports + scope :reports, as: :reports do + get '/', to: 'reports#index' + get '/search_enterprise_fees', to: 'reports#search_enterprise_fees', as: :search_enterprise_fees + get '/search_enterprise_fee_owners', to: 'reports#search_enterprise_fee_owners', as: :search_enterprise_fee_owners + get '/search_distributors', to: 'reports#search_distributors', as: :search_distributors + get '/search_suppliers', to: 'reports#search_suppliers', as: :search_suppliers + get '/search_order_cycles', to: 'reports#search_order_cycles', as: :search_order_cycles + get '/search_order_customers', to: 'reports#search_order_customers', as: :search_order_customers + end match '/reports/:report_type(/:report_subtype)', to: 'reports#show', via: :get, as: :report match '/reports/:report_type(/:report_subtype)', to: 'reports#create', via: :post end diff --git a/config/routes/spree.rb b/config/routes/spree.rb index 512f708b14..66eb12ede9 100644 --- a/config/routes/spree.rb +++ b/config/routes/spree.rb @@ -34,6 +34,7 @@ Spree::Core::Engine.routes.draw do resource :account, :controller => 'users' do resources :webhook_endpoints, only: [:create, :destroy], controller: '/webhook_endpoints' + post '/webhook_endpoints/:id/test', to: "/webhook_endpoints#test", as: "webhook_endpoint_test" end match '/admin/orders/bulk_management' => 'admin/orders#bulk_management', :as => "admin_bulk_order_management", via: :get diff --git a/config/webpacker.yml b/config/shakapacker.yml similarity index 59% rename from config/webpacker.yml rename to config/shakapacker.yml index 64a7e11855..172d943073 100644 --- a/config/webpacker.yml +++ b/config/shakapacker.yml @@ -8,7 +8,7 @@ default: &default cache_path: tmp/cache/webpacker webpack_compile_output: true - # Additional paths webpack should lookup modules + # Additional paths webpack should look up modules # ['app/assets', 'engine/foo/app/assets'] additional_paths: [ 'vendor', @@ -25,37 +25,6 @@ default: &default # Extract and emit a css file extract_css: true - static_assets_extensions: - - .jpg - - .jpeg - - .png - - .gif - - .tiff - - .ico - - .svg - - .eot - - .otf - - .ttf - - .woff - - .woff2 - - extensions: - - .mjs - - .js - - .sass - - .scss - - .css - - .module.sass - - .module.scss - - .module.css - - .png - - .svg - - .gif - - .jpeg - - .jpg - - .eot - - .ttf - - .woff development: <<: *default @@ -63,25 +32,40 @@ development: # Reference: https://webpack.js.org/configuration/dev-server/ dev_server: - https: false host: localhost port: 3035 - public: localhost:3035 + # Hot Module Replacement updates modules while the application is running without a full reload hmr: false - # Inline should be set to true if using HMR - inline: true - overlay: true + # Defaults to the inverse of hmr. Uncomment to manually set this. + # live_reload: true + client: + # Should we show a full-screen overlay in the browser when there are compiler errors or warnings? + overlay: false + # May also be a string + # webSocketURL: + # hostname: "0.0.0.0" + # pathname: "/ws" + # port: 8080 + # Should we use gzip compression? compress: true - disable_host_check: true - use_local_ip: false - quiet: false - pretty: false + # Note that apps that do not check the host are vulnerable to DNS rebinding attacks + allowed_hosts: "all" + pretty: true headers: 'Access-Control-Allow-Origin': '*' - watch_options: - ignored: - - '**/node_modules/**' - - '**/*.swp' + static: + watch: + ignored: + - '**/node_modules/**' + - '**/*.swp' + +test: + <<: *default + compile: true + compiler_strategy: mtime + + # Compile test packs to a separate directory + public_output_path: packs-test production: &production <<: *default @@ -91,9 +75,3 @@ production: &production # Cache manifest.json for performance cache_manifest: true - -test: - <<: *default - - # Compile test packs to a separate directory - public_output_path: packs-test diff --git a/config/storage.yml b/config/storage.yml index 8e0bb583a8..5a134df4e9 100644 --- a/config/storage.yml +++ b/config/storage.yml @@ -23,3 +23,20 @@ amazon_public: secret_access_key: <%= ENV["S3_SECRET"] %> bucket: <%= ENV["S3_BUCKET"] %> region: <%= ENV.fetch("S3_REGION", "us-east-1") %> + +s3_compatible_storage: + service: S3 + endpoint: <%= ENV["S3_ENDPOINT"] %> + access_key_id: <%= ENV["S3_ACCESS_KEY"] %> + secret_access_key: <%= ENV["S3_SECRET"] %> + bucket: <%= ENV["S3_BUCKET"] %> + region: <%= ENV["S3_REGION"] %> + +s3_compatible_storage_public: + service: S3 + public: true + endpoint: <%= ENV["S3_ENDPOINT"] %> + access_key_id: <%= ENV["S3_ACCESS_KEY"] %> + secret_access_key: <%= ENV["S3_SECRET"] %> + bucket: <%= ENV["S3_BUCKET"] %> + region: <%= ENV["S3_REGION"] %> diff --git a/config/webpack/development.js b/config/webpack/development.js deleted file mode 100644 index c5edff94ad..0000000000 --- a/config/webpack/development.js +++ /dev/null @@ -1,5 +0,0 @@ -process.env.NODE_ENV = process.env.NODE_ENV || 'development' - -const environment = require('./environment') - -module.exports = environment.toWebpackConfig() diff --git a/config/webpack/environment.js b/config/webpack/environment.js deleted file mode 100644 index 06cf62249e..0000000000 --- a/config/webpack/environment.js +++ /dev/null @@ -1,35 +0,0 @@ -const { environment } = require('@rails/webpacker') - -module.exports = environment - -function hotfixPostcssLoaderConfig (subloader) { - const subloaderName = subloader.loader - if (subloaderName === 'postcss-loader') { - if (subloader.options.postcssOptions) { - console.log( - '\x1b[31m%s\x1b[0m', - 'Remove postcssOptions workaround in config/webpack/environment.js' - ) - } else { - subloader.options.postcssOptions = subloader.options.config; - delete subloader.options.config; - } - } -} - -function addQuietDepsToSassLoader (subloader) { - if (subloader.loader === 'sass-loader') { - subloader.options.sassOptions = { - ...subloader.options.sassOptions, - quietDeps: true - } - } -} - -environment.loaders.keys().forEach(loaderName => { - const loader = environment.loaders.get(loaderName); - if (loaderName === 'sass') { - loader.use.forEach(addQuietDepsToSassLoader); - } - loader.use.forEach(hotfixPostcssLoaderConfig); -}); diff --git a/config/webpack/production.js b/config/webpack/production.js deleted file mode 100644 index be0f53aacf..0000000000 --- a/config/webpack/production.js +++ /dev/null @@ -1,5 +0,0 @@ -process.env.NODE_ENV = process.env.NODE_ENV || 'production' - -const environment = require('./environment') - -module.exports = environment.toWebpackConfig() diff --git a/config/webpack/test.js b/config/webpack/test.js deleted file mode 100644 index c5edff94ad..0000000000 --- a/config/webpack/test.js +++ /dev/null @@ -1,5 +0,0 @@ -process.env.NODE_ENV = process.env.NODE_ENV || 'development' - -const environment = require('./environment') - -module.exports = environment.toWebpackConfig() diff --git a/config/webpack/webpack.config.js b/config/webpack/webpack.config.js new file mode 100644 index 0000000000..00528036b3 --- /dev/null +++ b/config/webpack/webpack.config.js @@ -0,0 +1,22 @@ +const { generateWebpackConfig, merge } = require("shakapacker") + +const webpackConfig = generateWebpackConfig() + +const options = { + resolve: { + extensions: [".mjs", ".js", ".sass",".scss", ".css", ".module.sass", ".module.scss", ".module.css", ".png", ".svg", ".gif", ".jpeg", ".jpg", ".eot", ".ttf", ".woff"] + } +} + +const OFNwebpackConfig = merge(webpackConfig, options) + +// quiet deprecations in dependencies, notably foundation-sites +const scssRule = OFNwebpackConfig.module.rules.find((rule) => rule.test.test(".scss")) +const sassDefaultOptions = scssRule.use[3].options.sassOptions +scssRule.use[3].options.sassOptions = { + ...sassDefaultOptions, + quietDeps: true +} + +// This results in a new object copied from the mutable global +module.exports = OFNwebpackConfig diff --git a/db/default/users.rb b/db/default/users.rb index 85fdd0379c..2a64eac41d 100644 --- a/db/default/users.rb +++ b/db/default/users.rb @@ -1,57 +1,8 @@ # frozen_string_literal: true -require 'highline/import' - -# see last line where we create an admin if there is none, asking for email and password -def prompt_for_admin_password - if ENV['ADMIN_PASSWORD'] - password = ENV['ADMIN_PASSWORD'].dup - say "Admin Password #{password}" - else - password = ask('Password [ofn123]: ') do |q| - q.echo = false - q.validate = /^(|.{5,40})$/ - q.responses[:not_valid] = 'Invalid password. Must be at least 5 characters long.' - q.whitespace = :strip - end - password = 'ofn123' if password.blank? - end - - password -end - -def prompt_for_admin_email - if ENV['ADMIN_EMAIL'] - email = ENV['ADMIN_EMAIL'].dup - say "Admin User #{email}" - else - email = ask('Email [ofn@example.com]: ') do |q| - q.echo = true - q.whitespace = :strip - end - email = 'ofn@example.com' if email.blank? - end - - email -end - def create_admin_user attributes = read_user_attributes - load 'spree/user.rb' - - if Spree::User.find_by(email: attributes[:email]) - say <<~TEXT - - WARNING: There is already a user with the email: #{email}, - so no account changes were made. If you wish to create an additional admin - user, please run rake spree_auth:admin:create again with a different email. - - TEXT - - return - end - admin = Spree::User.new(attributes) admin.skip_confirmation! admin.skip_confirmation_notification! @@ -60,24 +11,22 @@ def create_admin_user ValidEmail2::Address.define_method(:valid_mx?) { true } if admin.save - say "New admin user persisted!" + printf <<~TEXT + New admin user persisted! + Username: #{admin.email} + Password: #{admin.password} + TEXT else - say "There was some problems with persisting new admin user:" + printf "There was some problems with persisting new admin user:\n" admin.errors.full_messages.each do |error| - say error + printf "#{error}\n" end end end def read_user_attributes - if ENV.fetch("AUTO_ACCEPT", true) - password = ENV.fetch("ADMIN_PASSWORD", "ofn123") - email = ENV.fetch("ADMIN_EMAIL", "ofn@example.com") - else - say 'Create the admin user (press enter for defaults).' - email = prompt_for_admin_email - password = prompt_for_admin_password - end + password = ENV.fetch("ADMIN_PASSWORD", "ofn123") + email = ENV.fetch("ADMIN_EMAIL", "ofn@example.com") { admin: true, @@ -88,4 +37,4 @@ def read_user_attributes } end -create_admin_user if Spree::User.admin.empty? +create_admin_user if Spree::User.none? diff --git a/db/migrate/20241011071014_update_item_name_to_product_in_od_report.rb b/db/migrate/20241011071014_update_item_name_to_product_in_od_report.rb index 6344d91188..00edf95945 100644 --- a/db/migrate/20241011071014_update_item_name_to_product_in_od_report.rb +++ b/db/migrate/20241011071014_update_item_name_to_product_in_od_report.rb @@ -3,7 +3,7 @@ class UpdateItemNameToProductInOdReport < ActiveRecord::Migration[7.0] self.belongs_to_required_by_default = false belongs_to :user, class_name: "Spree::User" - serialize :options, Hash, coder: YAML + serialize :options, type: Hash, coder: YAML end # OD: Orders and Distributors diff --git a/db/migrate/20250416074033_add_product_name_to_line_items.rb b/db/migrate/20250416074033_add_product_name_to_line_items.rb new file mode 100644 index 0000000000..92c256fdae --- /dev/null +++ b/db/migrate/20250416074033_add_product_name_to_line_items.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +class AddProductNameToLineItems < ActiveRecord::Migration[7.0] + def change + add_column :spree_line_items, :product_name, :string + end +end diff --git a/db/migrate/20250713110052_add_variant_name_to_line_items.rb b/db/migrate/20250713110052_add_variant_name_to_line_items.rb new file mode 100644 index 0000000000..dffc7735d6 --- /dev/null +++ b/db/migrate/20250713110052_add_variant_name_to_line_items.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +class AddVariantNameToLineItems < ActiveRecord::Migration[7.0] + def change + add_column :spree_line_items, :variant_name, :string + end +end diff --git a/db/migrate/20251124043324_add_type_to_webhook_endpoints.rb b/db/migrate/20251124043324_add_type_to_webhook_endpoints.rb new file mode 100644 index 0000000000..d4dd6238f7 --- /dev/null +++ b/db/migrate/20251124043324_add_type_to_webhook_endpoints.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +class AddTypeToWebhookEndpoints < ActiveRecord::Migration[7.1] + def up + # Using "order_cycle_opened" as default will update existing record + change_table(:webhook_endpoints, bulk: true) do |t| + t.column :webhook_type, :string, limit: 255, null: false, default: "order_cycle_opened" + end + # Drop the default value + change_column_default :webhook_endpoints, :webhook_type, nil + end + + def down + remove_column :webhook_endpoints, :webhook_type + end +end diff --git a/db/schema.rb b/db/schema.rb index acbc0d48cd..ccbcc56233 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -579,6 +579,8 @@ ActiveRecord::Schema[7.1].define(version: 2025_11_26_005628) do t.decimal "width", precision: 8, scale: 2 t.decimal "depth", precision: 8, scale: 2 t.string "unit_presentation" + t.string "product_name" + t.string "variant_name" t.index ["order_id"], name: "index_line_items_on_order_id" t.index ["variant_id"], name: "index_line_items_on_variant_id" end @@ -1143,6 +1145,7 @@ ActiveRecord::Schema[7.1].define(version: 2025_11_26_005628) do t.datetime "created_at", null: false t.datetime "updated_at", null: false t.bigint "user_id", default: 0, null: false + t.string "webhook_type", limit: 255, null: false t.index ["user_id"], name: "index_webhook_endpoints_on_user_id" end diff --git a/doc/erd.pdf b/doc/erd.pdf index 4b4299cc51..829c46a4d5 100644 Binary files a/doc/erd.pdf and b/doc/erd.pdf differ diff --git a/engines/catalog/spec/services/catalog/product_import/products_reset_strategy_spec.rb b/engines/catalog/spec/services/catalog/product_import/products_reset_strategy_spec.rb index cebfa298b3..76bbfe0f46 100644 --- a/engines/catalog/spec/services/catalog/product_import/products_reset_strategy_spec.rb +++ b/engines/catalog/spec/services/catalog/product_import/products_reset_strategy_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Catalog::ProductImport::ProductsResetStrategy do let(:products_reset) { described_class.new(excluded_items_ids) } diff --git a/engines/dfc_provider/app/services/affiliate_sales_query.rb b/engines/dfc_provider/app/services/affiliate_sales_query.rb index a2a90ad233..e3dd760979 100644 --- a/engines/dfc_provider/app/services/affiliate_sales_query.rb +++ b/engines/dfc_provider/app/services/affiliate_sales_query.rb @@ -14,7 +14,7 @@ class AffiliateSalesQuery }, ) .group(key_fields) - .pluck(fields) + .pluck(Arel.sql(fields)) end # Create a hash with labels for an array of data points: @@ -48,9 +48,9 @@ class AffiliateSalesQuery def fields <<~SQL.squish - spree_products.name AS product_name, - spree_variants.display_name AS unit_name, - spree_products.variant_unit AS unit_type, + COALESCE(spree_line_items.product_name, spree_products.name) AS product_name, + COALESCE(spree_line_items.variant_name, spree_variants.display_name) AS unit_name, + spree_variants.variant_unit AS unit_type, spree_variants.unit_value AS units, spree_variants.unit_presentation, spree_line_items.price, @@ -65,8 +65,8 @@ class AffiliateSalesQuery def key_fields <<~SQL.squish - product_name, - unit_name, + COALESCE(spree_line_items.product_name, spree_products.name), + COALESCE(spree_line_items.variant_name, spree_variants.display_name), unit_type, units, spree_variants.unit_presentation, diff --git a/engines/dfc_provider/app/services/image_builder.rb b/engines/dfc_provider/app/services/image_builder.rb index 06ab056e0c..e9da4aa36a 100644 --- a/engines/dfc_provider/app/services/image_builder.rb +++ b/engines/dfc_provider/app/services/image_builder.rb @@ -19,12 +19,14 @@ class ImageBuilder < DfcBuilder def self.import(image_link) url = URI.parse(image_link) - filename = File.basename(image_link) + filename = File.basename(url.path) metadata = { custom: { origin: image_link } } Spree::Image.new.tap do |image| PrivateAddressCheck.only_public_connections do - image.attachment.attach(io: url.open, filename:, metadata:) + io = url.open + content_type = Marcel::MimeType.for(io) + image.attachment.attach(io:, filename:, metadata:, content_type:) end end rescue StandardError diff --git a/engines/dfc_provider/spec/requests/catalog_items_spec.rb b/engines/dfc_provider/spec/requests/catalog_items_spec.rb index 1b69192310..1d3854b072 100644 --- a/engines/dfc_provider/spec/requests/catalog_items_spec.rb +++ b/engines/dfc_provider/spec/requests/catalog_items_spec.rb @@ -36,7 +36,7 @@ RSpec.describe "CatalogItems", swagger_doc: "dfc.yaml" do get "List CatalogItems" do produces "application/json" - security [oidc_token: []] + security [{ oidc_token: [] }] response "404", "not found" do context "as platform user" do diff --git a/engines/dfc_provider/spec/requests/product_groups_spec.rb b/engines/dfc_provider/spec/requests/product_groups_spec.rb index 9520acab2c..cea6ed0182 100644 --- a/engines/dfc_provider/spec/requests/product_groups_spec.rb +++ b/engines/dfc_provider/spec/requests/product_groups_spec.rb @@ -35,7 +35,7 @@ RSpec.describe "ProductGroups", swagger_doc: "dfc.yaml" do get "Show ProductGroup" do produces "application/json" - security [oidc_token: []] + security [{ oidc_token: [] }] response "200", "success" do let(:id) { product.id } diff --git a/engines/dfc_provider/spec/services/affiliate_sales_query_spec.rb b/engines/dfc_provider/spec/services/affiliate_sales_query_spec.rb index 74607e2550..047cbcab9c 100644 --- a/engines/dfc_provider/spec/services/affiliate_sales_query_spec.rb +++ b/engines/dfc_provider/spec/services/affiliate_sales_query_spec.rb @@ -6,7 +6,17 @@ RSpec.describe AffiliateSalesQuery do subject(:query) { described_class } describe ".data" do - let(:order) { create(:order_with_totals_and_distribution, :completed) } + let(:product) { create(:simple_product, name: "Tomatoes") } + let(:variant1) { + product.variants.first.tap{ |v| + v.update!( + display_name: "Tomatoes - Roma", + variant_unit: "weight", unit_value: 1000, variant_unit_scale: 1000 # 1kg + ) + } + } + let!(:order1) { create(:order_with_totals_and_distribution, :completed, variant: variant1) } + let(:today) { Time.zone.today } let(:yesterday) { Time.zone.yesterday } let(:tomorrow) { Time.zone.tomorrow } @@ -18,12 +28,12 @@ RSpec.describe AffiliateSalesQuery do travel_to(Time.zone.today.noon) end - it "returns data" do + it "returns records filtered by date" do # Test data creation takes time. # So I'm executing more tests in one `it` block here. # And make it simpler to call the subject many times: count_rows = lambda do |**args| - query.data(order.distributor, **args).count + query.data(order1.distributor, **args).count end # Without any filters: @@ -47,6 +57,96 @@ RSpec.describe AffiliateSalesQuery do # From tomorrow: expect(count_rows.call(start_date: tomorrow)).to eq 0 end + + it "returns data" do + labelled_row = query.label_row(query.data(order1.distributor).first) + + expect(labelled_row).to include( + product_name: "Tomatoes", + unit_name: "Tomatoes - Roma (1kg)", + unit_type: "weight", + units: 1000.to_f, + unit_presentation: "1kg", + price: 10.to_d, + distributor_postcode: order1.distributor.address.zipcode, + distributor_country: order1.distributor.address.country.name, + supplier_postcode: variant1.supplier.address.zipcode, + supplier_country: variant1.supplier.address.country.name, + quantity_sold: 1, + ) + end + + it "returns data stored in line item at time of order" do + # Records are updated after the orders are created + product.update! name: "Tommy toes" + variant1.update! display_name: "Tommy toes - Roma", price: 11 + + labelled_row = query.label_row(query.data(order1.distributor).first) + + expect(labelled_row).to include( + product_name: "Tomatoes", + unit_name: "Tomatoes - Roma (1kg)", + price: 10.to_d, # this price is hardcoded in the line item factory. + ) + end + + it "returns data from variant if line item doesn't have it" do + # Old line item records (before migration 20250713110052) don't have these values stored + order1.line_items.first.update! product_name: nil, variant_name: nil + + labelled_row = query.label_row(query.data(order1.distributor).first) + + expect(labelled_row).to include( + product_name: "Tomatoes", + unit_name: "Tomatoes - Roma", + ) + end + + context "with multiple orders" do + let!(:order2) { + create(:order_with_totals_and_distribution, :completed, variant: product.variants.first, + distributor: order1.distributor) + } + + it "returns data grouped by product name" do + labelled_row = query.label_row(query.data(order1.distributor).first) + + expect(labelled_row).to include( + product_name: "Tomatoes", + quantity_sold: 2, + ) + end + + context "and multiple variants" do + let!(:order2) { + create(:order_with_totals_and_distribution, :completed, variant: variant2, + distributor: order1.distributor) + } + let(:variant2) { + create_variant_for(product, + display_name: "Tomatoes - Cherry", + variant_unit: "weight", unit_value: 500, variant_unit_scale: 1) # 500g + } + + it "returns data grouped by variant name" do + labelled_data = query.data(order1.distributor).map{ |row| query.label_row(row) } + + expect(labelled_data).to include a_hash_including( + product_name: "Tomatoes", + unit_name: "Tomatoes - Roma (1kg)", + quantity_sold: 1, + ) + expect(labelled_data).to include a_hash_including( + product_name: "Tomatoes", + unit_name: "Tomatoes - Cherry (500g)", + quantity_sold: 1, + units: 500, + unit_presentation: "500g", + price: 10, + ) + end + end + end end describe ".label_row" do @@ -81,4 +181,15 @@ RSpec.describe AffiliateSalesQuery do ) end end + + # Create variant for product, ready to add to line item + def create_variant_for(product, **attrs) + variant = product.variants.first.dup + variant.update!( + price: 10, + **attrs, + ) + variant.update! on_demand: true + variant + end end diff --git a/engines/dfc_provider/spec/services/supplied_product_importer_spec.rb b/engines/dfc_provider/spec/services/supplied_product_importer_spec.rb index 815a1c6897..07a8d1bbda 100644 --- a/engines/dfc_provider/spec/services/supplied_product_importer_spec.rb +++ b/engines/dfc_provider/spec/services/supplied_product_importer_spec.rb @@ -251,7 +251,7 @@ RSpec.describe SuppliedProductImporter do supplied_product.isVariantOf << tomatoes imported_product = importer.import_variant(supplied_product, supplier).product - expect(imported_product.image.attachment.filename).to eq "tomato.png?v=1" + expect(imported_product.image.attachment.filename).to eq "tomato.png" expect { importer.import_variant(supplied_product, supplier).product @@ -266,7 +266,7 @@ RSpec.describe SuppliedProductImporter do } .to change { imported_product.image } - expect(imported_product.image.attachment.filename).to eq "tomato.png?v=2" + expect(imported_product.image.attachment.filename).to eq "tomato.png" end context "when spree_product_uri doesn't match the server host" do diff --git a/engines/order_management/spec/services/order_management/order/stripe_sca_payment_authorize_spec.rb b/engines/order_management/spec/services/order_management/order/stripe_sca_payment_authorize_spec.rb index ab1a17293f..07e6e5d727 100644 --- a/engines/order_management/spec/services/order_management/order/stripe_sca_payment_authorize_spec.rb +++ b/engines/order_management/spec/services/order_management/order/stripe_sca_payment_authorize_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module OrderManagement module Order RSpec.describe StripeScaPaymentAuthorize do diff --git a/engines/order_management/spec/services/order_management/order/updater_spec.rb b/engines/order_management/spec/services/order_management/order/updater_spec.rb index ee07f7b143..fb5867c71d 100644 --- a/engines/order_management/spec/services/order_management/order/updater_spec.rb +++ b/engines/order_management/spec/services/order_management/order/updater_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderManagement::Order::Updater do let(:order) { create(:order) } let(:updater) { OrderManagement::Order::Updater.new(order) } diff --git a/engines/order_management/spec/services/order_management/stock/coordinator_spec.rb b/engines/order_management/spec/services/order_management/stock/coordinator_spec.rb index 9acc53675f..26a72cb73e 100644 --- a/engines/order_management/spec/services/order_management/stock/coordinator_spec.rb +++ b/engines/order_management/spec/services/order_management/stock/coordinator_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module OrderManagement module Stock RSpec.describe Coordinator do diff --git a/engines/order_management/spec/services/order_management/stock/estimator_spec.rb b/engines/order_management/spec/services/order_management/stock/estimator_spec.rb index 0c31ebe454..334e0d2b6f 100644 --- a/engines/order_management/spec/services/order_management/stock/estimator_spec.rb +++ b/engines/order_management/spec/services/order_management/stock/estimator_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module OrderManagement module Stock RSpec.describe Estimator do diff --git a/engines/order_management/spec/services/order_management/stock/package_spec.rb b/engines/order_management/spec/services/order_management/stock/package_spec.rb index 2dc75f88db..e16c29727b 100644 --- a/engines/order_management/spec/services/order_management/stock/package_spec.rb +++ b/engines/order_management/spec/services/order_management/stock/package_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderManagement::Stock::Package do context "base tests" do let(:variant) { build(:variant, weight: 25.0) } diff --git a/engines/order_management/spec/services/order_management/stock/packer_spec.rb b/engines/order_management/spec/services/order_management/stock/packer_spec.rb index 8aad8ccc83..b3136cf750 100644 --- a/engines/order_management/spec/services/order_management/stock/packer_spec.rb +++ b/engines/order_management/spec/services/order_management/stock/packer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module OrderManagement module Stock RSpec.describe Packer do diff --git a/engines/order_management/spec/services/order_management/stock/prioritizer_spec.rb b/engines/order_management/spec/services/order_management/stock/prioritizer_spec.rb index 85883e8be9..191a60e7cf 100644 --- a/engines/order_management/spec/services/order_management/stock/prioritizer_spec.rb +++ b/engines/order_management/spec/services/order_management/stock/prioritizer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module OrderManagement module Stock RSpec.describe Prioritizer do diff --git a/engines/order_management/spec/services/order_management/subscriptions/count_spec.rb b/engines/order_management/spec/services/order_management/subscriptions/count_spec.rb index a852130932..f0784bd308 100644 --- a/engines/order_management/spec/services/order_management/subscriptions/count_spec.rb +++ b/engines/order_management/spec/services/order_management/subscriptions/count_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module OrderManagement module Subscriptions RSpec.describe Count do diff --git a/engines/order_management/spec/services/order_management/subscriptions/estimator_spec.rb b/engines/order_management/spec/services/order_management/subscriptions/estimator_spec.rb index 88cec9d7bd..f712cdfc2b 100644 --- a/engines/order_management/spec/services/order_management/subscriptions/estimator_spec.rb +++ b/engines/order_management/spec/services/order_management/subscriptions/estimator_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderManagement::Subscriptions::Estimator do describe "estimating prices for subscription line items" do let!(:subscription) { create(:subscription, with_items: true) } diff --git a/engines/order_management/spec/services/order_management/subscriptions/form_spec.rb b/engines/order_management/spec/services/order_management/subscriptions/form_spec.rb index f484b57c4e..7825d0e1a1 100644 --- a/engines/order_management/spec/services/order_management/subscriptions/form_spec.rb +++ b/engines/order_management/spec/services/order_management/subscriptions/form_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderManagement::Subscriptions::Form do describe "creating a new subscription" do let!(:shop) { create(:distributor_enterprise) } diff --git a/engines/order_management/spec/services/order_management/subscriptions/payment_setup_spec.rb b/engines/order_management/spec/services/order_management/subscriptions/payment_setup_spec.rb index 297fc841a7..d8e0b0d4c8 100644 --- a/engines/order_management/spec/services/order_management/subscriptions/payment_setup_spec.rb +++ b/engines/order_management/spec/services/order_management/subscriptions/payment_setup_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module OrderManagement module Subscriptions RSpec.describe PaymentSetup do diff --git a/engines/order_management/spec/services/order_management/subscriptions/proxy_order_syncer_spec.rb b/engines/order_management/spec/services/order_management/subscriptions/proxy_order_syncer_spec.rb index cce655c9c9..430a8b01e6 100644 --- a/engines/order_management/spec/services/order_management/subscriptions/proxy_order_syncer_spec.rb +++ b/engines/order_management/spec/services/order_management/subscriptions/proxy_order_syncer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderManagement::Subscriptions::ProxyOrderSyncer do describe "initialization" do let!(:subscription) { create(:subscription) } diff --git a/engines/order_management/spec/services/order_management/subscriptions/stripe_payment_setup_spec.rb b/engines/order_management/spec/services/order_management/subscriptions/stripe_payment_setup_spec.rb index 6db96cf112..c8f859da6d 100644 --- a/engines/order_management/spec/services/order_management/subscriptions/stripe_payment_setup_spec.rb +++ b/engines/order_management/spec/services/order_management/subscriptions/stripe_payment_setup_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module OrderManagement module Subscriptions RSpec.describe StripePaymentSetup do diff --git a/engines/order_management/spec/services/order_management/subscriptions/summarizer_spec.rb b/engines/order_management/spec/services/order_management/subscriptions/summarizer_spec.rb index 052306a9ac..a8fa674f41 100644 --- a/engines/order_management/spec/services/order_management/subscriptions/summarizer_spec.rb +++ b/engines/order_management/spec/services/order_management/subscriptions/summarizer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderManagement::Subscriptions::Summarizer do let(:order) { create(:order) } let(:summarizer) { described_class.new } diff --git a/engines/order_management/spec/services/order_management/subscriptions/summary_spec.rb b/engines/order_management/spec/services/order_management/subscriptions/summary_spec.rb index f2d69e4485..dd4615af05 100644 --- a/engines/order_management/spec/services/order_management/subscriptions/summary_spec.rb +++ b/engines/order_management/spec/services/order_management/subscriptions/summary_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderManagement::Subscriptions::Summary do let(:summary) { described_class.new(123) } diff --git a/engines/order_management/spec/services/order_management/subscriptions/validator_spec.rb b/engines/order_management/spec/services/order_management/subscriptions/validator_spec.rb index 945b938118..447c4fde79 100644 --- a/engines/order_management/spec/services/order_management/subscriptions/validator_spec.rb +++ b/engines/order_management/spec/services/order_management/subscriptions/validator_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe OrderManagement::Subscriptions::Validator do let(:owner) { create(:user) } let(:shop) { create(:enterprise, name: "Shop", owner:) } diff --git a/engines/order_management/spec/services/order_management/subscriptions/variants_list_spec.rb b/engines/order_management/spec/services/order_management/subscriptions/variants_list_spec.rb index e5bccdf42b..dc457c8075 100644 --- a/engines/order_management/spec/services/order_management/subscriptions/variants_list_spec.rb +++ b/engines/order_management/spec/services/order_management/subscriptions/variants_list_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe OrderManagement::Subscriptions::VariantsList do describe "variant eligibility for subscription" do let!(:shop) { create(:distributor_enterprise) } diff --git a/engines/web/spec/helpers/cookies_policy_helper_spec.rb b/engines/web/spec/helpers/cookies_policy_helper_spec.rb index 81607dbc1b..7f788b771c 100644 --- a/engines/web/spec/helpers/cookies_policy_helper_spec.rb +++ b/engines/web/spec/helpers/cookies_policy_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Web RSpec.describe CookiesPolicyHelper do # keeps global state unchanged diff --git a/jest.config.js b/jest.config.js index df6f89cec9..2e451b9051 100644 --- a/jest.config.js +++ b/jest.config.js @@ -179,7 +179,7 @@ module.exports = { // transform: { "\\.[jt]sx?$": "babel-jest" }, // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation - transformIgnorePatterns: ["/node_modules/(?!(stimulus.+)/)"], + transformIgnorePatterns: ["/node_modules/(?!(stimulus.+|tom-select)/)"], // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them // unmockedModulePathPatterns: undefined, diff --git a/lib/reporting/frontend_data.rb b/lib/reporting/frontend_data.rb index 5a1152d4a2..682e071fb1 100644 --- a/lib/reporting/frontend_data.rb +++ b/lib/reporting/frontend_data.rb @@ -46,7 +46,7 @@ module Reporting end def order_customers - Customer.where(id: visible_order_customer_ids).select("customers.id, customers.email") + Customer.where(id: visible_order_customer_ids_query).select("customers.id, customers.email") end private @@ -57,8 +57,8 @@ module Reporting @permissions ||= OpenFoodNetwork::Permissions.new(current_user) end - def visible_order_customer_ids - Permissions::Order.new(current_user).visible_orders.pluck(:customer_id) + def visible_order_customer_ids_query + Permissions::Order.new(current_user).visible_orders.select(:customer_id) end end end diff --git a/lib/reporting/line_items.rb b/lib/reporting/line_items.rb index 1fa5cb56c5..8a709aa8e1 100644 --- a/lib/reporting/line_items.rb +++ b/lib/reporting/line_items.rb @@ -15,7 +15,7 @@ module Reporting @orders ||= search_orders end - def list(line_item_includes = [variant: [:supplier, :product]]) + def list(line_item_includes = [{ variant: [:supplier, :product] }]) line_items = order_permissions.visible_line_items.in_orders(orders.result) .order( "supplier.name", diff --git a/lib/reporting/reports/bulk_coop/base.rb b/lib/reporting/reports/bulk_coop/base.rb index 371713d676..bc7503d2f7 100644 --- a/lib/reporting/reports/bulk_coop/base.rb +++ b/lib/reporting/reports/bulk_coop/base.rb @@ -85,7 +85,7 @@ module Reporting end def product_name(line_items) - line_items.first.product.name + line_items.first.full_product_name end def remainder(line_items) @@ -118,7 +118,7 @@ module Reporting end def variant_product_name(line_items) - line_items.first.variant.product.name + line_items.first.full_product_name end def weight_from_unit_value(line_items) diff --git a/lib/reporting/reports/customers/base.rb b/lib/reporting/reports/customers/base.rb index b53fb7b44c..3539775c6d 100644 --- a/lib/reporting/reports/customers/base.rb +++ b/lib/reporting/reports/customers/base.rb @@ -10,10 +10,10 @@ module Reporting .complete.not_state(:canceled) .order(:id)) .group_by do |order| - { - customer_id: order.customer_id || order.email, - hub_id: order.distributor_id, - } + { + customer_id: order.customer_id || order.email, + hub_id: order.distributor_id, + } end.values end diff --git a/lib/reporting/reports/enterprise_fee_summary/enterprise_fees_with_tax_report_by_order.rb b/lib/reporting/reports/enterprise_fee_summary/enterprise_fees_with_tax_report_by_order.rb index abc27aa844..51c6a21fe5 100644 --- a/lib/reporting/reports/enterprise_fee_summary/enterprise_fees_with_tax_report_by_order.rb +++ b/lib/reporting/reports/enterprise_fee_summary/enterprise_fees_with_tax_report_by_order.rb @@ -44,11 +44,11 @@ module Reporting .filter(&method(:filter_enterprise_fee_by_id)) .filter(&method(:filter_enterprise_fee_by_owner)) .map do |enterprise_fee_id, enterprise_fee_adjustment_ids| - { - enterprise_fee_id:, - enterprise_fee_adjustment_ids:, - order: - } + { + enterprise_fee_id:, + enterprise_fee_adjustment_ids:, + order: + } end end end diff --git a/lib/reporting/reports/enterprise_fee_summary/scope.rb b/lib/reporting/reports/enterprise_fee_summary/scope.rb index 5aa518f5c4..f678a5750b 100644 --- a/lib/reporting/reports/enterprise_fee_summary/scope.rb +++ b/lib/reporting/reports/enterprise_fee_summary/scope.rb @@ -392,9 +392,9 @@ module Reporting end end - def filter_scope(*args) + def filter_scope(*) chain_to_scope do - where(*args) + where(*) end end end diff --git a/lib/reporting/reports/orders_and_fulfillment/base.rb b/lib/reporting/reports/orders_and_fulfillment/base.rb index fef26eb194..8c083efe25 100644 --- a/lib/reporting/reports/orders_and_fulfillment/base.rb +++ b/lib/reporting/reports/orders_and_fulfillment/base.rb @@ -41,7 +41,7 @@ module Reporting end def variant_name - proc { |line_items| line_items.first.variant.full_name } + proc { |line_items| line_items.first.full_variant_name } end def variant_sku @@ -57,7 +57,7 @@ module Reporting end def product_name - proc { |line_items| line_items.first.variant.product.name } + proc { |line_items| line_items.first.full_product_name } end def product_tax_category diff --git a/lib/reporting/reports/orders_and_fulfillment/order_cycle_supplier_totals_by_distributor.rb b/lib/reporting/reports/orders_and_fulfillment/order_cycle_supplier_totals_by_distributor.rb index 039ed25e6d..83f5d31704 100644 --- a/lib/reporting/reports/orders_and_fulfillment/order_cycle_supplier_totals_by_distributor.rb +++ b/lib/reporting/reports/orders_and_fulfillment/order_cycle_supplier_totals_by_distributor.rb @@ -25,7 +25,7 @@ module Reporting }, { group_by: proc { |line_items, _row| line_items.first.variant }, - sort_by: proc { |variant| variant.product.name } + sort_by: proc { |variant| variant.line_items.first.full_product_name } }, { group_by: :hub, diff --git a/lib/stripe/account_connector.rb b/lib/stripe/account_connector.rb index 7eb0fab237..ae14e06ebc 100644 --- a/lib/stripe/account_connector.rb +++ b/lib/stripe/account_connector.rb @@ -41,7 +41,7 @@ module Stripe def state # Returns the original payload - key = Openfoodnetwork::Application.config.secret_token + key = Rails.application.secret_key_base JWT.decode(params["state"], key, true, algorithm: 'HS256')[0] end diff --git a/package.json b/package.json index d6d8b3e3e3..a6edce4a43 100644 --- a/package.json +++ b/package.json @@ -6,13 +6,21 @@ "url": "https://github.com/openfoodfoundation/openfoodnetwork" }, "license": "AGPL-3.0", + "packageManager": "yarn@1.22.2", "dependencies": { + "@babel/core": "^7.28.5", + "@babel/plugin-transform-runtime": "^7.28.5", + "@babel/preset-env": "^7.28.5", + "@babel/runtime": "^7.28.4", "@floating-ui/dom": "*", "@hotwired/stimulus": "*", "@hotwired/turbo": "*", - "@rails/webpacker": "5.4.4", "@stimulus-components/rails-nested-form": "*", + "babel-loader": "^8.2.2", "cable_ready": "5.0.6", + "compression-webpack-plugin": "^9.0.0", + "css-loader": "^7.1.2", + "css-minimizer-webpack-plugin": "^7.0.4", "flatpickr": "*", "foundation-sites": "5.5.3", "hotkeys-js": "*", @@ -21,19 +29,40 @@ "leaflet": "1.9.4", "leaflet-geosearch": "4.2.2", "leaflet-providers": "3.0.0", + "mini-css-extract-plugin": "^2.9.4", "moment": "*", "mrujs": "*", + "pnp-webpack-plugin": "^1.7.0", + "postcss": "^8.5.6", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-import": "^16.1.1", + "postcss-loader": "^8.2.0", + "postcss-preset-env": "^10.5.0", + "regenerator-transform": "^0.15.2", + "sass-embedded": "^1.96.0", + "sass-loader": "^16.0.6", "select2": "*", + "shakapacker": "8.4.0", "shortcut-buttons-flatpickr": "*", "stimulus": "*", "stimulus-autocomplete": "*", "stimulus-flatpickr": "*", "stimulus_reflex": "3.5.5", + "style-loader": "^4.0.0", + "terser-webpack-plugin": "^5.3.16", "tom-select": "*", "trix": "*", "turbo_power": "*", - "webpack": "~4" + "webpack": "^5.104.0", + "webpack-assets-manifest": "^5.0.6", + "webpack-cli": "^4.9.2", + "webpack-merge": "^5.8.0", + "webpack-sources": "^3.3.3" }, + "browserslist": [ + "defaults", + "not IE 11" + ], "devDependencies": { "@testing-library/dom": "<11.0.0", "jasmine-core": "~5.12.1", @@ -44,6 +73,6 @@ "karma-coffee-preprocessor": "~1.0.1", "karma-jasmine": "~0.3.8", "prettier": "*", - "webpack-dev-server": "~3" + "webpack-dev-server": "^4.9.0" } } diff --git a/script/bump-ruby.sh b/script/bump-ruby.sh new file mode 100755 index 0000000000..337f23cb2a --- /dev/null +++ b/script/bump-ruby.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env sh + +if [ "$#" -lt 1 ]; then + echo "Usage: $0 " + echo "Example: $0 3.4.8" + exit 1 +fi + +set -ex + +OLD_VERSION=$(cat .ruby-version) +NEW_VERSION=$1 +PATTERN="$(echo "$OLD_VERSION" | sed 's:[]\[^$.*/]:\\&:g')" + +sed -i "s/\<$PATTERN\>/$NEW_VERSION/" .ruby-version Dockerfile + +script/rbenv-install.sh + +# Update bundler to the version shipped with Ruby: +bundle update --bundler + +git commit -a -m "Bump Ruby from $OLD_VERSION to $NEW_VERSION" diff --git a/script/install-bundler b/script/install-bundler deleted file mode 100755 index 1fb3e7d945..0000000000 --- a/script/install-bundler +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -# This shell script looks for the last used Bundler version in Gemfile.lock and -# installs exactly that version, removing all other versions. - -# Command line arguments are passed on to `gem install`. So you can call this -# script with with arguments: -# -# ./script/install-bundler --no-ri --no-rdoc - -# This script is used by ofn-install and can by handy in your development -# environment. - -# Fail if a single command fails. -set -e - -# `grep`: find the occurrences of "BUNDLED WITH" (-m is unnecessary and behaves different on macOS) -# `-A`: print the next line after "BUNDLED WITH" as well -# `-F`: find exactly that string -# `tail -n 1`: take the last line, the version line -# `tr -d`: delete all spaces, the indent before the version -version="$(grep -A 1 -F "BUNDLED WITH" Gemfile.lock | tail -n 1 | tr -d '[:space:]')" - -# if the length of $version is zero -if [ -z "$version" ]; then - echo >&2 "No bundler version in Gemfile.lock." - exit 1 -fi - -# Get the currently used bundler version. -# We ignore all errors with `2>/dev/null || true` in case there is no bundler -# or only an orphaned shim installed. -current="$(bundler --version 2>/dev/null || true)" - -if [ "$current" = "Bundler version $version" ]; then - echo >&2 "Already up-to-date: $current" - exit 0 -fi - -# Passing on all arguments of this script with "$@". -gem install bundler -v "$version" "$@" -gem uninstall bundler -v "!= $version" 2>/dev/null || true diff --git a/script/nodenv-install.sh b/script/nodenv-install.sh index b041111df5..df7110b6c2 100755 --- a/script/nodenv-install.sh +++ b/script/nodenv-install.sh @@ -10,6 +10,12 @@ set -e if ! command -v nodenv > /dev/null; then printf "Please install https://github.com/nodenv/nodenv.\n" + printf '```'"\n" + printf "git clone https://github.com/nodenv/nodenv.git ~/.nodenv\n" + printf "git clone https://github.com/nodenv/node-build.git ~/.nodenv/plugins/node-build\n" + printf "nodenv init\n" + printf 'eval "$(nodenv init -)"'"\n" + printf '```'"\n" exit 1 fi diff --git a/script/rbenv-install.sh b/script/rbenv-install.sh index a6d37c8977..f92c8a1fb0 100755 --- a/script/rbenv-install.sh +++ b/script/rbenv-install.sh @@ -24,7 +24,13 @@ if rbenv install --skip-existing; then echo "Ruby is installed." else echo "Upgrading rbenv's ruby-build:" - git -C "$(rbenv root)"/plugins/ruby-build pull + # If installed with homebrew, use that to update + if (command -v brew && brew list --versions ruby-build); then + brew update && brew upgrade ruby-build + else + # Update with git + git -C "$(rbenv root)"/plugins/ruby-build pull + fi rbenv install fi diff --git a/spec/base_spec_helper.rb b/spec/base_spec_helper.rb deleted file mode 100644 index b969b9af2b..0000000000 --- a/spec/base_spec_helper.rb +++ /dev/null @@ -1,287 +0,0 @@ -# frozen_string_literal: true - -# This file defines configurations that are universal to all spec types (feature, system, etc) - -ENV["RAILS_ENV"] ||= 'test' - -# for full configuration, see .simplecov -require 'simplecov' if ENV["COVERAGE"] - -require 'pry' unless ENV['CI'] -require 'view_component/test_helpers' - -require_relative "../config/environment" -require 'rspec/rails' -require 'rspec/retry' -require 'capybara' -require 'paper_trail/frameworks/rspec' -require "factory_bot_rails" - -require 'shoulda/matchers' -Shoulda::Matchers.configure do |config| - config.integrate do |with| - with.test_framework :rspec - with.library :rails - end -end - -require 'knapsack_pro' -KnapsackPro::Adapters::RSpecAdapter.bind - -if ENV["COVERAGE"] && defined?(SimpleCov) - KnapsackPro::Hooks::Queue.before_queue do - SimpleCov.command_name("rspec_ci_node_#{KnapsackPro::Config::Env.ci_node_index}") - end -end - -# Allow connections to selenium whilst raising errors when connecting to external sites -require 'webmock/rspec' -WebMock.enable! -WebMock.disable_net_connect!( - allow_localhost: true, - allow: ['chromedriver.storage.googleapis.com'] -) - -# Requires supporting ruby files with custom matchers and macros, etc, -# in spec/support/ and its subdirectories. -Rails.root.glob("spec/support/**/*.rb").sort.each { |f| require f } - -Capybara.server = :puma, { Silent: true } -Capybara.disable_animation = true - -Capybara.configure do |config| - config.match = :prefer_exact - config.ignore_hidden_elements = true -end - -FactoryBot.use_parent_strategy = false -FactoryBot::SyntaxRunner.include FileHelper - -# raise I18n exception handler -I18n.exception_handler = proc do |exception, *_| - raise exception.to_exception -end - -# Disable timestamp check for test environment -InvisibleCaptcha.timestamp_enabled = false - -InvisibleCaptcha.spinner_enabled = false - -RSpec.configure do |config| - # If you're not using ActiveRecord, or you'd prefer not to run each of your - # examples within a transaction, remove the following line or assign false - # instead of true. - # - # Setting this to true keeps the database clean by rolling back any changes. - config.use_transactional_fixtures = true - - # Some tests don't work within a transaction. Then we use DatabaseCleaner. - config.before(:each, concurrency: true) do - config.use_transactional_fixtures = false - DatabaseCleaner.strategy = :deletion, { except: ['spree_countries', 'spree_states'] } - DatabaseCleaner.start - end - config.append_after(:each, concurrency: true) do - DatabaseCleaner.clean - config.use_transactional_fixtures = true - end - - # If true, the base class of anonymous controllers will be inferred - # automatically. This will be the default behavior in future versions of - # rspec-rails. - config.infer_base_class_for_anonymous_controllers = false - - # Show retries in test output - config.verbose_retry = true - - # Force colored output, whether or not the output is a TTY - config.color_mode = :on - - # Force use of expect (over should) - config.expect_with :rspec do |expectations| - expectations.syntax = :expect - - # This option will default to `true` in RSpec 4. It makes the `description` - # and `failure_message` of custom matchers include text for helper methods - # defined using `chain`, e.g.: - # be_bigger_than(2).and_smaller_than(4).description - # # => "be bigger than 2 and smaller than 4" - # ...rather than: - # # => "be bigger than 2" - expectations.include_chain_clauses_in_custom_matcher_descriptions = true - end - - # rspec-mocks config goes here. You can use an alternate test double - # library (such as bogus or mocha) by changing the `mock_with` option here. - config.mock_with :rspec do |mocks| - # We use too many mocks at the moment. Activating the following - # feature fails a lot of specs. We should clean it up over time. - # - # Prevents you from mocking or stubbing a method that does not exist on - # a real object. This is generally recommended, and will default to - # `true` in RSpec 4. - # mocks.verify_partial_doubles = true - end - - # This option will default to `:apply_to_host_groups` in RSpec 4 (and will - # have no way to turn it off -- the option exists only for backwards - # compatibility in RSpec 3). It causes shared context metadata to be - # inherited by the metadata hash of host groups and examples, rather than - # triggering implicit auto-inclusion in groups with matching metadata. - config.shared_context_metadata_behavior = :apply_to_host_groups - - # Limits the available syntax to the non-monkey patched syntax that is - # recommended. For more details, see: - # https://rspec.info/features/3-12/rspec-core/configuration/zero-monkey-patching-mode/ - config.disable_monkey_patching! - - # Many RSpec users commonly either run the entire suite or an individual - # file, and it's useful to allow more verbose output when running an - # individual spec file. - if config.files_to_run.one? - # Use the documentation formatter for detailed output, - # unless a formatter has already been configured - # (e.g. via a command-line flag). - config.default_formatter = "doc" - end - - config.define_derived_metadata(file_path: %r{/spec/lib/tasks/}) do |metadata| - metadata[:type] = :rake - end - - # Reset locale for all specs. - config.around(:each) do |example| - locale = ENV.fetch('LOCALE', 'en_TST') - I18n.with_locale(locale) { example.run } - end - - # Reset all feature toggles to prevent leaking. - config.before(:each) do - Flipper.features.each(&:remove) - OpenFoodNetwork::FeatureToggle.setup! - end - - config.before(:each, :feature) do |example| - feature = example.metadata[:feature].to_s - - unless OpenFoodNetwork::FeatureToggle::CURRENT_FEATURES.key?(feature) - raise "Unkown feature: #{feature}" - end - - Flipper.enable(feature) - end - - # Enable caching in any specs tagged with `caching: true`. - config.around(:each, :caching) do |example| - caching = ActionController::Base.perform_caching - ActionController::Base.perform_caching = example.metadata[:caching] - example.run - ActionController::Base.perform_caching = caching - end - - # Show javascript errors in test output with `js_debug: true` - config.after(:each, :js_debug) do - errors = page.driver.browser.manage.logs.get(:browser) - if errors.present? - message = errors.map(&:message).join("\n") - puts message - end - end - - # Appends Stripe gem version to VCR cassette directory with ':stripe_version' flag - # - # When the Stripe gem is updated, we should re-record these cassettes: - # - # ./script/test-stripe-live - # - config.around(:each, :stripe_version) do |example| - stripe_version = "Stripe-v#{Stripe::VERSION}" - cassette_library_dir, default_cassette_options = nil, nil - - VCR.configure do |vcr_config| - cassette_library_dir = vcr_config.cassette_library_dir - default_cassette_options = vcr_config.default_cassette_options - vcr_config.cassette_library_dir += "/#{stripe_version}" - vcr_config.default_cassette_options = { record: :none } if ENV["CI"] - end - - example.run - - VCR.configure do |vcr_config| - vcr_config.cassette_library_dir = cassette_library_dir - vcr_config.default_cassette_options = default_cassette_options - end - end - - # Ensure we start with consistent config settings - config.before(:each) do - reset_spree_preferences do |spree_config| - # These are all settings that differ from Spree's defaults - spree_config.shipping_instructions = true - end - CurrentConfig.clear_all - end - - # Don't validate our invalid test data with expensive network requests. - config.before(:each) do - allow_any_instance_of(ValidEmail2::Address).to receive_messages( - valid_mx?: true, - valid_strict_mx?: true, - mx_server_is_in?: false - ) - end - - # Webmock raises errors that inherit directly from Exception (not StandardError). - # The messages contain useful information for debugging stubbed requests to external - # services (in tests), but they normally don't appear in the test output. - config.before(:all) do - ApplicationController.class_eval do - rescue_from WebMock::NetConnectNotAllowedError, with: :handle_webmock_error - - def handle_webmock_error(exception) - raise exception.message - end - end - end - - config.infer_spec_type_from_file_location! - - # You can use `rspec -n` to run only failed specs. - config.example_status_persistence_file_path = "tmp/rspec-status.txt" - - config.include_context "rake", type: :rake - - # Helpers - config.include FactoryBot::Syntax::Methods - config.include JsonSpec::Helpers - - config.include Rails.application.routes.url_helpers - config.include Spree::UrlHelpers - config.include Spree::MoneyHelper - config.include Spree::PaymentHelper - config.include PreferencesHelper - config.include OpenFoodNetwork::FiltersHelper - config.include OpenFoodNetwork::EnterpriseGroupsHelper - config.include OpenFoodNetwork::HtmlHelper - config.include ActiveSupport::Testing::TimeHelpers - config.include ActionView::Helpers::DateHelper - config.include OpenFoodNetwork::PerformanceHelper - config.include ActiveJob::TestHelper - config.include ReportsHelper - config.include TomSelectHelper, type: :system - - config.include ViewComponent::TestHelpers, type: :component - - config.include ControllerRequestsHelper, type: :controller - config.include Devise::Test::ControllerHelpers, type: :controller - config.include OpenFoodNetwork::ApiHelper, type: :controller - config.include OpenFoodNetwork::ControllerHelper, type: :controller - - config.include Devise::Test::IntegrationHelpers, type: :request - - config.include Features::DatepickerHelper, type: :system - config.include Features::TrixEditorHelper, type: :system - config.include DownloadsHelper, type: :system - config.include ReportsHelper, type: :system - config.include ProductsHelper, type: :system -end diff --git a/spec/components/admin_tooltip_component_spec.rb b/spec/components/admin_tooltip_component_spec.rb index 4e0039dcea..4fb7f0f8c0 100644 --- a/spec/components/admin_tooltip_component_spec.rb +++ b/spec/components/admin_tooltip_component_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe AdminTooltipComponent, type: :component do it "displays the tooltip link" do render_inline(described_class.new(text: "Tooltip description", link_text: "Hover here")) diff --git a/spec/components/distributor_title_component_spec.rb b/spec/components/distributor_title_component_spec.rb index 703a359ecf..869ca5df16 100644 --- a/spec/components/distributor_title_component_spec.rb +++ b/spec/components/distributor_title_component_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe DistributorTitleComponent, type: :component do it "displays distributor title with its name" do render_inline(described_class.new(name: "Freddy's Farm Shop")) diff --git a/spec/components/example_component_spec.rb b/spec/components/example_component_spec.rb index cdb101581c..cbed0fa6ba 100644 --- a/spec/components/example_component_spec.rb +++ b/spec/components/example_component_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe ExampleComponent, type: :component do it "displays the h1 with the given parameter" do render_inline(described_class.new(title: "Hello")) diff --git a/spec/components/modal_component_spec.rb b/spec/components/modal_component_spec.rb index e50dbd3d1f..6edb08ec39 100644 --- a/spec/components/modal_component_spec.rb +++ b/spec/components/modal_component_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe ModalComponent, type: :component do it "renders default 'data-action' and 'data-controller'" do render_inline(described_class.new(id: "test-id")) diff --git a/spec/components/vertical_ellipsis_menu_component_spec.rb b/spec/components/vertical_ellipsis_menu_component_spec.rb index 3652cfd37c..099c6ab748 100644 --- a/spec/components/vertical_ellipsis_menu_component_spec.rb +++ b/spec/components/vertical_ellipsis_menu_component_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe VerticalEllipsisMenuComponent, type: :component do it "displays the included links" do content = "Edit" diff --git a/spec/constraints/feature_toggle_constraint_spec.rb b/spec/constraints/feature_toggle_constraint_spec.rb index 6738c64480..c07084c84d 100644 --- a/spec/constraints/feature_toggle_constraint_spec.rb +++ b/spec/constraints/feature_toggle_constraint_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe FeatureToggleConstraint do subject { described_class.new("baking") } let(:request) { double(env:) } diff --git a/spec/controllers/admin/bulk_line_items_controller_spec.rb b/spec/controllers/admin/bulk_line_items_controller_spec.rb index 840df6e506..07cd699385 100644 --- a/spec/controllers/admin/bulk_line_items_controller_spec.rb +++ b/spec/controllers/admin/bulk_line_items_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::BulkLineItemsController do describe '#index' do render_views diff --git a/spec/controllers/admin/column_preferences_controller_spec.rb b/spec/controllers/admin/column_preferences_controller_spec.rb index d8d5bcc389..46997b1850 100644 --- a/spec/controllers/admin/column_preferences_controller_spec.rb +++ b/spec/controllers/admin/column_preferences_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::ColumnPreferencesController do include AuthenticationHelper diff --git a/spec/controllers/admin/customers_controller_spec.rb b/spec/controllers/admin/customers_controller_spec.rb index baac706167..2282ea5225 100644 --- a/spec/controllers/admin/customers_controller_spec.rb +++ b/spec/controllers/admin/customers_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::CustomersController do include AuthenticationHelper diff --git a/spec/controllers/admin/enterprise_fees_controller_spec.rb b/spec/controllers/admin/enterprise_fees_controller_spec.rb index 9205d808d7..b3a05e5fb1 100644 --- a/spec/controllers/admin/enterprise_fees_controller_spec.rb +++ b/spec/controllers/admin/enterprise_fees_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' - RSpec.describe Admin::EnterpriseFeesController do before do allow(controller).to receive_messages spree_current_user: super_admin diff --git a/spec/controllers/admin/enterprises_controller_spec.rb b/spec/controllers/admin/enterprises_controller_spec.rb index 3806969b49..db2d06e9e4 100644 --- a/spec/controllers/admin/enterprises_controller_spec.rb +++ b/spec/controllers/admin/enterprises_controller_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' require 'open_food_network/order_cycle_permissions' RSpec.describe Admin::EnterprisesController do diff --git a/spec/controllers/admin/inventory_items_controller_spec.rb b/spec/controllers/admin/inventory_items_controller_spec.rb index 7c5395dc16..3c864681ad 100644 --- a/spec/controllers/admin/inventory_items_controller_spec.rb +++ b/spec/controllers/admin/inventory_items_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::InventoryItemsController do describe "create" do context "json" do diff --git a/spec/controllers/admin/invoice_settings_controller_spec.rb b/spec/controllers/admin/invoice_settings_controller_spec.rb index 8ee561adb5..bf1eaa3d3e 100644 --- a/spec/controllers/admin/invoice_settings_controller_spec.rb +++ b/spec/controllers/admin/invoice_settings_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::InvoiceSettingsController do describe "#update" do let(:params) { diff --git a/spec/controllers/admin/matomo_settings_controller_spec.rb b/spec/controllers/admin/matomo_settings_controller_spec.rb index d3b5924e90..066ee61591 100644 --- a/spec/controllers/admin/matomo_settings_controller_spec.rb +++ b/spec/controllers/admin/matomo_settings_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::MatomoSettingsController do describe "#update" do let(:params) { diff --git a/spec/controllers/admin/order_cycles_controller_spec.rb b/spec/controllers/admin/order_cycles_controller_spec.rb index ff1e405510..9b7a1f5c3c 100644 --- a/spec/controllers/admin/order_cycles_controller_spec.rb +++ b/spec/controllers/admin/order_cycles_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::OrderCyclesController do let!(:distributor_owner) { create(:user) } let(:datetime_confirmation_attrs) { diff --git a/spec/controllers/admin/product_import_controller_spec.rb b/spec/controllers/admin/product_import_controller_spec.rb index 418546ce7f..2ddc90dfd8 100644 --- a/spec/controllers/admin/product_import_controller_spec.rb +++ b/spec/controllers/admin/product_import_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::ProductImportController do describe "#import" do context "when importing into inventory with inventory disabled" do diff --git a/spec/controllers/admin/proxy_orders_controller_spec.rb b/spec/controllers/admin/proxy_orders_controller_spec.rb index ddd4158266..3c4b2475b4 100644 --- a/spec/controllers/admin/proxy_orders_controller_spec.rb +++ b/spec/controllers/admin/proxy_orders_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::ProxyOrdersController do include AuthenticationHelper diff --git a/spec/controllers/admin/reports_controller_spec.rb b/spec/controllers/admin/reports_controller_spec.rb index d0b6104d8c..6fbf75f98e 100644 --- a/spec/controllers/admin/reports_controller_spec.rb +++ b/spec/controllers/admin/reports_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::ReportsController do # Given two distributors and two suppliers let(:bill_address) { create(:address) } diff --git a/spec/controllers/admin/schedules_controller_spec.rb b/spec/controllers/admin/schedules_controller_spec.rb index ee15ea1a61..f2937a4c37 100644 --- a/spec/controllers/admin/schedules_controller_spec.rb +++ b/spec/controllers/admin/schedules_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::SchedulesController do include AuthenticationHelper diff --git a/spec/controllers/admin/stripe_accounts_controller_spec.rb b/spec/controllers/admin/stripe_accounts_controller_spec.rb index 19a199b12d..53ff8dd543 100644 --- a/spec/controllers/admin/stripe_accounts_controller_spec.rb +++ b/spec/controllers/admin/stripe_accounts_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::StripeAccountsController do let(:enterprise) { create(:distributor_enterprise) } diff --git a/spec/controllers/admin/stripe_connect_settings_controller_spec.rb b/spec/controllers/admin/stripe_connect_settings_controller_spec.rb index fa6d800916..17bf7886e8 100644 --- a/spec/controllers/admin/stripe_connect_settings_controller_spec.rb +++ b/spec/controllers/admin/stripe_connect_settings_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::StripeConnectSettingsController do let(:user) { create(:user) } let(:admin) { create(:admin_user) } diff --git a/spec/controllers/admin/subscription_line_items_controller_spec.rb b/spec/controllers/admin/subscription_line_items_controller_spec.rb index 62cc8ee25f..1baa6b5b0b 100644 --- a/spec/controllers/admin/subscription_line_items_controller_spec.rb +++ b/spec/controllers/admin/subscription_line_items_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::SubscriptionLineItemsController do include AuthenticationHelper diff --git a/spec/controllers/admin/subscriptions_controller_spec.rb b/spec/controllers/admin/subscriptions_controller_spec.rb index 6ead659d75..7c655b3f1a 100644 --- a/spec/controllers/admin/subscriptions_controller_spec.rb +++ b/spec/controllers/admin/subscriptions_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::SubscriptionsController do include AuthenticationHelper diff --git a/spec/controllers/admin/tag_rules_controller_spec.rb b/spec/controllers/admin/tag_rules_controller_spec.rb index f1dccc2c4e..c84b06b76c 100644 --- a/spec/controllers/admin/tag_rules_controller_spec.rb +++ b/spec/controllers/admin/tag_rules_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::TagRulesController do let(:format) { :turbo_stream } diff --git a/spec/controllers/admin/terms_of_service_files_controller_spec.rb b/spec/controllers/admin/terms_of_service_files_controller_spec.rb index 0a2e4e8099..e3e0abeee8 100644 --- a/spec/controllers/admin/terms_of_service_files_controller_spec.rb +++ b/spec/controllers/admin/terms_of_service_files_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::TermsOfServiceFilesController do context "a non-admin user" do let(:user) { create(:user) } diff --git a/spec/controllers/admin/variant_overrides_controller_spec.rb b/spec/controllers/admin/variant_overrides_controller_spec.rb index 98d1ed57e0..317839a829 100644 --- a/spec/controllers/admin/variant_overrides_controller_spec.rb +++ b/spec/controllers/admin/variant_overrides_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::VariantOverridesController do describe "index" do context "not logged in" do diff --git a/spec/controllers/api/v0/base_controller_spec.rb b/spec/controllers/api/v0/base_controller_spec.rb index fb67eeb11f..def810e761 100644 --- a/spec/controllers/api/v0/base_controller_spec.rb +++ b/spec/controllers/api/v0/base_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::V0::BaseController do render_views controller(Api::V0::BaseController) do diff --git a/spec/controllers/api/v0/customers_controller_spec.rb b/spec/controllers/api/v0/customers_controller_spec.rb index 30febcbce2..9e3f50bab1 100644 --- a/spec/controllers/api/v0/customers_controller_spec.rb +++ b/spec/controllers/api/v0/customers_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Api RSpec.describe V0::CustomersController do include AuthenticationHelper diff --git a/spec/controllers/api/v0/enterprise_fees_controller_spec.rb b/spec/controllers/api/v0/enterprise_fees_controller_spec.rb index bca69dd91f..9e95c1082a 100644 --- a/spec/controllers/api/v0/enterprise_fees_controller_spec.rb +++ b/spec/controllers/api/v0/enterprise_fees_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Api RSpec.describe V0::EnterpriseFeesController do include AuthenticationHelper diff --git a/spec/controllers/api/v0/enterprises_controller_spec.rb b/spec/controllers/api/v0/enterprises_controller_spec.rb index 397f7e1953..ae66d85263 100644 --- a/spec/controllers/api/v0/enterprises_controller_spec.rb +++ b/spec/controllers/api/v0/enterprises_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::V0::EnterprisesController do render_views diff --git a/spec/controllers/api/v0/exchange_products_controller_spec.rb b/spec/controllers/api/v0/exchange_products_controller_spec.rb index 03f6176e25..059a85f96a 100644 --- a/spec/controllers/api/v0/exchange_products_controller_spec.rb +++ b/spec/controllers/api/v0/exchange_products_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Api RSpec.describe V0::ExchangeProductsController do include AuthenticationHelper diff --git a/spec/controllers/api/v0/logos_controller_spec.rb b/spec/controllers/api/v0/logos_controller_spec.rb index 80148f1490..4efdafc118 100644 --- a/spec/controllers/api/v0/logos_controller_spec.rb +++ b/spec/controllers/api/v0/logos_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - module Api RSpec.describe V0::LogosController do include AuthenticationHelper diff --git a/spec/controllers/api/v0/order_cycles_controller_spec.rb b/spec/controllers/api/v0/order_cycles_controller_spec.rb index 9d14edcab7..50d8daca0e 100644 --- a/spec/controllers/api/v0/order_cycles_controller_spec.rb +++ b/spec/controllers/api/v0/order_cycles_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Api::V0::OrderCyclesController do let!(:distributor) { create(:distributor_enterprise) } let!(:order_cycle) { create(:simple_order_cycle, distributors: [distributor]) } diff --git a/spec/controllers/api/v0/orders_controller_spec.rb b/spec/controllers/api/v0/orders_controller_spec.rb index 159ff4bebb..a658cbbba3 100644 --- a/spec/controllers/api/v0/orders_controller_spec.rb +++ b/spec/controllers/api/v0/orders_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::V0::OrdersController do include AuthenticationHelper diff --git a/spec/controllers/api/v0/product_images_controller_spec.rb b/spec/controllers/api/v0/product_images_controller_spec.rb index 5fe0e4bb24..4419aace35 100644 --- a/spec/controllers/api/v0/product_images_controller_spec.rb +++ b/spec/controllers/api/v0/product_images_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::V0::ProductImagesController do include AuthenticationHelper include FileHelper @@ -45,7 +43,8 @@ RSpec.describe Api::V0::ProductImagesController do expect(response).to have_http_status :unprocessable_entity expect(product_without_image.image).to be_nil expect(json_response["id"]).to eq nil - expect(json_response["errors"]).to include "Attachment has an invalid content type" + expect(json_response["errors"]).to include "Attachment is " \ + "not identified as a valid media file" end end end diff --git a/spec/controllers/api/v0/products_controller_spec.rb b/spec/controllers/api/v0/products_controller_spec.rb index 8150cf9332..ba01fb1365 100644 --- a/spec/controllers/api/v0/products_controller_spec.rb +++ b/spec/controllers/api/v0/products_controller_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'spree/core/product_duplicator' RSpec.describe Api::V0::ProductsController do diff --git a/spec/controllers/api/v0/promo_images_controller_spec.rb b/spec/controllers/api/v0/promo_images_controller_spec.rb index 05e517ff93..58e2d620db 100644 --- a/spec/controllers/api/v0/promo_images_controller_spec.rb +++ b/spec/controllers/api/v0/promo_images_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - module Api RSpec.describe V0::PromoImagesController do include AuthenticationHelper diff --git a/spec/controllers/api/v0/reports/packing_report_spec.rb b/spec/controllers/api/v0/reports/packing_report_spec.rb index dc69ddc647..57ebbe0821 100644 --- a/spec/controllers/api/v0/reports/packing_report_spec.rb +++ b/spec/controllers/api/v0/reports/packing_report_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Api::V0::ReportsController do let(:params) { { diff --git a/spec/controllers/api/v0/reports_controller_spec.rb b/spec/controllers/api/v0/reports_controller_spec.rb index 612db3036a..6295b1728e 100644 --- a/spec/controllers/api/v0/reports_controller_spec.rb +++ b/spec/controllers/api/v0/reports_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Api::V0::ReportsController do let(:enterprise_user) { create(:user, enterprises: [create(:enterprise)]) } let(:params) { diff --git a/spec/controllers/api/v0/shipments_controller_spec.rb b/spec/controllers/api/v0/shipments_controller_spec.rb index 87d2d50003..1878014bc0 100644 --- a/spec/controllers/api/v0/shipments_controller_spec.rb +++ b/spec/controllers/api/v0/shipments_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::V0::ShipmentsController do render_views diff --git a/spec/controllers/api/v0/shops_controller_spec.rb b/spec/controllers/api/v0/shops_controller_spec.rb index 876562c533..3161499763 100644 --- a/spec/controllers/api/v0/shops_controller_spec.rb +++ b/spec/controllers/api/v0/shops_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::V0::ShopsController do include AuthenticationHelper diff --git a/spec/controllers/api/v0/states_controller_spec.rb b/spec/controllers/api/v0/states_controller_spec.rb index fd795ccdb3..dfdb8f6f9e 100644 --- a/spec/controllers/api/v0/states_controller_spec.rb +++ b/spec/controllers/api/v0/states_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Api RSpec.describe V0::StatesController do render_views diff --git a/spec/controllers/api/v0/statuses_controller_spec.rb b/spec/controllers/api/v0/statuses_controller_spec.rb index d27a7aa69a..4e86d23ba4 100644 --- a/spec/controllers/api/v0/statuses_controller_spec.rb +++ b/spec/controllers/api/v0/statuses_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Api RSpec.describe V0::StatusesController do render_views diff --git a/spec/controllers/api/v0/taxons_controller_spec.rb b/spec/controllers/api/v0/taxons_controller_spec.rb index 7724153d36..aab26a7ca3 100644 --- a/spec/controllers/api/v0/taxons_controller_spec.rb +++ b/spec/controllers/api/v0/taxons_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::V0::TaxonsController do render_views diff --git a/spec/controllers/api/v0/terms_and_conditions_controller_spec.rb b/spec/controllers/api/v0/terms_and_conditions_controller_spec.rb index 7a24529c39..aa21193afc 100644 --- a/spec/controllers/api/v0/terms_and_conditions_controller_spec.rb +++ b/spec/controllers/api/v0/terms_and_conditions_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - module Api RSpec.describe V0::TermsAndConditionsController do include AuthenticationHelper diff --git a/spec/controllers/api/v0/variants_controller_spec.rb b/spec/controllers/api/v0/variants_controller_spec.rb index df3456eecb..50e1119885 100644 --- a/spec/controllers/api/v0/variants_controller_spec.rb +++ b/spec/controllers/api/v0/variants_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::V0::VariantsController do render_views diff --git a/spec/controllers/base_controller_spec.rb b/spec/controllers/base_controller_spec.rb index e5f07ec8b6..e87d639bd7 100644 --- a/spec/controllers/base_controller_spec.rb +++ b/spec/controllers/base_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe BaseController do let(:oc) { instance_double(OrderCycle, id: 1) } let(:order) { instance_double(Spree::Order) } diff --git a/spec/controllers/cart_controller_spec.rb b/spec/controllers/cart_controller_spec.rb index 8edd6cce3e..f89b00f4eb 100644 --- a/spec/controllers/cart_controller_spec.rb +++ b/spec/controllers/cart_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe CartController do let(:order) { create(:order) } diff --git a/spec/controllers/checkout_controller_spec.rb b/spec/controllers/checkout_controller_spec.rb index 33f518770a..345672015c 100644 --- a/spec/controllers/checkout_controller_spec.rb +++ b/spec/controllers/checkout_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe CheckoutController do let(:user) { order.user } let(:address) { create(:address) } diff --git a/spec/controllers/concerns/address_transformation_spec.rb b/spec/controllers/concerns/address_transformation_spec.rb index 2f9f1d725e..c809eb876f 100644 --- a/spec/controllers/concerns/address_transformation_spec.rb +++ b/spec/controllers/concerns/address_transformation_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe AddressTransformation do include AddressTransformation diff --git a/spec/controllers/concerns/extra_fields_spec.rb b/spec/controllers/concerns/extra_fields_spec.rb index e6cd121086..724ef6be49 100644 --- a/spec/controllers/concerns/extra_fields_spec.rb +++ b/spec/controllers/concerns/extra_fields_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ExtraFields do let(:dummy_controller) { Api::V1::BaseController.new.extend ExtraFields } diff --git a/spec/controllers/concerns/raising_parameters_spec.rb b/spec/controllers/concerns/raising_parameters_spec.rb index 1a7badf85d..da787dc023 100644 --- a/spec/controllers/concerns/raising_parameters_spec.rb +++ b/spec/controllers/concerns/raising_parameters_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe RaisingParameters do describe "Parameters" do let(:params) do diff --git a/spec/controllers/enterprises_controller_spec.rb b/spec/controllers/enterprises_controller_spec.rb index c209307cfb..dfe87211da 100644 --- a/spec/controllers/enterprises_controller_spec.rb +++ b/spec/controllers/enterprises_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe EnterprisesController do describe "shopping for a distributor" do let(:user) { create(:user) } diff --git a/spec/controllers/groups_controller_spec.rb b/spec/controllers/groups_controller_spec.rb index 1ad96df7e8..b8329c76be 100644 --- a/spec/controllers/groups_controller_spec.rb +++ b/spec/controllers/groups_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe GroupsController do render_views diff --git a/spec/controllers/line_items_controller_spec.rb b/spec/controllers/line_items_controller_spec.rb index 13b0b5cda6..d8de8b7424 100644 --- a/spec/controllers/line_items_controller_spec.rb +++ b/spec/controllers/line_items_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe LineItemsController do let(:user) { create(:user) } let(:distributor) { create(:distributor_enterprise) } diff --git a/spec/controllers/payment_gateways/paypal_controller_spec.rb b/spec/controllers/payment_gateways/paypal_controller_spec.rb index 6df8b2f78d..0193f60bf0 100644 --- a/spec/controllers/payment_gateways/paypal_controller_spec.rb +++ b/spec/controllers/payment_gateways/paypal_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe PaymentGateways::PaypalController do context '#cancel' do it 'redirects back to checkout' do diff --git a/spec/controllers/payment_gateways/stripe_controller_spec.rb b/spec/controllers/payment_gateways/stripe_controller_spec.rb index 22a80d1c2e..566d608ce8 100644 --- a/spec/controllers/payment_gateways/stripe_controller_spec.rb +++ b/spec/controllers/payment_gateways/stripe_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe PaymentGateways::StripeController do include StripeStubs diff --git a/spec/controllers/registration_controller_spec.rb b/spec/controllers/registration_controller_spec.rb index c89c43eb8f..012a8b7788 100644 --- a/spec/controllers/registration_controller_spec.rb +++ b/spec/controllers/registration_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe RegistrationController do describe "redirecting when user not logged in" do it "index" do diff --git a/spec/controllers/shop_controller_spec.rb b/spec/controllers/shop_controller_spec.rb index 437a737ee0..edddf86ae7 100644 --- a/spec/controllers/shop_controller_spec.rb +++ b/spec/controllers/shop_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ShopController do let!(:pm) { create(:payment_method) } let!(:sm) { create(:shipping_method) } diff --git a/spec/controllers/shops_controller_spec.rb b/spec/controllers/shops_controller_spec.rb index b89fb67e90..fb4d93e6de 100644 --- a/spec/controllers/shops_controller_spec.rb +++ b/spec/controllers/shops_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ShopsController do include WebHelper diff --git a/spec/controllers/spree/admin/adjustments_controller_spec.rb b/spec/controllers/spree/admin/adjustments_controller_spec.rb index 7806ba3c05..63abbd644d 100644 --- a/spec/controllers/spree/admin/adjustments_controller_spec.rb +++ b/spec/controllers/spree/admin/adjustments_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Admin::AdjustmentsController do include AuthenticationHelper diff --git a/spec/controllers/spree/admin/base_controller_spec.rb b/spec/controllers/spree/admin/base_controller_spec.rb index 2361da8565..2e3dcc3498 100644 --- a/spec/controllers/spree/admin/base_controller_spec.rb +++ b/spec/controllers/spree/admin/base_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Admin::BaseController do controller(Spree::Admin::BaseController) do def index diff --git a/spec/controllers/spree/admin/countries_controller_spec.rb b/spec/controllers/spree/admin/countries_controller_spec.rb index 7367e8d278..4dbe9024d8 100644 --- a/spec/controllers/spree/admin/countries_controller_spec.rb +++ b/spec/controllers/spree/admin/countries_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Spree module Admin RSpec.describe CountriesController do diff --git a/spec/controllers/spree/admin/general_settings_controller_spec.rb b/spec/controllers/spree/admin/general_settings_controller_spec.rb index a0b592a0a8..5a2b74ca62 100644 --- a/spec/controllers/spree/admin/general_settings_controller_spec.rb +++ b/spec/controllers/spree/admin/general_settings_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Admin::GeneralSettingsController do include AuthenticationHelper diff --git a/spec/controllers/spree/admin/mail_methods_controller_spec.rb b/spec/controllers/spree/admin/mail_methods_controller_spec.rb index 8bac431162..bbbc67af26 100644 --- a/spec/controllers/spree/admin/mail_methods_controller_spec.rb +++ b/spec/controllers/spree/admin/mail_methods_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Admin::MailMethodsController do include AuthenticationHelper diff --git a/spec/controllers/spree/admin/orders/customer_details_controller_spec.rb b/spec/controllers/spree/admin/orders/customer_details_controller_spec.rb index e26a66c081..31f268ce32 100644 --- a/spec/controllers/spree/admin/orders/customer_details_controller_spec.rb +++ b/spec/controllers/spree/admin/orders/customer_details_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Admin::Orders::CustomerDetailsController do include AuthenticationHelper diff --git a/spec/controllers/spree/admin/orders/invoices_spec.rb b/spec/controllers/spree/admin/orders/invoices_spec.rb index 1906e3a309..8a52fa415b 100644 --- a/spec/controllers/spree/admin/orders/invoices_spec.rb +++ b/spec/controllers/spree/admin/orders/invoices_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Admin::OrdersController do describe "#invoice" do let!(:user) { create(:user) } diff --git a/spec/controllers/spree/admin/orders/payments/payments_controller_refunds_spec.rb b/spec/controllers/spree/admin/orders/payments/payments_controller_refunds_spec.rb index 2ab5e6a94c..dcc539b381 100644 --- a/spec/controllers/spree/admin/orders/payments/payments_controller_refunds_spec.rb +++ b/spec/controllers/spree/admin/orders/payments/payments_controller_refunds_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Admin::PaymentsController do include StripeHelper include StripeStubs diff --git a/spec/controllers/spree/admin/orders/payments/payments_controller_spec.rb b/spec/controllers/spree/admin/orders/payments/payments_controller_spec.rb index 44a4258d4b..5120d9713e 100644 --- a/spec/controllers/spree/admin/orders/payments/payments_controller_spec.rb +++ b/spec/controllers/spree/admin/orders/payments/payments_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Admin::PaymentsController do let!(:shop) { create(:enterprise) } let!(:user) { shop.owner } diff --git a/spec/controllers/spree/admin/orders_controller_spec.rb b/spec/controllers/spree/admin/orders_controller_spec.rb index 3b9db3a69a..20ce253c42 100644 --- a/spec/controllers/spree/admin/orders_controller_spec.rb +++ b/spec/controllers/spree/admin/orders_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Admin::OrdersController do describe "#edit" do let!(:order) { create(:order_with_totals_and_distribution, ship_address: create(:address)) } diff --git a/spec/controllers/spree/admin/overview_controller_spec.rb b/spec/controllers/spree/admin/overview_controller_spec.rb index df4429c109..414cd10cfb 100644 --- a/spec/controllers/spree/admin/overview_controller_spec.rb +++ b/spec/controllers/spree/admin/overview_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Admin::OverviewController do describe "#index" do before do diff --git a/spec/controllers/spree/admin/payment_methods_controller_spec.rb b/spec/controllers/spree/admin/payment_methods_controller_spec.rb index 7827705283..8937bff352 100644 --- a/spec/controllers/spree/admin/payment_methods_controller_spec.rb +++ b/spec/controllers/spree/admin/payment_methods_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - class GatewayWithPassword < Spree::PaymentMethod preference :password, :string, default: "password" end @@ -21,6 +19,7 @@ RSpec.describe Spree::Admin::PaymentMethodsController do expect(providers).to eq %w[ Spree::Gateway::PayPalExpress Spree::PaymentMethod::Check + Spree::PaymentMethod::Taler ] end @@ -296,17 +295,6 @@ RSpec.describe Spree::Admin::PaymentMethodsController do expect(assigns(:payment_method)).to be_a_new Spree::Gateway::PayPalExpress expect(response).to render_template partial: '_provider_settings' end - - context "with a non valid payment method" do - it "renders provider settings with a new generic payment method" do - spree_get :show_provider_preferences, - pm_id: "", - provider_type: "Spree::Gateway::Hacked" - - expect(assigns(:payment_method)).to be_a_new Spree::PaymentMethod - expect(response).to render_template partial: '_provider_settings' - end - end end end end diff --git a/spec/controllers/spree/admin/products_controller_spec.rb b/spec/controllers/spree/admin/products_controller_spec.rb index f57392aa81..8cb256e99e 100644 --- a/spec/controllers/spree/admin/products_controller_spec.rb +++ b/spec/controllers/spree/admin/products_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' - RSpec.describe Spree::Admin::ProductsController do context "creating a new product" do let(:supplier) { create(:supplier_enterprise) } diff --git a/spec/controllers/spree/admin/return_authorizations_controller_spec.rb b/spec/controllers/spree/admin/return_authorizations_controller_spec.rb index cbc69ec18b..5f1502687b 100644 --- a/spec/controllers/spree/admin/return_authorizations_controller_spec.rb +++ b/spec/controllers/spree/admin/return_authorizations_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Spree module Admin RSpec.describe ReturnAuthorizationsController do diff --git a/spec/controllers/spree/admin/search_controller_spec.rb b/spec/controllers/spree/admin/search_controller_spec.rb index 18fff364af..dadc5aab92 100644 --- a/spec/controllers/spree/admin/search_controller_spec.rb +++ b/spec/controllers/spree/admin/search_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' - RSpec.describe Spree::Admin::SearchController do context "Distributor Enterprise User" do let!(:owner) { create(:user, email: "test1@email.com" ) } diff --git a/spec/controllers/spree/admin/shipping_categories_controller_spec.rb b/spec/controllers/spree/admin/shipping_categories_controller_spec.rb index ca956713a1..97580236ba 100644 --- a/spec/controllers/spree/admin/shipping_categories_controller_spec.rb +++ b/spec/controllers/spree/admin/shipping_categories_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Spree module Admin RSpec.describe ShippingCategoriesController do diff --git a/spec/controllers/spree/admin/shipping_methods_controller_spec.rb b/spec/controllers/spree/admin/shipping_methods_controller_spec.rb index 422352542b..cb98a80c2b 100644 --- a/spec/controllers/spree/admin/shipping_methods_controller_spec.rb +++ b/spec/controllers/spree/admin/shipping_methods_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Admin::ShippingMethodsController do include AuthenticationHelper diff --git a/spec/controllers/spree/admin/tax_rates_controller_spec.rb b/spec/controllers/spree/admin/tax_rates_controller_spec.rb index 5a4fb2c6e2..bcd57f2ce4 100644 --- a/spec/controllers/spree/admin/tax_rates_controller_spec.rb +++ b/spec/controllers/spree/admin/tax_rates_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Spree module Admin RSpec.describe TaxRatesController do diff --git a/spec/controllers/spree/admin/tax_settings_controller_spec.rb b/spec/controllers/spree/admin/tax_settings_controller_spec.rb index af804d4ba4..f3a6b49b66 100644 --- a/spec/controllers/spree/admin/tax_settings_controller_spec.rb +++ b/spec/controllers/spree/admin/tax_settings_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Admin::TaxSettingsController do describe "#update" do let(:params) { { preferences: { products_require_tax_category: "1" } } } diff --git a/spec/controllers/spree/admin/taxons_controller_spec.rb b/spec/controllers/spree/admin/taxons_controller_spec.rb index 4afa43166b..692e3c0d87 100644 --- a/spec/controllers/spree/admin/taxons_controller_spec.rb +++ b/spec/controllers/spree/admin/taxons_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Admin::TaxonsController do render_views diff --git a/spec/controllers/spree/admin/users_controller_spec.rb b/spec/controllers/spree/admin/users_controller_spec.rb index f040604cb6..bc1435b26a 100644 --- a/spec/controllers/spree/admin/users_controller_spec.rb +++ b/spec/controllers/spree/admin/users_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Admin::UsersController do describe '#authorize_admin' do let(:user) { create(:user) } diff --git a/spec/controllers/spree/admin/variants_controller_spec.rb b/spec/controllers/spree/admin/variants_controller_spec.rb index 6257ff8af5..c2aa219f46 100644 --- a/spec/controllers/spree/admin/variants_controller_spec.rb +++ b/spec/controllers/spree/admin/variants_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Admin::VariantsController do context "log in as admin user" do before { controller_login_as_admin } diff --git a/spec/controllers/spree/api_keys_controller_spec.rb b/spec/controllers/spree/api_keys_controller_spec.rb index 87522e8546..9c69521088 100644 --- a/spec/controllers/spree/api_keys_controller_spec.rb +++ b/spec/controllers/spree/api_keys_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::ApiKeysController, performance: true do routes { Spree::Core::Engine.routes } diff --git a/spec/controllers/spree/credit_cards_controller_spec.rb b/spec/controllers/spree/credit_cards_controller_spec.rb index ee6aff9dda..6429ff6963 100644 --- a/spec/controllers/spree/credit_cards_controller_spec.rb +++ b/spec/controllers/spree/credit_cards_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::CreditCardsController do describe "using VCR", :vcr, :stripe_version do let(:user) { create(:user) } diff --git a/spec/controllers/spree/orders_controller_spec.rb b/spec/controllers/spree/orders_controller_spec.rb index 8c5f1c82f3..630a73eade 100644 --- a/spec/controllers/spree/orders_controller_spec.rb +++ b/spec/controllers/spree/orders_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::OrdersController do include CheckoutHelper include StripeStubs diff --git a/spec/controllers/spree/user_sessions_controller_spec.rb b/spec/controllers/spree/user_sessions_controller_spec.rb index cea3cc23e6..fc30f98314 100644 --- a/spec/controllers/spree/user_sessions_controller_spec.rb +++ b/spec/controllers/spree/user_sessions_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' - RSpec.describe Spree::UserSessionsController do let(:user) { create(:user) } @@ -15,8 +13,8 @@ RSpec.describe Spree::UserSessionsController do it "redirects to root" do spree_post :create, spree_user: { email: user.email, password: user.password } - expect(response).to have_http_status(:ok) - expect(response.body).to match(root_path).and match("redirect") + expect(response).to have_http_status(:found) + expect(response.location).to eq root_url end end @@ -26,8 +24,8 @@ RSpec.describe Spree::UserSessionsController do it "redirects to checkout" do spree_post :create, spree_user: { email: user.email, password: user.password } - expect(response).to have_http_status(:ok) - expect(response.body).to match(checkout_path).and match("redirect") + expect(response).to have_http_status(:found) + expect(response.location).to eq checkout_url end end end @@ -36,9 +34,10 @@ RSpec.describe Spree::UserSessionsController do render_views it "returns an error" do - spree_post :create, spree_user: { email: user.email, password: "wrong" } + spree_post :create, spree_user: { email: user.email, password: "wrong" }, + format: :turbo_stream - expect(response).to have_http_status(:unauthorized) + expect(response).to have_http_status(:unprocessable_entity) expect(response.body).to include "Invalid email or password" end end diff --git a/spec/controllers/spree/users_controller_spec.rb b/spec/controllers/spree/users_controller_spec.rb index 2ff2d2aa42..afd39a0a7b 100644 --- a/spec/controllers/spree/users_controller_spec.rb +++ b/spec/controllers/spree/users_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::UsersController do routes { Spree::Core::Engine.routes } @@ -55,22 +53,6 @@ RSpec.describe Spree::UsersController do end end - describe "#registered_email" do - routes { Openfoodnetwork::Application.routes } - - let!(:user) { create(:user) } - - it "returns ok (200) if email corresponds to a registered user" do - post :registered_email, params: { email: user.email } - expect(response).to have_http_status(:ok) - end - - it "returns not_found (404) if email does not correspond to a registered user" do - post :registered_email, params: { email: 'nonregistereduser@example.com' } - expect(response).to have_http_status(:not_found) - end - end - describe '#load_object' do it 'redirects to signup path if user is not found' do allow(controller).to receive_messages(spree_current_user: nil) diff --git a/spec/controllers/stripe/callbacks_controller_spec.rb b/spec/controllers/stripe/callbacks_controller_spec.rb index 4dc122a1a3..50b2c06a17 100644 --- a/spec/controllers/stripe/callbacks_controller_spec.rb +++ b/spec/controllers/stripe/callbacks_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Stripe::CallbacksController do let(:enterprise) { create(:distributor_enterprise) } diff --git a/spec/controllers/stripe/webhooks_controller_spec.rb b/spec/controllers/stripe/webhooks_controller_spec.rb index ad289cb7a9..bf5d587fdd 100644 --- a/spec/controllers/stripe/webhooks_controller_spec.rb +++ b/spec/controllers/stripe/webhooks_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Stripe::WebhooksController do describe "#create" do let(:params) do diff --git a/spec/controllers/user_confirmations_controller_spec.rb b/spec/controllers/user_confirmations_controller_spec.rb index c19768c8ee..cea28a374e 100644 --- a/spec/controllers/user_confirmations_controller_spec.rb +++ b/spec/controllers/user_confirmations_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe UserConfirmationsController do let!(:user) { create(:user) } let!(:confirmed_user) { create(:user, confirmed_at: nil) } diff --git a/spec/controllers/user_passwords_controller_spec.rb b/spec/controllers/user_passwords_controller_spec.rb index d873c7df96..eb1ce6e8af 100644 --- a/spec/controllers/user_passwords_controller_spec.rb +++ b/spec/controllers/user_passwords_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe UserPasswordsController do render_views @@ -14,20 +12,20 @@ RSpec.describe UserPasswordsController do describe "create" do it "returns 404 if user is not found" do - spree_post :create, spree_user: { email: "xxxxxxxxxx@example.com" } + spree_post :create, spree_user: { email: "xxxxxxxxxx@example.com" }, format: :turbo_stream expect(response).to have_http_status :not_found expect(response.body).to match 'Email address not found' end it "returns 422 if user is registered but not confirmed" do - spree_post :create, spree_user: { email: unconfirmed_user.email } + spree_post :create, spree_user: { email: unconfirmed_user.email }, format: :turbo_stream expect(response).to have_http_status :unprocessable_entity expect(response.body).to match "You must confirm your email \ address before you can reset your password." end it "returns 200 when password reset was successful" do - spree_post :create, spree_user: { email: user.email } + spree_post :create, spree_user: { email: user.email }, format: :turbo_stream expect(response).to have_http_status :ok expect(response.body).to match "An email with instructions on resetting \ your password has been sent!" diff --git a/spec/controllers/user_registrations_controller_spec.rb b/spec/controllers/user_registrations_controller_spec.rb index 559cec3569..3a3b864976 100644 --- a/spec/controllers/user_registrations_controller_spec.rb +++ b/spec/controllers/user_registrations_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe UserRegistrationsController do before do @request.env["devise.mapping"] = Devise.mappings[:spree_user] diff --git a/spec/controllers/webhook_endpoints_controller_spec.rb b/spec/controllers/webhook_endpoints_controller_spec.rb index 4eb2e50f1a..186879d480 100644 --- a/spec/controllers/webhook_endpoints_controller_spec.rb +++ b/spec/controllers/webhook_endpoints_controller_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' require 'open_food_network/order_cycle_permissions' RSpec.describe WebhookEndpointsController do @@ -11,14 +10,16 @@ RSpec.describe WebhookEndpointsController do describe "#create" do it "creates a webhook_endpoint" do expect { - spree_post :create, { url: "https://url" } + spree_post :create, { url: "https://url", webhook_type: "order_cycle_opened" } }.to change { user.webhook_endpoints.count }.by(1) expect(flash[:success]).to be_present expect(flash[:error]).to be_blank - expect(user.webhook_endpoints.first.url).to eq "https://url" + webhook = user.webhook_endpoints.first + expect(webhook.url).to eq "https://url" + expect(webhook.webhook_type).to eq "order_cycle_opened" end it "shows error if parameters not specified" do @@ -33,17 +34,20 @@ RSpec.describe WebhookEndpointsController do end it "redirects back to referrer" do - spree_post :create, { url: "https://url" } + spree_post :create, { url: "https://url", webhook_type: "order_cycle_opened" } expect(response).to redirect_to "/account#/developer_settings" end end describe "#destroy" do - let!(:webhook_endpoint) { user.webhook_endpoints.create(url: "https://url") } + let!(:webhook_endpoint) { + user.webhook_endpoints.create(url: "https://url", webhook_type: "order_cycle_opened") + } it "destroys a webhook_endpoint" do - webhook_endpoint2 = user.webhook_endpoints.create!(url: "https://url2") + webhook_endpoint2 = user.webhook_endpoints.create!(url: "https://url2", + webhook_type: "order_cycle_opened") expect { spree_delete :destroy, { id: webhook_endpoint.id } @@ -64,4 +68,22 @@ RSpec.describe WebhookEndpointsController do expect(response).to redirect_to "/account#/developer_settings" end end + + describe "#test" do + let(:webhook_endpoint) { + user.webhook_endpoints.create(url: "https://url", webhook_type: "payment_status_changed" ) + } + + subject { spree_post :test, id: webhook_endpoint.id, format: :turbo_stream } + + it "enqueus a webhook job" do + expect { subject }.to enqueue_job(WebhookDeliveryJob).exactly(1).times + end + + it "shows a success mesage" do + subject + + expect(flash[:success]).to eq "Some test data will be sent to the webhook url" + end + end end diff --git a/spec/factories/line_item_factory.rb b/spec/factories/line_item_factory.rb index f575fb0d3b..284c7440d8 100644 --- a/spec/factories/line_item_factory.rb +++ b/spec/factories/line_item_factory.rb @@ -6,6 +6,7 @@ FactoryBot.define do price { BigDecimal('10.00') } order variant + product_name { variant.product.name } end factory :line_item_with_shipment, parent: :line_item do diff --git a/spec/factories/order_factory.rb b/spec/factories/order_factory.rb index 28abe6dd09..3a29d99833 100644 --- a/spec/factories/order_factory.rb +++ b/spec/factories/order_factory.rb @@ -141,15 +141,15 @@ FactoryBot.define do factory :order_with_totals_and_distribution, parent: :order_with_distributor do transient do shipping_fee { 3 } + variant { create(:simple_product).variants.first } end order_cycle { create(:simple_order_cycle) } after(:create) do |order, proxy| - product = create(:simple_product) create(:line_item_with_shipment, shipping_fee: proxy.shipping_fee, order:, - product:) + variant: proxy.variant) order.reload end @@ -238,6 +238,8 @@ FactoryBot.define do factory :completed_order_with_fees, parent: :order_with_distributor do transient do payment_fee { 5 } + payment_calculator { build(:calculator_per_item, preferred_amount: payment_fee) } + payment_method { build(:payment_method, calculator: payment_calculator) } shipping_fee { 3 } shipping_tax_category { nil } end @@ -250,11 +252,9 @@ FactoryBot.define do product = create(:simple_product) create(:line_item, order:, product:) - payment_calculator = build(:calculator_per_item, preferred_amount: evaluator.payment_fee) - payment_method = create(:payment_method, calculator: payment_calculator) create(:payment, order:, amount: order.total, - payment_method:, + payment_method: evaluator.payment_method, state: 'checkout') create(:shipping_method_with, :shipping_fee, shipping_fee: evaluator.shipping_fee, diff --git a/spec/fixtures/files/logo.bmp b/spec/fixtures/files/logo.bmp new file mode 100644 index 0000000000..f03e68b138 Binary files /dev/null and b/spec/fixtures/files/logo.bmp differ diff --git a/spec/fixtures/vcr_cassettes/Spree_PaymentMethod_Taler/_external_payment_url/creates_an_order_reference_and_retrieves_a_URL_to_pay_at.yml b/spec/fixtures/vcr_cassettes/Spree_PaymentMethod_Taler/_external_payment_url/creates_an_order_reference_and_retrieves_a_URL_to_pay_at.yml new file mode 100644 index 0000000000..5c658e01f3 --- /dev/null +++ b/spec/fixtures/vcr_cassettes/Spree_PaymentMethod_Taler/_external_payment_url/creates_an_order_reference_and_retrieves_a_URL_to_pay_at.yml @@ -0,0 +1,106 @@ +--- +http_interactions: +- request: + method: post + uri: https://backend.demo.taler.net/instances/sandbox/private/orders + body: + encoding: UTF-8 + string: '{"order":{"amount":"KUDOS:10.0","summary":"Open Food Network order","fulfillment_url":"http://test.host/payment_gateways/taler/61"},"create_token":false}' + headers: + Authorization: + - "" + Accept: + - application/json + User-Agent: + - Taler Ruby + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx/1.26.3 + Date: + - Thu, 22 Jan 2026 04:43:32 GMT + Content-Type: + - application/json + Content-Length: + - '42' + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - "*" + Cache-Control: + - no-store + Via: + - 1.1 Caddy + Strict-Transport-Security: + - max-age=63072000; includeSubDomains; preload + body: + encoding: UTF-8 + string: |- + { + "order_id": "2026.022-0284X4GE8WKMJ" + } + recorded_at: Thu, 22 Jan 2026 04:43:33 GMT +- request: + method: get + uri: https://backend.demo.taler.net/instances/sandbox/private/orders/2026.022-0284X4GE8WKMJ + body: + encoding: US-ASCII + string: '' + headers: + Authorization: + - "" + Accept: + - application/json + User-Agent: + - Taler Ruby + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx/1.26.3 + Date: + - Thu, 22 Jan 2026 04:43:34 GMT + Content-Type: + - application/json + Content-Length: + - '351' + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - "*" + Cache-Control: + - no-store + Via: + - 1.1 Caddy + Strict-Transport-Security: + - max-age=63072000; includeSubDomains; preload + body: + encoding: ASCII-8BIT + string: |- + { + "taler_pay_uri": "taler://pay/backend.demo.taler.net/instances/sandbox/2026.022-0284X4GE8WKMJ/", + "order_status_url": "https://backend.demo.taler.net/instances/sandbox/orders/2026.022-0284X4GE8WKMJ", + "order_status": "unpaid", + "total_amount": "KUDOS:10", + "summary": "Open Food Network order", + "creation_time": { + "t_s": 1769057012 + } + } + recorded_at: Thu, 22 Jan 2026 04:43:34 GMT +recorded_with: VCR 6.3.1 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_don_t_manage_the_enterprise_linked_to_the_stripe_account/redirects_to_unauthorized.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_don_t_manage_the_enterprise_linked_to_the_stripe_account/redirects_to_unauthorized.yml similarity index 87% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_don_t_manage_the_enterprise_linked_to_the_stripe_account/redirects_to_unauthorized.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_don_t_manage_the_enterprise_linked_to_the_stripe_account/redirects_to_unauthorized.yml index 5d267c51f2..08beacaab5 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_don_t_manage_the_enterprise_linked_to_the_stripe_account/redirects_to_unauthorized.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_don_t_manage_the_enterprise_linked_to_the_stripe_account/redirects_to_unauthorized.yml @@ -8,13 +8,13 @@ http_interactions: string: type=standard&country=AU&email=jumping.jack%40example.com&business_type=non_profit headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - 25929727-c304-41ab-86c8-10d10b7069b4 + - f89fa988-6976-4311-97ca-f4c3a5e42f83 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:04:26 GMT + - Wed, 10 Dec 2025 04:58:17 GMT Content-Type: - application/json Content-Length: - - '3927' + - '4009' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=eX-KcG8mKrMdAIVXHJ0lhA6ccfo2Q0KJ-9O1A-alo-dJ1KX6Ml8LECdy3BhL4ZWX7smIphstbOgh0BYE + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=EBEdXvGq7vyH5-HXur0mgbtI571KR9hWqG0PWAUMbAFCjbwUqpD4IZrGD38VgDCDiHYssbcVZ5ZF0Ci4 Idempotency-Key: - - 25929727-c304-41ab-86c8-10d10b7069b4 + - f89fa988-6976-4311-97ca-f4c3a5e42f83 Original-Request: - - req_oG3RHTtoBghnDU + - req_gM7Tb6O1wckV1q Request-Id: - - req_oG3RHTtoBghnDU + - req_gM7Tb6O1wckV1q Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,7 +79,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyXEKjF2H5zfan", + "id": "acct_1ScfTfKubAEb1ZyM", "object": "account", "business_profile": { "annual_revenue": null, @@ -88,6 +88,7 @@ http_interactions: "minority_owned_business_designation": null, "name": null, "product_description": null, + "specified_commercial_transactions_act_url": null, "support_address": null, "support_email": null, "support_phone": null, @@ -135,7 +136,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1760411066, + "created": 1765342696, "default_currency": "aud", "details_submitted": false, "email": "jumping.jack@example.com", @@ -144,7 +145,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SHyXEKjF2H5zfan/external_accounts" + "url": "/v1/accounts/acct_1ScfTfKubAEb1ZyM/external_accounts" }, "future_requirements": { "alternatives": [], @@ -236,6 +237,7 @@ http_interactions: }, "statement_descriptor": null }, + "paypay_payments": {}, "sepa_debit_payments": {} }, "tos_acceptance": { @@ -245,24 +247,24 @@ http_interactions: }, "type": "standard" } - recorded_at: Tue, 14 Oct 2025 03:04:26 GMT + recorded_at: Wed, 10 Dec 2025 04:58:48 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SHyXEKjF2H5zfan + uri: https://api.stripe.com/v1/accounts/acct_1ScfTfKubAEb1ZyM body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_oG3RHTtoBghnDU","request_duration_ms":2412}}' + - '{"last_request_metrics":{"request_id":"req_gM7Tb6O1wckV1q","request_duration_ms":2327}}' Idempotency-Key: - - bf4971dd-f853-4dce-ad4c-0109dbd6154c + - a1dfcffa-61d2-412e-9453-d45bd932e7d0 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -277,7 +279,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:04:30 GMT + - Wed, 10 Dec 2025 04:58:21 GMT Content-Type: - application/json Content-Length: @@ -300,15 +302,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=zMAvitsGz8tRrU1i-mcD7J8cHKX6iCCjz352qNHC7C8p9Rrzisc8V23f_plT4hGAPTOYRWwbHrmHrDYB + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - bf4971dd-f853-4dce-ad4c-0109dbd6154c + - a1dfcffa-61d2-412e-9453-d45bd932e7d0 Request-Id: - - req_ZaGFaOccCqRUEk + - req_B3WGNiftGMItaF Stripe-Account: - - acct_1SHyXEKjF2H5zfan + - acct_1ScfTfKubAEb1ZyM Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -323,9 +325,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyXEKjF2H5zfan", + "id": "acct_1ScfTfKubAEb1ZyM", "object": "account", "deleted": true } - recorded_at: Tue, 14 Oct 2025 03:04:30 GMT + recorded_at: Wed, 10 Dec 2025 04:58:51 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_manage_the_enterprise_linked_to_the_stripe_account/and_the_attempt_to_deauthorize_and_destroy_fails/redirects_to_unauthorized.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_manage_the_enterprise_linked_to_the_stripe_account/and_the_attempt_to_deauthorize_and_destroy_fails/redirects_to_unauthorized.yml similarity index 86% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_manage_the_enterprise_linked_to_the_stripe_account/and_the_attempt_to_deauthorize_and_destroy_fails/redirects_to_unauthorized.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_manage_the_enterprise_linked_to_the_stripe_account/and_the_attempt_to_deauthorize_and_destroy_fails/redirects_to_unauthorized.yml index 270cc474da..08cdc5fb67 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_manage_the_enterprise_linked_to_the_stripe_account/and_the_attempt_to_deauthorize_and_destroy_fails/redirects_to_unauthorized.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_manage_the_enterprise_linked_to_the_stripe_account/and_the_attempt_to_deauthorize_and_destroy_fails/redirects_to_unauthorized.yml @@ -8,15 +8,15 @@ http_interactions: string: type=standard&country=AU&email=jumping.jack%40example.com&business_type=non_profit headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_OqdNwvqiZeumee","request_duration_ms":1}}' + - '{"last_request_metrics":{"request_id":"req_u49DhpTc0oPYlx","request_duration_ms":2586}}' Idempotency-Key: - - 63e77576-1f64-49b2-9024-9d7a6607869e + - 0c204429-3c81-4cf0-bf68-4882b0e05447 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:05:39 GMT + - Wed, 10 Dec 2025 04:58:28 GMT Content-Type: - application/json Content-Length: - - '3927' + - '4009' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 63e77576-1f64-49b2-9024-9d7a6607869e + - 0c204429-3c81-4cf0-bf68-4882b0e05447 Original-Request: - - req_OUjgH6yZiKV8EH + - req_RVnp71cspilb24 Request-Id: - - req_OUjgH6yZiKV8EH + - req_RVnp71cspilb24 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyYP48vDwrBXkC", + "id": "acct_1ScfTq31AOFvZfCG", "object": "account", "business_profile": { "annual_revenue": null, @@ -90,6 +90,7 @@ http_interactions: "minority_owned_business_designation": null, "name": null, "product_description": null, + "specified_commercial_transactions_act_url": null, "support_address": null, "support_email": null, "support_phone": null, @@ -137,7 +138,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1760411138, + "created": 1765342707, "default_currency": "aud", "details_submitted": false, "email": "jumping.jack@example.com", @@ -146,7 +147,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SHyYP48vDwrBXkC/external_accounts" + "url": "/v1/accounts/acct_1ScfTq31AOFvZfCG/external_accounts" }, "future_requirements": { "alternatives": [], @@ -238,6 +239,7 @@ http_interactions: }, "statement_descriptor": null }, + "paypay_payments": {}, "sepa_debit_payments": {} }, "tos_acceptance": { @@ -247,24 +249,24 @@ http_interactions: }, "type": "standard" } - recorded_at: Tue, 14 Oct 2025 03:05:39 GMT + recorded_at: Wed, 10 Dec 2025 04:58:58 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SHyYP48vDwrBXkC + uri: https://api.stripe.com/v1/accounts/acct_1ScfTq31AOFvZfCG body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_OUjgH6yZiKV8EH","request_duration_ms":2474}}' + - '{"last_request_metrics":{"request_id":"req_RVnp71cspilb24","request_duration_ms":2294}}' Idempotency-Key: - - 641ec84d-bd40-4c36-b171-33b0635c1c6f + - 5d723ff2-dd29-4792-bd81-0255685432ac Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -279,7 +281,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:05:43 GMT + - Wed, 10 Dec 2025 04:58:30 GMT Content-Type: - application/json Content-Length: @@ -302,15 +304,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 641ec84d-bd40-4c36-b171-33b0635c1c6f + - 5d723ff2-dd29-4792-bd81-0255685432ac Request-Id: - - req_ZIu5DReP1igubk + - req_kYzrM2Ug4Js03r Stripe-Account: - - acct_1SHyYP48vDwrBXkC + - acct_1ScfTq31AOFvZfCG Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -325,9 +327,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyYP48vDwrBXkC", + "id": "acct_1ScfTq31AOFvZfCG", "object": "account", "deleted": true } - recorded_at: Tue, 14 Oct 2025 03:05:42 GMT + recorded_at: Wed, 10 Dec 2025 04:59:01 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_manage_the_enterprise_linked_to_the_stripe_account/and_the_attempt_to_deauthorize_and_destroy_succeeds/redirects_to_unauthorized.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_manage_the_enterprise_linked_to_the_stripe_account/and_the_attempt_to_deauthorize_and_destroy_succeeds/redirects_to_unauthorized.yml similarity index 86% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_manage_the_enterprise_linked_to_the_stripe_account/and_the_attempt_to_deauthorize_and_destroy_succeeds/redirects_to_unauthorized.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_manage_the_enterprise_linked_to_the_stripe_account/and_the_attempt_to_deauthorize_and_destroy_succeeds/redirects_to_unauthorized.yml index 880b7dd650..981fa93486 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_manage_the_enterprise_linked_to_the_stripe_account/and_the_attempt_to_deauthorize_and_destroy_succeeds/redirects_to_unauthorized.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Admin_StripeAccountsController/_destroy/when_the_specified_stripe_account_exists/when_I_manage_the_enterprise_linked_to_the_stripe_account/and_the_attempt_to_deauthorize_and_destroy_succeeds/redirects_to_unauthorized.yml @@ -8,15 +8,15 @@ http_interactions: string: type=standard&country=AU&email=jumping.jack%40example.com&business_type=non_profit headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_ZaGFaOccCqRUEk","request_duration_ms":3070}}' + - '{"last_request_metrics":{"request_id":"req_B3WGNiftGMItaF","request_duration_ms":3165}}' Idempotency-Key: - - cd940104-5df6-423b-9b0d-b3fecd72390f + - f3312e50-9827-4294-8031-c995efe4e1f2 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:04:32 GMT + - Wed, 10 Dec 2025 04:58:23 GMT Content-Type: - application/json Content-Length: - - '3927' + - '4009' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=zMAvitsGz8tRrU1i-mcD7J8cHKX6iCCjz352qNHC7C8p9Rrzisc8V23f_plT4hGAPTOYRWwbHrmHrDYB + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - cd940104-5df6-423b-9b0d-b3fecd72390f + - f3312e50-9827-4294-8031-c995efe4e1f2 Original-Request: - - req_6txkuPkmqCOord + - req_dciQlDLdxularE Request-Id: - - req_6txkuPkmqCOord + - req_dciQlDLdxularE Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyXK3YOFZTWKVE", + "id": "acct_1ScfTlQTI7TuiyjT", "object": "account", "business_profile": { "annual_revenue": null, @@ -90,6 +90,7 @@ http_interactions: "minority_owned_business_designation": null, "name": null, "product_description": null, + "specified_commercial_transactions_act_url": null, "support_address": null, "support_email": null, "support_phone": null, @@ -137,7 +138,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1760411071, + "created": 1765342702, "default_currency": "aud", "details_submitted": false, "email": "jumping.jack@example.com", @@ -146,7 +147,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SHyXK3YOFZTWKVE/external_accounts" + "url": "/v1/accounts/acct_1ScfTlQTI7TuiyjT/external_accounts" }, "future_requirements": { "alternatives": [], @@ -238,6 +239,7 @@ http_interactions: }, "statement_descriptor": null }, + "paypay_payments": {}, "sepa_debit_payments": {} }, "tos_acceptance": { @@ -247,24 +249,24 @@ http_interactions: }, "type": "standard" } - recorded_at: Tue, 14 Oct 2025 03:04:32 GMT + recorded_at: Wed, 10 Dec 2025 04:58:54 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SHyXK3YOFZTWKVE + uri: https://api.stripe.com/v1/accounts/acct_1ScfTlQTI7TuiyjT body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_6txkuPkmqCOord","request_duration_ms":2094}}' + - '{"last_request_metrics":{"request_id":"req_dciQlDLdxularE","request_duration_ms":2296}}' Idempotency-Key: - - 1115baf5-42ec-4ef7-84e5-a2c973101b7a + - c2bc0923-aba8-42e5-a963-42e362721095 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -279,7 +281,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:04:35 GMT + - Wed, 10 Dec 2025 04:58:26 GMT Content-Type: - application/json Content-Length: @@ -302,15 +304,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=zMAvitsGz8tRrU1i-mcD7J8cHKX6iCCjz352qNHC7C8p9Rrzisc8V23f_plT4hGAPTOYRWwbHrmHrDYB + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 1115baf5-42ec-4ef7-84e5-a2c973101b7a + - c2bc0923-aba8-42e5-a963-42e362721095 Request-Id: - - req_OqdNwvqiZeumee + - req_u49DhpTc0oPYlx Stripe-Account: - - acct_1SHyXK3YOFZTWKVE + - acct_1ScfTlQTI7TuiyjT Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -325,9 +327,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyXK3YOFZTWKVE", + "id": "acct_1ScfTlQTI7TuiyjT", "object": "account", "deleted": true } - recorded_at: Tue, 14 Oct 2025 03:04:35 GMT + recorded_at: Wed, 10 Dec 2025 04:58:56 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Admin_StripeAccountsController/_status/when_I_manage_the_specified_enterprise/when_Stripe_is_enabled/when_a_stripe_account_is_associated_with_the_specified_enterprise/but_access_has_been_revoked_or_does_not_exist_on_stripe_s_servers/returns_with_a_status_of_access_revoked_.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Admin_StripeAccountsController/_status/when_I_manage_the_specified_enterprise/when_Stripe_is_enabled/when_a_stripe_account_is_associated_with_the_specified_enterprise/but_access_has_been_revoked_or_does_not_exist_on_stripe_s_servers/returns_with_a_status_of_access_revoked_.yml similarity index 86% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Admin_StripeAccountsController/_status/when_I_manage_the_specified_enterprise/when_Stripe_is_enabled/when_a_stripe_account_is_associated_with_the_specified_enterprise/but_access_has_been_revoked_or_does_not_exist_on_stripe_s_servers/returns_with_a_status_of_access_revoked_.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Admin_StripeAccountsController/_status/when_I_manage_the_specified_enterprise/when_Stripe_is_enabled/when_a_stripe_account_is_associated_with_the_specified_enterprise/but_access_has_been_revoked_or_does_not_exist_on_stripe_s_servers/returns_with_a_status_of_access_revoked_.yml index a4510b10a1..8de2e1c017 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Admin_StripeAccountsController/_status/when_I_manage_the_specified_enterprise/when_Stripe_is_enabled/when_a_stripe_account_is_associated_with_the_specified_enterprise/but_access_has_been_revoked_or_does_not_exist_on_stripe_s_servers/returns_with_a_status_of_access_revoked_.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Admin_StripeAccountsController/_status/when_I_manage_the_specified_enterprise/when_Stripe_is_enabled/when_a_stripe_account_is_associated_with_the_specified_enterprise/but_access_has_been_revoked_or_does_not_exist_on_stripe_s_servers/returns_with_a_status_of_access_revoked_.yml @@ -8,15 +8,15 @@ http_interactions: string: type=standard&country=AU&email=jumping.jack%40example.com&business_type=non_profit headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_ZIu5DReP1igubk","request_duration_ms":3060}}' + - '{"last_request_metrics":{"request_id":"req_kYzrM2Ug4Js03r","request_duration_ms":2423}}' Idempotency-Key: - - 721b9634-36c2-4fad-b13d-d0e6357f84bf + - 4456955d-6562-43aa-b74e-60f467bf2dc5 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:05:45 GMT + - Wed, 10 Dec 2025 04:58:33 GMT Content-Type: - application/json Content-Length: - - '3927' + - '4009' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 721b9634-36c2-4fad-b13d-d0e6357f84bf + - 4456955d-6562-43aa-b74e-60f467bf2dc5 Original-Request: - - req_IEQ4TYaklp6hBD + - req_r5jWoVFGUuiMos Request-Id: - - req_IEQ4TYaklp6hBD + - req_r5jWoVFGUuiMos Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyYV3noFA2NjG2", + "id": "acct_1ScfTv3x05vTv9vA", "object": "account", "business_profile": { "annual_revenue": null, @@ -90,6 +90,7 @@ http_interactions: "minority_owned_business_designation": null, "name": null, "product_description": null, + "specified_commercial_transactions_act_url": null, "support_address": null, "support_email": null, "support_phone": null, @@ -137,7 +138,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1760411144, + "created": 1765342712, "default_currency": "aud", "details_submitted": false, "email": "jumping.jack@example.com", @@ -146,7 +147,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SHyYV3noFA2NjG2/external_accounts" + "url": "/v1/accounts/acct_1ScfTv3x05vTv9vA/external_accounts" }, "future_requirements": { "alternatives": [], @@ -238,6 +239,7 @@ http_interactions: }, "statement_descriptor": null }, + "paypay_payments": {}, "sepa_debit_payments": {} }, "tos_acceptance": { @@ -247,7 +249,7 @@ http_interactions: }, "type": "standard" } - recorded_at: Tue, 14 Oct 2025 03:05:45 GMT + recorded_at: Wed, 10 Dec 2025 04:59:03 GMT - request: method: get uri: https://api.stripe.com/v1/accounts/acct_fake_account @@ -256,13 +258,13 @@ http_interactions: string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_IEQ4TYaklp6hBD","request_duration_ms":2038}}' + - '{"last_request_metrics":{"request_id":"req_r5jWoVFGUuiMos","request_duration_ms":2270}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -277,7 +279,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:05:45 GMT + - Wed, 10 Dec 2025 04:58:33 GMT Content-Type: - application/json Content-Length: @@ -300,7 +302,7 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Vary: - Origin X-Robots-Tag: @@ -320,22 +322,22 @@ http_interactions: "doc_url": "https://stripe.com/docs/error-codes/account-invalid" } } - recorded_at: Tue, 14 Oct 2025 03:05:45 GMT + recorded_at: Wed, 10 Dec 2025 04:59:03 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SHyYV3noFA2NjG2 + uri: https://api.stripe.com/v1/accounts/acct_1ScfTv3x05vTv9vA body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - 6e111774-fb8d-4072-93c9-9bad532b0532 + - 6dd5e41d-2fc9-42b4-b47a-189c7eaed4a4 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -350,7 +352,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:05:48 GMT + - Wed, 10 Dec 2025 04:58:35 GMT Content-Type: - application/json Content-Length: @@ -373,15 +375,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 6e111774-fb8d-4072-93c9-9bad532b0532 + - 6dd5e41d-2fc9-42b4-b47a-189c7eaed4a4 Request-Id: - - req_tQUvraDmn8E5NZ + - req_UCoeCkv0LsZ7wZ Stripe-Account: - - acct_1SHyYV3noFA2NjG2 + - acct_1ScfTv3x05vTv9vA Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -396,9 +398,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyYV3noFA2NjG2", + "id": "acct_1ScfTv3x05vTv9vA", "object": "account", "deleted": true } - recorded_at: Tue, 14 Oct 2025 03:05:48 GMT + recorded_at: Wed, 10 Dec 2025 04:59:06 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Admin_StripeAccountsController/_status/when_I_manage_the_specified_enterprise/when_Stripe_is_enabled/when_a_stripe_account_is_associated_with_the_specified_enterprise/which_is_connected/returns_with_a_status_of_connected_.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Admin_StripeAccountsController/_status/when_I_manage_the_specified_enterprise/when_Stripe_is_enabled/when_a_stripe_account_is_associated_with_the_specified_enterprise/which_is_connected/returns_with_a_status_of_connected_.yml similarity index 88% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Admin_StripeAccountsController/_status/when_I_manage_the_specified_enterprise/when_Stripe_is_enabled/when_a_stripe_account_is_associated_with_the_specified_enterprise/which_is_connected/returns_with_a_status_of_connected_.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Admin_StripeAccountsController/_status/when_I_manage_the_specified_enterprise/when_Stripe_is_enabled/when_a_stripe_account_is_associated_with_the_specified_enterprise/which_is_connected/returns_with_a_status_of_connected_.yml index 64ffc210e2..f4dd52d8b7 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Admin_StripeAccountsController/_status/when_I_manage_the_specified_enterprise/when_Stripe_is_enabled/when_a_stripe_account_is_associated_with_the_specified_enterprise/which_is_connected/returns_with_a_status_of_connected_.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Admin_StripeAccountsController/_status/when_I_manage_the_specified_enterprise/when_Stripe_is_enabled/when_a_stripe_account_is_associated_with_the_specified_enterprise/which_is_connected/returns_with_a_status_of_connected_.yml @@ -8,15 +8,15 @@ http_interactions: string: type=standard&country=AU&email=jumping.jack%40example.com&business_type=non_profit headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_tQUvraDmn8E5NZ","request_duration_ms":2930}}' + - '{"last_request_metrics":{"request_id":"req_UCoeCkv0LsZ7wZ","request_duration_ms":2411}}' Idempotency-Key: - - a6b927f0-5194-4bc6-88ff-512a140a6dad + - f5db031c-b007-47d2-9f3c-6e903c6e8de3 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:05:50 GMT + - Wed, 10 Dec 2025 04:58:37 GMT Content-Type: - application/json Content-Length: - - '3927' + - '4009' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - a6b927f0-5194-4bc6-88ff-512a140a6dad + - f5db031c-b007-47d2-9f3c-6e903c6e8de3 Original-Request: - - req_IbGJl7tlqOjCma + - req_lBnq0VjxuSU5ss Request-Id: - - req_IbGJl7tlqOjCma + - req_lBnq0VjxuSU5ss Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyYa48cRAnGc2d", + "id": "acct_1ScfTz4I3882TRXZ", "object": "account", "business_profile": { "annual_revenue": null, @@ -90,6 +90,7 @@ http_interactions: "minority_owned_business_designation": null, "name": null, "product_description": null, + "specified_commercial_transactions_act_url": null, "support_address": null, "support_email": null, "support_phone": null, @@ -137,7 +138,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1760411149, + "created": 1765342716, "default_currency": "aud", "details_submitted": false, "email": "jumping.jack@example.com", @@ -146,7 +147,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SHyYa48cRAnGc2d/external_accounts" + "url": "/v1/accounts/acct_1ScfTz4I3882TRXZ/external_accounts" }, "future_requirements": { "alternatives": [], @@ -238,6 +239,7 @@ http_interactions: }, "statement_descriptor": null }, + "paypay_payments": {}, "sepa_debit_payments": {} }, "tos_acceptance": { @@ -247,22 +249,22 @@ http_interactions: }, "type": "standard" } - recorded_at: Tue, 14 Oct 2025 03:05:50 GMT + recorded_at: Wed, 10 Dec 2025 04:59:08 GMT - request: method: get - uri: https://api.stripe.com/v1/accounts/acct_1SHyYa48cRAnGc2d + uri: https://api.stripe.com/v1/accounts/acct_1ScfTz4I3882TRXZ body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_IbGJl7tlqOjCma","request_duration_ms":2359}}' + - '{"last_request_metrics":{"request_id":"req_lBnq0VjxuSU5ss","request_duration_ms":2189}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -277,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:05:51 GMT + - Wed, 10 Dec 2025 04:58:38 GMT Content-Type: - application/json Content-Length: - - '3927' + - '4009' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -300,13 +302,13 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_DHKUIM0qB3xtUZ + - req_jEkcjRm0477B4A Stripe-Account: - - acct_1SHyYa48cRAnGc2d + - acct_1ScfTz4I3882TRXZ Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -321,7 +323,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyYa48cRAnGc2d", + "id": "acct_1ScfTz4I3882TRXZ", "object": "account", "business_profile": { "annual_revenue": null, @@ -330,6 +332,7 @@ http_interactions: "minority_owned_business_designation": null, "name": null, "product_description": null, + "specified_commercial_transactions_act_url": null, "support_address": null, "support_email": null, "support_phone": null, @@ -377,7 +380,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1760411149, + "created": 1765342716, "default_currency": "aud", "details_submitted": false, "email": "jumping.jack@example.com", @@ -386,7 +389,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SHyYa48cRAnGc2d/external_accounts" + "url": "/v1/accounts/acct_1ScfTz4I3882TRXZ/external_accounts" }, "future_requirements": { "alternatives": [], @@ -478,6 +481,7 @@ http_interactions: }, "statement_descriptor": null }, + "paypay_payments": {}, "sepa_debit_payments": {} }, "tos_acceptance": { @@ -487,24 +491,24 @@ http_interactions: }, "type": "standard" } - recorded_at: Tue, 14 Oct 2025 03:05:51 GMT + recorded_at: Wed, 10 Dec 2025 04:59:08 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SHyYa48cRAnGc2d + uri: https://api.stripe.com/v1/accounts/acct_1ScfTz4I3882TRXZ body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_DHKUIM0qB3xtUZ","request_duration_ms":469}}' + - '{"last_request_metrics":{"request_id":"req_jEkcjRm0477B4A","request_duration_ms":490}}' Idempotency-Key: - - 3362a8b6-0cd0-4d94-b213-e162f3d40358 + - cad09356-bdfb-401b-9364-f011b7c7a03a Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -519,7 +523,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:05:54 GMT + - Wed, 10 Dec 2025 04:58:40 GMT Content-Type: - application/json Content-Length: @@ -542,15 +546,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 3362a8b6-0cd0-4d94-b213-e162f3d40358 + - cad09356-bdfb-401b-9364-f011b7c7a03a Request-Id: - - req_pxnCBAS87JOwB9 + - req_jYD9jjmlhAYEWs Stripe-Account: - - acct_1SHyYa48cRAnGc2d + - acct_1ScfTz4I3882TRXZ Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -565,9 +569,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyYa48cRAnGc2d", + "id": "acct_1ScfTz4I3882TRXZ", "object": "account", "deleted": true } - recorded_at: Tue, 14 Oct 2025 03:05:54 GMT + recorded_at: Wed, 10 Dec 2025 04:59:11 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_CreditCardsController/using_VCR/_new_from_token/when_the_request_to_store_the_customer/card_with_Stripe_is_successful/saves_the_card_locally.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_CreditCardsController/using_VCR/_new_from_token/when_the_request_to_store_the_customer/card_with_Stripe_is_successful/saves_the_card_locally.yml similarity index 79% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_CreditCardsController/using_VCR/_new_from_token/when_the_request_to_store_the_customer/card_with_Stripe_is_successful/saves_the_card_locally.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_CreditCardsController/using_VCR/_new_from_token/when_the_request_to_store_the_customer/card_with_Stripe_is_successful/saves_the_card_locally.yml index 8d20796b15..fddcb0de2c 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_CreditCardsController/using_VCR/_new_from_token/when_the_request_to_store_the_customer/card_with_Stripe_is_successful/saves_the_card_locally.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_CreditCardsController/using_VCR/_new_from_token/when_the_request_to_store_the_customer/card_with_Stripe_is_successful/saves_the_card_locally.yml @@ -8,15 +8,15 @@ http_interactions: string: card[number]=4242424242424242&card[exp_month]=9&card[exp_year]=2026&card[cvc]=314 headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_pxnCBAS87JOwB9","request_duration_ms":3126}}' + - '{"last_request_metrics":{"request_id":"req_jYD9jjmlhAYEWs","request_duration_ms":2424}}' Idempotency-Key: - - 3a86dee7-81ca-433d-8a5a-2579bef7f6ab + - cbb6f9e0-66bf-47be-8c0d-b95351667429 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,7 +33,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:05:54 GMT + - Wed, 10 Dec 2025 04:58:41 GMT Content-Type: - application/json Content-Length: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 3a86dee7-81ca-433d-8a5a-2579bef7f6ab + - cbb6f9e0-66bf-47be-8c0d-b95351667429 Original-Request: - - req_eaOnAoJjunxl40 + - req_UfmMcYIwxuZ4lS Request-Id: - - req_eaOnAoJjunxl40 + - req_UfmMcYIwxuZ4lS Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,10 +81,10 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "tok_1SHyYgKuuB1fWySndxuZemYf", + "id": "tok_1ScfU5KuuB1fWySnCddGxE3l", "object": "token", "card": { - "id": "card_1SHyYgKuuB1fWySnU7wvIdbg", + "id": "card_1ScfU4KuuB1fWySnL5neikIs", "object": "card", "address_city": null, "address_country": null, @@ -114,30 +114,30 @@ http_interactions: "tokenization_method": null, "wallet": null }, - "client_ip": "121.200.4.224", - "created": 1760411154, + "client_ip": "101.188.38.96", + "created": 1765342721, "livemode": false, "type": "card", "used": false } - recorded_at: Tue, 14 Oct 2025 03:05:54 GMT + recorded_at: Wed, 10 Dec 2025 04:59:11 GMT - request: method: post uri: https://api.stripe.com/v1/customers body: encoding: UTF-8 - string: email=suzanne%40ritchiekautzer.info&source=tok_1SHyYgKuuB1fWySndxuZemYf + string: email=beulah_schmitt%40murray.co.uk&source=tok_1ScfU5KuuB1fWySnCddGxE3l headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_eaOnAoJjunxl40","request_duration_ms":371}}' + - '{"last_request_metrics":{"request_id":"req_UfmMcYIwxuZ4lS","request_duration_ms":419}}' Idempotency-Key: - - f68b68ed-9987-49f9-b616-2ed84e41d97b + - b3db5536-5b0f-4a9b-9dbe-dfdaeffb79b1 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -154,11 +154,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:05:55 GMT + - Wed, 10 Dec 2025 04:58:41 GMT Content-Type: - application/json Content-Length: - - '666' + - '694' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -177,17 +177,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - f68b68ed-9987-49f9-b616-2ed84e41d97b + - b3db5536-5b0f-4a9b-9dbe-dfdaeffb79b1 Original-Request: - - req_uP3pKsJEYwyaZJ + - req_Jxzs3G8IYLQVgV Request-Id: - - req_uP3pKsJEYwyaZJ + - req_Jxzs3G8IYLQVgV Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -202,18 +202,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TERRPIBNJmV7wR", + "id": "cus_TZp8VzK3Y14cbD", "object": "customer", "address": null, "balance": 0, - "created": 1760411154, + "created": 1765342721, "currency": null, - "default_source": "card_1SHyYgKuuB1fWySnU7wvIdbg", + "customer_account": null, + "default_source": "card_1ScfU4KuuB1fWySnL5neikIs", "delinquent": false, "description": null, "discount": null, - "email": "suzanne@ritchiekautzer.info", - "invoice_prefix": "N8REKHQK", + "email": "beulah_schmitt@murray.co.uk", + "invoice_prefix": "B0HZJQDX", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -230,22 +231,22 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 14 Oct 2025 03:05:55 GMT + recorded_at: Wed, 10 Dec 2025 04:59:12 GMT - request: method: get - uri: https://api.stripe.com/v1/customers/cus_TERRPIBNJmV7wR/sources?limit=1&object=card + uri: https://api.stripe.com/v1/customers/cus_TZp8VzK3Y14cbD/sources?limit=1&object=card body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_uP3pKsJEYwyaZJ","request_duration_ms":724}}' + - '{"last_request_metrics":{"request_id":"req_Jxzs3G8IYLQVgV","request_duration_ms":788}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -260,7 +261,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:05:55 GMT + - Wed, 10 Dec 2025 04:58:42 GMT Content-Type: - application/json Content-Length: @@ -283,11 +284,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_x4EL8Kj8W6WyTh + - req_x3LhhVKjRWnE0c Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -305,7 +306,7 @@ http_interactions: "object": "list", "data": [ { - "id": "card_1SHyYgKuuB1fWySnU7wvIdbg", + "id": "card_1ScfU4KuuB1fWySnL5neikIs", "object": "card", "address_city": null, "address_country": null, @@ -318,7 +319,7 @@ http_interactions: "allow_redisplay": "unspecified", "brand": "Visa", "country": "US", - "customer": "cus_TERRPIBNJmV7wR", + "customer": "cus_TZp8VzK3Y14cbD", "cvc_check": "pass", "dynamic_last4": null, "email": null, @@ -336,7 +337,7 @@ http_interactions: } ], "has_more": false, - "url": "/v1/customers/cus_TERRPIBNJmV7wR/sources" + "url": "/v1/customers/cus_TZp8VzK3Y14cbD/sources" } - recorded_at: Tue, 14 Oct 2025 03:05:55 GMT + recorded_at: Wed, 10 Dec 2025 04:59:12 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_credit/refunds_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_credit/refunds_the_payment.yml similarity index 83% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_credit/refunds_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_credit/refunds_the_payment.yml index 5e3cd45943..565be1de54 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_credit/refunds_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_credit/refunds_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: type=standard&country=AU&email=carrot.producer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_optaXcyxBBnMWy","request_duration_ms":3171}}' + - '{"last_request_metrics":{"request_id":"req_kxs8Gsncw2vrid","request_duration_ms":2876}}' Idempotency-Key: - - 9c048458-7682-4d48-b430-59c7fee76523 + - 43fbb467-3518-4f18-9d56-5d7052154853 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:30 GMT + - Wed, 10 Dec 2025 05:02:12 GMT Content-Type: - application/json Content-Length: - - '3446' + - '3528' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 9c048458-7682-4d48-b430-59c7fee76523 + - 43fbb467-3518-4f18-9d56-5d7052154853 Original-Request: - - req_E9DkANSmck5jQE + - req_DXHzTqXebvVRVG Request-Id: - - req_E9DkANSmck5jQE + - req_DXHzTqXebvVRVG Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyd631CkLt6rra", + "id": "acct_1ScfXS3HCHXMbln1", "object": "account", "business_profile": { "annual_revenue": null, @@ -90,6 +90,7 @@ http_interactions: "minority_owned_business_designation": null, "name": null, "product_description": null, + "specified_commercial_transactions_act_url": null, "support_address": null, "support_email": null, "support_phone": null, @@ -114,7 +115,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1760411429, + "created": 1765342931, "default_currency": "aud", "details_submitted": false, "email": "carrot.producer@example.com", @@ -123,7 +124,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SHyd631CkLt6rra/external_accounts" + "url": "/v1/accounts/acct_1ScfXS3HCHXMbln1/external_accounts" }, "future_requirements": { "alternatives": [], @@ -215,6 +216,7 @@ http_interactions: }, "statement_descriptor": null }, + "paypay_payments": {}, "sepa_debit_payments": {} }, "tos_acceptance": { @@ -224,7 +226,7 @@ http_interactions: }, "type": "standard" } - recorded_at: Tue, 14 Oct 2025 03:10:30 GMT + recorded_at: Wed, 10 Dec 2025 05:02:43 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents @@ -233,17 +235,17 @@ http_interactions: string: amount=1000¤cy=aud&payment_method=pm_card_mastercard&payment_method_types[0]=card&capture_method=automatic&confirm=true headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_E9DkANSmck5jQE","request_duration_ms":2298}}' + - '{"last_request_metrics":{"request_id":"req_DXHzTqXebvVRVG","request_duration_ms":2478}}' Idempotency-Key: - - 5b64278c-6aec-4591-9092-f3d20cd00e36 + - 22ed5b4d-cebf-431d-b997-883b74e047f4 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Stripe-Account: - - acct_1SHyd631CkLt6rra + - acct_1ScfXS3HCHXMbln1 X-Stripe-Client-User-Agent: - "" Content-Type: @@ -260,11 +262,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:32 GMT + - Wed, 10 Dec 2025 05:02:14 GMT Content-Type: - application/json Content-Length: - - '1437' + - '1446' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -283,19 +285,19 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 5b64278c-6aec-4591-9092-f3d20cd00e36 + - 22ed5b4d-cebf-431d-b997-883b74e047f4 Original-Request: - - req_JpICnI0CoJ2xDm + - req_2yrUisPNJNMBnh Request-Id: - - req_JpICnI0CoJ2xDm + - req_2yrUisPNJNMBnh Stripe-Account: - - acct_1SHyd631CkLt6rra + - acct_1ScfXS3HCHXMbln1 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -310,7 +312,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHyd931CkLt6rra14yuHjZQ", + "id": "pi_3ScfXV3HCHXMbln10nwuYzR1", "object": "payment_intent", "amount": 1000, "amount_capturable": 0, @@ -326,19 +328,19 @@ http_interactions: "capture_method": "automatic", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411431, + "created": 1765342933, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SHyd931CkLt6rra1LNoN3ek", + "latest_charge": "ch_3ScfXV3HCHXMbln10vVLWjWu", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHyd931CkLt6rraMRZB6ykx", + "payment_method": "pm_1ScfXV3HCHXMbln1vnwnvk51", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -363,10 +365,10 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:10:32 GMT + recorded_at: Wed, 10 Dec 2025 05:02:44 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SHyd931CkLt6rra14yuHjZQ + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfXV3HCHXMbln10nwuYzR1 body: encoding: US-ASCII string: '' @@ -374,7 +376,7 @@ http_interactions: Authorization: - "" User-Agent: - - Stripe/v1 ActiveMerchantBindings/1.133.0 + - Stripe/v1 ActiveMerchantBindings/1.137.0 Stripe-Version: - '2020-08-27' X-Stripe-Client-User-Agent: @@ -382,7 +384,7 @@ http_interactions: X-Stripe-Client-User-Metadata: - '{"ip":null}' Stripe-Account: - - acct_1SHyd631CkLt6rra + - acct_1ScfXS3HCHXMbln1 Connection: - close Accept-Encoding: @@ -397,11 +399,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:32 GMT + - Wed, 10 Dec 2025 05:02:14 GMT Content-Type: - application/json Content-Length: - - '5484' + - '5512' Connection: - close Access-Control-Allow-Credentials: @@ -420,11 +422,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=6KEMkcCwsOTjdLqewKR7WYC8tkai6xH64vP06THcCTMxWygHRGdvmvLr9eV5_prcl4d92RF40MZJpwq5 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=IqcLh7gJYPmfLSJFi9ldbKN6c-hNcNv8CyWRb4UN64A_85lgUzUtQSavE2E-hLQvmxmnH-KWxLp7CaUX Request-Id: - - req_igKXrnrmKVd9po + - req_JoUg8v0uGKbbH9 Stripe-Account: - - acct_1SHyd631CkLt6rra + - acct_1ScfXS3HCHXMbln1 Stripe-Version: - '2020-08-27' Vary: @@ -441,7 +443,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHyd931CkLt6rra14yuHjZQ", + "id": "pi_3ScfXV3HCHXMbln10nwuYzR1", "object": "payment_intent", "amount": 1000, "amount_capturable": 0, @@ -459,7 +461,7 @@ http_interactions: "object": "list", "data": [ { - "id": "ch_3SHyd931CkLt6rra1LNoN3ek", + "id": "ch_3ScfXV3HCHXMbln10vVLWjWu", "object": "charge", "amount": 1000, "amount_captured": 1000, @@ -467,7 +469,7 @@ http_interactions: "application": "", "application_fee": null, "application_fee_amount": null, - "balance_transaction": "txn_3SHyd931CkLt6rra17dAcFFz", + "balance_transaction": "txn_3ScfXV3HCHXMbln10uSZXBWi", "billing_details": { "address": { "city": null, @@ -484,7 +486,7 @@ http_interactions: }, "calculated_statement_descriptor": "OFNOFNOFN", "captured": true, - "created": 1760411431, + "created": 1765342933, "currency": "aud", "customer": null, "description": null, @@ -507,17 +509,17 @@ http_interactions: "network_status": "approved_by_network", "reason": null, "risk_level": "normal", - "risk_score": 31, + "risk_score": 40, "seller_message": "Payment complete.", "type": "authorized" }, "paid": true, - "payment_intent": "pi_3SHyd931CkLt6rra14yuHjZQ", - "payment_method": "pm_1SHyd931CkLt6rraMRZB6ykx", + "payment_intent": "pi_3ScfXV3HCHXMbln10nwuYzR1", + "payment_method": "pm_1ScfXV3HCHXMbln1vnwnvk51", "payment_method_details": { "card": { "amount_authorized": 1000, - "authorization_code": "439116", + "authorization_code": "786466", "brand": "mastercard", "checks": { "address_line1_check": null, @@ -525,7 +527,7 @@ http_interactions: "cvc_check": "pass" }, "country": "US", - "exp_month": 10, + "exp_month": 12, "exp_year": 2026, "extended_authorization": { "status": "disabled" @@ -545,7 +547,7 @@ http_interactions: "network_token": { "used": false }, - "network_transaction_id": "MCCTXXQEU1014", + "network_transaction_id": "MCCPFUXE81210", "overcapture": { "maximum_amount_capturable": 1000, "status": "unavailable" @@ -559,14 +561,14 @@ http_interactions: "radar_options": {}, "receipt_email": null, "receipt_number": null, - "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xU0h5ZDYzMUNrTHQ2cnJhKKj-tscGMgZztbM3ssY6LBYUqN47OThfl8yqtX1vIz3xiafLulG9ZRzcty-2r3B_WV4-1aZKwjIcCxCK", + "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xU2NmWFMzSENIWE1ibG4xKNb948kGMga48fe3Fqs6LBa6wIJD38uQ4uSWg7wa4JZgtTbXqY5mFWFGtqfSLe3GGp2W0IuBvGP70600", "refunded": false, "refunds": { "object": "list", "data": [], "has_more": false, "total_count": 0, - "url": "/v1/charges/ch_3SHyd931CkLt6rra1LNoN3ek/refunds" + "url": "/v1/charges/ch_3ScfXV3HCHXMbln10vVLWjWu/refunds" }, "review": null, "shipping": null, @@ -581,23 +583,24 @@ http_interactions: ], "has_more": false, "total_count": 1, - "url": "/v1/charges?payment_intent=pi_3SHyd931CkLt6rra14yuHjZQ" + "url": "/v1/charges?payment_intent=pi_3ScfXV3HCHXMbln10nwuYzR1" }, "client_secret": "", "confirmation_method": "automatic", - "created": 1760411431, + "created": 1765342933, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SHyd931CkLt6rra1LNoN3ek", + "latest_charge": "ch_3ScfXV3HCHXMbln10vVLWjWu", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHyd931CkLt6rraMRZB6ykx", + "payment_method": "pm_1ScfXV3HCHXMbln1vnwnvk51", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -622,10 +625,10 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:10:32 GMT + recorded_at: Wed, 10 Dec 2025 05:02:45 GMT - request: method: post - uri: https://api.stripe.com/v1/charges/ch_3SHyd931CkLt6rra1LNoN3ek/refunds + uri: https://api.stripe.com/v1/charges/ch_3ScfXV3HCHXMbln10vVLWjWu/refunds body: encoding: UTF-8 string: amount=1000&expand[0]=charge @@ -635,7 +638,7 @@ http_interactions: Authorization: - "" User-Agent: - - Stripe/v1 ActiveMerchantBindings/1.133.0 + - Stripe/v1 ActiveMerchantBindings/1.137.0 Stripe-Version: - '2020-08-27' X-Stripe-Client-User-Agent: @@ -643,7 +646,7 @@ http_interactions: X-Stripe-Client-User-Metadata: - '{"ip":null}' Stripe-Account: - - acct_1SHyd631CkLt6rra + - acct_1ScfXS3HCHXMbln1 Connection: - close Accept-Encoding: @@ -658,7 +661,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:33 GMT + - Wed, 10 Dec 2025 05:02:16 GMT Content-Type: - application/json Content-Length: @@ -681,15 +684,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=OM_QID4mkoXt71hL-zi5xW8jqDnQHEWcI3SnK_RU-cLKpURQ0m1ehrNriyw2idgVDNdNJm6WQolrhYkm + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=IK9xFlYaGlv_vZH5f3KyJOW2LIqmENJCbHsCR-E8liuSF0lIf5GsHiQDGCjLjnQmYQ4XurFLZashfzz5 Idempotency-Key: - - af79f19a-a6ee-4b39-99de-ab0bdaa7645b + - 7705d093-cd6f-4cbb-9dd6-299fea093d5d Original-Request: - - req_ttMDSs2kplYFG6 + - req_yaTGym2wAjtE3A Request-Id: - - req_ttMDSs2kplYFG6 + - req_yaTGym2wAjtE3A Stripe-Account: - - acct_1SHyd631CkLt6rra + - acct_1ScfXS3HCHXMbln1 Stripe-Should-Retry: - 'false' Stripe-Version: @@ -708,12 +711,12 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "re_3SHyd931CkLt6rra10VQY0mZ", + "id": "re_3ScfXV3HCHXMbln10i36sjX4", "object": "refund", "amount": 1000, - "balance_transaction": "txn_3SHyd931CkLt6rra1RuSXhor", + "balance_transaction": "txn_3ScfXV3HCHXMbln10iFsaSI9", "charge": { - "id": "ch_3SHyd931CkLt6rra1LNoN3ek", + "id": "ch_3ScfXV3HCHXMbln10vVLWjWu", "object": "charge", "amount": 1000, "amount_captured": 1000, @@ -721,7 +724,7 @@ http_interactions: "application": "", "application_fee": null, "application_fee_amount": null, - "balance_transaction": "txn_3SHyd931CkLt6rra17dAcFFz", + "balance_transaction": "txn_3ScfXV3HCHXMbln10uSZXBWi", "billing_details": { "address": { "city": null, @@ -738,7 +741,7 @@ http_interactions: }, "calculated_statement_descriptor": "OFNOFNOFN", "captured": true, - "created": 1760411431, + "created": 1765342933, "currency": "aud", "customer": null, "description": null, @@ -761,17 +764,17 @@ http_interactions: "network_status": "approved_by_network", "reason": null, "risk_level": "normal", - "risk_score": 31, + "risk_score": 40, "seller_message": "Payment complete.", "type": "authorized" }, "paid": true, - "payment_intent": "pi_3SHyd931CkLt6rra14yuHjZQ", - "payment_method": "pm_1SHyd931CkLt6rraMRZB6ykx", + "payment_intent": "pi_3ScfXV3HCHXMbln10nwuYzR1", + "payment_method": "pm_1ScfXV3HCHXMbln1vnwnvk51", "payment_method_details": { "card": { "amount_authorized": 1000, - "authorization_code": "439116", + "authorization_code": "786466", "brand": "mastercard", "checks": { "address_line1_check": null, @@ -779,7 +782,7 @@ http_interactions: "cvc_check": "pass" }, "country": "US", - "exp_month": 10, + "exp_month": 12, "exp_year": 2026, "extended_authorization": { "status": "disabled" @@ -799,7 +802,7 @@ http_interactions: "network_token": { "used": false }, - "network_transaction_id": "MCCTXXQEU1014", + "network_transaction_id": "MCCPFUXE81210", "overcapture": { "maximum_amount_capturable": 1000, "status": "unavailable" @@ -813,18 +816,18 @@ http_interactions: "radar_options": {}, "receipt_email": null, "receipt_number": null, - "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xU0h5ZDYzMUNrTHQ2cnJhKKn-tscGMgY0T7rWUF86LBb6Rl6RDPZ5emf9e8GyYmzYP0wDZeMYNx5X7xL6lDTGaU2-eTku2ep9oB8q", + "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xU2NmWFMzSENIWE1ibG4xKNf948kGMgbFM-XWaVA6LBY9CrSXluGL51PBKORrhlQHmiBQLK1Mc2ik7nU4lRuaFBI6-1uJEfGcVb4H", "refunded": true, "refunds": { "object": "list", "data": [ { - "id": "re_3SHyd931CkLt6rra10VQY0mZ", + "id": "re_3ScfXV3HCHXMbln10i36sjX4", "object": "refund", "amount": 1000, - "balance_transaction": "txn_3SHyd931CkLt6rra1RuSXhor", - "charge": "ch_3SHyd931CkLt6rra1LNoN3ek", - "created": 1760411432, + "balance_transaction": "txn_3ScfXV3HCHXMbln10iFsaSI9", + "charge": "ch_3ScfXV3HCHXMbln10vVLWjWu", + "created": 1765342935, "currency": "aud", "destination_details": { "card": { @@ -835,7 +838,7 @@ http_interactions: "type": "card" }, "metadata": {}, - "payment_intent": "pi_3SHyd931CkLt6rra14yuHjZQ", + "payment_intent": "pi_3ScfXV3HCHXMbln10nwuYzR1", "reason": null, "receipt_number": null, "source_transfer_reversal": null, @@ -845,7 +848,7 @@ http_interactions: ], "has_more": false, "total_count": 1, - "url": "/v1/charges/ch_3SHyd931CkLt6rra1LNoN3ek/refunds" + "url": "/v1/charges/ch_3ScfXV3HCHXMbln10vVLWjWu/refunds" }, "review": null, "shipping": null, @@ -857,7 +860,7 @@ http_interactions: "transfer_data": null, "transfer_group": null }, - "created": 1760411432, + "created": 1765342935, "currency": "aud", "destination_details": { "card": { @@ -868,31 +871,31 @@ http_interactions: "type": "card" }, "metadata": {}, - "payment_intent": "pi_3SHyd931CkLt6rra14yuHjZQ", + "payment_intent": "pi_3ScfXV3HCHXMbln10nwuYzR1", "reason": null, "receipt_number": null, "source_transfer_reversal": null, "status": "succeeded", "transfer_reversal": null } - recorded_at: Tue, 14 Oct 2025 03:10:33 GMT + recorded_at: Wed, 10 Dec 2025 05:02:46 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SHyd631CkLt6rra + uri: https://api.stripe.com/v1/accounts/acct_1ScfXS3HCHXMbln1 body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_JpICnI0CoJ2xDm","request_duration_ms":1205}}' + - '{"last_request_metrics":{"request_id":"req_2yrUisPNJNMBnh","request_duration_ms":1387}}' Idempotency-Key: - - 9986fd79-8638-408e-9b1e-44e24ad10c7e + - 1f748476-170c-42cc-ad08-8e0eb5f5c73f Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -907,7 +910,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:36 GMT + - Wed, 10 Dec 2025 05:02:18 GMT Content-Type: - application/json Content-Length: @@ -930,15 +933,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 9986fd79-8638-408e-9b1e-44e24ad10c7e + - 1f748476-170c-42cc-ad08-8e0eb5f5c73f Request-Id: - - req_KbVXgNKr88Sx23 + - req_RAdBsK3h3CGELn Stripe-Account: - - acct_1SHyd631CkLt6rra + - acct_1ScfXS3HCHXMbln1 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -953,9 +956,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyd631CkLt6rra", + "id": "acct_1ScfXS3HCHXMbln1", "object": "account", "deleted": true } - recorded_at: Tue, 14 Oct 2025 03:10:36 GMT + recorded_at: Wed, 10 Dec 2025 05:02:49 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_error_message/when_payment_intent_state_is_not_in_requires_capture_state/does_not_succeed_if_payment_intent_state_is_not_requires_capture.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_error_message/when_payment_intent_state_is_not_in_requires_capture_state/does_not_succeed_if_payment_intent_state_is_not_requires_capture.yml similarity index 84% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_error_message/when_payment_intent_state_is_not_in_requires_capture_state/does_not_succeed_if_payment_intent_state_is_not_requires_capture.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_error_message/when_payment_intent_state_is_not_in_requires_capture_state/does_not_succeed_if_payment_intent_state_is_not_requires_capture.yml index 66e48e63c3..c5c056b77f 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_error_message/when_payment_intent_state_is_not_in_requires_capture_state/does_not_succeed_if_payment_intent_state_is_not_requires_capture.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_error_message/when_payment_intent_state_is_not_in_requires_capture_state/does_not_succeed_if_payment_intent_state_is_not_requires_capture.yml @@ -8,13 +8,13 @@ http_interactions: string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_KbVXgNKr88Sx23","request_duration_ms":2953}}' + - '{"last_request_metrics":{"request_id":"req_RAdBsK3h3CGELn","request_duration_ms":2508}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -29,11 +29,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:38 GMT + - Wed, 10 Dec 2025 05:02:19 GMT Content-Type: - application/json Content-Length: - - '1073' + - '1101' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -52,11 +52,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_t66rgnQeT7Xvse + - req_x3CX82ylNaNudg Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -71,7 +71,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHydGKuuB1fWySnh3T3bNsL", + "id": "pm_1ScfXbKuuB1fWySnNK2C3jSA", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -97,7 +97,7 @@ http_interactions: }, "country": "US", "display_brand": "mastercard", - "exp_month": 10, + "exp_month": 12, "exp_year": 2026, "fingerprint": "BL35fEFVcTTS5wpE", "funding": "credit", @@ -115,30 +115,31 @@ http_interactions: }, "wallet": null }, - "created": 1760411438, + "created": 1765342939, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:10:38 GMT + recorded_at: Wed, 10 Dec 2025 05:02:49 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=1000¤cy=aud&payment_method=pm_1SHydGKuuB1fWySnh3T3bNsL&payment_method_types[0]=card&capture_method=manual + string: amount=1000¤cy=aud&payment_method=pm_card_mastercard&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_t66rgnQeT7Xvse","request_duration_ms":357}}' + - '{"last_request_metrics":{"request_id":"req_x3CX82ylNaNudg","request_duration_ms":415}}' Idempotency-Key: - - 022425f2-25b4-4389-bc29-7b9ded8acc64 + - 94bf3c67-b58a-40f9-b3ac-c55555a2d84f Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -155,11 +156,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:38 GMT + - Wed, 10 Dec 2025 05:02:19 GMT Content-Type: - application/json Content-Length: - - '1385' + - '1394' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -178,17 +179,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 022425f2-25b4-4389-bc29-7b9ded8acc64 + - 94bf3c67-b58a-40f9-b3ac-c55555a2d84f Original-Request: - - req_9TKjLljhpGqriP + - req_PAwvxX839Oia8u Request-Id: - - req_9TKjLljhpGqriP + - req_PAwvxX839Oia8u Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -203,7 +204,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHydGKuuB1fWySn1DAjjpRs", + "id": "pi_3ScfXbKuuB1fWySn2n35TMJw", "object": "payment_intent", "amount": 1000, "amount_capturable": 0, @@ -219,19 +220,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411438, + "created": 1765342939, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHydGKuuB1fWySnh3T3bNsL", + "payment_method": "pm_1ScfXbKuuB1fWySnL2qbleeD", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -256,22 +257,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:10:38 GMT + recorded_at: Wed, 10 Dec 2025 05:02:50 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SHydGKuuB1fWySn1DAjjpRs + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfXbKuuB1fWySn2n35TMJw body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_9TKjLljhpGqriP","request_duration_ms":346}}' + - '{"last_request_metrics":{"request_id":"req_PAwvxX839Oia8u","request_duration_ms":430}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -286,11 +287,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:38 GMT + - Wed, 10 Dec 2025 05:02:20 GMT Content-Type: - application/json Content-Length: - - '1385' + - '1394' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -309,11 +310,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_G6EGz0wcGSGa0d + - req_guGjrx3e3R4Jyq Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -328,7 +329,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHydGKuuB1fWySn1DAjjpRs", + "id": "pi_3ScfXbKuuB1fWySn2n35TMJw", "object": "payment_intent", "amount": 1000, "amount_capturable": 0, @@ -344,19 +345,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411438, + "created": 1765342939, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHydGKuuB1fWySnh3T3bNsL", + "payment_method": "pm_1ScfXbKuuB1fWySnL2qbleeD", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -381,7 +382,7 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:10:38 GMT + recorded_at: Wed, 10 Dec 2025 05:02:50 GMT - request: method: post uri: https://api.stripe.com/v1/accounts @@ -390,15 +391,15 @@ http_interactions: string: type=standard&country=AU&email=carrot.producer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_G6EGz0wcGSGa0d","request_duration_ms":297}}' + - '{"last_request_metrics":{"request_id":"req_guGjrx3e3R4Jyq","request_duration_ms":311}}' Idempotency-Key: - - be57c9e1-a2df-4e66-adf5-8396b47f122a + - 758b6770-372d-45b1-931f-af870a2b6970 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -415,11 +416,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:41 GMT + - Wed, 10 Dec 2025 05:02:22 GMT Content-Type: - application/json Content-Length: - - '3446' + - '3528' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -438,17 +439,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - be57c9e1-a2df-4e66-adf5-8396b47f122a + - 758b6770-372d-45b1-931f-af870a2b6970 Original-Request: - - req_1gCfyyGGYh6DWZ + - req_gusKQ97kRrqnuo Request-Id: - - req_1gCfyyGGYh6DWZ + - req_gusKQ97kRrqnuo Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -463,7 +464,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHydH3xzbZDwHJ0", + "id": "acct_1ScfXc31nofbTDKV", "object": "account", "business_profile": { "annual_revenue": null, @@ -472,6 +473,7 @@ http_interactions: "minority_owned_business_designation": null, "name": null, "product_description": null, + "specified_commercial_transactions_act_url": null, "support_address": null, "support_email": null, "support_phone": null, @@ -496,7 +498,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1760411440, + "created": 1765342941, "default_currency": "aud", "details_submitted": false, "email": "carrot.producer@example.com", @@ -505,7 +507,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SHydH3xzbZDwHJ0/external_accounts" + "url": "/v1/accounts/acct_1ScfXc31nofbTDKV/external_accounts" }, "future_requirements": { "alternatives": [], @@ -597,6 +599,7 @@ http_interactions: }, "statement_descriptor": null }, + "paypay_payments": {}, "sepa_debit_payments": {} }, "tos_acceptance": { @@ -606,24 +609,24 @@ http_interactions: }, "type": "standard" } - recorded_at: Tue, 14 Oct 2025 03:10:41 GMT + recorded_at: Wed, 10 Dec 2025 05:02:53 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SHydH3xzbZDwHJ0 + uri: https://api.stripe.com/v1/accounts/acct_1ScfXc31nofbTDKV body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_1gCfyyGGYh6DWZ","request_duration_ms":2160}}' + - '{"last_request_metrics":{"request_id":"req_gusKQ97kRrqnuo","request_duration_ms":2448}}' Idempotency-Key: - - f07062a3-908e-4477-9e99-83d9dd4d2710 + - 229efd03-141f-4e52-9b8c-6e1787eab47e Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -638,7 +641,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:44 GMT + - Wed, 10 Dec 2025 05:02:25 GMT Content-Type: - application/json Content-Length: @@ -661,15 +664,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - f07062a3-908e-4477-9e99-83d9dd4d2710 + - 229efd03-141f-4e52-9b8c-6e1787eab47e Request-Id: - - req_Ok6dcW8sH4LWfb + - req_H3XVLVBupf8KVx Stripe-Account: - - acct_1SHydH3xzbZDwHJ0 + - acct_1ScfXc31nofbTDKV Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -684,9 +687,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHydH3xzbZDwHJ0", + "id": "acct_1ScfXc31nofbTDKV", "object": "account", "deleted": true } - recorded_at: Tue, 14 Oct 2025 03:10:44 GMT + recorded_at: Wed, 10 Dec 2025 05:02:56 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_external_payment_url/calls_Checkout_StripeRedirect.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_external_payment_url/calls_Checkout_StripeRedirect.yml similarity index 85% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_external_payment_url/calls_Checkout_StripeRedirect.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_external_payment_url/calls_Checkout_StripeRedirect.yml index 04499808e5..365f1ac922 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_external_payment_url/calls_Checkout_StripeRedirect.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_external_payment_url/calls_Checkout_StripeRedirect.yml @@ -8,15 +8,15 @@ http_interactions: string: type=standard&country=AU&email=carrot.producer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_xl9wEwr9qpffaK","request_duration_ms":3129}}' + - '{"last_request_metrics":{"request_id":"req_8gsugK0ZmLjdDT","request_duration_ms":2582}}' Idempotency-Key: - - 557dd57d-b082-4964-a5e3-d094dff1128c + - 1a25cf2c-9003-43ab-b360-6f31450c67ac Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:53 GMT + - Wed, 10 Dec 2025 05:02:33 GMT Content-Type: - application/json Content-Length: - - '3446' + - '3528' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 557dd57d-b082-4964-a5e3-d094dff1128c + - 1a25cf2c-9003-43ab-b360-6f31450c67ac Original-Request: - - req_mDaxbCESIa3pda + - req_AdsZrTG6Yq2u2o Request-Id: - - req_mDaxbCESIa3pda + - req_AdsZrTG6Yq2u2o Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHydTKSlogJNuPb", + "id": "acct_1ScfXn3fl4422P96", "object": "account", "business_profile": { "annual_revenue": null, @@ -90,6 +90,7 @@ http_interactions: "minority_owned_business_designation": null, "name": null, "product_description": null, + "specified_commercial_transactions_act_url": null, "support_address": null, "support_email": null, "support_phone": null, @@ -114,7 +115,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1760411452, + "created": 1765342952, "default_currency": "aud", "details_submitted": false, "email": "carrot.producer@example.com", @@ -123,7 +124,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SHydTKSlogJNuPb/external_accounts" + "url": "/v1/accounts/acct_1ScfXn3fl4422P96/external_accounts" }, "future_requirements": { "alternatives": [], @@ -215,6 +216,7 @@ http_interactions: }, "statement_descriptor": null }, + "paypay_payments": {}, "sepa_debit_payments": {} }, "tos_acceptance": { @@ -224,24 +226,24 @@ http_interactions: }, "type": "standard" } - recorded_at: Tue, 14 Oct 2025 03:10:53 GMT + recorded_at: Wed, 10 Dec 2025 05:03:03 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SHydTKSlogJNuPb + uri: https://api.stripe.com/v1/accounts/acct_1ScfXn3fl4422P96 body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_mDaxbCESIa3pda","request_duration_ms":2179}}' + - '{"last_request_metrics":{"request_id":"req_AdsZrTG6Yq2u2o","request_duration_ms":2263}}' Idempotency-Key: - - 332b7551-ddab-4ace-a294-ad25daf9e849 + - 60d3f344-1399-4952-9f8d-047460c450c0 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -256,7 +258,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:56 GMT + - Wed, 10 Dec 2025 05:02:36 GMT Content-Type: - application/json Content-Length: @@ -279,15 +281,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 332b7551-ddab-4ace-a294-ad25daf9e849 + - 60d3f344-1399-4952-9f8d-047460c450c0 Request-Id: - - req_Xu77OvIyW1ul4d + - req_ooITcivJw8PuiD Stripe-Account: - - acct_1SHydTKSlogJNuPb + - acct_1ScfXn3fl4422P96 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -302,9 +304,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHydTKSlogJNuPb", + "id": "acct_1ScfXn3fl4422P96", "object": "account", "deleted": true } - recorded_at: Tue, 14 Oct 2025 03:10:56 GMT + recorded_at: Wed, 10 Dec 2025 05:03:06 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_external_payment_url/returns_nil_when_an_order_is_not_supplied.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_external_payment_url/returns_nil_when_an_order_is_not_supplied.yml similarity index 85% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_external_payment_url/returns_nil_when_an_order_is_not_supplied.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_external_payment_url/returns_nil_when_an_order_is_not_supplied.yml index d4a064e944..3f1779f1cc 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_external_payment_url/returns_nil_when_an_order_is_not_supplied.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_external_payment_url/returns_nil_when_an_order_is_not_supplied.yml @@ -8,15 +8,15 @@ http_interactions: string: type=standard&country=AU&email=carrot.producer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Ok6dcW8sH4LWfb","request_duration_ms":3129}}' + - '{"last_request_metrics":{"request_id":"req_H3XVLVBupf8KVx","request_duration_ms":3117}}' Idempotency-Key: - - e6da2910-13ae-4873-9541-b2aa9375b690 + - eff3b8ab-e335-409e-ac9d-298caa1f94d0 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:46 GMT + - Wed, 10 Dec 2025 05:02:27 GMT Content-Type: - application/json Content-Length: - - '3446' + - '3528' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - e6da2910-13ae-4873-9541-b2aa9375b690 + - eff3b8ab-e335-409e-ac9d-298caa1f94d0 Original-Request: - - req_f843NDZrg9txss + - req_1YqoY76mHmNa6E Request-Id: - - req_f843NDZrg9txss + - req_1YqoY76mHmNa6E Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHydM3XtJRggIUI", + "id": "acct_1ScfXhKd0IopBUNG", "object": "account", "business_profile": { "annual_revenue": null, @@ -90,6 +90,7 @@ http_interactions: "minority_owned_business_designation": null, "name": null, "product_description": null, + "specified_commercial_transactions_act_url": null, "support_address": null, "support_email": null, "support_phone": null, @@ -114,7 +115,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1760411445, + "created": 1765342947, "default_currency": "aud", "details_submitted": false, "email": "carrot.producer@example.com", @@ -123,7 +124,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SHydM3XtJRggIUI/external_accounts" + "url": "/v1/accounts/acct_1ScfXhKd0IopBUNG/external_accounts" }, "future_requirements": { "alternatives": [], @@ -215,6 +216,7 @@ http_interactions: }, "statement_descriptor": null }, + "paypay_payments": {}, "sepa_debit_payments": {} }, "tos_acceptance": { @@ -224,24 +226,24 @@ http_interactions: }, "type": "standard" } - recorded_at: Tue, 14 Oct 2025 03:10:46 GMT + recorded_at: Wed, 10 Dec 2025 05:02:58 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SHydM3XtJRggIUI + uri: https://api.stripe.com/v1/accounts/acct_1ScfXhKd0IopBUNG body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_f843NDZrg9txss","request_duration_ms":2472}}' + - '{"last_request_metrics":{"request_id":"req_1YqoY76mHmNa6E","request_duration_ms":2268}}' Idempotency-Key: - - b8ed8194-e743-460b-a174-80b37af1e93e + - d99e2f25-a337-46e3-9d69-eaefe97d974e Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -256,7 +258,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:49 GMT + - Wed, 10 Dec 2025 05:02:30 GMT Content-Type: - application/json Content-Length: @@ -279,15 +281,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - b8ed8194-e743-460b-a174-80b37af1e93e + - d99e2f25-a337-46e3-9d69-eaefe97d974e Request-Id: - - req_xl9wEwr9qpffaK + - req_8gsugK0ZmLjdDT Stripe-Account: - - acct_1SHydM3XtJRggIUI + - acct_1ScfXhKd0IopBUNG Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -302,9 +304,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHydM3XtJRggIUI", + "id": "acct_1ScfXhKd0IopBUNG", "object": "account", "deleted": true } - recorded_at: Tue, 14 Oct 2025 03:10:49 GMT + recorded_at: Wed, 10 Dec 2025 05:03:01 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_purchase/completes_the_purchase.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_purchase/completes_the_purchase.yml similarity index 83% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_purchase/completes_the_purchase.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_purchase/completes_the_purchase.yml index 71849b81a9..3b50f04cf5 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_purchase/completes_the_purchase.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_purchase/completes_the_purchase.yml @@ -8,13 +8,13 @@ http_interactions: string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_SQ4f3FcbFiBaPJ","request_duration_ms":584}}' + - '{"last_request_metrics":{"request_id":"req_CIRtVxWWmRPgAk","request_duration_ms":625}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -29,11 +29,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:09:50 GMT + - Wed, 10 Dec 2025 05:01:38 GMT Content-Type: - application/json Content-Length: - - '1073' + - '1101' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -52,11 +52,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_UD2VyeaXM44lFF + - req_gLRQms9d5PQB4a Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -71,7 +71,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHycUKuuB1fWySnOTTbO80F", + "id": "pm_1ScfWvKuuB1fWySnuxryuazX", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -97,7 +97,7 @@ http_interactions: }, "country": "US", "display_brand": "mastercard", - "exp_month": 10, + "exp_month": 12, "exp_year": 2026, "fingerprint": "BL35fEFVcTTS5wpE", "funding": "credit", @@ -115,30 +115,31 @@ http_interactions: }, "wallet": null }, - "created": 1760411390, + "created": 1765342897, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:09:50 GMT + recorded_at: Wed, 10 Dec 2025 05:02:08 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=1000¤cy=aud&payment_method=pm_1SHycUKuuB1fWySnOTTbO80F&payment_method_types[0]=card&capture_method=manual + string: amount=1000¤cy=aud&payment_method=pm_card_mastercard&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_UD2VyeaXM44lFF","request_duration_ms":366}}' + - '{"last_request_metrics":{"request_id":"req_gLRQms9d5PQB4a","request_duration_ms":366}}' Idempotency-Key: - - 35492d1f-329f-44d2-8195-05f9ff25913f + - 327ab88d-cbe9-4c9f-92b6-7430a7551fab Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -155,11 +156,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:09:50 GMT + - Wed, 10 Dec 2025 05:01:38 GMT Content-Type: - application/json Content-Length: - - '1385' + - '1394' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -178,17 +179,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 35492d1f-329f-44d2-8195-05f9ff25913f + - 327ab88d-cbe9-4c9f-92b6-7430a7551fab Original-Request: - - req_iw8imeNgQboLMM + - req_oKwpRAPoIas68u Request-Id: - - req_iw8imeNgQboLMM + - req_oKwpRAPoIas68u Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -203,7 +204,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHycUKuuB1fWySn09b9hD39", + "id": "pi_3ScfWwKuuB1fWySn24JIBgug", "object": "payment_intent", "amount": 1000, "amount_capturable": 0, @@ -219,19 +220,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411390, + "created": 1765342898, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHycUKuuB1fWySnOTTbO80F", + "payment_method": "pm_1ScfWwKuuB1fWySna0jkVXX2", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -256,24 +257,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:09:50 GMT + recorded_at: Wed, 10 Dec 2025 05:02:09 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SHycUKuuB1fWySn09b9hD39/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWwKuuB1fWySn24JIBgug/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_iw8imeNgQboLMM","request_duration_ms":351}}' + - '{"last_request_metrics":{"request_id":"req_oKwpRAPoIas68u","request_duration_ms":462}}' Idempotency-Key: - - 07a359f8-cef6-4fb7-8f2b-43676606a839 + - cd9e94f6-0ba3-4e63-9a94-95144927f46f Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -290,11 +291,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:09:51 GMT + - Wed, 10 Dec 2025 05:01:39 GMT Content-Type: - application/json Content-Length: - - '1408' + - '1417' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -313,17 +314,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 07a359f8-cef6-4fb7-8f2b-43676606a839 + - cd9e94f6-0ba3-4e63-9a94-95144927f46f Original-Request: - - req_FGkM4Th0Xrp0sG + - req_8X19dvLLBKnzTE Request-Id: - - req_FGkM4Th0Xrp0sG + - req_8X19dvLLBKnzTE Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -338,7 +339,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHycUKuuB1fWySn09b9hD39", + "id": "pi_3ScfWwKuuB1fWySn24JIBgug", "object": "payment_intent", "amount": 1000, "amount_capturable": 1000, @@ -354,19 +355,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411390, + "created": 1765342898, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SHycUKuuB1fWySn027ZYkvG", + "latest_charge": "ch_3ScfWwKuuB1fWySn2EpukSUc", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHycUKuuB1fWySnOTTbO80F", + "payment_method": "pm_1ScfWwKuuB1fWySna0jkVXX2", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -391,22 +392,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:09:51 GMT + recorded_at: Wed, 10 Dec 2025 05:02:09 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SHycUKuuB1fWySn09b9hD39 + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWwKuuB1fWySn24JIBgug body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_FGkM4Th0Xrp0sG","request_duration_ms":752}}' + - '{"last_request_metrics":{"request_id":"req_8X19dvLLBKnzTE","request_duration_ms":817}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -421,11 +422,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:09:53 GMT + - Wed, 10 Dec 2025 05:01:40 GMT Content-Type: - application/json Content-Length: - - '1408' + - '1417' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -444,11 +445,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_iMC7kd1kcV2tHD + - req_8qPDLoQh6Cr0g3 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -463,7 +464,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHycUKuuB1fWySn09b9hD39", + "id": "pi_3ScfWwKuuB1fWySn24JIBgug", "object": "payment_intent", "amount": 1000, "amount_capturable": 1000, @@ -479,19 +480,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411390, + "created": 1765342898, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SHycUKuuB1fWySn027ZYkvG", + "latest_charge": "ch_3ScfWwKuuB1fWySn2EpukSUc", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHycUKuuB1fWySnOTTbO80F", + "payment_method": "pm_1ScfWwKuuB1fWySna0jkVXX2", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -516,10 +517,10 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:09:53 GMT + recorded_at: Wed, 10 Dec 2025 05:02:10 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SHycUKuuB1fWySn09b9hD39/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWwKuuB1fWySn24JIBgug/capture body: encoding: UTF-8 string: amount_to_capture=1000 @@ -529,7 +530,7 @@ http_interactions: Authorization: - "" User-Agent: - - Stripe/v1 ActiveMerchantBindings/1.133.0 + - Stripe/v1 ActiveMerchantBindings/1.137.0 Stripe-Version: - '2020-08-27' X-Stripe-Client-User-Agent: @@ -550,11 +551,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:09:54 GMT + - Wed, 10 Dec 2025 05:01:41 GMT Content-Type: - application/json Content-Length: - - '5486' + - '5515' Connection: - close Access-Control-Allow-Credentials: @@ -573,13 +574,13 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=eX-KcG8mKrMdAIVXHJ0lhA6ccfo2Q0KJ-9O1A-alo-dJ1KX6Ml8LECdy3BhL4ZWX7smIphstbOgh0BYE + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 6fc4e94b-012c-4195-a26f-76744bfd98d0 + - 6de9e4a3-9b72-449d-9587-fd8d8de5f70d Original-Request: - - req_P6n2puINvUfkiG + - req_mQbZRsMSvEKbQH Request-Id: - - req_P6n2puINvUfkiG + - req_mQbZRsMSvEKbQH Stripe-Should-Retry: - 'false' Stripe-Version: @@ -598,7 +599,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHycUKuuB1fWySn09b9hD39", + "id": "pi_3ScfWwKuuB1fWySn24JIBgug", "object": "payment_intent", "amount": 1000, "amount_capturable": 0, @@ -616,7 +617,7 @@ http_interactions: "object": "list", "data": [ { - "id": "ch_3SHycUKuuB1fWySn027ZYkvG", + "id": "ch_3ScfWwKuuB1fWySn2EpukSUc", "object": "charge", "amount": 1000, "amount_captured": 1000, @@ -625,7 +626,7 @@ http_interactions: "application": null, "application_fee": null, "application_fee_amount": null, - "balance_transaction": "txn_3SHycUKuuB1fWySn0Rn5U5ZV", + "balance_transaction": "txn_3ScfWwKuuB1fWySn2FqA1XQM", "billing_details": { "address": { "city": null, @@ -642,7 +643,7 @@ http_interactions: }, "calculated_statement_descriptor": "OFNOFNOFN", "captured": true, - "created": 1760411391, + "created": 1765342898, "currency": "aud", "customer": null, "description": null, @@ -665,26 +666,26 @@ http_interactions: "network_status": "approved_by_network", "reason": null, "risk_level": "normal", - "risk_score": 5, + "risk_score": 52, "seller_message": "Payment complete.", "type": "authorized" }, "paid": true, - "payment_intent": "pi_3SHycUKuuB1fWySn09b9hD39", - "payment_method": "pm_1SHycUKuuB1fWySnOTTbO80F", + "payment_intent": "pi_3ScfWwKuuB1fWySn24JIBgug", + "payment_method": "pm_1ScfWwKuuB1fWySna0jkVXX2", "payment_method_details": { "card": { "amount_authorized": 1000, - "authorization_code": "472507", + "authorization_code": "416639", "brand": "mastercard", - "capture_before": 1761016191, + "capture_before": 1765947698, "checks": { "address_line1_check": null, "address_postal_code_check": null, "cvc_check": "pass" }, "country": "US", - "exp_month": 10, + "exp_month": 12, "exp_year": 2026, "extended_authorization": { "status": "disabled" @@ -704,7 +705,7 @@ http_interactions: "network_token": { "used": false }, - "network_transaction_id": "MCCBL35FE1014", + "network_transaction_id": "MCCBL35FE1210", "overcapture": { "maximum_amount_capturable": 1000, "status": "unavailable" @@ -718,14 +719,14 @@ http_interactions: "radar_options": {}, "receipt_email": null, "receipt_number": null, - "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xRmlxRXNLdXVCMWZXeVNuKIL-tscGMgbk3Ph0-zQ6LBZuvMwgWpIc516hSo9DCRvCE6XpMVbrjt0xS5B9rNPBqbo-tELdIDfvIja7", + "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xRmlxRXNLdXVCMWZXeVNuKLX948kGMgbJk4v-ydI6LBaT5eUktqaDXAm2_m7Ns2jeka01SDmx4j-zZfWVgtX-4AoKXKbrSvhH-Zor", "refunded": false, "refunds": { "object": "list", "data": [], "has_more": false, "total_count": 0, - "url": "/v1/charges/ch_3SHycUKuuB1fWySn027ZYkvG/refunds" + "url": "/v1/charges/ch_3ScfWwKuuB1fWySn2EpukSUc/refunds" }, "review": null, "shipping": null, @@ -740,23 +741,24 @@ http_interactions: ], "has_more": false, "total_count": 1, - "url": "/v1/charges?payment_intent=pi_3SHycUKuuB1fWySn09b9hD39" + "url": "/v1/charges?payment_intent=pi_3ScfWwKuuB1fWySn24JIBgug" }, "client_secret": "", "confirmation_method": "automatic", - "created": 1760411390, + "created": 1765342898, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SHycUKuuB1fWySn027ZYkvG", + "latest_charge": "ch_3ScfWwKuuB1fWySn2EpukSUc", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHycUKuuB1fWySnOTTbO80F", + "payment_method": "pm_1ScfWwKuuB1fWySna0jkVXX2", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -781,7 +783,7 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:09:54 GMT + recorded_at: Wed, 10 Dec 2025 05:02:12 GMT - request: method: post uri: https://api.stripe.com/v1/accounts @@ -790,15 +792,15 @@ http_interactions: string: type=standard&country=AU&email=carrot.producer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_iMC7kd1kcV2tHD","request_duration_ms":305}}' + - '{"last_request_metrics":{"request_id":"req_8qPDLoQh6Cr0g3","request_duration_ms":315}}' Idempotency-Key: - - 7960bc09-dbcd-4a70-84a8-63251c5bda6a + - 5c92621b-fbef-47f7-bff9-8a08ae168d3d Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -815,11 +817,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:09:56 GMT + - Wed, 10 Dec 2025 05:01:43 GMT Content-Type: - application/json Content-Length: - - '3446' + - '3528' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -838,17 +840,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 7960bc09-dbcd-4a70-84a8-63251c5bda6a + - 5c92621b-fbef-47f7-bff9-8a08ae168d3d Original-Request: - - req_BXQ8ajU5FtDfj9 + - req_KdStMu6Yir4li5 Request-Id: - - req_BXQ8ajU5FtDfj9 + - req_KdStMu6Yir4li5 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -863,7 +865,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHycY3xTMVNd8NW", + "id": "acct_1ScfWzKcrUMCVLqh", "object": "account", "business_profile": { "annual_revenue": null, @@ -872,6 +874,7 @@ http_interactions: "minority_owned_business_designation": null, "name": null, "product_description": null, + "specified_commercial_transactions_act_url": null, "support_address": null, "support_email": null, "support_phone": null, @@ -896,7 +899,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1760411395, + "created": 1765342902, "default_currency": "aud", "details_submitted": false, "email": "carrot.producer@example.com", @@ -905,7 +908,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SHycY3xTMVNd8NW/external_accounts" + "url": "/v1/accounts/acct_1ScfWzKcrUMCVLqh/external_accounts" }, "future_requirements": { "alternatives": [], @@ -997,6 +1000,7 @@ http_interactions: }, "statement_descriptor": null }, + "paypay_payments": {}, "sepa_debit_payments": {} }, "tos_acceptance": { @@ -1006,24 +1010,24 @@ http_interactions: }, "type": "standard" } - recorded_at: Tue, 14 Oct 2025 03:09:56 GMT + recorded_at: Wed, 10 Dec 2025 05:02:14 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SHycY3xTMVNd8NW + uri: https://api.stripe.com/v1/accounts/acct_1ScfWzKcrUMCVLqh body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_BXQ8ajU5FtDfj9","request_duration_ms":2196}}' + - '{"last_request_metrics":{"request_id":"req_KdStMu6Yir4li5","request_duration_ms":2340}}' Idempotency-Key: - - 83a63a59-c28f-48d5-9a1a-b6fdc306d108 + - 4c4a11eb-6642-4981-b004-4a5fa3c987af Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -1038,7 +1042,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:09:59 GMT + - Wed, 10 Dec 2025 05:01:46 GMT Content-Type: - application/json Content-Length: @@ -1061,15 +1065,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 83a63a59-c28f-48d5-9a1a-b6fdc306d108 + - 4c4a11eb-6642-4981-b004-4a5fa3c987af Request-Id: - - req_zWZooOcbU5sXDZ + - req_tZ5uceml4HH4q7 Stripe-Account: - - acct_1SHycY3xTMVNd8NW + - acct_1ScfWzKcrUMCVLqh Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -1084,9 +1088,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHycY3xTMVNd8NW", + "id": "acct_1ScfWzKcrUMCVLqh", "object": "account", "deleted": true } - recorded_at: Tue, 14 Oct 2025 03:09:59 GMT + recorded_at: Wed, 10 Dec 2025 05:02:16 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_purchase/provides_an_error_message_to_help_developer_debug.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_purchase/provides_an_error_message_to_help_developer_debug.yml similarity index 83% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_purchase/provides_an_error_message_to_help_developer_debug.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_purchase/provides_an_error_message_to_help_developer_debug.yml index 68499c3d67..188065f6ee 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_purchase/provides_an_error_message_to_help_developer_debug.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_purchase/provides_an_error_message_to_help_developer_debug.yml @@ -8,13 +8,13 @@ http_interactions: string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_zWZooOcbU5sXDZ","request_duration_ms":2896}}' + - '{"last_request_metrics":{"request_id":"req_tZ5uceml4HH4q7","request_duration_ms":2414}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -29,11 +29,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:00 GMT + - Wed, 10 Dec 2025 05:01:46 GMT Content-Type: - application/json Content-Length: - - '1073' + - '1101' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -52,11 +52,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_cPcuH1FL5rL8CK + - req_B6N7Q8a4t5IUuT Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -71,7 +71,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHycdKuuB1fWySnTyZMRmRK", + "id": "pm_1ScfX4KuuB1fWySnwEki4Rh5", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -97,7 +97,7 @@ http_interactions: }, "country": "US", "display_brand": "mastercard", - "exp_month": 10, + "exp_month": 12, "exp_year": 2026, "fingerprint": "BL35fEFVcTTS5wpE", "funding": "credit", @@ -115,30 +115,31 @@ http_interactions: }, "wallet": null }, - "created": 1760411399, + "created": 1765342906, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:09:59 GMT + recorded_at: Wed, 10 Dec 2025 05:02:17 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=1000¤cy=aud&payment_method=pm_1SHycdKuuB1fWySnTyZMRmRK&payment_method_types[0]=card&capture_method=manual + string: amount=1000¤cy=aud&payment_method=pm_card_mastercard&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_cPcuH1FL5rL8CK","request_duration_ms":340}}' + - '{"last_request_metrics":{"request_id":"req_B6N7Q8a4t5IUuT","request_duration_ms":382}}' Idempotency-Key: - - e2c9face-6731-488c-9de2-6d45189fcce4 + - 13bf9fd1-0040-412f-ac11-b8790b0c2191 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -155,11 +156,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:00 GMT + - Wed, 10 Dec 2025 05:01:47 GMT Content-Type: - application/json Content-Length: - - '1385' + - '1394' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -178,17 +179,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - e2c9face-6731-488c-9de2-6d45189fcce4 + - 13bf9fd1-0040-412f-ac11-b8790b0c2191 Original-Request: - - req_cmJeBaYWupZWAD + - req_r5mUlzDEQfGfw5 Request-Id: - - req_cmJeBaYWupZWAD + - req_r5mUlzDEQfGfw5 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -203,7 +204,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHyceKuuB1fWySn0bazc8MA", + "id": "pi_3ScfX4KuuB1fWySn0bP9PKdK", "object": "payment_intent", "amount": 1000, "amount_capturable": 0, @@ -219,19 +220,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411400, + "created": 1765342906, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHycdKuuB1fWySnTyZMRmRK", + "payment_method": "pm_1ScfX4KuuB1fWySnqijRnJk0", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -256,24 +257,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:10:00 GMT + recorded_at: Wed, 10 Dec 2025 05:02:17 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SHyceKuuB1fWySn0bazc8MA/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfX4KuuB1fWySn0bP9PKdK/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_cmJeBaYWupZWAD","request_duration_ms":361}}' + - '{"last_request_metrics":{"request_id":"req_r5mUlzDEQfGfw5","request_duration_ms":457}}' Idempotency-Key: - - 9b2b225b-408e-4633-b45c-fc5a9318796b + - 01e87a41-630a-4507-aa50-575edb825c30 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -290,11 +291,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:01 GMT + - Wed, 10 Dec 2025 05:01:47 GMT Content-Type: - application/json Content-Length: - - '1408' + - '1417' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -313,17 +314,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 9b2b225b-408e-4633-b45c-fc5a9318796b + - 01e87a41-630a-4507-aa50-575edb825c30 Original-Request: - - req_ZJ4A1HuBfr2Isz + - req_QCMK8dE79JS8vk Request-Id: - - req_ZJ4A1HuBfr2Isz + - req_QCMK8dE79JS8vk Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -338,7 +339,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHyceKuuB1fWySn0bazc8MA", + "id": "pi_3ScfX4KuuB1fWySn0bP9PKdK", "object": "payment_intent", "amount": 1000, "amount_capturable": 1000, @@ -354,19 +355,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411400, + "created": 1765342906, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SHyceKuuB1fWySn0nTzFpmm", + "latest_charge": "ch_3ScfX4KuuB1fWySn0WyKMRmj", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHycdKuuB1fWySnTyZMRmRK", + "payment_method": "pm_1ScfX4KuuB1fWySnqijRnJk0", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -391,7 +392,7 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:10:01 GMT + recorded_at: Wed, 10 Dec 2025 05:02:18 GMT - request: method: post uri: https://api.stripe.com/v1/accounts @@ -400,15 +401,15 @@ http_interactions: string: type=standard&country=AU&email=carrot.producer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_ZJ4A1HuBfr2Isz","request_duration_ms":795}}' + - '{"last_request_metrics":{"request_id":"req_QCMK8dE79JS8vk","request_duration_ms":777}}' Idempotency-Key: - - a5d1409f-1b43-495a-8895-425f8746c707 + - 9e010928-7ee0-43a8-9328-e8668713fbb7 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -425,11 +426,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:06 GMT + - Wed, 10 Dec 2025 05:01:50 GMT Content-Type: - application/json Content-Length: - - '3446' + - '3528' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -448,17 +449,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - a5d1409f-1b43-495a-8895-425f8746c707 + - 9e010928-7ee0-43a8-9328-e8668713fbb7 Original-Request: - - req_dZsypMoEpDdmzJ + - req_qAN34l4DRcS5Dm Request-Id: - - req_dZsypMoEpDdmzJ + - req_qAN34l4DRcS5Dm Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -473,7 +474,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyci3SsZuVIm8E", + "id": "acct_1ScfX6KvkgS6bIc9", "object": "account", "business_profile": { "annual_revenue": null, @@ -482,6 +483,7 @@ http_interactions: "minority_owned_business_designation": null, "name": null, "product_description": null, + "specified_commercial_transactions_act_url": null, "support_address": null, "support_email": null, "support_phone": null, @@ -506,7 +508,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1760411405, + "created": 1765342909, "default_currency": "aud", "details_submitted": false, "email": "carrot.producer@example.com", @@ -515,7 +517,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SHyci3SsZuVIm8E/external_accounts" + "url": "/v1/accounts/acct_1ScfX6KvkgS6bIc9/external_accounts" }, "future_requirements": { "alternatives": [], @@ -607,6 +609,7 @@ http_interactions: }, "statement_descriptor": null }, + "paypay_payments": {}, "sepa_debit_payments": {} }, "tos_acceptance": { @@ -616,24 +619,24 @@ http_interactions: }, "type": "standard" } - recorded_at: Tue, 14 Oct 2025 03:10:06 GMT + recorded_at: Wed, 10 Dec 2025 05:02:21 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SHyci3SsZuVIm8E + uri: https://api.stripe.com/v1/accounts/acct_1ScfX6KvkgS6bIc9 body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_dZsypMoEpDdmzJ","request_duration_ms":2223}}' + - '{"last_request_metrics":{"request_id":"req_qAN34l4DRcS5Dm","request_duration_ms":2177}}' Idempotency-Key: - - 948b0533-e2b4-4216-b19b-1b33eea2d0c6 + - 8b9bf74a-0ab3-46bc-b83e-bc8f73127d9b Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -648,7 +651,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:09 GMT + - Wed, 10 Dec 2025 05:01:53 GMT Content-Type: - application/json Content-Length: @@ -671,15 +674,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 948b0533-e2b4-4216-b19b-1b33eea2d0c6 + - 8b9bf74a-0ab3-46bc-b83e-bc8f73127d9b Request-Id: - - req_uk6nYLxllK30Hw + - req_AyNDJNH7SnAbJ0 Stripe-Account: - - acct_1SHyci3SsZuVIm8E + - acct_1ScfX6KvkgS6bIc9 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -694,9 +697,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyci3SsZuVIm8E", + "id": "acct_1ScfX6KvkgS6bIc9", "object": "account", "deleted": true } - recorded_at: Tue, 14 Oct 2025 03:10:09 GMT + recorded_at: Wed, 10 Dec 2025 05:02:24 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_void/with_a_confirmed_payment/refunds_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_void/with_a_confirmed_payment/refunds_the_payment.yml similarity index 83% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_void/with_a_confirmed_payment/refunds_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_void/with_a_confirmed_payment/refunds_the_payment.yml index 8a04736dae..ff7d79a467 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_void/with_a_confirmed_payment/refunds_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_void/with_a_confirmed_payment/refunds_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: type=standard&country=AU&email=carrot.producer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_uk6nYLxllK30Hw","request_duration_ms":3488}}' + - '{"last_request_metrics":{"request_id":"req_AyNDJNH7SnAbJ0","request_duration_ms":2988}}' Idempotency-Key: - - e690987a-db47-4d57-8c4d-7bf6ca0e6077 + - 72167437-c097-490f-874c-cd8c831779a9 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:11 GMT + - Wed, 10 Dec 2025 05:01:55 GMT Content-Type: - application/json Content-Length: - - '3446' + - '3528' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - e690987a-db47-4d57-8c4d-7bf6ca0e6077 + - 72167437-c097-490f-874c-cd8c831779a9 Original-Request: - - req_b5wGV6II03wyrQ + - req_XfJmfw1dOSGILu Request-Id: - - req_b5wGV6II03wyrQ + - req_XfJmfw1dOSGILu Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHycn3skzUYVCEC", + "id": "acct_1ScfXB3ubCDg51hB", "object": "account", "business_profile": { "annual_revenue": null, @@ -90,6 +90,7 @@ http_interactions: "minority_owned_business_designation": null, "name": null, "product_description": null, + "specified_commercial_transactions_act_url": null, "support_address": null, "support_email": null, "support_phone": null, @@ -114,7 +115,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1760411411, + "created": 1765342915, "default_currency": "aud", "details_submitted": false, "email": "carrot.producer@example.com", @@ -123,7 +124,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SHycn3skzUYVCEC/external_accounts" + "url": "/v1/accounts/acct_1ScfXB3ubCDg51hB/external_accounts" }, "future_requirements": { "alternatives": [], @@ -215,6 +216,7 @@ http_interactions: }, "statement_descriptor": null }, + "paypay_payments": {}, "sepa_debit_payments": {} }, "tos_acceptance": { @@ -224,7 +226,7 @@ http_interactions: }, "type": "standard" } - recorded_at: Tue, 14 Oct 2025 03:10:11 GMT + recorded_at: Wed, 10 Dec 2025 05:02:26 GMT - request: method: get uri: https://api.stripe.com/v1/payment_methods/pm_card_mastercard @@ -233,13 +235,13 @@ http_interactions: string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_b5wGV6II03wyrQ","request_duration_ms":2319}}' + - '{"last_request_metrics":{"request_id":"req_XfJmfw1dOSGILu","request_duration_ms":2389}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -254,11 +256,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:13 GMT + - Wed, 10 Dec 2025 05:01:56 GMT Content-Type: - application/json Content-Length: - - '1073' + - '1101' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -277,11 +279,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_0ecdOMMOCmFAGW + - req_3Y88GknOrpc6eC Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -296,7 +298,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHycrKuuB1fWySn9z38cxBS", + "id": "pm_1ScfXEKuuB1fWySnKHGWe87f", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -322,7 +324,7 @@ http_interactions: }, "country": "US", "display_brand": "mastercard", - "exp_month": 10, + "exp_month": 12, "exp_year": 2026, "fingerprint": "BL35fEFVcTTS5wpE", "funding": "credit", @@ -340,13 +342,14 @@ http_interactions: }, "wallet": null }, - "created": 1760411413, + "created": 1765342916, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:10:13 GMT + recorded_at: Wed, 10 Dec 2025 05:02:27 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents @@ -355,17 +358,17 @@ http_interactions: string: amount=1000¤cy=aud&payment_method=pm_card_mastercard&payment_method_types[0]=card&capture_method=automatic&confirm=true headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_0ecdOMMOCmFAGW","request_duration_ms":358}}' + - '{"last_request_metrics":{"request_id":"req_3Y88GknOrpc6eC","request_duration_ms":374}}' Idempotency-Key: - - 6b385a83-08b5-42d2-bcf1-9f8c7a19d766 + - c7be6bbd-07f7-4658-8419-4b19fec576a4 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Stripe-Account: - - acct_1SHycn3skzUYVCEC + - acct_1ScfXB3ubCDg51hB X-Stripe-Client-User-Agent: - "" Content-Type: @@ -382,11 +385,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:14 GMT + - Wed, 10 Dec 2025 05:01:58 GMT Content-Type: - application/json Content-Length: - - '1437' + - '1446' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -405,19 +408,19 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 6b385a83-08b5-42d2-bcf1-9f8c7a19d766 + - c7be6bbd-07f7-4658-8419-4b19fec576a4 Original-Request: - - req_G0oH9VF0R9KEta + - req_6IJzDvAWqb4riR Request-Id: - - req_G0oH9VF0R9KEta + - req_6IJzDvAWqb4riR Stripe-Account: - - acct_1SHycn3skzUYVCEC + - acct_1ScfXB3ubCDg51hB Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -432,7 +435,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHycs3skzUYVCEC1AYCphJu", + "id": "pi_3ScfXF3ubCDg51hB1EF2NrbM", "object": "payment_intent", "amount": 1000, "amount_capturable": 0, @@ -448,19 +451,19 @@ http_interactions: "capture_method": "automatic", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411414, + "created": 1765342917, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SHycs3skzUYVCEC1ISvEA1K", + "latest_charge": "ch_3ScfXF3ubCDg51hB1zQnQuuE", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHycr3skzUYVCECOQkFtcOs", + "payment_method": "pm_1ScfXF3ubCDg51hBg6KiRULD", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -485,24 +488,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:10:14 GMT + recorded_at: Wed, 10 Dec 2025 05:02:28 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SHycs3skzUYVCEC1AYCphJu + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfXF3ubCDg51hB1EF2NrbM body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_G0oH9VF0R9KEta","request_duration_ms":1270}}' + - '{"last_request_metrics":{"request_id":"req_6IJzDvAWqb4riR","request_duration_ms":1390}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Stripe-Account: - - acct_1SHycn3skzUYVCEC + - acct_1ScfXB3ubCDg51hB X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -517,11 +520,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:15 GMT + - Wed, 10 Dec 2025 05:01:58 GMT Content-Type: - application/json Content-Length: - - '1437' + - '1446' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -540,13 +543,13 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_8g5n89kS2wZGgD + - req_MrZghyD9DVmIzF Stripe-Account: - - acct_1SHycn3skzUYVCEC + - acct_1ScfXB3ubCDg51hB Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -561,7 +564,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHycs3skzUYVCEC1AYCphJu", + "id": "pi_3ScfXF3ubCDg51hB1EF2NrbM", "object": "payment_intent", "amount": 1000, "amount_capturable": 0, @@ -577,19 +580,19 @@ http_interactions: "capture_method": "automatic", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411414, + "created": 1765342917, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SHycs3skzUYVCEC1ISvEA1K", + "latest_charge": "ch_3ScfXF3ubCDg51hB1zQnQuuE", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHycr3skzUYVCECOQkFtcOs", + "payment_method": "pm_1ScfXF3ubCDg51hBg6KiRULD", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -614,10 +617,10 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:10:15 GMT + recorded_at: Wed, 10 Dec 2025 05:02:29 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SHycs3skzUYVCEC1AYCphJu + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfXF3ubCDg51hB1EF2NrbM body: encoding: US-ASCII string: '' @@ -625,7 +628,7 @@ http_interactions: Authorization: - "" User-Agent: - - Stripe/v1 ActiveMerchantBindings/1.133.0 + - Stripe/v1 ActiveMerchantBindings/1.137.0 Stripe-Version: - '2020-08-27' X-Stripe-Client-User-Agent: @@ -633,7 +636,7 @@ http_interactions: X-Stripe-Client-User-Metadata: - '{"ip":null}' Stripe-Account: - - acct_1SHycn3skzUYVCEC + - acct_1ScfXB3ubCDg51hB Connection: - close Accept-Encoding: @@ -648,11 +651,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:15 GMT + - Wed, 10 Dec 2025 05:01:59 GMT Content-Type: - application/json Content-Length: - - '5484' + - '5512' Connection: - close Access-Control-Allow-Credentials: @@ -671,11 +674,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=EBEdXvGq7vyH5-HXur0mgbtI571KR9hWqG0PWAUMbAFCjbwUqpD4IZrGD38VgDCDiHYssbcVZ5ZF0Ci4 Request-Id: - - req_fwP6lW8m0wUCdg + - req_6aE2TBM4jlIIiB Stripe-Account: - - acct_1SHycn3skzUYVCEC + - acct_1ScfXB3ubCDg51hB Stripe-Version: - '2020-08-27' Vary: @@ -692,7 +695,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHycs3skzUYVCEC1AYCphJu", + "id": "pi_3ScfXF3ubCDg51hB1EF2NrbM", "object": "payment_intent", "amount": 1000, "amount_capturable": 0, @@ -710,7 +713,7 @@ http_interactions: "object": "list", "data": [ { - "id": "ch_3SHycs3skzUYVCEC1ISvEA1K", + "id": "ch_3ScfXF3ubCDg51hB1zQnQuuE", "object": "charge", "amount": 1000, "amount_captured": 1000, @@ -718,7 +721,7 @@ http_interactions: "application": "", "application_fee": null, "application_fee_amount": null, - "balance_transaction": "txn_3SHycs3skzUYVCEC1shXRYZC", + "balance_transaction": "txn_3ScfXF3ubCDg51hB14iqjIaY", "billing_details": { "address": { "city": null, @@ -735,7 +738,7 @@ http_interactions: }, "calculated_statement_descriptor": "OFNOFNOFN", "captured": true, - "created": 1760411414, + "created": 1765342917, "currency": "aud", "customer": null, "description": null, @@ -758,17 +761,17 @@ http_interactions: "network_status": "approved_by_network", "reason": null, "risk_level": "normal", - "risk_score": 14, + "risk_score": 18, "seller_message": "Payment complete.", "type": "authorized" }, "paid": true, - "payment_intent": "pi_3SHycs3skzUYVCEC1AYCphJu", - "payment_method": "pm_1SHycr3skzUYVCECOQkFtcOs", + "payment_intent": "pi_3ScfXF3ubCDg51hB1EF2NrbM", + "payment_method": "pm_1ScfXF3ubCDg51hBg6KiRULD", "payment_method_details": { "card": { "amount_authorized": 1000, - "authorization_code": "345157", + "authorization_code": "730271", "brand": "mastercard", "checks": { "address_line1_check": null, @@ -776,7 +779,7 @@ http_interactions: "cvc_check": "pass" }, "country": "US", - "exp_month": 10, + "exp_month": 12, "exp_year": 2026, "extended_authorization": { "status": "disabled" @@ -796,7 +799,7 @@ http_interactions: "network_token": { "used": false }, - "network_transaction_id": "MCCEGE38L1014", + "network_transaction_id": "MCCIQMDCO1210", "overcapture": { "maximum_amount_capturable": 1000, "status": "unavailable" @@ -810,14 +813,14 @@ http_interactions: "radar_options": {}, "receipt_email": null, "receipt_number": null, - "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xU0h5Y24zc2t6VVlWQ0VDKJf-tscGMgZfXVhqRVA6LBb9C14JHQuAAkH2hcAHPHVhIUAugWYFJHwOflMDp312I3bTHeJM_4za-jiT", + "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xU2NmWEIzdWJDRGc1MWhCKMb948kGMgbltMPYbs86LBaTw5dh5CterN-P4qfBqa1d8YdfiXu-hRaKAvPZivpJL3na0_XoQqCLzJ2j", "refunded": false, "refunds": { "object": "list", "data": [], "has_more": false, "total_count": 0, - "url": "/v1/charges/ch_3SHycs3skzUYVCEC1ISvEA1K/refunds" + "url": "/v1/charges/ch_3ScfXF3ubCDg51hB1zQnQuuE/refunds" }, "review": null, "shipping": null, @@ -832,23 +835,24 @@ http_interactions: ], "has_more": false, "total_count": 1, - "url": "/v1/charges?payment_intent=pi_3SHycs3skzUYVCEC1AYCphJu" + "url": "/v1/charges?payment_intent=pi_3ScfXF3ubCDg51hB1EF2NrbM" }, "client_secret": "", "confirmation_method": "automatic", - "created": 1760411414, + "created": 1765342917, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SHycs3skzUYVCEC1ISvEA1K", + "latest_charge": "ch_3ScfXF3ubCDg51hB1zQnQuuE", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHycr3skzUYVCECOQkFtcOs", + "payment_method": "pm_1ScfXF3ubCDg51hBg6KiRULD", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -873,10 +877,10 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:10:15 GMT + recorded_at: Wed, 10 Dec 2025 05:02:29 GMT - request: method: post - uri: https://api.stripe.com/v1/charges/ch_3SHycs3skzUYVCEC1ISvEA1K/refunds + uri: https://api.stripe.com/v1/charges/ch_3ScfXF3ubCDg51hB1zQnQuuE/refunds body: encoding: UTF-8 string: amount=1000&expand[0]=charge @@ -886,7 +890,7 @@ http_interactions: Authorization: - "" User-Agent: - - Stripe/v1 ActiveMerchantBindings/1.133.0 + - Stripe/v1 ActiveMerchantBindings/1.137.0 Stripe-Version: - '2020-08-27' X-Stripe-Client-User-Agent: @@ -894,7 +898,7 @@ http_interactions: X-Stripe-Client-User-Metadata: - '{"ip":null}' Stripe-Account: - - acct_1SHycn3skzUYVCEC + - acct_1ScfXB3ubCDg51hB Connection: - close Accept-Encoding: @@ -909,7 +913,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:16 GMT + - Wed, 10 Dec 2025 05:02:00 GMT Content-Type: - application/json Content-Length: @@ -932,15 +936,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=QTOnARtZwAtE_Ix7LSmk3ePfHPCdmafjtJ4iqHQG1vOq6wGS7t_x-VVk-Xre4OKwr12AVJ1C5Z37amoS + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=x2T6EiV0aVoqi7bptLcBBCRyz6_e_jOpOr8TL2aF1FPiuN1gl_B4E090YPWwRcl4Bf0Zj0kRKYN4666x Idempotency-Key: - - d0b2483b-7816-415f-ad36-240ece943b7d + - c2634127-5100-4781-8a62-799beb129a62 Original-Request: - - req_URTTVTzPvEtvTs + - req_BOHaNpsskSueUX Request-Id: - - req_URTTVTzPvEtvTs + - req_BOHaNpsskSueUX Stripe-Account: - - acct_1SHycn3skzUYVCEC + - acct_1ScfXB3ubCDg51hB Stripe-Should-Retry: - 'false' Stripe-Version: @@ -959,12 +963,12 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "re_3SHycs3skzUYVCEC1l8e8VHC", + "id": "re_3ScfXF3ubCDg51hB192EYU5q", "object": "refund", "amount": 1000, - "balance_transaction": "txn_3SHycs3skzUYVCEC1NDLMfcZ", + "balance_transaction": "txn_3ScfXF3ubCDg51hB1K5veexz", "charge": { - "id": "ch_3SHycs3skzUYVCEC1ISvEA1K", + "id": "ch_3ScfXF3ubCDg51hB1zQnQuuE", "object": "charge", "amount": 1000, "amount_captured": 1000, @@ -972,7 +976,7 @@ http_interactions: "application": "", "application_fee": null, "application_fee_amount": null, - "balance_transaction": "txn_3SHycs3skzUYVCEC1shXRYZC", + "balance_transaction": "txn_3ScfXF3ubCDg51hB14iqjIaY", "billing_details": { "address": { "city": null, @@ -989,7 +993,7 @@ http_interactions: }, "calculated_statement_descriptor": "OFNOFNOFN", "captured": true, - "created": 1760411414, + "created": 1765342917, "currency": "aud", "customer": null, "description": null, @@ -1012,17 +1016,17 @@ http_interactions: "network_status": "approved_by_network", "reason": null, "risk_level": "normal", - "risk_score": 14, + "risk_score": 18, "seller_message": "Payment complete.", "type": "authorized" }, "paid": true, - "payment_intent": "pi_3SHycs3skzUYVCEC1AYCphJu", - "payment_method": "pm_1SHycr3skzUYVCECOQkFtcOs", + "payment_intent": "pi_3ScfXF3ubCDg51hB1EF2NrbM", + "payment_method": "pm_1ScfXF3ubCDg51hBg6KiRULD", "payment_method_details": { "card": { "amount_authorized": 1000, - "authorization_code": "345157", + "authorization_code": "730271", "brand": "mastercard", "checks": { "address_line1_check": null, @@ -1030,7 +1034,7 @@ http_interactions: "cvc_check": "pass" }, "country": "US", - "exp_month": 10, + "exp_month": 12, "exp_year": 2026, "extended_authorization": { "status": "disabled" @@ -1050,7 +1054,7 @@ http_interactions: "network_token": { "used": false }, - "network_transaction_id": "MCCEGE38L1014", + "network_transaction_id": "MCCIQMDCO1210", "overcapture": { "maximum_amount_capturable": 1000, "status": "unavailable" @@ -1064,18 +1068,18 @@ http_interactions: "radar_options": {}, "receipt_email": null, "receipt_number": null, - "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xU0h5Y24zc2t6VVlWQ0VDKJj-tscGMgYuvUg0pYk6LBY3-srCDRqzE1oHEULenKxQKsak07pDMofIYSk0ldxDWan4mDzJUNBYRUBw", + "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xU2NmWEIzdWJDRGc1MWhCKMj948kGMganLz42J646LBYCUKcSHeo2qFSpGY0-5vxFW70_sYGVlJk4jJlvX9EtuwQu16rMvSWy7NeQ", "refunded": true, "refunds": { "object": "list", "data": [ { - "id": "re_3SHycs3skzUYVCEC1l8e8VHC", + "id": "re_3ScfXF3ubCDg51hB192EYU5q", "object": "refund", "amount": 1000, - "balance_transaction": "txn_3SHycs3skzUYVCEC1NDLMfcZ", - "charge": "ch_3SHycs3skzUYVCEC1ISvEA1K", - "created": 1760411416, + "balance_transaction": "txn_3ScfXF3ubCDg51hB1K5veexz", + "charge": "ch_3ScfXF3ubCDg51hB1zQnQuuE", + "created": 1765342919, "currency": "aud", "destination_details": { "card": { @@ -1086,7 +1090,7 @@ http_interactions: "type": "card" }, "metadata": {}, - "payment_intent": "pi_3SHycs3skzUYVCEC1AYCphJu", + "payment_intent": "pi_3ScfXF3ubCDg51hB1EF2NrbM", "reason": null, "receipt_number": null, "source_transfer_reversal": null, @@ -1096,7 +1100,7 @@ http_interactions: ], "has_more": false, "total_count": 1, - "url": "/v1/charges/ch_3SHycs3skzUYVCEC1ISvEA1K/refunds" + "url": "/v1/charges/ch_3ScfXF3ubCDg51hB1zQnQuuE/refunds" }, "review": null, "shipping": null, @@ -1108,7 +1112,7 @@ http_interactions: "transfer_data": null, "transfer_group": null }, - "created": 1760411416, + "created": 1765342919, "currency": "aud", "destination_details": { "card": { @@ -1119,31 +1123,31 @@ http_interactions: "type": "card" }, "metadata": {}, - "payment_intent": "pi_3SHycs3skzUYVCEC1AYCphJu", + "payment_intent": "pi_3ScfXF3ubCDg51hB1EF2NrbM", "reason": null, "receipt_number": null, "source_transfer_reversal": null, "status": "succeeded", "transfer_reversal": null } - recorded_at: Tue, 14 Oct 2025 03:10:16 GMT + recorded_at: Wed, 10 Dec 2025 05:02:30 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SHycn3skzUYVCEC + uri: https://api.stripe.com/v1/accounts/acct_1ScfXB3ubCDg51hB body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_8g5n89kS2wZGgD","request_duration_ms":323}}' + - '{"last_request_metrics":{"request_id":"req_MrZghyD9DVmIzF","request_duration_ms":359}}' Idempotency-Key: - - dede66b8-1513-4976-90c9-939afe1f5f10 + - 1d47a616-1a5d-4227-bfd6-f57671cbc940 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -1158,7 +1162,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:19 GMT + - Wed, 10 Dec 2025 05:02:02 GMT Content-Type: - application/json Content-Length: @@ -1181,15 +1185,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - dede66b8-1513-4976-90c9-939afe1f5f10 + - 1d47a616-1a5d-4227-bfd6-f57671cbc940 Request-Id: - - req_9i4J8gJf2OrRbM + - req_2DrUZzVPTv60ql Stripe-Account: - - acct_1SHycn3skzUYVCEC + - acct_1ScfXB3ubCDg51hB Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -1204,9 +1208,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHycn3skzUYVCEC", + "id": "acct_1ScfXB3ubCDg51hB", "object": "account", "deleted": true } - recorded_at: Tue, 14 Oct 2025 03:10:19 GMT + recorded_at: Wed, 10 Dec 2025 05:02:33 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_void/with_a_voidable_payment/void_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_void/with_a_voidable_payment/void_the_payment.yml similarity index 83% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_void/with_a_voidable_payment/void_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_void/with_a_voidable_payment/void_the_payment.yml index 7f4648006f..b85c26ae3d 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Spree_Gateway_StripeSCA/_void/with_a_voidable_payment/void_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Spree_Gateway_StripeSCA/_void/with_a_voidable_payment/void_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: type=standard&country=AU&email=carrot.producer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_9i4J8gJf2OrRbM","request_duration_ms":2987}}' + - '{"last_request_metrics":{"request_id":"req_2DrUZzVPTv60ql","request_duration_ms":2609}}' Idempotency-Key: - - c9b93e7d-95a1-4b41-a32c-145d9c9bd525 + - 9fc486d9-99d2-4d98-a6bb-504f56384e25 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:22 GMT + - Wed, 10 Dec 2025 05:02:05 GMT Content-Type: - application/json Content-Length: - - '3446' + - '3528' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - c9b93e7d-95a1-4b41-a32c-145d9c9bd525 + - 9fc486d9-99d2-4d98-a6bb-504f56384e25 Original-Request: - - req_BCpQHP3fzu85Tz + - req_1sDo2kgcanXSFB Request-Id: - - req_BCpQHP3fzu85Tz + - req_1sDo2kgcanXSFB Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHycy3mFixorNyN", + "id": "acct_1ScfXLKk8Ei30oQ0", "object": "account", "business_profile": { "annual_revenue": null, @@ -90,6 +90,7 @@ http_interactions: "minority_owned_business_designation": null, "name": null, "product_description": null, + "specified_commercial_transactions_act_url": null, "support_address": null, "support_email": null, "support_phone": null, @@ -114,7 +115,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1760411421, + "created": 1765342924, "default_currency": "aud", "details_submitted": false, "email": "carrot.producer@example.com", @@ -123,7 +124,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SHycy3mFixorNyN/external_accounts" + "url": "/v1/accounts/acct_1ScfXLKk8Ei30oQ0/external_accounts" }, "future_requirements": { "alternatives": [], @@ -215,6 +216,7 @@ http_interactions: }, "statement_descriptor": null }, + "paypay_payments": {}, "sepa_debit_payments": {} }, "tos_acceptance": { @@ -224,7 +226,7 @@ http_interactions: }, "type": "standard" } - recorded_at: Tue, 14 Oct 2025 03:10:22 GMT + recorded_at: Wed, 10 Dec 2025 05:02:35 GMT - request: method: get uri: https://api.stripe.com/v1/payment_methods/pm_card_mastercard @@ -233,13 +235,13 @@ http_interactions: string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_BCpQHP3fzu85Tz","request_duration_ms":2242}}' + - '{"last_request_metrics":{"request_id":"req_1sDo2kgcanXSFB","request_duration_ms":2323}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -254,11 +256,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:23 GMT + - Wed, 10 Dec 2025 05:02:06 GMT Content-Type: - application/json Content-Length: - - '1073' + - '1101' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -277,11 +279,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_8LqIlAZWh95WCq + - req_nfCdEZCaFbM7Pw Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -296,7 +298,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHyd1KuuB1fWySnIod0szJz", + "id": "pm_1ScfXNKuuB1fWySnkDslRdQ0", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -322,7 +324,7 @@ http_interactions: }, "country": "US", "display_brand": "mastercard", - "exp_month": 10, + "exp_month": 12, "exp_year": 2026, "fingerprint": "BL35fEFVcTTS5wpE", "funding": "credit", @@ -340,13 +342,14 @@ http_interactions: }, "wallet": null }, - "created": 1760411423, + "created": 1765342925, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:10:23 GMT + recorded_at: Wed, 10 Dec 2025 05:02:36 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents @@ -355,17 +358,17 @@ http_interactions: string: amount=1000¤cy=aud&payment_method=pm_card_mastercard&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_8LqIlAZWh95WCq","request_duration_ms":351}}' + - '{"last_request_metrics":{"request_id":"req_nfCdEZCaFbM7Pw","request_duration_ms":370}}' Idempotency-Key: - - af72843c-72ba-45a2-9403-b18ac5331eee + - '089304d9-fae5-4e39-8503-5a7e076eddab' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Stripe-Account: - - acct_1SHycy3mFixorNyN + - acct_1ScfXLKk8Ei30oQ0 X-Stripe-Client-User-Agent: - "" Content-Type: @@ -382,11 +385,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:24 GMT + - Wed, 10 Dec 2025 05:02:06 GMT Content-Type: - application/json Content-Length: - - '1418' + - '1427' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -405,19 +408,19 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - af72843c-72ba-45a2-9403-b18ac5331eee + - '089304d9-fae5-4e39-8503-5a7e076eddab' Original-Request: - - req_Gepz6g0LNBsl37 + - req_OQQN5yhePMp7f8 Request-Id: - - req_Gepz6g0LNBsl37 + - req_OQQN5yhePMp7f8 Stripe-Account: - - acct_1SHycy3mFixorNyN + - acct_1ScfXLKk8Ei30oQ0 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -432,7 +435,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHyd23mFixorNyN0Cq861yx", + "id": "pi_3ScfXOKk8Ei30oQ01UyLJ98y", "object": "payment_intent", "amount": 1000, "amount_capturable": 0, @@ -448,19 +451,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411424, + "created": 1765342926, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHyd23mFixorNyNeYYhnfNU", + "payment_method": "pm_1ScfXOKk8Ei30oQ0Etkfd16h", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -485,24 +488,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:10:24 GMT + recorded_at: Wed, 10 Dec 2025 05:02:37 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SHyd23mFixorNyN0Cq861yx + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfXOKk8Ei30oQ01UyLJ98y body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Gepz6g0LNBsl37","request_duration_ms":440}}' + - '{"last_request_metrics":{"request_id":"req_OQQN5yhePMp7f8","request_duration_ms":467}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Stripe-Account: - - acct_1SHycy3mFixorNyN + - acct_1ScfXLKk8Ei30oQ0 X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -517,11 +520,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:24 GMT + - Wed, 10 Dec 2025 05:02:06 GMT Content-Type: - application/json Content-Length: - - '1418' + - '1427' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -540,13 +543,13 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_AzdrxQxvQlWFRH + - req_03PENwlrNZUmJg Stripe-Account: - - acct_1SHycy3mFixorNyN + - acct_1ScfXLKk8Ei30oQ0 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -561,7 +564,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHyd23mFixorNyN0Cq861yx", + "id": "pi_3ScfXOKk8Ei30oQ01UyLJ98y", "object": "payment_intent", "amount": 1000, "amount_capturable": 0, @@ -577,19 +580,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411424, + "created": 1765342926, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHyd23mFixorNyNeYYhnfNU", + "payment_method": "pm_1ScfXOKk8Ei30oQ0Etkfd16h", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -614,10 +617,10 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:10:24 GMT + recorded_at: Wed, 10 Dec 2025 05:02:37 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SHyd23mFixorNyN0Cq861yx/cancel + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfXOKk8Ei30oQ01UyLJ98y/cancel body: encoding: US-ASCII string: '' @@ -627,7 +630,7 @@ http_interactions: Authorization: - "" User-Agent: - - Stripe/v1 ActiveMerchantBindings/1.133.0 + - Stripe/v1 ActiveMerchantBindings/1.137.0 Stripe-Version: - '2020-08-27' X-Stripe-Client-User-Agent: @@ -635,7 +638,7 @@ http_interactions: X-Stripe-Client-User-Metadata: - '{"ip":null}' Stripe-Account: - - acct_1SHycy3mFixorNyN + - acct_1ScfXLKk8Ei30oQ0 Connection: - close Accept-Encoding: @@ -650,11 +653,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:25 GMT + - Wed, 10 Dec 2025 05:02:07 GMT Content-Type: - application/json Content-Length: - - '1582' + - '1610' Connection: - close Access-Control-Allow-Credentials: @@ -673,15 +676,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=fPQKMcwqLtRSZN_NPpAjJUbrgcd6_4SOJO4zqNBYW1OPy-s4mgS-Tdk7teVYvEXX88JGMltGpL27CvyN + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=cafZiEO-8PBaTVWZ_9sJy2lkiKKIf25BhmvNEkyAk8yLoFT3mpA_hOzZwfPk9NcszzgS2luWREx4sZEa Idempotency-Key: - - f96408f1-6440-4066-b29a-12334943f218 + - fe1429f8-f598-4bf6-ac87-5f01633cbee6 Original-Request: - - req_KMzmQqvy3P4Iu5 + - req_qEzclMhp12Nh0a Request-Id: - - req_KMzmQqvy3P4Iu5 + - req_qEzclMhp12Nh0a Stripe-Account: - - acct_1SHycy3mFixorNyN + - acct_1ScfXLKk8Ei30oQ0 Stripe-Should-Retry: - 'false' Stripe-Version: @@ -700,7 +703,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHyd23mFixorNyN0Cq861yx", + "id": "pi_3ScfXOKk8Ei30oQ01UyLJ98y", "object": "payment_intent", "amount": 1000, "amount_capturable": 0, @@ -711,7 +714,7 @@ http_interactions: "application": "", "application_fee_amount": null, "automatic_payment_methods": null, - "canceled_at": 1760411424, + "canceled_at": 1765342927, "cancellation_reason": null, "capture_method": "manual", "charges": { @@ -719,13 +722,14 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/charges?payment_intent=pi_3SHyd23mFixorNyN0Cq861yx" + "url": "/v1/charges?payment_intent=pi_3ScfXOKk8Ei30oQ01UyLJ98y" }, "client_secret": "", "confirmation_method": "automatic", - "created": 1760411424, + "created": 1765342926, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, "invoice": null, @@ -735,7 +739,7 @@ http_interactions: "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHyd23mFixorNyNeYYhnfNU", + "payment_method": "pm_1ScfXOKk8Ei30oQ0Etkfd16h", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -760,24 +764,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:10:25 GMT + recorded_at: Wed, 10 Dec 2025 05:02:38 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SHycy3mFixorNyN + uri: https://api.stripe.com/v1/accounts/acct_1ScfXLKk8Ei30oQ0 body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_AzdrxQxvQlWFRH","request_duration_ms":323}}' + - '{"last_request_metrics":{"request_id":"req_03PENwlrNZUmJg","request_duration_ms":326}}' Idempotency-Key: - - 7f73dc16-da47-4f95-84ac-d59605423d97 + - 8482b942-3556-4806-a67f-9650e7b0b8c9 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -792,7 +796,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:28 GMT + - Wed, 10 Dec 2025 05:02:10 GMT Content-Type: - application/json Content-Length: @@ -815,15 +819,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 7f73dc16-da47-4f95-84ac-d59605423d97 + - 8482b942-3556-4806-a67f-9650e7b0b8c9 Request-Id: - - req_optaXcyxBBnMWy + - req_kxs8Gsncw2vrid Stripe-Account: - - acct_1SHycy3mFixorNyN + - acct_1ScfXLKk8Ei30oQ0 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -838,9 +842,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHycy3mFixorNyN", + "id": "acct_1ScfXLKk8Ei30oQ0", "object": "account", "deleted": true } - recorded_at: Tue, 14 Oct 2025 03:10:28 GMT + recorded_at: Wed, 10 Dec 2025 05:02:40 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_fails/destroys_the_record_and_notifies_Bugsnag.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_fails/destroys_the_record_and_notifies_Bugsnag.yml similarity index 79% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_fails/destroys_the_record_and_notifies_Bugsnag.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_fails/destroys_the_record_and_notifies_Bugsnag.yml index 25d8c5e786..5fc9e181ad 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_fails/destroys_the_record_and_notifies_Bugsnag.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_fails/destroys_the_record_and_notifies_Bugsnag.yml @@ -8,15 +8,15 @@ http_interactions: string: stripe_user_id=&client_id=bogus_client_id headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Xu77OvIyW1ul4d","request_duration_ms":3005}}' + - '{"last_request_metrics":{"request_id":"req_ooITcivJw8PuiD","request_duration_ms":2965}}' Idempotency-Key: - - cbebb224-cd96-4fb8-9d95-e001514c8d6f + - 0220fe40-be09-4d48-a4b4-cce7b55842ef Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,7 +33,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:56 GMT + - Wed, 10 Dec 2025 05:02:36 GMT Content-Type: - application/json; charset=utf-8 Content-Length: @@ -112,15 +112,15 @@ http_interactions: https://hcaptcha.com https://js.stripe.com https://www.google.com/recaptcha/api.js https://www.google.com/recaptcha/enterprise.js https://www.gstatic.com/recaptcha/ https://www.gstatic.com/recaptcha/api2/ https://www.recaptcha.net/recaptcha/ - https://www.recaptcha.net/recaptcha/enterprise.js ''nonce-mPabo5u4wBWbRmxb4KzT8Q=='' + https://www.recaptcha.net/recaptcha/enterprise.js ''nonce-XEemrRdibyO06v4YgZ65Pg=='' ''self'' ''sha256-47mKTaMaEn1L3m5DAz9muidMqw636xxw7EFAK/YnPdg='' ''unsafe-hashes'' - ''sha256-X282X6GM6HOVS4ZlarVs8J6sTL4pCBCyjJ1mGXPnx2c='' ''sha256-n7u/8WJkRg9Vfct98U/ani9/0jNm/jU9xmW1MkFeFCo='' - ''sha256-2vvxOZGNaNgKc6hsklalFxowLrGGY77RhgtSdOmreSQ='' ''sha256-hXJJi4uFrPw1d1m1UzzY5m3apJr3WxqB1rhD3lHBg4Y='' - ''sha256-oTMVQy4RX+9L7r9OM2a6KkTYodWJ271q9VHQ/Em7axc='' ''report-sample''; - style-src https://edge-dashboard.stripe.com https://*.hcaptcha.com https://b.stripecdn.com - https://dashboard.stripe.com https://fonts.googleapis.com https://hcaptcha.com - https://translate.googleapis.com ''unsafe-inline''; worker-src https://b.stripecdn.com - ''self''; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=tWRBr42P74JxDL2qWi4yIFL8feyq8vKJzJAmlr570ndNe2GcYWMfvlRhYmqSCFfHGxVHt5jQi94%3D' + ''sha256-tzCa5207cpDANSTUI0pUSPlhLtLsheSyUgChqdca2bE='' ''sha256-X282X6GM6HOVS4ZlarVs8J6sTL4pCBCyjJ1mGXPnx2c='' + ''sha256-n7u/8WJkRg9Vfct98U/ani9/0jNm/jU9xmW1MkFeFCo='' ''sha256-2vvxOZGNaNgKc6hsklalFxowLrGGY77RhgtSdOmreSQ='' + ''sha256-hXJJi4uFrPw1d1m1UzzY5m3apJr3WxqB1rhD3lHBg4Y='' ''sha256-oTMVQy4RX+9L7r9OM2a6KkTYodWJ271q9VHQ/Em7axc='' + ''report-sample''; style-src https://edge-dashboard.stripe.com https://*.hcaptcha.com + https://b.stripecdn.com https://dashboard.stripe.com https://fonts.googleapis.com + https://hcaptcha.com https://translate.googleapis.com ''unsafe-inline''; worker-src + https://b.stripecdn.com ''self''; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=ni6tcrZOz80xFhWVR5z5hlZXHzOBeakLClknc4kl-ch1gDFuTF5EIJVwktziXFL-q6EXCD8YZQU%3D' Cross-Origin-Opener-Policy: - same-origin-allow-popups; report-to="wsp_coop" Expires: @@ -130,28 +130,28 @@ http_interactions: Referrer-Policy: - strict-origin-when-cross-origin Report-To: - - '{"group":"wsp_coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report?s=tWRBr42P74JxDL2qWi4yIFL8feyq8vKJzJAmlr570ndNe2GcYWMfvlRhYmqSCFfHGxVHt5jQi94="}],"include_subdomains":true},{"group":"wsp_coep","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coep-report?s=tWRBr42P74JxDL2qWi4yIFL8feyq8vKJzJAmlr570ndNe2GcYWMfvlRhYmqSCFfHGxVHt5jQi94="}],"include_subdomains":true}' + - '{"group":"wsp_coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report?s=ni6tcrZOz80xFhWVR5z5hlZXHzOBeakLClknc4kl-ch1gDFuTF5EIJVwktziXFL-q6EXCD8YZQU="}],"include_subdomains":true},{"group":"wsp_coep","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coep-report?s=ni6tcrZOz80xFhWVR5z5hlZXHzOBeakLClknc4kl-ch1gDFuTF5EIJVwktziXFL-q6EXCD8YZQU="}],"include_subdomains":true}' Reporting-Endpoints: - - coop="https://q.stripe.com/coop-report", wsp_coop="https://q.stripe.com/coop-report?s=tWRBr42P74JxDL2qWi4yIFL8feyq8vKJzJAmlr570ndNe2GcYWMfvlRhYmqSCFfHGxVHt5jQi94=",wsp_coep="https://q.stripe.com/coep-report?s=tWRBr42P74JxDL2qWi4yIFL8feyq8vKJzJAmlr570ndNe2GcYWMfvlRhYmqSCFfHGxVHt5jQi94=" + - coop="https://q.stripe.com/coop-report", wsp_coop="https://q.stripe.com/coop-report?s=ni6tcrZOz80xFhWVR5z5hlZXHzOBeakLClknc4kl-ch1gDFuTF5EIJVwktziXFL-q6EXCD8YZQU=",wsp_coep="https://q.stripe.com/coep-report?s=ni6tcrZOz80xFhWVR5z5hlZXHzOBeakLClknc4kl-ch1gDFuTF5EIJVwktziXFL-q6EXCD8YZQU=" Request-Id: - - req_4zG9kjswbzzJPv + - req_IaMJfgMdoRO98D Set-Cookie: - __Host-session=; path=/; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT; secure; SameSite=None - __stripe_orig_props=%7B%22referrer%22%3A%22%22%2C%22landing%22%3A%22https%3A%2F%2Fconnect.stripe.com%2Foauth%2Fdeauthorize%22%7D; - domain=stripe.com; path=/; expires=Wed, 14 Oct 2026 03:10:56 GMT; secure; + domain=stripe.com; path=/; expires=Thu, 10 Dec 2026 05:02:36 GMT; secure; HttpOnly; SameSite=Lax - - cid=a3e13578-1565-49c1-9f50-537b54dff624; domain=stripe.com; path=/; expires=Mon, - 12 Jan 2026 03:10:56 GMT; secure; SameSite=Lax - - machine_identifier=9Ix49MyzOtxS5ypUbz%2BMV%2BDAjTq7W6w8og2x2%2FzC0liiTVeXkw8ABVH3VN3S4Nh1Mxk%3D; - domain=stripe.com; path=/; expires=Wed, 14 Oct 2026 03:10:56 GMT; secure; + - cid=f120c5eb-c55e-448e-9620-11b84ae9dd61; domain=stripe.com; path=/; expires=Tue, + 10 Mar 2026 05:02:36 GMT; secure; SameSite=Lax + - machine_identifier=Yc3PVkK4ujXtTdQE5Ve0Nx0AdXmaXmZnPqJ12f1luZ39tm557BRmqNy3%2FpTvNV5BWXg%3D; + domain=stripe.com; path=/; expires=Thu, 10 Dec 2026 05:02:36 GMT; secure; HttpOnly; SameSite=Lax - - private_machine_identifier=xRTSWiu1OlD5i8WQD%2BhpyF9cnLnlzjYOeIijmzhYMcILrf5fL233HIv9fHqD3bIbSTU%3D; - domain=stripe.com; path=/; expires=Wed, 14 Oct 2026 03:10:56 GMT; secure; + - private_machine_identifier=D6g%2Bp7t1n%2BfxyapMuegS0TXKmJ%2BZTTDkdGN2zSPcT80gxFt4dFZW4RU08Z2NEaqFlqg%3D; + domain=stripe.com; path=/; expires=Thu, 10 Dec 2026 05:02:36 GMT; secure; HttpOnly; SameSite=None - site-auth=; domain=stripe.com; path=/; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT; secure - - stripe.csrf=RcI9TcJbX-t1Vfe4TUiTtMubFnWlzAdMQ0qtmQXy18oZ26CAoi2uUqSWVZGl3M1WEWO0t-vQbR-_d955Voqs0jw-AYTZVJyvB-v_V8Vn5oC9PuVwZ0raSLkXMlotbBxgVcZPkDNquQ%3D%3D; + - stripe.csrf=iFOGfhXsBc39l0MCuEo_o5uM9oFM_8tDF78m7CgNo-RH6M5CHu8wUL3qSsxEjBUowr19LqigQZbkbBYKPis5ZDw-AYTZVJzwp7_5Lbbw4jjdlY13OFTHqCFCeZOFAXwt0RwtCBk08w%3D%3D; domain=stripe.com; path=/; secure; HttpOnly; SameSite=None Stripe-Kill-Route: - "[]" @@ -168,13 +168,13 @@ http_interactions: X-Stripe-Routing-Context-Priority-Tier: - api-testmode X-Stripe-Server-Rpc-Duration-Micros: - - '85928' + - '96384' X-Wc: - ABCDEFGHIJ Strict-Transport-Security: - max-age=63072000; includeSubDomains; preload Stripe-Action-Id: - - syd2DkFjLHWQ4iCJwWDT53X + - syd1DmdkgmrjB9r4vCGxuGG body: encoding: UTF-8 string: |- @@ -182,5 +182,5 @@ http_interactions: "error": "invalid_client", "error_description": "No such application: 'bogus_client_id'" } - recorded_at: Tue, 14 Oct 2025 03:10:56 GMT + recorded_at: Wed, 10 Dec 2025 05:03:07 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_succeeds/destroys_the_record.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_succeeds/destroys_the_record.yml similarity index 82% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_succeeds/destroys_the_record.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_succeeds/destroys_the_record.yml index 2e08a910fc..1cd851b834 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_succeeds/destroys_the_record.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripeAccount/deauthorize_and_destroy/when_the_Stripe_API_disconnect_succeeds/destroys_the_record.yml @@ -8,13 +8,13 @@ http_interactions: string: type=standard&country=AU&email=jumping.jack%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - 1a3bf73a-93d2-468f-831c-9bff68b6f606 + - 35019992-a3b0-4791-b50c-52e461897cd5 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:10:59 GMT + - Wed, 10 Dec 2025 05:02:39 GMT Content-Type: - application/json Content-Length: - - '3443' + - '3525' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=Q_Dv0L754vZwVYQ8nO4YeLzP0jx_2rx5sMcaTQtIq2rzvqdjNAKo9G_U3kQXUzum1xy5E7YAd2yMwSIL + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=cafZiEO-8PBaTVWZ_9sJy2lkiKKIf25BhmvNEkyAk8yLoFT3mpA_hOzZwfPk9NcszzgS2luWREx4sZEa Idempotency-Key: - - 1a3bf73a-93d2-468f-831c-9bff68b6f606 + - 35019992-a3b0-4791-b50c-52e461897cd5 Original-Request: - - req_gnKKRrDGkmn4Kx + - req_c22kYAQWSrgjQS Request-Id: - - req_gnKKRrDGkmn4Kx + - req_c22kYAQWSrgjQS Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,7 +79,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHydZKgr153G3YH", + "id": "acct_1ScfXt46IADpSjqd", "object": "account", "business_profile": { "annual_revenue": null, @@ -88,6 +88,7 @@ http_interactions: "minority_owned_business_designation": null, "name": null, "product_description": null, + "specified_commercial_transactions_act_url": null, "support_address": null, "support_email": null, "support_phone": null, @@ -112,7 +113,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1760411458, + "created": 1765342958, "default_currency": "aud", "details_submitted": false, "email": "jumping.jack@example.com", @@ -121,7 +122,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SHydZKgr153G3YH/external_accounts" + "url": "/v1/accounts/acct_1ScfXt46IADpSjqd/external_accounts" }, "future_requirements": { "alternatives": [], @@ -213,6 +214,7 @@ http_interactions: }, "statement_descriptor": null }, + "paypay_payments": {}, "sepa_debit_payments": {} }, "tos_acceptance": { @@ -222,24 +224,24 @@ http_interactions: }, "type": "standard" } - recorded_at: Tue, 14 Oct 2025 03:10:59 GMT + recorded_at: Wed, 10 Dec 2025 05:03:09 GMT - request: method: post uri: https://connect.stripe.com/oauth/deauthorize body: encoding: UTF-8 - string: stripe_user_id=acct_1SHydZKgr153G3YH&client_id= + string: stripe_user_id=acct_1ScfXt46IADpSjqd&client_id= headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_gnKKRrDGkmn4Kx","request_duration_ms":2669}}' + - '{"last_request_metrics":{"request_id":"req_c22kYAQWSrgjQS","request_duration_ms":2558}}' Idempotency-Key: - - b8fd943f-fa11-4508-8054-b2303bb6bca8 + - 07db5e80-22b1-48e6-9f74-8dde61349930 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -256,7 +258,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:00 GMT + - Wed, 10 Dec 2025 05:02:40 GMT Content-Type: - application/json Content-Length: @@ -335,15 +337,15 @@ http_interactions: https://hcaptcha.com https://js.stripe.com https://www.google.com/recaptcha/api.js https://www.google.com/recaptcha/enterprise.js https://www.gstatic.com/recaptcha/ https://www.gstatic.com/recaptcha/api2/ https://www.recaptcha.net/recaptcha/ - https://www.recaptcha.net/recaptcha/enterprise.js ''nonce-ED77xx6opWwTy+e7Hidvsg=='' + https://www.recaptcha.net/recaptcha/enterprise.js ''nonce-hyr0BSS6YyFtA9hZMhfQDA=='' ''self'' ''sha256-47mKTaMaEn1L3m5DAz9muidMqw636xxw7EFAK/YnPdg='' ''unsafe-hashes'' - ''sha256-X282X6GM6HOVS4ZlarVs8J6sTL4pCBCyjJ1mGXPnx2c='' ''sha256-n7u/8WJkRg9Vfct98U/ani9/0jNm/jU9xmW1MkFeFCo='' - ''sha256-2vvxOZGNaNgKc6hsklalFxowLrGGY77RhgtSdOmreSQ='' ''sha256-hXJJi4uFrPw1d1m1UzzY5m3apJr3WxqB1rhD3lHBg4Y='' - ''sha256-oTMVQy4RX+9L7r9OM2a6KkTYodWJ271q9VHQ/Em7axc='' ''report-sample''; - style-src https://edge-dashboard.stripe.com https://*.hcaptcha.com https://b.stripecdn.com - https://dashboard.stripe.com https://fonts.googleapis.com https://hcaptcha.com - https://translate.googleapis.com ''unsafe-inline''; worker-src https://b.stripecdn.com - ''self''; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=DUmr5XZKtzgS4Gw9OOh4oV_ut89-4MgZZd7eBOcYadXhLn0IXrohXiEMq9vVdPWrwHNsGaP9uf4%3D' + ''sha256-tzCa5207cpDANSTUI0pUSPlhLtLsheSyUgChqdca2bE='' ''sha256-X282X6GM6HOVS4ZlarVs8J6sTL4pCBCyjJ1mGXPnx2c='' + ''sha256-n7u/8WJkRg9Vfct98U/ani9/0jNm/jU9xmW1MkFeFCo='' ''sha256-2vvxOZGNaNgKc6hsklalFxowLrGGY77RhgtSdOmreSQ='' + ''sha256-hXJJi4uFrPw1d1m1UzzY5m3apJr3WxqB1rhD3lHBg4Y='' ''sha256-oTMVQy4RX+9L7r9OM2a6KkTYodWJ271q9VHQ/Em7axc='' + ''report-sample''; style-src https://edge-dashboard.stripe.com https://*.hcaptcha.com + https://b.stripecdn.com https://dashboard.stripe.com https://fonts.googleapis.com + https://hcaptcha.com https://translate.googleapis.com ''unsafe-inline''; worker-src + https://b.stripecdn.com ''self''; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=iGUB-rBXzP5JWRQZb_pOlDk4AZMBvTScUBV-RLVuuOdBZp1I2tIz8NBaWPzQM5URBaqccuS0ZCA%3D' Cross-Origin-Opener-Policy: - same-origin-allow-popups; report-to="wsp_coop" Expires: @@ -353,28 +355,28 @@ http_interactions: Referrer-Policy: - strict-origin-when-cross-origin Report-To: - - '{"group":"wsp_coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report?s=DUmr5XZKtzgS4Gw9OOh4oV_ut89-4MgZZd7eBOcYadXhLn0IXrohXiEMq9vVdPWrwHNsGaP9uf4="}],"include_subdomains":true},{"group":"wsp_coep","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coep-report?s=DUmr5XZKtzgS4Gw9OOh4oV_ut89-4MgZZd7eBOcYadXhLn0IXrohXiEMq9vVdPWrwHNsGaP9uf4="}],"include_subdomains":true}' + - '{"group":"wsp_coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report?s=iGUB-rBXzP5JWRQZb_pOlDk4AZMBvTScUBV-RLVuuOdBZp1I2tIz8NBaWPzQM5URBaqccuS0ZCA="}],"include_subdomains":true},{"group":"wsp_coep","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coep-report?s=iGUB-rBXzP5JWRQZb_pOlDk4AZMBvTScUBV-RLVuuOdBZp1I2tIz8NBaWPzQM5URBaqccuS0ZCA="}],"include_subdomains":true}' Reporting-Endpoints: - - coop="https://q.stripe.com/coop-report", wsp_coop="https://q.stripe.com/coop-report?s=DUmr5XZKtzgS4Gw9OOh4oV_ut89-4MgZZd7eBOcYadXhLn0IXrohXiEMq9vVdPWrwHNsGaP9uf4=",wsp_coep="https://q.stripe.com/coep-report?s=DUmr5XZKtzgS4Gw9OOh4oV_ut89-4MgZZd7eBOcYadXhLn0IXrohXiEMq9vVdPWrwHNsGaP9uf4=" + - coop="https://q.stripe.com/coop-report", wsp_coop="https://q.stripe.com/coop-report?s=iGUB-rBXzP5JWRQZb_pOlDk4AZMBvTScUBV-RLVuuOdBZp1I2tIz8NBaWPzQM5URBaqccuS0ZCA=",wsp_coep="https://q.stripe.com/coep-report?s=iGUB-rBXzP5JWRQZb_pOlDk4AZMBvTScUBV-RLVuuOdBZp1I2tIz8NBaWPzQM5URBaqccuS0ZCA=" Request-Id: - - req_dkQ5nqOc1P6cEG + - req_W5DghJ3w3soKSB Set-Cookie: - __Host-session=; path=/; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT; secure; SameSite=None - __stripe_orig_props=%7B%22referrer%22%3A%22%22%2C%22landing%22%3A%22https%3A%2F%2Fconnect.stripe.com%2Foauth%2Fdeauthorize%22%7D; - domain=stripe.com; path=/; expires=Wed, 14 Oct 2026 03:11:00 GMT; secure; + domain=stripe.com; path=/; expires=Thu, 10 Dec 2026 05:02:40 GMT; secure; HttpOnly; SameSite=Lax - - cid=bd534cfa-0cf6-4a5c-a796-8bf7da07a827; domain=stripe.com; path=/; expires=Mon, - 12 Jan 2026 03:11:00 GMT; secure; SameSite=Lax - - machine_identifier=agvliYrxzIbJkNAfI0XhQFo20dOyVNETzPBEpScfSYW88PnA6GtOEPanSsiz8GVCvFM%3D; - domain=stripe.com; path=/; expires=Wed, 14 Oct 2026 03:11:00 GMT; secure; + - cid=5116466f-d29f-480e-8249-041aaceebd9c; domain=stripe.com; path=/; expires=Tue, + 10 Mar 2026 05:02:40 GMT; secure; SameSite=Lax + - machine_identifier=aZXkK46kO51L5ws3cFfjgTA6oRwoCSCBm1zMifikAYO%2BKDfI%2BToNTW6%2B%2BJNSOac717k%3D; + domain=stripe.com; path=/; expires=Thu, 10 Dec 2026 05:02:40 GMT; secure; HttpOnly; SameSite=Lax - - private_machine_identifier=G5LO7m5VEz6H2lvPCUuqYZrvor82BqGXYgx5Ij4iDNMaNr79f98RIZuDX6OaWraIs5g%3D; - domain=stripe.com; path=/; expires=Wed, 14 Oct 2026 03:11:00 GMT; secure; + - private_machine_identifier=2%2FpN0NBpefJKcMwGrJ7YSD9Nzh%2FUHUL2k4uv32s2ccdZLgKUr49KPPxd8MXCgrhfVYc%3D; + domain=stripe.com; path=/; expires=Thu, 10 Dec 2026 05:02:40 GMT; secure; HttpOnly; SameSite=None - site-auth=; domain=stripe.com; path=/; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT; secure - - stripe.csrf=1rPGar68M25OFXH8m3HDEGs-ZC8qym9fKjtH6EfFvNu6Q2HY_Dq66kiQYfPWHICW1Em_hryMiElvUYtVuGhqLDw-AYTZVJzC-J3hrvOhgfMlb4YaE2kgjx-KZqyOMoVMizT9hQT35g%3D%3D; + - stripe.csrf=EGWJ5eroic7zi6Qf7il9yMfthxhMZRbNMK1uL-OT6VzaRd8kJLhJvvcAUYSPt62sGwuPRpUlfnCnodXvdVKhrDw-AYTZVJyCJx7vVRcec-85crB8BYRZ-oZ1BK_6ZpkCzlnvRKToCA%3D%3D; domain=stripe.com; path=/; secure; HttpOnly; SameSite=None Stripe-Kill-Route: - "[]" @@ -389,18 +391,18 @@ http_interactions: X-Stripe-Routing-Context-Priority-Tier: - api-testmode X-Stripe-Server-Rpc-Duration-Micros: - - '1105904' + - '1282371' X-Wc: - ABCDEFGHIJ Strict-Transport-Security: - max-age=63072000; includeSubDomains; preload Stripe-Action-Id: - - syd2DkFjLeJWt5BaOWiBvjf + - syd1Dmdkh7xwwi0UQRFGoRv body: encoding: UTF-8 string: |- { - "stripe_user_id": "acct_1SHydZKgr153G3YH" + "stripe_user_id": "acct_1ScfXt46IADpSjqd" } - recorded_at: Tue, 14 Oct 2025 03:11:00 GMT + recorded_at: Wed, 10 Dec 2025 05:03:11 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripePaymentStatus/_stripe_captured_/when_the_Stripe_payment_has_been_captured/returns_true.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripePaymentStatus/_stripe_captured_/when_the_Stripe_payment_has_been_captured/returns_true.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripePaymentStatus/_stripe_captured_/when_the_Stripe_payment_has_been_captured/returns_true.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripePaymentStatus/_stripe_captured_/when_the_Stripe_payment_has_been_captured/returns_true.yml index ced7a57d23..a21976a3ef 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripePaymentStatus/_stripe_captured_/when_the_Stripe_payment_has_been_captured/returns_true.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripePaymentStatus/_stripe_captured_/when_the_Stripe_payment_has_been_captured/returns_true.yml @@ -8,15 +8,15 @@ http_interactions: string: type=card&card[number]=4242424242424242&card[exp_month]=12&card[exp_year]=2026&card[cvc]=314 headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_skWFrzuN6VNsVu","request_duration_ms":1295}}' + - '{"last_request_metrics":{"request_id":"req_lVktqUwe7eLSXm","request_duration_ms":1279}}' Idempotency-Key: - - 3591c081-01d0-40a4-a5b7-877664847ee3 + - 9603a24d-6d6d-4764-b8a7-1ac4fda62067 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:07 GMT + - Wed, 10 Dec 2025 05:02:47 GMT Content-Type: - application/json Content-Length: - - '1055' + - '1083' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 3591c081-01d0-40a4-a5b7-877664847ee3 + - 9603a24d-6d6d-4764-b8a7-1ac4fda62067 Original-Request: - - req_mExt66PfTJzZ5P + - req_TozZKC2itJ9ntx Request-Id: - - req_mExt66PfTJzZ5P + - req_TozZKC2itJ9ntx Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHydjKuuB1fWySnoctTgdGT", + "id": "pm_1ScfY3KuuB1fWySnpFDUlEnD", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -125,30 +125,31 @@ http_interactions: }, "wallet": null }, - "created": 1760411467, + "created": 1765342967, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:11:07 GMT + recorded_at: Wed, 10 Dec 2025 05:03:17 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=aud&payment_method=pm_1SHydjKuuB1fWySnoctTgdGT&payment_method_types[0]=card&capture_method=manual + string: amount=100¤cy=aud&payment_method=pm_1ScfY3KuuB1fWySnpFDUlEnD&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_mExt66PfTJzZ5P","request_duration_ms":375}}' + - '{"last_request_metrics":{"request_id":"req_TozZKC2itJ9ntx","request_duration_ms":383}}' Idempotency-Key: - - f3dfd912-91b5-4e9d-8505-84de61df91f4 + - f951d293-8bc3-4fc7-90cf-98df17bde2b2 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -165,11 +166,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:07 GMT + - Wed, 10 Dec 2025 05:02:47 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -188,17 +189,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - f3dfd912-91b5-4e9d-8505-84de61df91f4 + - f951d293-8bc3-4fc7-90cf-98df17bde2b2 Original-Request: - - req_ZwY9MJ93J8WTUY + - req_Tn0Rz3ArmumNa2 Request-Id: - - req_ZwY9MJ93J8WTUY + - req_Tn0Rz3ArmumNa2 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -213,7 +214,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHydjKuuB1fWySn1NR7vP5r", + "id": "pi_3ScfY3KuuB1fWySn2724U6AC", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -229,19 +230,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411467, + "created": 1765342967, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHydjKuuB1fWySnoctTgdGT", + "payment_method": "pm_1ScfY3KuuB1fWySnpFDUlEnD", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -266,24 +267,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:11:07 GMT + recorded_at: Wed, 10 Dec 2025 05:03:18 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SHydjKuuB1fWySn1NR7vP5r/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfY3KuuB1fWySn2724U6AC/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_ZwY9MJ93J8WTUY","request_duration_ms":346}}' + - '{"last_request_metrics":{"request_id":"req_Tn0Rz3ArmumNa2","request_duration_ms":505}}' Idempotency-Key: - - 59b58399-5ea2-4a70-a425-31d1e360c70b + - e5b82e77-e6bb-4076-929f-30e450f2e75c Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -300,11 +301,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:08 GMT + - Wed, 10 Dec 2025 05:02:48 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -323,17 +324,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 59b58399-5ea2-4a70-a425-31d1e360c70b + - e5b82e77-e6bb-4076-929f-30e450f2e75c Original-Request: - - req_onsP3ycXEY7Jjs + - req_Kv8XBRRAP6KdXj Request-Id: - - req_onsP3ycXEY7Jjs + - req_Kv8XBRRAP6KdXj Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -348,7 +349,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHydjKuuB1fWySn1NR7vP5r", + "id": "pi_3ScfY3KuuB1fWySn2724U6AC", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -364,19 +365,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411467, + "created": 1765342967, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SHydjKuuB1fWySn189L8Dgc", + "latest_charge": "ch_3ScfY3KuuB1fWySn21gx7zTs", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHydjKuuB1fWySnoctTgdGT", + "payment_method": "pm_1ScfY3KuuB1fWySnpFDUlEnD", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -401,24 +402,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:11:08 GMT + recorded_at: Wed, 10 Dec 2025 05:03:19 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SHydjKuuB1fWySn1NR7vP5r/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfY3KuuB1fWySn2724U6AC/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_onsP3ycXEY7Jjs","request_duration_ms":702}}' + - '{"last_request_metrics":{"request_id":"req_Kv8XBRRAP6KdXj","request_duration_ms":842}}' Idempotency-Key: - - 16f2b732-94d6-4f26-961a-760f08108727 + - ec5e3f56-df6a-43fd-93f8-e201cb01fbe1 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -435,11 +436,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:09 GMT + - Wed, 10 Dec 2025 05:02:50 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -458,17 +459,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 16f2b732-94d6-4f26-961a-760f08108727 + - ec5e3f56-df6a-43fd-93f8-e201cb01fbe1 Original-Request: - - req_aUxWVthMmft3OL + - req_iP0hZrUEV384Cm Request-Id: - - req_aUxWVthMmft3OL + - req_iP0hZrUEV384Cm Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -483,7 +484,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHydjKuuB1fWySn1NR7vP5r", + "id": "pi_3ScfY3KuuB1fWySn2724U6AC", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -499,19 +500,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411467, + "created": 1765342967, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SHydjKuuB1fWySn189L8Dgc", + "latest_charge": "ch_3ScfY3KuuB1fWySn21gx7zTs", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHydjKuuB1fWySnoctTgdGT", + "payment_method": "pm_1ScfY3KuuB1fWySnpFDUlEnD", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -536,22 +537,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:11:09 GMT + recorded_at: Wed, 10 Dec 2025 05:03:20 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SHydjKuuB1fWySn1NR7vP5r + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfY3KuuB1fWySn2724U6AC body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_aUxWVthMmft3OL","request_duration_ms":1202}}' + - '{"last_request_metrics":{"request_id":"req_iP0hZrUEV384Cm","request_duration_ms":1398}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -566,11 +567,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:10 GMT + - Wed, 10 Dec 2025 05:02:50 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -589,11 +590,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_VGdnL9HTac89Zz + - req_KFpKlknDqR3CHY Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -608,7 +609,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHydjKuuB1fWySn1NR7vP5r", + "id": "pi_3ScfY3KuuB1fWySn2724U6AC", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -624,19 +625,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411467, + "created": 1765342967, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SHydjKuuB1fWySn189L8Dgc", + "latest_charge": "ch_3ScfY3KuuB1fWySn21gx7zTs", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHydjKuuB1fWySnoctTgdGT", + "payment_method": "pm_1ScfY3KuuB1fWySnpFDUlEnD", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -661,5 +662,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:11:10 GMT + recorded_at: Wed, 10 Dec 2025 05:03:21 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripePaymentStatus/_stripe_captured_/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_false.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripePaymentStatus/_stripe_captured_/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_false.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripePaymentStatus/_stripe_captured_/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_false.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripePaymentStatus/_stripe_captured_/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_false.yml index 855016a7b3..9eb0545775 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripePaymentStatus/_stripe_captured_/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_false.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripePaymentStatus/_stripe_captured_/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_false.yml @@ -8,15 +8,15 @@ http_interactions: string: type=card&card[number]=4242424242424242&card[exp_month]=12&card[exp_year]=2026&card[cvc]=314 headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_R5Gt5w4puz1Pfx","request_duration_ms":360}}' + - '{"last_request_metrics":{"request_id":"req_02fHBzyDQkKGgC","request_duration_ms":364}}' Idempotency-Key: - - a92ba90d-31be-4e8e-ae70-d81632f1f308 + - b7db92a5-6065-4dc2-968d-104c0f0fe9c1 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:04 GMT + - Wed, 10 Dec 2025 05:02:44 GMT Content-Type: - application/json Content-Length: - - '1055' + - '1083' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - a92ba90d-31be-4e8e-ae70-d81632f1f308 + - b7db92a5-6065-4dc2-968d-104c0f0fe9c1 Original-Request: - - req_3d4beJjZaGbSpy + - req_2L1TDpheVML2xJ Request-Id: - - req_3d4beJjZaGbSpy + - req_2L1TDpheVML2xJ Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHydgKuuB1fWySnRCoYZi2m", + "id": "pm_1ScfY0KuuB1fWySn20zqh7rt", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -125,30 +125,31 @@ http_interactions: }, "wallet": null }, - "created": 1760411464, + "created": 1765342964, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:11:04 GMT + recorded_at: Wed, 10 Dec 2025 05:03:14 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=aud&payment_method=pm_1SHydgKuuB1fWySnRCoYZi2m&payment_method_types[0]=card&capture_method=manual + string: amount=100¤cy=aud&payment_method=pm_1ScfY0KuuB1fWySn20zqh7rt&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_3d4beJjZaGbSpy","request_duration_ms":377}}' + - '{"last_request_metrics":{"request_id":"req_2L1TDpheVML2xJ","request_duration_ms":394}}' Idempotency-Key: - - d6aa4e58-068e-4e1b-90e9-5ea2f2dca7bc + - 5a2ef72f-c5c0-4985-8729-57b55dc9677b Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -165,11 +166,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:04 GMT + - Wed, 10 Dec 2025 05:02:44 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -188,17 +189,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - d6aa4e58-068e-4e1b-90e9-5ea2f2dca7bc + - 5a2ef72f-c5c0-4985-8729-57b55dc9677b Original-Request: - - req_pO2TycxiTMxvs5 + - req_8qee90ZLoZfJm0 Request-Id: - - req_pO2TycxiTMxvs5 + - req_8qee90ZLoZfJm0 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -213,7 +214,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHydgKuuB1fWySn2MeDNQCW", + "id": "pi_3ScfY0KuuB1fWySn1RFNEgAk", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -229,19 +230,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411464, + "created": 1765342964, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHydgKuuB1fWySnRCoYZi2m", + "payment_method": "pm_1ScfY0KuuB1fWySn20zqh7rt", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -266,24 +267,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:11:04 GMT + recorded_at: Wed, 10 Dec 2025 05:03:15 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SHydgKuuB1fWySn2MeDNQCW/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfY0KuuB1fWySn1RFNEgAk/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_pO2TycxiTMxvs5","request_duration_ms":347}}' + - '{"last_request_metrics":{"request_id":"req_8qee90ZLoZfJm0","request_duration_ms":390}}' Idempotency-Key: - - e0f7abea-7df2-44af-8253-d0a9c6a2616c + - d5c53ba6-f84a-47e3-8d2a-d0622d2097b0 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -300,11 +301,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:05 GMT + - Wed, 10 Dec 2025 05:02:45 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -323,17 +324,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - e0f7abea-7df2-44af-8253-d0a9c6a2616c + - d5c53ba6-f84a-47e3-8d2a-d0622d2097b0 Original-Request: - - req_lj8h3cv5vaw61X + - req_iUbKim0VE2C7NQ Request-Id: - - req_lj8h3cv5vaw61X + - req_iUbKim0VE2C7NQ Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -348,7 +349,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHydgKuuB1fWySn2MeDNQCW", + "id": "pi_3ScfY0KuuB1fWySn1RFNEgAk", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -364,19 +365,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411464, + "created": 1765342964, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SHydgKuuB1fWySn2k2nhNtS", + "latest_charge": "ch_3ScfY0KuuB1fWySn1Q8lRD1b", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHydgKuuB1fWySnRCoYZi2m", + "payment_method": "pm_1ScfY0KuuB1fWySn20zqh7rt", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -401,24 +402,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:11:05 GMT + recorded_at: Wed, 10 Dec 2025 05:03:16 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SHydgKuuB1fWySn2MeDNQCW/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfY0KuuB1fWySn1RFNEgAk/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_lj8h3cv5vaw61X","request_duration_ms":774}}' + - '{"last_request_metrics":{"request_id":"req_iUbKim0VE2C7NQ","request_duration_ms":767}}' Idempotency-Key: - - 064ca2e4-b249-418a-bb34-aa701644b27a + - 202799c4-f2e0-4473-bd8f-b9b934fa505f Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -435,11 +436,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:06 GMT + - Wed, 10 Dec 2025 05:02:46 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -458,17 +459,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 064ca2e4-b249-418a-bb34-aa701644b27a + - 202799c4-f2e0-4473-bd8f-b9b934fa505f Original-Request: - - req_skWFrzuN6VNsVu + - req_lVktqUwe7eLSXm Request-Id: - - req_skWFrzuN6VNsVu + - req_lVktqUwe7eLSXm Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -483,7 +484,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHydgKuuB1fWySn2MeDNQCW", + "id": "pi_3ScfY0KuuB1fWySn1RFNEgAk", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -499,19 +500,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411464, + "created": 1765342964, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SHydgKuuB1fWySn2k2nhNtS", + "latest_charge": "ch_3ScfY0KuuB1fWySn1Q8lRD1b", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHydgKuuB1fWySnRCoYZi2m", + "payment_method": "pm_1ScfY0KuuB1fWySn20zqh7rt", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -536,5 +537,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:11:06 GMT + recorded_at: Wed, 10 Dec 2025 05:03:17 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/and_the_last_action_on_the_Stripe_payment_failed/returns_failed_response.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/and_the_last_action_on_the_Stripe_payment_failed/returns_failed_response.yml similarity index 82% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/and_the_last_action_on_the_Stripe_payment_failed/returns_failed_response.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/and_the_last_action_on_the_Stripe_payment_failed/returns_failed_response.yml index a96d25f6d7..51b162396a 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/and_the_last_action_on_the_Stripe_payment_failed/returns_failed_response.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/and_the_last_action_on_the_Stripe_payment_failed/returns_failed_response.yml @@ -8,15 +8,15 @@ http_interactions: string: type=card&card[number]=4242424242424242&card[exp_month]=12&card[exp_year]=2026&card[cvc]=314 headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_oFwP5EjktYjFpW","request_duration_ms":307}}' + - '{"last_request_metrics":{"request_id":"req_bBrfk2y4LTwOLk","request_duration_ms":300}}' Idempotency-Key: - - f1c25ae9-92f7-406f-9178-161e4767aa7d + - 3c76ecb9-6869-4c8c-8c18-b5cbdf42f09f Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:03 GMT + - Wed, 10 Dec 2025 05:02:43 GMT Content-Type: - application/json Content-Length: - - '1055' + - '1083' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - f1c25ae9-92f7-406f-9178-161e4767aa7d + - 3c76ecb9-6869-4c8c-8c18-b5cbdf42f09f Original-Request: - - req_mtmpcTsOB3ZTQF + - req_TUHcaEoMwTgdTF Request-Id: - - req_mtmpcTsOB3ZTQF + - req_TUHcaEoMwTgdTF Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHydfKuuB1fWySnQElLt2qe", + "id": "pm_1ScfXzKuuB1fWySnOOMfQkMV", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -125,30 +125,31 @@ http_interactions: }, "wallet": null }, - "created": 1760411463, + "created": 1765342963, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:11:03 GMT + recorded_at: Wed, 10 Dec 2025 05:03:14 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=aud&payment_method=pm_1SHydfKuuB1fWySnQElLt2qe&payment_method_types[0]=card&capture_method=manual + string: amount=100¤cy=aud&payment_method=pm_1ScfXzKuuB1fWySnOOMfQkMV&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_mtmpcTsOB3ZTQF","request_duration_ms":374}}' + - '{"last_request_metrics":{"request_id":"req_TUHcaEoMwTgdTF","request_duration_ms":431}}' Idempotency-Key: - - c93c354b-c063-4c4e-a72e-051c722c71f3 + - 13851889-34d2-453a-8b0e-ade627790db8 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -165,11 +166,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:04 GMT + - Wed, 10 Dec 2025 05:02:43 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -188,17 +189,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - c93c354b-c063-4c4e-a72e-051c722c71f3 + - 13851889-34d2-453a-8b0e-ade627790db8 Original-Request: - - req_R5Gt5w4puz1Pfx + - req_02fHBzyDQkKGgC Request-Id: - - req_R5Gt5w4puz1Pfx + - req_02fHBzyDQkKGgC Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -213,7 +214,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHydfKuuB1fWySn2KEUO8y7", + "id": "pi_3ScfXzKuuB1fWySn0PvUqjVv", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -229,19 +230,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411463, + "created": 1765342963, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHydfKuuB1fWySnQElLt2qe", + "payment_method": "pm_1ScfXzKuuB1fWySnOOMfQkMV", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -266,5 +267,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:11:03 GMT + recorded_at: Wed, 10 Dec 2025 05:03:14 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/fetches_the_status_with_Stripe_PaymentIntentValidator.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/fetches_the_status_with_Stripe_PaymentIntentValidator.yml similarity index 82% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/fetches_the_status_with_Stripe_PaymentIntentValidator.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/fetches_the_status_with_Stripe_PaymentIntentValidator.yml index ac9d430201..fcbf6f29d5 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/fetches_the_status_with_Stripe_PaymentIntentValidator.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripePaymentStatus/_stripe_status/when_the_payment_has_a_payment_intent/fetches_the_status_with_Stripe_PaymentIntentValidator.yml @@ -8,15 +8,15 @@ http_interactions: string: type=card&card[number]=4242424242424242&card[exp_month]=12&card[exp_year]=2026&card[cvc]=314 headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_uNSc2hmL6sWcqf","request_duration_ms":350}}' + - '{"last_request_metrics":{"request_id":"req_kQZwIZoL14mB2U","request_duration_ms":358}}' Idempotency-Key: - - da51c988-0bb2-408b-9cec-944d78eee298 + - 71a792e7-8939-4600-ad2a-99aac222bcbf Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:02 GMT + - Wed, 10 Dec 2025 05:02:42 GMT Content-Type: - application/json Content-Length: - - '1055' + - '1083' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - da51c988-0bb2-408b-9cec-944d78eee298 + - 71a792e7-8939-4600-ad2a-99aac222bcbf Original-Request: - - req_aSjSsiW71LVTlU + - req_uJ4LdN3yD5L40T Request-Id: - - req_aSjSsiW71LVTlU + - req_uJ4LdN3yD5L40T Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHydeKuuB1fWySnNZ9XPJyw", + "id": "pm_1ScfXyKuuB1fWySnniIRNS8y", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -125,30 +125,31 @@ http_interactions: }, "wallet": null }, - "created": 1760411462, + "created": 1765342962, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:11:02 GMT + recorded_at: Wed, 10 Dec 2025 05:03:12 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=aud&payment_method=pm_1SHydeKuuB1fWySnNZ9XPJyw&payment_method_types[0]=card&capture_method=manual + string: amount=100¤cy=aud&payment_method=pm_1ScfXyKuuB1fWySnniIRNS8y&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_aSjSsiW71LVTlU","request_duration_ms":395}}' + - '{"last_request_metrics":{"request_id":"req_uJ4LdN3yD5L40T","request_duration_ms":453}}' Idempotency-Key: - - 4d04b2e7-ea61-4b16-9591-a5d849a0e902 + - c5d8df14-64b1-4458-bf7f-98683c9c4ec5 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -165,11 +166,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:02 GMT + - Wed, 10 Dec 2025 05:02:42 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -188,17 +189,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 4d04b2e7-ea61-4b16-9591-a5d849a0e902 + - c5d8df14-64b1-4458-bf7f-98683c9c4ec5 Original-Request: - - req_4fo9k6NnOtUexn + - req_kiQ7x8j6673UFw Request-Id: - - req_4fo9k6NnOtUexn + - req_kiQ7x8j6673UFw Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -213,7 +214,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHydeKuuB1fWySn00T0bAZV", + "id": "pi_3ScfXyKuuB1fWySn0z1wwwXZ", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -229,19 +230,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411462, + "created": 1765342962, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHydeKuuB1fWySnNZ9XPJyw", + "payment_method": "pm_1ScfXyKuuB1fWySnniIRNS8y", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -266,22 +267,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:11:02 GMT + recorded_at: Wed, 10 Dec 2025 05:03:13 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SHydeKuuB1fWySn00T0bAZV + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfXyKuuB1fWySn0z1wwwXZ body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_4fo9k6NnOtUexn","request_duration_ms":379}}' + - '{"last_request_metrics":{"request_id":"req_kiQ7x8j6673UFw","request_duration_ms":398}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -296,11 +297,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:03 GMT + - Wed, 10 Dec 2025 05:02:43 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -319,11 +320,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_oFwP5EjktYjFpW + - req_bBrfk2y4LTwOLk Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -338,7 +339,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHydeKuuB1fWySn00T0bAZV", + "id": "pi_3ScfXyKuuB1fWySn0z1wwwXZ", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -354,19 +355,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411462, + "created": 1765342962, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHydeKuuB1fWySnNZ9XPJyw", + "payment_method": "pm_1ScfXyKuuB1fWySnniIRNS8y", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -391,5 +392,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:11:03 GMT + recorded_at: Wed, 10 Dec 2025 05:03:13 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripePaymentStatus/_stripe_status/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_nil.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripePaymentStatus/_stripe_status/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_nil.yml similarity index 82% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripePaymentStatus/_stripe_status/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_nil.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripePaymentStatus/_stripe_status/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_nil.yml index d9bed5f2d5..405a02c4be 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/StripePaymentStatus/_stripe_status/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_nil.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/StripePaymentStatus/_stripe_status/when_the_payment_is_not_a_Stripe_payment_or_does_not_have_a_payment_intent/returns_nil.yml @@ -8,15 +8,15 @@ http_interactions: string: type=card&card[number]=4242424242424242&card[exp_month]=12&card[exp_year]=2026&card[cvc]=314 headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_dkQ5nqOc1P6cEG","request_duration_ms":1350}}' + - '{"last_request_metrics":{"request_id":"req_W5DghJ3w3soKSB","request_duration_ms":1527}}' Idempotency-Key: - - d0306686-c129-46f0-8720-f0ba4e553a9d + - 9f9a1c78-0e1e-4c30-9c43-953be7e8a51a Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:01 GMT + - Wed, 10 Dec 2025 05:02:41 GMT Content-Type: - application/json Content-Length: - - '1055' + - '1083' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - d0306686-c129-46f0-8720-f0ba4e553a9d + - 9f9a1c78-0e1e-4c30-9c43-953be7e8a51a Original-Request: - - req_IuTMuATGe6q7vo + - req_pKgjGfzrnv5DQO Request-Id: - - req_IuTMuATGe6q7vo + - req_pKgjGfzrnv5DQO Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHyddKuuB1fWySn1SMcylQS", + "id": "pm_1ScfXxKuuB1fWySnItyY0IgU", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -125,30 +125,31 @@ http_interactions: }, "wallet": null }, - "created": 1760411461, + "created": 1765342961, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:11:01 GMT + recorded_at: Wed, 10 Dec 2025 05:03:11 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=aud&payment_method=pm_1SHyddKuuB1fWySn1SMcylQS&payment_method_types[0]=card&capture_method=manual + string: amount=100¤cy=aud&payment_method=pm_1ScfXxKuuB1fWySnItyY0IgU&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_IuTMuATGe6q7vo","request_duration_ms":374}}' + - '{"last_request_metrics":{"request_id":"req_pKgjGfzrnv5DQO","request_duration_ms":403}}' Idempotency-Key: - - 28933536-c931-4225-bf48-d88a26dbdade + - 4bc61748-eb6d-4526-878a-5585d7769fac Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -165,11 +166,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:01 GMT + - Wed, 10 Dec 2025 05:02:41 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -188,17 +189,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 28933536-c931-4225-bf48-d88a26dbdade + - 4bc61748-eb6d-4526-878a-5585d7769fac Original-Request: - - req_uNSc2hmL6sWcqf + - req_kQZwIZoL14mB2U Request-Id: - - req_uNSc2hmL6sWcqf + - req_kQZwIZoL14mB2U Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -213,7 +214,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHyddKuuB1fWySn1yp10Om0", + "id": "pi_3ScfXxKuuB1fWySn1lnIaH24", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -229,19 +230,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411461, + "created": 1765342961, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHyddKuuB1fWySn1SMcylQS", + "payment_method": "pm_1ScfXxKuuB1fWySnItyY0IgU", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -266,5 +267,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:11:01 GMT + recorded_at: Wed, 10 Dec 2025 05:03:12 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_CreditCardCloner/_find_or_clone/when_called_with_a_card_without_a_customer_one_time_usage_card_/clones_the_payment_method_only.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_CreditCardCloner/_find_or_clone/when_called_with_a_card_without_a_customer_one_time_usage_card_/clones_the_payment_method_only.yml similarity index 83% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_CreditCardCloner/_find_or_clone/when_called_with_a_card_without_a_customer_one_time_usage_card_/clones_the_payment_method_only.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_CreditCardCloner/_find_or_clone/when_called_with_a_card_without_a_customer_one_time_usage_card_/clones_the_payment_method_only.yml index 46a54b6000..2437c01401 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_CreditCardCloner/_find_or_clone/when_called_with_a_card_without_a_customer_one_time_usage_card_/clones_the_payment_method_only.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_CreditCardCloner/_find_or_clone/when_called_with_a_card_without_a_customer_one_time_usage_card_/clones_the_payment_method_only.yml @@ -8,15 +8,15 @@ http_interactions: string: type=card&card[number]=4242424242424242&card[exp_month]=8&card[exp_year]=2026&card[cvc]=314 headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_x4EL8Kj8W6WyTh","request_duration_ms":273}}' + - '{"last_request_metrics":{"request_id":"req_x3LhhVKjRWnE0c","request_duration_ms":279}}' Idempotency-Key: - - 4cca40b1-64a4-4fb0-8773-b7018183b01b + - 8c5d8bff-7805-4836-9237-e881b11709e8 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:05:56 GMT + - Wed, 10 Dec 2025 04:58:42 GMT Content-Type: - application/json Content-Length: - - '1054' + - '1082' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 4cca40b1-64a4-4fb0-8773-b7018183b01b + - 8c5d8bff-7805-4836-9237-e881b11709e8 Original-Request: - - req_MphfqmhnooW6Ii + - req_NznA71uvOSp3OE Request-Id: - - req_MphfqmhnooW6Ii + - req_NznA71uvOSp3OE Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHyYiKuuB1fWySnzzqUtEtW", + "id": "pm_1ScfU6KuuB1fWySnRNDiFKNH", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -125,13 +125,14 @@ http_interactions: }, "wallet": null }, - "created": 1760411156, + "created": 1765342722, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:05:56 GMT + recorded_at: Wed, 10 Dec 2025 04:59:13 GMT - request: method: post uri: https://api.stripe.com/v1/accounts @@ -140,15 +141,15 @@ http_interactions: string: type=standard&country=AU&email=apple.producer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_MphfqmhnooW6Ii","request_duration_ms":371}}' + - '{"last_request_metrics":{"request_id":"req_NznA71uvOSp3OE","request_duration_ms":385}}' Idempotency-Key: - - 9bec4b97-30d4-42f2-bd1c-fc2b67de8492 + - 8d0bb527-6302-47a6-ace4-8ba115d0971b Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -165,11 +166,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:05:58 GMT + - Wed, 10 Dec 2025 04:58:45 GMT Content-Type: - application/json Content-Length: - - '3445' + - '3527' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -188,17 +189,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 9bec4b97-30d4-42f2-bd1c-fc2b67de8492 + - 8d0bb527-6302-47a6-ace4-8ba115d0971b Original-Request: - - req_Whsu1n7Wc3VA1x + - req_WReInVbT5HfGsE Request-Id: - - req_Whsu1n7Wc3VA1x + - req_WReInVbT5HfGsE Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -213,7 +214,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyYi3qamICWFXm", + "id": "acct_1ScfU644wybHTt1i", "object": "account", "business_profile": { "annual_revenue": null, @@ -222,6 +223,7 @@ http_interactions: "minority_owned_business_designation": null, "name": null, "product_description": null, + "specified_commercial_transactions_act_url": null, "support_address": null, "support_email": null, "support_phone": null, @@ -246,7 +248,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1760411157, + "created": 1765342724, "default_currency": "aud", "details_submitted": false, "email": "apple.producer@example.com", @@ -255,7 +257,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SHyYi3qamICWFXm/external_accounts" + "url": "/v1/accounts/acct_1ScfU644wybHTt1i/external_accounts" }, "future_requirements": { "alternatives": [], @@ -347,6 +349,7 @@ http_interactions: }, "statement_descriptor": null }, + "paypay_payments": {}, "sepa_debit_payments": {} }, "tos_acceptance": { @@ -356,22 +359,22 @@ http_interactions: }, "type": "standard" } - recorded_at: Tue, 14 Oct 2025 03:05:58 GMT + recorded_at: Wed, 10 Dec 2025 04:59:15 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_methods/pm_1SHyYiKuuB1fWySnzzqUtEtW + uri: https://api.stripe.com/v1/payment_methods/pm_1ScfU6KuuB1fWySnRNDiFKNH body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Whsu1n7Wc3VA1x","request_duration_ms":2482}}' + - '{"last_request_metrics":{"request_id":"req_WReInVbT5HfGsE","request_duration_ms":2335}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -386,11 +389,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:05:59 GMT + - Wed, 10 Dec 2025 04:58:45 GMT Content-Type: - application/json Content-Length: - - '1054' + - '1082' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -409,11 +412,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_r2xrbLsaUQq1Kc + - req_bCwG9SxjUiCPFH Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -428,7 +431,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHyYiKuuB1fWySnzzqUtEtW", + "id": "pm_1ScfU6KuuB1fWySnRNDiFKNH", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -472,13 +475,14 @@ http_interactions: }, "wallet": null }, - "created": 1760411156, + "created": 1765342722, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:05:59 GMT + recorded_at: Wed, 10 Dec 2025 04:59:15 GMT - request: method: get uri: https://api.stripe.com/v1/customers?email=apple.customer@example.com&limit=100 @@ -487,15 +491,15 @@ http_interactions: string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_r2xrbLsaUQq1Kc","request_duration_ms":287}}' + - '{"last_request_metrics":{"request_id":"req_bCwG9SxjUiCPFH","request_duration_ms":292}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Stripe-Account: - - acct_1SHyYi3qamICWFXm + - acct_1ScfU644wybHTt1i X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -510,7 +514,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:05:59 GMT + - Wed, 10 Dec 2025 04:58:45 GMT Content-Type: - application/json Content-Length: @@ -533,13 +537,13 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_FLayVxBv3ge6Mk + - req_1vd50ZJVml9o49 Stripe-Account: - - acct_1SHyYi3qamICWFXm + - acct_1ScfU644wybHTt1i Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -559,26 +563,26 @@ http_interactions: "has_more": false, "url": "/v1/customers" } - recorded_at: Tue, 14 Oct 2025 03:05:59 GMT + recorded_at: Wed, 10 Dec 2025 04:59:16 GMT - request: method: post uri: https://api.stripe.com/v1/payment_methods body: encoding: UTF-8 - string: payment_method=pm_1SHyYiKuuB1fWySnzzqUtEtW + string: payment_method=pm_1ScfU6KuuB1fWySnRNDiFKNH headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_FLayVxBv3ge6Mk","request_duration_ms":313}}' + - '{"last_request_metrics":{"request_id":"req_1vd50ZJVml9o49","request_duration_ms":288}}' Idempotency-Key: - - c7fcde77-baa7-49e8-9b94-93b5533500b8 + - 85ef268e-ca9d-4030-a52a-f3bc44d55aac Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Stripe-Account: - - acct_1SHyYi3qamICWFXm + - acct_1ScfU644wybHTt1i X-Stripe-Client-User-Agent: - "" Content-Type: @@ -595,11 +599,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:05:59 GMT + - Wed, 10 Dec 2025 04:58:46 GMT Content-Type: - application/json Content-Length: - - '1054' + - '1082' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -618,19 +622,19 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - c7fcde77-baa7-49e8-9b94-93b5533500b8 + - 85ef268e-ca9d-4030-a52a-f3bc44d55aac Original-Request: - - req_V7YHgxlWgOQZvV + - req_btvAOYY3aaZ8Ac Request-Id: - - req_V7YHgxlWgOQZvV + - req_btvAOYY3aaZ8Ac Stripe-Account: - - acct_1SHyYi3qamICWFXm + - acct_1ScfU644wybHTt1i Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -645,7 +649,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHyYl3qamICWFXmoSgTcbkS", + "id": "pm_1ScfU944wybHTt1iwkttcLki", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -689,30 +693,31 @@ http_interactions: }, "wallet": null }, - "created": 1760411159, + "created": 1765342725, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:05:59 GMT + recorded_at: Wed, 10 Dec 2025 04:59:16 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SHyYi3qamICWFXm + uri: https://api.stripe.com/v1/accounts/acct_1ScfU644wybHTt1i body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_V7YHgxlWgOQZvV","request_duration_ms":373}}' + - '{"last_request_metrics":{"request_id":"req_btvAOYY3aaZ8Ac","request_duration_ms":408}}' Idempotency-Key: - - 7166b601-b30e-43e3-8b85-011615ff582f + - 6c73e64a-225a-451c-93ff-0312d58990cf Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -727,7 +732,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:06:02 GMT + - Wed, 10 Dec 2025 04:58:48 GMT Content-Type: - application/json Content-Length: @@ -750,15 +755,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 7166b601-b30e-43e3-8b85-011615ff582f + - 6c73e64a-225a-451c-93ff-0312d58990cf Request-Id: - - req_wbr4B4TBkkJ74D + - req_C031zUQJI8ddZQ Stripe-Account: - - acct_1SHyYi3qamICWFXm + - acct_1ScfU644wybHTt1i Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -773,9 +778,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyYi3qamICWFXm", + "id": "acct_1ScfU644wybHTt1i", "object": "account", "deleted": true } - recorded_at: Tue, 14 Oct 2025 03:06:02 GMT + recorded_at: Wed, 10 Dec 2025 04:59:19 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_CreditCardCloner/_find_or_clone/when_called_with_a_valid_customer_and_payment_method/clones_both_the_payment_method_and_the_customer.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_CreditCardCloner/_find_or_clone/when_called_with_a_valid_customer_and_payment_method/clones_both_the_payment_method_and_the_customer.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_CreditCardCloner/_find_or_clone/when_called_with_a_valid_customer_and_payment_method/clones_both_the_payment_method_and_the_customer.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_CreditCardCloner/_find_or_clone/when_called_with_a_valid_customer_and_payment_method/clones_both_the_payment_method_and_the_customer.yml index a9b272aef3..4c5e9be255 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_CreditCardCloner/_find_or_clone/when_called_with_a_valid_customer_and_payment_method/clones_both_the_payment_method_and_the_customer.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_CreditCardCloner/_find_or_clone/when_called_with_a_valid_customer_and_payment_method/clones_both_the_payment_method_and_the_customer.yml @@ -8,15 +8,13 @@ http_interactions: string: type=card&card[number]=4242424242424242&card[exp_month]=8&card[exp_year]=2026&card[cvc]=314 headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" - X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_wbr4B4TBkkJ74D","request_duration_ms":2944}}' Idempotency-Key: - - 85098a2c-8449-4b1e-99cd-0d933be9e2d1 + - 9fd9f044-73a0-4b82-8bd1-0a1d5882e135 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:06:03 GMT + - Wed, 10 Dec 2025 05:05:26 GMT Content-Type: - application/json Content-Length: - - '1054' + - '1082' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=moB9xx2PgXhts_HL9i_aOpaZoqY8g8i-a3VSl8c7IRg1W9gngWtXczVR6azmglaIPaHgVnKLGAo93ZmR Idempotency-Key: - - 85098a2c-8449-4b1e-99cd-0d933be9e2d1 + - 9fd9f044-73a0-4b82-8bd1-0a1d5882e135 Original-Request: - - req_auSIYwPzPUWGne + - req_Z7CwU3CYSUKcGq Request-Id: - - req_auSIYwPzPUWGne + - req_Z7CwU3CYSUKcGq Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +79,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHyYoKuuB1fWySnrC25pBpn", + "id": "pm_1ScfacKuuB1fWySnvtEgWQvp", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -125,13 +123,14 @@ http_interactions: }, "wallet": null }, - "created": 1760411163, + "created": 1765343126, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:06:03 GMT + recorded_at: Wed, 10 Dec 2025 05:05:56 GMT - request: method: post uri: https://api.stripe.com/v1/customers @@ -140,15 +139,15 @@ http_interactions: string: name=Apple+Customer&email=apple.customer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_auSIYwPzPUWGne","request_duration_ms":377}}' + - '{"last_request_metrics":{"request_id":"req_Z7CwU3CYSUKcGq","request_duration_ms":500}}' Idempotency-Key: - - 92a0e39a-0697-4642-9238-70533afe7d1f + - c5bb5a89-5283-4239-aa82-b41ee0aa0816 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -165,11 +164,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:06:03 GMT + - Wed, 10 Dec 2025 05:05:26 GMT Content-Type: - application/json Content-Length: - - '650' + - '678' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -188,17 +187,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=d3KvnUfhMyyfqprIRNueyO0t_r60xwldO8HYfIWd9yQ44pLNa9U04HS18d2W8L9VbiGbkbujMmQCBeHn Idempotency-Key: - - 92a0e39a-0697-4642-9238-70533afe7d1f + - c5bb5a89-5283-4239-aa82-b41ee0aa0816 Original-Request: - - req_SIJ56Rx3a5Wquv + - req_TKD1y2MRiZj5Z9 Request-Id: - - req_SIJ56Rx3a5Wquv + - req_TKD1y2MRiZj5Z9 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -213,18 +212,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TERRXMsr9v5VA1", + "id": "cus_TZpFGv0qHRohU4", "object": "customer", "address": null, "balance": 0, - "created": 1760411163, + "created": 1765343126, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "apple.customer@example.com", - "invoice_prefix": "FG0XCBL7", + "invoice_prefix": "AX8UXJBP", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -241,24 +241,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 14 Oct 2025 03:06:03 GMT + recorded_at: Wed, 10 Dec 2025 05:05:57 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_methods/pm_1SHyYoKuuB1fWySnrC25pBpn/attach + uri: https://api.stripe.com/v1/payment_methods/pm_1ScfacKuuB1fWySnvtEgWQvp/attach body: encoding: UTF-8 - string: customer=cus_TERRXMsr9v5VA1 + string: customer=cus_TZpFGv0qHRohU4 headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_SIJ56Rx3a5Wquv","request_duration_ms":439}}' + - '{"last_request_metrics":{"request_id":"req_TKD1y2MRiZj5Z9","request_duration_ms":527}}' Idempotency-Key: - - 5990c627-81a3-4ba2-a7f2-49b52c127b07 + - c7c5df8e-bacc-4ddc-9e13-3c8637f207a5 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -275,11 +275,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:06:04 GMT + - Wed, 10 Dec 2025 05:05:27 GMT Content-Type: - application/json Content-Length: - - '1065' + - '1093' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -298,17 +298,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=d3KvnUfhMyyfqprIRNueyO0t_r60xwldO8HYfIWd9yQ44pLNa9U04HS18d2W8L9VbiGbkbujMmQCBeHn Idempotency-Key: - - 5990c627-81a3-4ba2-a7f2-49b52c127b07 + - c7c5df8e-bacc-4ddc-9e13-3c8637f207a5 Original-Request: - - req_0BG98ksbwwjWCQ + - req_Xw2hc0JYoML3MF Request-Id: - - req_0BG98ksbwwjWCQ + - req_Xw2hc0JYoML3MF Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -323,7 +323,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHyYoKuuB1fWySnrC25pBpn", + "id": "pm_1ScfacKuuB1fWySnvtEgWQvp", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -367,13 +367,14 @@ http_interactions: }, "wallet": null }, - "created": 1760411163, - "customer": "cus_TERRXMsr9v5VA1", + "created": 1765343126, + "customer": "cus_TZpFGv0qHRohU4", + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:06:04 GMT + recorded_at: Wed, 10 Dec 2025 05:05:58 GMT - request: method: post uri: https://api.stripe.com/v1/accounts @@ -382,15 +383,15 @@ http_interactions: string: type=standard&country=AU&email=apple.producer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_0BG98ksbwwjWCQ","request_duration_ms":615}}' + - '{"last_request_metrics":{"request_id":"req_Xw2hc0JYoML3MF","request_duration_ms":603}}' Idempotency-Key: - - 2fea3465-33a6-42ce-b467-7cf255049353 + - 0c7bc366-8629-4cdd-b65d-a8eb3c9686bf Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -407,11 +408,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:06:06 GMT + - Wed, 10 Dec 2025 05:05:29 GMT Content-Type: - application/json Content-Length: - - '3445' + - '3527' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -430,17 +431,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=d3KvnUfhMyyfqprIRNueyO0t_r60xwldO8HYfIWd9yQ44pLNa9U04HS18d2W8L9VbiGbkbujMmQCBeHn Idempotency-Key: - - 2fea3465-33a6-42ce-b467-7cf255049353 + - 0c7bc366-8629-4cdd-b65d-a8eb3c9686bf Original-Request: - - req_arMYWdzOCwucwW + - req_eZqocGYFDVLGwi Request-Id: - - req_arMYWdzOCwucwW + - req_eZqocGYFDVLGwi Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -455,7 +456,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyYq3udJRmDqb1", + "id": "acct_1Scfad43K0hLUxAT", "object": "account", "business_profile": { "annual_revenue": null, @@ -464,6 +465,7 @@ http_interactions: "minority_owned_business_designation": null, "name": null, "product_description": null, + "specified_commercial_transactions_act_url": null, "support_address": null, "support_email": null, "support_phone": null, @@ -488,7 +490,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1760411165, + "created": 1765343128, "default_currency": "aud", "details_submitted": false, "email": "apple.producer@example.com", @@ -497,7 +499,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SHyYq3udJRmDqb1/external_accounts" + "url": "/v1/accounts/acct_1Scfad43K0hLUxAT/external_accounts" }, "future_requirements": { "alternatives": [], @@ -589,6 +591,7 @@ http_interactions: }, "statement_descriptor": null }, + "paypay_payments": {}, "sepa_debit_payments": {} }, "tos_acceptance": { @@ -598,22 +601,22 @@ http_interactions: }, "type": "standard" } - recorded_at: Tue, 14 Oct 2025 03:06:06 GMT + recorded_at: Wed, 10 Dec 2025 05:06:00 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_methods/pm_1SHyYoKuuB1fWySnrC25pBpn + uri: https://api.stripe.com/v1/payment_methods/pm_1ScfacKuuB1fWySnvtEgWQvp body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_arMYWdzOCwucwW","request_duration_ms":2080}}' + - '{"last_request_metrics":{"request_id":"req_eZqocGYFDVLGwi","request_duration_ms":2375}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -628,11 +631,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:06:06 GMT + - Wed, 10 Dec 2025 05:05:30 GMT Content-Type: - application/json Content-Length: - - '1065' + - '1093' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -651,11 +654,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=d3KvnUfhMyyfqprIRNueyO0t_r60xwldO8HYfIWd9yQ44pLNa9U04HS18d2W8L9VbiGbkbujMmQCBeHn Request-Id: - - req_Q2xVWDnGCVzx9a + - req_PQoMg0QyQ7dBng Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -670,7 +673,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHyYoKuuB1fWySnrC25pBpn", + "id": "pm_1ScfacKuuB1fWySnvtEgWQvp", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -714,13 +717,14 @@ http_interactions: }, "wallet": null }, - "created": 1760411163, - "customer": "cus_TERRXMsr9v5VA1", + "created": 1765343126, + "customer": "cus_TZpFGv0qHRohU4", + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:06:06 GMT + recorded_at: Wed, 10 Dec 2025 05:06:00 GMT - request: method: get uri: https://api.stripe.com/v1/customers?email=apple.customer@example.com&limit=100 @@ -729,15 +733,15 @@ http_interactions: string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Q2xVWDnGCVzx9a","request_duration_ms":288}}' + - '{"last_request_metrics":{"request_id":"req_PQoMg0QyQ7dBng","request_duration_ms":306}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Stripe-Account: - - acct_1SHyYq3udJRmDqb1 + - acct_1Scfad43K0hLUxAT X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -752,7 +756,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:06:06 GMT + - Wed, 10 Dec 2025 05:05:30 GMT Content-Type: - application/json Content-Length: @@ -775,13 +779,13 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=d3KvnUfhMyyfqprIRNueyO0t_r60xwldO8HYfIWd9yQ44pLNa9U04HS18d2W8L9VbiGbkbujMmQCBeHn Request-Id: - - req_0IsW7RjKWvduj5 + - req_Nl079AG3cjg6rT Stripe-Account: - - acct_1SHyYq3udJRmDqb1 + - acct_1Scfad43K0hLUxAT Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -801,26 +805,26 @@ http_interactions: "has_more": false, "url": "/v1/customers" } - recorded_at: Tue, 14 Oct 2025 03:06:06 GMT + recorded_at: Wed, 10 Dec 2025 05:06:01 GMT - request: method: post uri: https://api.stripe.com/v1/payment_methods body: encoding: UTF-8 - string: customer=cus_TERRXMsr9v5VA1&payment_method=pm_1SHyYoKuuB1fWySnrC25pBpn + string: customer=cus_TZpFGv0qHRohU4&payment_method=pm_1ScfacKuuB1fWySnvtEgWQvp headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_0IsW7RjKWvduj5","request_duration_ms":290}}' + - '{"last_request_metrics":{"request_id":"req_Nl079AG3cjg6rT","request_duration_ms":299}}' Idempotency-Key: - - 9d278612-9620-403f-9244-f3af3f57141d + - 81b4e0c2-3e25-43b5-8f4d-435e5eb30731 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Stripe-Account: - - acct_1SHyYq3udJRmDqb1 + - acct_1Scfad43K0hLUxAT X-Stripe-Client-User-Agent: - "" Content-Type: @@ -837,11 +841,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:06:07 GMT + - Wed, 10 Dec 2025 05:05:30 GMT Content-Type: - application/json Content-Length: - - '1049' + - '1077' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -860,19 +864,19 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=d3KvnUfhMyyfqprIRNueyO0t_r60xwldO8HYfIWd9yQ44pLNa9U04HS18d2W8L9VbiGbkbujMmQCBeHn Idempotency-Key: - - 9d278612-9620-403f-9244-f3af3f57141d + - 81b4e0c2-3e25-43b5-8f4d-435e5eb30731 Original-Request: - - req_F5wjicVPWqgxUk + - req_biNzDSilfni226 Request-Id: - - req_F5wjicVPWqgxUk + - req_biNzDSilfni226 Stripe-Account: - - acct_1SHyYq3udJRmDqb1 + - acct_1Scfad43K0hLUxAT Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -887,7 +891,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHyYt3udJRmDqb1iRftEW6b", + "id": "pm_1Scfag43K0hLUxATGo0J3KcZ", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -931,13 +935,14 @@ http_interactions: }, "wallet": null }, - "created": 1760411167, + "created": 1765343130, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:06:07 GMT + recorded_at: Wed, 10 Dec 2025 05:06:01 GMT - request: method: post uri: https://api.stripe.com/v1/customers @@ -946,17 +951,17 @@ http_interactions: string: email=apple.customer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_F5wjicVPWqgxUk","request_duration_ms":372}}' + - '{"last_request_metrics":{"request_id":"req_biNzDSilfni226","request_duration_ms":439}}' Idempotency-Key: - - '02873ce3-19ed-42ba-9f76-68a276fa629f' + - 211ae51f-ebbc-46ef-937f-4bd0cf027961 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Stripe-Account: - - acct_1SHyYq3udJRmDqb1 + - acct_1Scfad43K0hLUxAT X-Stripe-Client-User-Agent: - "" Content-Type: @@ -973,11 +978,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:06:07 GMT + - Wed, 10 Dec 2025 05:05:31 GMT Content-Type: - application/json Content-Length: - - '638' + - '666' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -996,19 +1001,19 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=d3KvnUfhMyyfqprIRNueyO0t_r60xwldO8HYfIWd9yQ44pLNa9U04HS18d2W8L9VbiGbkbujMmQCBeHn Idempotency-Key: - - '02873ce3-19ed-42ba-9f76-68a276fa629f' + - 211ae51f-ebbc-46ef-937f-4bd0cf027961 Original-Request: - - req_LUv5JyG8UWrnXO + - req_iJPcoaVBW8QJ7U Request-Id: - - req_LUv5JyG8UWrnXO + - req_iJPcoaVBW8QJ7U Stripe-Account: - - acct_1SHyYq3udJRmDqb1 + - acct_1Scfad43K0hLUxAT Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -1023,18 +1028,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TERRjpkmETtdkp", + "id": "cus_TZpFt3UU9y4KJ9", "object": "customer", "address": null, "balance": 0, - "created": 1760411167, + "created": 1765343131, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "apple.customer@example.com", - "invoice_prefix": "KCPE2SH1", + "invoice_prefix": "7BSTL6G9", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -1051,26 +1057,26 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 14 Oct 2025 03:06:07 GMT + recorded_at: Wed, 10 Dec 2025 05:06:02 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_methods/pm_1SHyYt3udJRmDqb1iRftEW6b/attach + uri: https://api.stripe.com/v1/payment_methods/pm_1Scfag43K0hLUxATGo0J3KcZ/attach body: encoding: UTF-8 - string: customer=cus_TERRjpkmETtdkp + string: customer=cus_TZpFt3UU9y4KJ9 headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_LUv5JyG8UWrnXO","request_duration_ms":408}}' + - '{"last_request_metrics":{"request_id":"req_iJPcoaVBW8QJ7U","request_duration_ms":436}}' Idempotency-Key: - - accf6303-39e3-4760-ad71-6d512eac2256 + - 0ef65704-9295-46f7-99f6-e39f5ac246b5 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Stripe-Account: - - acct_1SHyYq3udJRmDqb1 + - acct_1Scfad43K0hLUxAT X-Stripe-Client-User-Agent: - "" Content-Type: @@ -1087,11 +1093,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:06:08 GMT + - Wed, 10 Dec 2025 05:05:31 GMT Content-Type: - application/json Content-Length: - - '1065' + - '1093' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -1110,19 +1116,19 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=d3KvnUfhMyyfqprIRNueyO0t_r60xwldO8HYfIWd9yQ44pLNa9U04HS18d2W8L9VbiGbkbujMmQCBeHn Idempotency-Key: - - accf6303-39e3-4760-ad71-6d512eac2256 + - 0ef65704-9295-46f7-99f6-e39f5ac246b5 Original-Request: - - req_7rhBTyuCzCgZzg + - req_ks6cVoH1imrVSh Request-Id: - - req_7rhBTyuCzCgZzg + - req_ks6cVoH1imrVSh Stripe-Account: - - acct_1SHyYq3udJRmDqb1 + - acct_1Scfad43K0hLUxAT Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -1137,7 +1143,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHyYt3udJRmDqb1iRftEW6b", + "id": "pm_1Scfag43K0hLUxATGo0J3KcZ", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -1181,32 +1187,33 @@ http_interactions: }, "wallet": null }, - "created": 1760411167, - "customer": "cus_TERRjpkmETtdkp", + "created": 1765343130, + "customer": "cus_TZpFt3UU9y4KJ9", + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:06:08 GMT + recorded_at: Wed, 10 Dec 2025 05:06:02 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_methods/pm_1SHyYt3udJRmDqb1iRftEW6b + uri: https://api.stripe.com/v1/payment_methods/pm_1Scfag43K0hLUxATGo0J3KcZ body: encoding: UTF-8 string: metadata[ofn-clone]=true headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_7rhBTyuCzCgZzg","request_duration_ms":383}}' + - '{"last_request_metrics":{"request_id":"req_ks6cVoH1imrVSh","request_duration_ms":390}}' Idempotency-Key: - - a215fac4-518b-4299-96f7-5dd72f4e238d + - ab180706-62c2-4bdd-b87a-e5546fba8edd Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Stripe-Account: - - acct_1SHyYq3udJRmDqb1 + - acct_1Scfad43K0hLUxAT X-Stripe-Client-User-Agent: - "" Content-Type: @@ -1223,11 +1230,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:06:08 GMT + - Wed, 10 Dec 2025 05:05:32 GMT Content-Type: - application/json Content-Length: - - '1092' + - '1120' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -1246,19 +1253,19 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=d3KvnUfhMyyfqprIRNueyO0t_r60xwldO8HYfIWd9yQ44pLNa9U04HS18d2W8L9VbiGbkbujMmQCBeHn Idempotency-Key: - - a215fac4-518b-4299-96f7-5dd72f4e238d + - ab180706-62c2-4bdd-b87a-e5546fba8edd Original-Request: - - req_zzdEef3OqXSw4H + - req_9yp8JxVIVk77y3 Request-Id: - - req_zzdEef3OqXSw4H + - req_9yp8JxVIVk77y3 Stripe-Account: - - acct_1SHyYq3udJRmDqb1 + - acct_1Scfad43K0hLUxAT Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -1273,7 +1280,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHyYt3udJRmDqb1iRftEW6b", + "id": "pm_1Scfag43K0hLUxATGo0J3KcZ", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -1317,32 +1324,33 @@ http_interactions: }, "wallet": null }, - "created": 1760411167, - "customer": "cus_TERRjpkmETtdkp", + "created": 1765343130, + "customer": "cus_TZpFt3UU9y4KJ9", + "customer_account": null, "livemode": false, "metadata": { "ofn-clone": "true" }, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:06:08 GMT + recorded_at: Wed, 10 Dec 2025 05:06:02 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SHyYq3udJRmDqb1 + uri: https://api.stripe.com/v1/accounts/acct_1Scfad43K0hLUxAT body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_zzdEef3OqXSw4H","request_duration_ms":415}}' + - '{"last_request_metrics":{"request_id":"req_9yp8JxVIVk77y3","request_duration_ms":432}}' Idempotency-Key: - - 65220c41-e25e-4b6a-9e46-c55ba7f31e94 + - ee2f7312-65cd-433f-8a16-7589aaccdfd2 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -1357,7 +1365,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:06:11 GMT + - Wed, 10 Dec 2025 05:05:35 GMT Content-Type: - application/json Content-Length: @@ -1380,15 +1388,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=AhPRuPruhbL6j1zm7HfE8eBayqlqQ7OFvgbuwa79BHVAhrQtpVyhDNiXCNs_ifCCE2UHDBjMUCZ4kqXt + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=d3KvnUfhMyyfqprIRNueyO0t_r60xwldO8HYfIWd9yQ44pLNa9U04HS18d2W8L9VbiGbkbujMmQCBeHn Idempotency-Key: - - 65220c41-e25e-4b6a-9e46-c55ba7f31e94 + - ee2f7312-65cd-433f-8a16-7589aaccdfd2 Request-Id: - - req_K5z4axV62uj291 + - req_kknO7PC6RS3ze7 Stripe-Account: - - acct_1SHyYq3udJRmDqb1 + - acct_1Scfad43K0hLUxAT Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -1403,9 +1411,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHyYq3udJRmDqb1", + "id": "acct_1Scfad43K0hLUxAT", "object": "account", "deleted": true } - recorded_at: Tue, 14 Oct 2025 03:06:11 GMT + recorded_at: Wed, 10 Dec 2025 05:06:05 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_CreditCardRemover/_remove/Stripe_customer_does_not_exist/raises_an_error.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_CreditCardRemover/_remove/Stripe_customer_does_not_exist/raises_an_error.yml similarity index 86% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_CreditCardRemover/_remove/Stripe_customer_does_not_exist/raises_an_error.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_CreditCardRemover/_remove/Stripe_customer_does_not_exist/raises_an_error.yml index ff39e37eb5..faf3bea286 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_CreditCardRemover/_remove/Stripe_customer_does_not_exist/raises_an_error.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_CreditCardRemover/_remove/Stripe_customer_does_not_exist/raises_an_error.yml @@ -8,13 +8,13 @@ http_interactions: string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_1RsZjka6QFaNFz","request_duration_ms":2250}}' + - '{"last_request_metrics":{"request_id":"req_6l3vaqHE1iKLRf","request_duration_ms":2377}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -29,7 +29,7 @@ http_interactions: Server: - nginx Date: - - Thu, 06 Nov 2025 17:28:04 GMT + - Wed, 10 Dec 2025 04:59:10 GMT Content-Type: - application/json Content-Length: @@ -52,11 +52,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=xsu1z93yii5Y95tC8R6Z1HrnBYqlYAiexaLOSzelBoBfkGI_qYp84hq4D4rAFyZr5m_6yUH8auNG5IAv + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_yB2LSIKpr5up0X + - req_rrvgkkv6E9qODc Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -76,11 +76,11 @@ http_interactions: "doc_url": "https://stripe.com/docs/error-codes/resource-missing", "message": "No such customer: 'non_existing_customer_id'", "param": "id", - "request_log_url": "https://dashboard.stripe.com/test/logs/req_yB2LSIKpr5up0X?t=1762450084", + "request_log_url": "https://dashboard.stripe.com/test/logs/req_rrvgkkv6E9qODc?t=1765342749", "type": "invalid_request_error" } } - recorded_at: Thu, 06 Nov 2025 17:28:04 GMT + recorded_at: Wed, 10 Dec 2025 04:59:40 GMT - request: method: post uri: https://api.stripe.com/v1/accounts @@ -89,13 +89,13 @@ http_interactions: string: type=standard&country=AU&email=apple.producer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - ba438468-262e-48b8-8df4-883e47bc9964 + - 19091a3e-951f-4c7b-a438-5981f345e8d0 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -112,7 +112,7 @@ http_interactions: Server: - nginx Date: - - Thu, 06 Nov 2025 17:28:06 GMT + - Wed, 10 Dec 2025 04:59:12 GMT Content-Type: - application/json Content-Length: @@ -135,17 +135,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=xsu1z93yii5Y95tC8R6Z1HrnBYqlYAiexaLOSzelBoBfkGI_qYp84hq4D4rAFyZr5m_6yUH8auNG5IAv + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - ba438468-262e-48b8-8df4-883e47bc9964 + - 19091a3e-951f-4c7b-a438-5981f345e8d0 Original-Request: - - req_PsU9iKDhSY2G0b + - req_SbUJHS4N8E7vIY Request-Id: - - req_PsU9iKDhSY2G0b + - req_SbUJHS4N8E7vIY Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -160,7 +160,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SQWyeEJSKGySE54", + "id": "acct_1ScfUYKjWhzvPJBB", "object": "account", "business_profile": { "annual_revenue": null, @@ -194,7 +194,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1762450085, + "created": 1765342751, "default_currency": "aud", "details_submitted": false, "email": "apple.producer@example.com", @@ -203,7 +203,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SQWyeEJSKGySE54/external_accounts" + "url": "/v1/accounts/acct_1ScfUYKjWhzvPJBB/external_accounts" }, "future_requirements": { "alternatives": [], @@ -305,24 +305,24 @@ http_interactions: }, "type": "standard" } - recorded_at: Thu, 06 Nov 2025 17:28:06 GMT + recorded_at: Wed, 10 Dec 2025 04:59:42 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SQWyeEJSKGySE54 + uri: https://api.stripe.com/v1/accounts/acct_1ScfUYKjWhzvPJBB body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_PsU9iKDhSY2G0b","request_duration_ms":2253}}' + - '{"last_request_metrics":{"request_id":"req_SbUJHS4N8E7vIY","request_duration_ms":2270}}' Idempotency-Key: - - 365b5b53-ccab-41ae-8fb3-34e4af4e2abc + - de5a2f49-d3ee-4711-9b72-34e1b533364d Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -337,7 +337,7 @@ http_interactions: Server: - nginx Date: - - Thu, 06 Nov 2025 17:28:08 GMT + - Wed, 10 Dec 2025 04:59:15 GMT Content-Type: - application/json Content-Length: @@ -360,15 +360,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=xsu1z93yii5Y95tC8R6Z1HrnBYqlYAiexaLOSzelBoBfkGI_qYp84hq4D4rAFyZr5m_6yUH8auNG5IAv + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 365b5b53-ccab-41ae-8fb3-34e4af4e2abc + - de5a2f49-d3ee-4711-9b72-34e1b533364d Request-Id: - - req_d4CECr0bxi2axe + - req_dGVftadBzts2Su Stripe-Account: - - acct_1SQWyeEJSKGySE54 + - acct_1ScfUYKjWhzvPJBB Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -383,9 +383,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SQWyeEJSKGySE54", + "id": "acct_1ScfUYKjWhzvPJBB", "object": "account", "deleted": true } - recorded_at: Thu, 06 Nov 2025 17:28:08 GMT + recorded_at: Wed, 10 Dec 2025 04:59:46 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_CreditCardRemover/_remove/Stripe_customer_exists/and_is_deleted/deletes_the_credit_card_clone.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_CreditCardRemover/_remove/Stripe_customer_exists/and_is_deleted/deletes_the_credit_card_clone.yml similarity index 83% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_CreditCardRemover/_remove/Stripe_customer_exists/and_is_deleted/deletes_the_credit_card_clone.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_CreditCardRemover/_remove/Stripe_customer_exists/and_is_deleted/deletes_the_credit_card_clone.yml index c41cae5f08..f8a45479d5 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_CreditCardRemover/_remove/Stripe_customer_exists/and_is_deleted/deletes_the_credit_card_clone.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_CreditCardRemover/_remove/Stripe_customer_exists/and_is_deleted/deletes_the_credit_card_clone.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_x79fNj1mjyapXq","request_duration_ms":2249}}' + - '{"last_request_metrics":{"request_id":"req_aNWvKRlNsNGO8U","request_duration_ms":2539}}' Idempotency-Key: - - 0cc18233-4714-40a1-960f-61a7775a0497 + - 86a40e86-5cd7-4d49-a71b-b84ade71140d Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Thu, 06 Nov 2025 17:27:59 GMT + - Wed, 10 Dec 2025 04:59:04 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=xsu1z93yii5Y95tC8R6Z1HrnBYqlYAiexaLOSzelBoBfkGI_qYp84hq4D4rAFyZr5m_6yUH8auNG5IAv + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 0cc18233-4714-40a1-960f-61a7775a0497 + - 86a40e86-5cd7-4d49-a71b-b84ade71140d Original-Request: - - req_MXzmuPAJwohC3W + - req_gmJITuqhR15AwE Request-Id: - - req_MXzmuPAJwohC3W + - req_gmJITuqhR15AwE Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TNHXBO9AUnMDSh", + "id": "cus_TZp8IzN7wBRAOc", "object": "customer", "address": null, "balance": 0, - "created": 1762450078, + "created": 1765342744, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "6X4KQTLX", + "invoice_prefix": "VGDL2CCK", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Thu, 06 Nov 2025 17:27:59 GMT + recorded_at: Wed, 10 Dec 2025 04:59:35 GMT - request: method: post uri: https://api.stripe.com/v1/payment_methods/pm_card_visa/attach body: encoding: UTF-8 - string: customer=cus_TNHXBO9AUnMDSh + string: customer=cus_TZp8IzN7wBRAOc headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_MXzmuPAJwohC3W","request_duration_ms":344}}' + - '{"last_request_metrics":{"request_id":"req_gmJITuqhR15AwE","request_duration_ms":809}}' Idempotency-Key: - - ea114c2d-0c87-4667-b3c1-2fd83791ce21 + - ceab64fc-beb1-4554-8579-4344778a17ed Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Thu, 06 Nov 2025 17:27:59 GMT + - Wed, 10 Dec 2025 04:59:05 GMT Content-Type: - application/json Content-Length: - - '1066' + - '1094' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=xsu1z93yii5Y95tC8R6Z1HrnBYqlYAiexaLOSzelBoBfkGI_qYp84hq4D4rAFyZr5m_6yUH8auNG5IAv + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - ea114c2d-0c87-4667-b3c1-2fd83791ce21 + - ceab64fc-beb1-4554-8579-4344778a17ed Original-Request: - - req_0igMtM7K5xj1yU + - req_kIBgGuKZihV5DA Request-Id: - - req_0igMtM7K5xj1yU + - req_kIBgGuKZihV5DA Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SQWyZE2SHQy4eF793fMtmJT", + "id": "pm_1ScfUSKuuB1fWySngpD3qTKL", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -217,9 +218,9 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, - "fingerprint": "fYruUeN4kzOmlQx3", + "fingerprint": "6E6tgVjx6U65iHFV", "funding": "credit", "generated_from": null, "last4": "4242", @@ -235,13 +236,14 @@ http_interactions: }, "wallet": null }, - "created": 1762450079, - "customer": "cus_TNHXBO9AUnMDSh", + "created": 1765342744, + "customer": "cus_TZp8IzN7wBRAOc", + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Thu, 06 Nov 2025 17:27:59 GMT + recorded_at: Wed, 10 Dec 2025 04:59:35 GMT - request: method: post uri: https://api.stripe.com/v1/accounts @@ -250,15 +252,15 @@ http_interactions: string: type=standard&country=AU&email=apple.producer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_0igMtM7K5xj1yU","request_duration_ms":612}}' + - '{"last_request_metrics":{"request_id":"req_kIBgGuKZihV5DA","request_duration_ms":664}}' Idempotency-Key: - - f25ef097-51e3-461a-ad13-229f157931d9 + - bcad121a-1452-4434-a3f5-cb21ecc1cd93 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -275,7 +277,7 @@ http_interactions: Server: - nginx Date: - - Thu, 06 Nov 2025 17:28:01 GMT + - Wed, 10 Dec 2025 04:59:07 GMT Content-Type: - application/json Content-Length: @@ -298,17 +300,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=xsu1z93yii5Y95tC8R6Z1HrnBYqlYAiexaLOSzelBoBfkGI_qYp84hq4D4rAFyZr5m_6yUH8auNG5IAv + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - f25ef097-51e3-461a-ad13-229f157931d9 + - bcad121a-1452-4434-a3f5-cb21ecc1cd93 Original-Request: - - req_8058VIwZxRAszh + - req_SiJ9EGfdgLXAZS Request-Id: - - req_8058VIwZxRAszh + - req_SiJ9EGfdgLXAZS Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -323,7 +325,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SQWyZCV4ih4cMbF", + "id": "acct_1ScfUTKMj4RncAf2", "object": "account", "business_profile": { "annual_revenue": null, @@ -357,7 +359,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1762450080, + "created": 1765342746, "default_currency": "aud", "details_submitted": false, "email": "apple.producer@example.com", @@ -366,7 +368,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SQWyZCV4ih4cMbF/external_accounts" + "url": "/v1/accounts/acct_1ScfUTKMj4RncAf2/external_accounts" }, "future_requirements": { "alternatives": [], @@ -468,24 +470,24 @@ http_interactions: }, "type": "standard" } - recorded_at: Thu, 06 Nov 2025 17:28:01 GMT + recorded_at: Wed, 10 Dec 2025 04:59:37 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SQWyZCV4ih4cMbF + uri: https://api.stripe.com/v1/accounts/acct_1ScfUTKMj4RncAf2 body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_8058VIwZxRAszh","request_duration_ms":2025}}' + - '{"last_request_metrics":{"request_id":"req_SiJ9EGfdgLXAZS","request_duration_ms":2224}}' Idempotency-Key: - - 5995d0d9-923a-4d0f-bf59-2343ac065654 + - 67a20bcf-b409-49ff-9154-6a07c5f0f35b Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -500,7 +502,7 @@ http_interactions: Server: - nginx Date: - - Thu, 06 Nov 2025 17:28:03 GMT + - Wed, 10 Dec 2025 04:59:09 GMT Content-Type: - application/json Content-Length: @@ -523,15 +525,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=xsu1z93yii5Y95tC8R6Z1HrnBYqlYAiexaLOSzelBoBfkGI_qYp84hq4D4rAFyZr5m_6yUH8auNG5IAv + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 5995d0d9-923a-4d0f-bf59-2343ac065654 + - 67a20bcf-b409-49ff-9154-6a07c5f0f35b Request-Id: - - req_1RsZjka6QFaNFz + - req_6l3vaqHE1iKLRf Stripe-Account: - - acct_1SQWyZCV4ih4cMbF + - acct_1ScfUTKMj4RncAf2 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -546,9 +548,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SQWyZCV4ih4cMbF", + "id": "acct_1ScfUTKMj4RncAf2", "object": "account", "deleted": true } - recorded_at: Thu, 06 Nov 2025 17:28:04 GMT + recorded_at: Wed, 10 Dec 2025 04:59:40 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_CreditCardRemover/_remove/Stripe_customer_exists/and_is_not_deleted/deletes_the_credit_card_clone_and_the_customer.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_CreditCardRemover/_remove/Stripe_customer_exists/and_is_not_deleted/deletes_the_credit_card_clone_and_the_customer.yml similarity index 82% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_CreditCardRemover/_remove/Stripe_customer_exists/and_is_not_deleted/deletes_the_credit_card_clone_and_the_customer.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_CreditCardRemover/_remove/Stripe_customer_exists/and_is_not_deleted/deletes_the_credit_card_clone_and_the_customer.yml index 8cb04880bc..2188f8c0d2 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_CreditCardRemover/_remove/Stripe_customer_exists/and_is_not_deleted/deletes_the_credit_card_clone_and_the_customer.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_CreditCardRemover/_remove/Stripe_customer_exists/and_is_not_deleted/deletes_the_credit_card_clone_and_the_customer.yml @@ -8,13 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" + X-Stripe-Client-Telemetry: + - '{"last_request_metrics":{"request_id":"req_EBJ8XUSOu6IUY3","request_duration_ms":2388}}' Idempotency-Key: - - c51e52f5-fb69-45ad-88ca-cc6bfa4e5d54 + - a55ac7ad-bc69-4058-9875-4d0b9918e611 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Thu, 06 Nov 2025 17:27:52 GMT + - Wed, 10 Dec 2025 04:58:57 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=2i6YrnQ4S32G_SrAn7bIM0UzyCO27KTnggJmEUuRVk0lPHv0Bu-CqUF6hmO2MylCqps6Ulmt2SjCFYDl + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - c51e52f5-fb69-45ad-88ca-cc6bfa4e5d54 + - a55ac7ad-bc69-4058-9875-4d0b9918e611 Original-Request: - - req_ztT2pzL28yDGIU + - req_yaMsTkB3LkPeWC Request-Id: - - req_ztT2pzL28yDGIU + - req_yaMsTkB3LkPeWC Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TNHXSMHO6szSsv", + "id": "cus_TZp8IUQUgdee8c", "object": "customer", "address": null, "balance": 0, - "created": 1762450072, + "created": 1765342737, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "AS3STE4P", + "invoice_prefix": "BCNHUVGP", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -107,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Thu, 06 Nov 2025 17:27:52 GMT + recorded_at: Wed, 10 Dec 2025 04:59:28 GMT - request: method: post uri: https://api.stripe.com/v1/payment_methods/pm_card_visa/attach body: encoding: UTF-8 - string: customer=cus_TNHXSMHO6szSsv + string: customer=cus_TZp8IUQUgdee8c headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_ztT2pzL28yDGIU","request_duration_ms":589}}' + - '{"last_request_metrics":{"request_id":"req_yaMsTkB3LkPeWC","request_duration_ms":435}}' Idempotency-Key: - - dfe93423-26e8-44e7-b764-3c816cc11126 + - d8f94282-f2e5-4e13-a2fe-fac4ff99ba24 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -141,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Thu, 06 Nov 2025 17:27:53 GMT + - Wed, 10 Dec 2025 04:58:58 GMT Content-Type: - application/json Content-Length: - - '1066' + - '1094' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -164,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=xsu1z93yii5Y95tC8R6Z1HrnBYqlYAiexaLOSzelBoBfkGI_qYp84hq4D4rAFyZr5m_6yUH8auNG5IAv + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - dfe93423-26e8-44e7-b764-3c816cc11126 + - d8f94282-f2e5-4e13-a2fe-fac4ff99ba24 Original-Request: - - req_zjfqqEJP08mDXX + - req_y9vyXRgBh3Sz8M Request-Id: - - req_zjfqqEJP08mDXX + - req_y9vyXRgBh3Sz8M Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -189,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SQWySE2SHQy4eF76oYTyPyk", + "id": "pm_1ScfULKuuB1fWySnP6f7JLUq", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -215,9 +218,9 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, - "fingerprint": "fYruUeN4kzOmlQx3", + "fingerprint": "6E6tgVjx6U65iHFV", "funding": "credit", "generated_from": null, "last4": "4242", @@ -233,28 +236,29 @@ http_interactions: }, "wallet": null }, - "created": 1762450072, - "customer": "cus_TNHXSMHO6szSsv", + "created": 1765342737, + "customer": "cus_TZp8IUQUgdee8c", + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Thu, 06 Nov 2025 17:27:53 GMT + recorded_at: Wed, 10 Dec 2025 04:59:28 GMT - request: method: get - uri: https://api.stripe.com/v1/customers/cus_TNHXSMHO6szSsv + uri: https://api.stripe.com/v1/customers/cus_TZp8IUQUgdee8c body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_zjfqqEJP08mDXX","request_duration_ms":918}}' + - '{"last_request_metrics":{"request_id":"req_y9vyXRgBh3Sz8M","request_duration_ms":714}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -269,11 +273,11 @@ http_interactions: Server: - nginx Date: - - Thu, 06 Nov 2025 17:27:53 GMT + - Wed, 10 Dec 2025 04:58:58 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -292,11 +296,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=xsu1z93yii5Y95tC8R6Z1HrnBYqlYAiexaLOSzelBoBfkGI_qYp84hq4D4rAFyZr5m_6yUH8auNG5IAv + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_Y8Mbb6b97GR0mh + - req_rg8JW2DFYu65SI Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -311,18 +315,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TNHXSMHO6szSsv", + "id": "cus_TZp8IUQUgdee8c", "object": "customer", "address": null, "balance": 0, - "created": 1762450072, + "created": 1765342737, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "AS3STE4P", + "invoice_prefix": "BCNHUVGP", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -339,24 +344,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Thu, 06 Nov 2025 17:27:53 GMT + recorded_at: Wed, 10 Dec 2025 04:59:29 GMT - request: method: delete - uri: https://api.stripe.com/v1/customers/cus_TNHXSMHO6szSsv + uri: https://api.stripe.com/v1/customers/cus_TZp8IUQUgdee8c body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Y8Mbb6b97GR0mh","request_duration_ms":235}}' + - '{"last_request_metrics":{"request_id":"req_rg8JW2DFYu65SI","request_duration_ms":277}}' Idempotency-Key: - - b8c01c9e-008d-434d-bb1c-0de71aae92b3 + - de90d7a0-9148-44d6-ab7f-b3fedb97703b Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -371,7 +376,7 @@ http_interactions: Server: - nginx Date: - - Thu, 06 Nov 2025 17:27:53 GMT + - Wed, 10 Dec 2025 04:58:58 GMT Content-Type: - application/json Content-Length: @@ -394,13 +399,13 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=xsu1z93yii5Y95tC8R6Z1HrnBYqlYAiexaLOSzelBoBfkGI_qYp84hq4D4rAFyZr5m_6yUH8auNG5IAv + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - b8c01c9e-008d-434d-bb1c-0de71aae92b3 + - de90d7a0-9148-44d6-ab7f-b3fedb97703b Request-Id: - - req_QfT2abzMAEoV3K + - req_NfxOA9IqtqJagR Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -415,11 +420,11 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TNHXSMHO6szSsv", + "id": "cus_TZp8IUQUgdee8c", "object": "customer", "deleted": true } - recorded_at: Thu, 06 Nov 2025 17:27:53 GMT + recorded_at: Wed, 10 Dec 2025 04:59:29 GMT - request: method: post uri: https://api.stripe.com/v1/accounts @@ -428,15 +433,15 @@ http_interactions: string: type=standard&country=AU&email=apple.producer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_QfT2abzMAEoV3K","request_duration_ms":444}}' + - '{"last_request_metrics":{"request_id":"req_NfxOA9IqtqJagR","request_duration_ms":401}}' Idempotency-Key: - - d90af607-9626-45fc-94eb-bd82d631a918 + - eb841f86-0e27-405d-9807-65adac7b2f23 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -453,7 +458,7 @@ http_interactions: Server: - nginx Date: - - Thu, 06 Nov 2025 17:27:56 GMT + - Wed, 10 Dec 2025 04:59:01 GMT Content-Type: - application/json Content-Length: @@ -476,17 +481,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=xsu1z93yii5Y95tC8R6Z1HrnBYqlYAiexaLOSzelBoBfkGI_qYp84hq4D4rAFyZr5m_6yUH8auNG5IAv + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - d90af607-9626-45fc-94eb-bd82d631a918 + - eb841f86-0e27-405d-9807-65adac7b2f23 Original-Request: - - req_kJNoCYsp4RJOiP + - req_McFpPPWNijrsKs Request-Id: - - req_kJNoCYsp4RJOiP + - req_McFpPPWNijrsKs Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -501,7 +506,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SQWyUEOjFfBJoW2", + "id": "acct_1ScfUN4B4QkosqoY", "object": "account", "business_profile": { "annual_revenue": null, @@ -535,7 +540,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1762450075, + "created": 1765342740, "default_currency": "aud", "details_submitted": false, "email": "apple.producer@example.com", @@ -544,7 +549,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SQWyUEOjFfBJoW2/external_accounts" + "url": "/v1/accounts/acct_1ScfUN4B4QkosqoY/external_accounts" }, "future_requirements": { "alternatives": [], @@ -646,24 +651,24 @@ http_interactions: }, "type": "standard" } - recorded_at: Thu, 06 Nov 2025 17:27:56 GMT + recorded_at: Wed, 10 Dec 2025 04:59:31 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SQWyUEOjFfBJoW2 + uri: https://api.stripe.com/v1/accounts/acct_1ScfUN4B4QkosqoY body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_kJNoCYsp4RJOiP","request_duration_ms":2449}}' + - '{"last_request_metrics":{"request_id":"req_McFpPPWNijrsKs","request_duration_ms":2164}}' Idempotency-Key: - - 9db82ee0-bee7-47ad-bc80-a91137fe29f4 + - 19603b8a-ab97-4564-96e4-ea11398e464c Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -678,7 +683,7 @@ http_interactions: Server: - nginx Date: - - Thu, 06 Nov 2025 17:27:58 GMT + - Wed, 10 Dec 2025 04:59:03 GMT Content-Type: - application/json Content-Length: @@ -701,15 +706,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=xsu1z93yii5Y95tC8R6Z1HrnBYqlYAiexaLOSzelBoBfkGI_qYp84hq4D4rAFyZr5m_6yUH8auNG5IAv + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 9db82ee0-bee7-47ad-bc80-a91137fe29f4 + - 19603b8a-ab97-4564-96e4-ea11398e464c Request-Id: - - req_x79fNj1mjyapXq + - req_aNWvKRlNsNGO8U Stripe-Account: - - acct_1SQWyUEOjFfBJoW2 + - acct_1ScfUN4B4QkosqoY Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -724,9 +729,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SQWyUEOjFfBJoW2", + "id": "acct_1ScfUN4B4QkosqoY", "object": "account", "deleted": true } - recorded_at: Thu, 06 Nov 2025 17:27:58 GMT + recorded_at: Wed, 10 Dec 2025 04:59:34 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 84% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml index 34d9a659ce..f2eb67f991 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml @@ -8,13 +8,13 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - 05bbd189-fbb7-40be-bbb8-ee699b2ca546 + - debc28d1-b4aa-4e99-b9c3-c3216720ed52 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:11 GMT + - Wed, 10 Dec 2025 05:01:31 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 05bbd189-fbb7-40be-bbb8-ee699b2ca546 + - debc28d1-b4aa-4e99-b9c3-c3216720ed52 Original-Request: - - req_VRHiLiq5bXYR6o + - req_X5AFAQ0NBntliX Request-Id: - - req_VRHiLiq5bXYR6o + - req_X5AFAQ0NBntliX Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,18 +79,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVHV8q7ReCP7c", + "id": "cus_TZpB3KRRJGWOkF", "object": "customer", "address": null, "balance": 0, - "created": 1762270570, + "created": 1765342891, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "4Q7KWAGT", + "invoice_prefix": "XKE7SYFM", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -107,24 +108,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:36:11 GMT + recorded_at: Wed, 10 Dec 2025 05:02:02 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_visa_chargeDeclinedVelocityLimitExceeded&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVHV8q7ReCP7c&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_visa_chargeDeclinedVelocityLimitExceeded&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpB3KRRJGWOkF&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_VRHiLiq5bXYR6o","request_duration_ms":428}}' + - '{"last_request_metrics":{"request_id":"req_X5AFAQ0NBntliX","request_duration_ms":413}}' Idempotency-Key: - - 93ea85ae-3084-4578-b239-456e3cf6953e + - d66314a3-7acf-4818-935e-0da25a457949 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -141,11 +142,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:11 GMT + - Wed, 10 Dec 2025 05:01:32 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -164,17 +165,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 93ea85ae-3084-4578-b239-456e3cf6953e + - d66314a3-7acf-4818-935e-0da25a457949 Original-Request: - - req_TJGuQQsJWQlhuq + - req_kWPn8Q1ZRCp6NK Request-Id: - - req_TJGuQQsJWQlhuq + - req_kWPn8Q1ZRCp6NK Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -189,7 +190,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmHHKuuB1fWySn0ufn8lrY", + "id": "pi_3ScfWqKuuB1fWySn27JwiRL8", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -205,19 +206,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270571, + "created": 1765342892, "currency": "eur", - "customer": "cus_TMVHV8q7ReCP7c", + "customer": "cus_TZpB3KRRJGWOkF", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmHHKuuB1fWySnYXvwNql1", + "payment_method": "pm_1ScfWqKuuB1fWySnxfqhkH3v", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -242,24 +243,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:36:11 GMT + recorded_at: Wed, 10 Dec 2025 05:02:02 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmHHKuuB1fWySn0ufn8lrY/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWqKuuB1fWySn27JwiRL8/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_TJGuQQsJWQlhuq","request_duration_ms":421}}' + - '{"last_request_metrics":{"request_id":"req_kWPn8Q1ZRCp6NK","request_duration_ms":436}}' Idempotency-Key: - - ead12726-b7dd-4006-8322-0c0aa2593508 + - ce88e39c-0fdf-4d23-aac3-1d9fd8b53482 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -276,11 +277,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:12 GMT + - Wed, 10 Dec 2025 05:01:33 GMT Content-Type: - application/json Content-Length: - - '5426' + - '5503' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -299,17 +300,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - ead12726-b7dd-4006-8322-0c0aa2593508 + - ce88e39c-0fdf-4d23-aac3-1d9fd8b53482 Original-Request: - - req_2YboX0xt2RwCRl + - req_0xBqw4rFg7slB8 Request-Id: - - req_2YboX0xt2RwCRl + - req_0xBqw4rFg7slB8 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: { "error": { "advice_code": "try_again_later", - "charge": "ch_3SPmHHKuuB1fWySn0th05w5m", + "charge": "ch_3ScfWqKuuB1fWySn2jLvTCt5", "code": "card_declined", "decline_code": "card_velocity_exceeded", "doc_url": "https://stripe.com/docs/error-codes/card-declined", @@ -334,7 +335,7 @@ http_interactions: "network_advice_code": "02", "network_decline_code": "61", "payment_intent": { - "id": "pi_3SPmHHKuuB1fWySn0ufn8lrY", + "id": "pi_3ScfWqKuuB1fWySn27JwiRL8", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -350,15 +351,15 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270571, + "created": 1765342892, "currency": "eur", - "customer": "cus_TMVHV8q7ReCP7c", + "customer": "cus_TZpB3KRRJGWOkF", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": { "advice_code": "try_again_later", - "charge": "ch_3SPmHHKuuB1fWySn0th05w5m", + "charge": "ch_3ScfWqKuuB1fWySn2jLvTCt5", "code": "card_declined", "decline_code": "card_velocity_exceeded", "doc_url": "https://stripe.com/docs/error-codes/card-declined", @@ -366,7 +367,7 @@ http_interactions: "network_advice_code": "02", "network_decline_code": "61", "payment_method": { - "id": "pm_1SPmHHKuuB1fWySnYXvwNql1", + "id": "pm_1ScfWqKuuB1fWySnxfqhkH3v", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -392,7 +393,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "WoxwxVPUPcg0EjXW", "funding": "credit", @@ -410,15 +411,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270571, + "created": 1765342892, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, "type": "card_error" }, - "latest_charge": "ch_3SPmHHKuuB1fWySn0th05w5m", + "latest_charge": "ch_3ScfWqKuuB1fWySn2jLvTCt5", "livemode": false, "metadata": {}, "next_action": null, @@ -449,7 +451,7 @@ http_interactions: "transfer_group": null }, "payment_method": { - "id": "pm_1SPmHHKuuB1fWySnYXvwNql1", + "id": "pm_1ScfWqKuuB1fWySnxfqhkH3v", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -475,7 +477,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "WoxwxVPUPcg0EjXW", "funding": "credit", @@ -493,15 +495,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270571, + "created": 1765342892, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, - "request_log_url": "https://dashboard.stripe.com/test/logs/req_2YboX0xt2RwCRl?t=1762270571", + "request_log_url": "https://dashboard.stripe.com/test/logs/req_0xBqw4rFg7slB8?t=1765342892", "type": "card_error" } } - recorded_at: Tue, 04 Nov 2025 15:36:12 GMT + recorded_at: Wed, 10 Dec 2025 05:02:04 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 83% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml index ed98e31201..1eae743aaf 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml @@ -8,13 +8,13 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - f5c4bc4f-9f48-4122-8d0d-e75687199e27 + - 8d68c3e6-08bc-411b-a9ef-05557109031a Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:05 GMT + - Wed, 10 Dec 2025 05:01:26 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - f5c4bc4f-9f48-4122-8d0d-e75687199e27 + - 8d68c3e6-08bc-411b-a9ef-05557109031a Original-Request: - - req_wx1iU7lK28IudE + - req_SeAXfWIatJcXD8 Request-Id: - - req_wx1iU7lK28IudE + - req_SeAXfWIatJcXD8 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,18 +79,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVHeuW3eyMVRD", + "id": "cus_TZpB33VkBwl1qF", "object": "customer", "address": null, "balance": 0, - "created": 1762270565, + "created": 1765342886, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "GVG5KQTJ", + "invoice_prefix": "KMDRO4FH", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -107,24 +108,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:36:05 GMT + recorded_at: Wed, 10 Dec 2025 05:01:57 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_chargeDeclinedExpiredCard&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVHeuW3eyMVRD&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_chargeDeclinedExpiredCard&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpB33VkBwl1qF&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_wx1iU7lK28IudE","request_duration_ms":356}}' + - '{"last_request_metrics":{"request_id":"req_SeAXfWIatJcXD8","request_duration_ms":439}}' Idempotency-Key: - - 65ad3e5b-a5f9-439d-8026-8d2f363399c7 + - 11c2a6c0-f833-4ecf-afc4-0ab081d3317c Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -141,11 +142,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:05 GMT + - Wed, 10 Dec 2025 05:01:26 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -164,17 +165,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 65ad3e5b-a5f9-439d-8026-8d2f363399c7 + - 11c2a6c0-f833-4ecf-afc4-0ab081d3317c Original-Request: - - req_bJvlgwPaMutkK0 + - req_CMo3IC0Poex53c Request-Id: - - req_bJvlgwPaMutkK0 + - req_CMo3IC0Poex53c Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -189,7 +190,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmHBKuuB1fWySn1VLcw46H", + "id": "pi_3ScfWkKuuB1fWySn2lPP0MOt", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -205,19 +206,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270565, + "created": 1765342886, "currency": "eur", - "customer": "cus_TMVHeuW3eyMVRD", + "customer": "cus_TZpB33VkBwl1qF", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmHBKuuB1fWySn5qjimt6t", + "payment_method": "pm_1ScfWkKuuB1fWySnmjVlvZ2v", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -242,24 +243,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:36:05 GMT + recorded_at: Wed, 10 Dec 2025 05:01:57 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmHBKuuB1fWySn1VLcw46H/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWkKuuB1fWySn2lPP0MOt/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_bJvlgwPaMutkK0","request_duration_ms":488}}' + - '{"last_request_metrics":{"request_id":"req_CMo3IC0Poex53c","request_duration_ms":465}}' Idempotency-Key: - - ce1fb450-8d06-4355-aa58-8eea478c4601 + - 83b5b887-1c74-4afc-889b-9391dc0fa63e Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -276,11 +277,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:06 GMT + - Wed, 10 Dec 2025 05:01:27 GMT Content-Type: - application/json Content-Length: - - '5312' + - '5389' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -299,17 +300,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - ce1fb450-8d06-4355-aa58-8eea478c4601 + - 83b5b887-1c74-4afc-889b-9391dc0fa63e Original-Request: - - req_FqXyz12LZv0wqG + - req_i59BYUL8GCK0ni Request-Id: - - req_FqXyz12LZv0wqG + - req_i59BYUL8GCK0ni Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: { "error": { "advice_code": "confirm_card_data", - "charge": "ch_3SPmHBKuuB1fWySn1CnxlgrS", + "charge": "ch_3ScfWkKuuB1fWySn2N5br7yl", "code": "expired_card", "decline_code": "expired_card", "doc_url": "https://stripe.com/docs/error-codes/expired-card", @@ -335,7 +336,7 @@ http_interactions: "network_decline_code": "54", "param": "exp_month", "payment_intent": { - "id": "pi_3SPmHBKuuB1fWySn1VLcw46H", + "id": "pi_3ScfWkKuuB1fWySn2lPP0MOt", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -351,15 +352,15 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270565, + "created": 1765342886, "currency": "eur", - "customer": "cus_TMVHeuW3eyMVRD", + "customer": "cus_TZpB33VkBwl1qF", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": { "advice_code": "confirm_card_data", - "charge": "ch_3SPmHBKuuB1fWySn1CnxlgrS", + "charge": "ch_3ScfWkKuuB1fWySn2N5br7yl", "code": "expired_card", "decline_code": "expired_card", "doc_url": "https://stripe.com/docs/error-codes/expired-card", @@ -368,7 +369,7 @@ http_interactions: "network_decline_code": "54", "param": "exp_month", "payment_method": { - "id": "pm_1SPmHBKuuB1fWySn5qjimt6t", + "id": "pm_1ScfWkKuuB1fWySnmjVlvZ2v", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -394,7 +395,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "qpQikrTL7IyNA2rE", "funding": "credit", @@ -412,15 +413,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270565, + "created": 1765342886, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, "type": "card_error" }, - "latest_charge": "ch_3SPmHBKuuB1fWySn1CnxlgrS", + "latest_charge": "ch_3ScfWkKuuB1fWySn2N5br7yl", "livemode": false, "metadata": {}, "next_action": null, @@ -451,7 +453,7 @@ http_interactions: "transfer_group": null }, "payment_method": { - "id": "pm_1SPmHBKuuB1fWySn5qjimt6t", + "id": "pm_1ScfWkKuuB1fWySnmjVlvZ2v", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -477,7 +479,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "qpQikrTL7IyNA2rE", "funding": "credit", @@ -495,15 +497,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270565, + "created": 1765342886, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, - "request_log_url": "https://dashboard.stripe.com/test/logs/req_FqXyz12LZv0wqG?t=1762270565", + "request_log_url": "https://dashboard.stripe.com/test/logs/req_i59BYUL8GCK0ni?t=1765342887", "type": "card_error" } } - recorded_at: Tue, 04 Nov 2025 15:36:06 GMT + recorded_at: Wed, 10 Dec 2025 05:01:58 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 83% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml index 8297996dd2..2ea75f5693 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Nop2qkp1LnkwYX","request_duration_ms":303}}' + - '{"last_request_metrics":{"request_id":"req_ieGRzEsqo8BB5k","request_duration_ms":311}}' Idempotency-Key: - - 40c382fe-bc38-421b-9f37-7b345a974da6 + - 26aa808a-88e4-4262-a6f8-33bf7d076023 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:57 GMT + - Wed, 10 Dec 2025 05:01:18 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 40c382fe-bc38-421b-9f37-7b345a974da6 + - 26aa808a-88e4-4262-a6f8-33bf7d076023 Original-Request: - - req_G7CV2Zwj4ZwaPy + - req_8u736DCVnNVjhK Request-Id: - - req_G7CV2Zwj4ZwaPy + - req_8u736DCVnNVjhK Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVHixcIs3Sf2E", + "id": "cus_TZpArNhzDbxVce", "object": "customer", "address": null, "balance": 0, - "created": 1762270557, + "created": 1765342878, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "OAGAPJ4J", + "invoice_prefix": "RPHARDPM", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:57 GMT + recorded_at: Wed, 10 Dec 2025 05:01:48 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_visa_chargeDeclined&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVHixcIs3Sf2E&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_visa_chargeDeclined&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpArNhzDbxVce&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_G7CV2Zwj4ZwaPy","request_duration_ms":429}}' + - '{"last_request_metrics":{"request_id":"req_8u736DCVnNVjhK","request_duration_ms":435}}' Idempotency-Key: - - 51b7a7c0-c887-4070-a8b1-b28e36721d5b + - 383abb5a-85b6-4263-b704-cc351b6e304a Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:57 GMT + - Wed, 10 Dec 2025 05:01:18 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 51b7a7c0-c887-4070-a8b1-b28e36721d5b + - 383abb5a-85b6-4263-b704-cc351b6e304a Original-Request: - - req_4jOkXaDXNlWXo6 + - req_RsAm9WwVy3Wksu Request-Id: - - req_4jOkXaDXNlWXo6 + - req_RsAm9WwVy3Wksu Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmH3KuuB1fWySn238qYlmm", + "id": "pi_3ScfWcKuuB1fWySn12qHLAgj", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270557, + "created": 1765342878, "currency": "eur", - "customer": "cus_TMVHixcIs3Sf2E", + "customer": "cus_TZpArNhzDbxVce", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmH3KuuB1fWySnpFDiRwE2", + "payment_method": "pm_1ScfWcKuuB1fWySnnO4T5CLn", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:57 GMT + recorded_at: Wed, 10 Dec 2025 05:01:49 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmH3KuuB1fWySn238qYlmm/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWcKuuB1fWySn12qHLAgj/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_4jOkXaDXNlWXo6","request_duration_ms":407}}' + - '{"last_request_metrics":{"request_id":"req_RsAm9WwVy3Wksu","request_duration_ms":456}}' Idempotency-Key: - - b4f9e295-443a-46dd-ae7f-e1c643eec659 + - 47a71306-9ff9-46a3-bda5-a38b54cd32b5 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:58 GMT + - Wed, 10 Dec 2025 05:01:19 GMT Content-Type: - application/json Content-Length: - - '5194' + - '5271' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - b4f9e295-443a-46dd-ae7f-e1c643eec659 + - 47a71306-9ff9-46a3-bda5-a38b54cd32b5 Original-Request: - - req_NdUEhqptzG1vLu + - req_4m1IWakNRVUnVk Request-Id: - - req_NdUEhqptzG1vLu + - req_4m1IWakNRVUnVk Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -328,14 +329,14 @@ http_interactions: { "error": { "advice_code": "try_again_later", - "charge": "ch_3SPmH3KuuB1fWySn2oicxeHt", + "charge": "ch_3ScfWcKuuB1fWySn1opAy0gA", "code": "card_declined", "decline_code": "generic_decline", "doc_url": "https://stripe.com/docs/error-codes/card-declined", "message": "Your card was declined.", "network_decline_code": "01", "payment_intent": { - "id": "pi_3SPmH3KuuB1fWySn238qYlmm", + "id": "pi_3ScfWcKuuB1fWySn12qHLAgj", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -351,22 +352,22 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270557, + "created": 1765342878, "currency": "eur", - "customer": "cus_TMVHixcIs3Sf2E", + "customer": "cus_TZpArNhzDbxVce", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": { "advice_code": "try_again_later", - "charge": "ch_3SPmH3KuuB1fWySn2oicxeHt", + "charge": "ch_3ScfWcKuuB1fWySn1opAy0gA", "code": "card_declined", "decline_code": "generic_decline", "doc_url": "https://stripe.com/docs/error-codes/card-declined", "message": "Your card was declined.", "network_decline_code": "01", "payment_method": { - "id": "pm_1SPmH3KuuB1fWySnpFDiRwE2", + "id": "pm_1ScfWcKuuB1fWySnnO4T5CLn", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -392,7 +393,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "IKC2ubfpSLuZKsVs", "funding": "credit", @@ -410,15 +411,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270557, + "created": 1765342878, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, "type": "card_error" }, - "latest_charge": "ch_3SPmH3KuuB1fWySn2oicxeHt", + "latest_charge": "ch_3ScfWcKuuB1fWySn1opAy0gA", "livemode": false, "metadata": {}, "next_action": null, @@ -449,7 +451,7 @@ http_interactions: "transfer_group": null }, "payment_method": { - "id": "pm_1SPmH3KuuB1fWySnpFDiRwE2", + "id": "pm_1ScfWcKuuB1fWySnnO4T5CLn", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -475,7 +477,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "IKC2ubfpSLuZKsVs", "funding": "credit", @@ -493,15 +495,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270557, + "created": 1765342878, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, - "request_log_url": "https://dashboard.stripe.com/test/logs/req_NdUEhqptzG1vLu?t=1762270558", + "request_log_url": "https://dashboard.stripe.com/test/logs/req_4m1IWakNRVUnVk?t=1765342878", "type": "card_error" } } - recorded_at: Tue, 04 Nov 2025 15:35:58 GMT + recorded_at: Wed, 10 Dec 2025 05:01:50 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 83% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml index d9fd78e395..27eca993e1 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml @@ -8,13 +8,13 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - 6e0395e8-2b8e-4a06-a669-bce4ef3005e3 + - a94931a4-5ba0-4468-bf0c-fdc68b4c9076 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:07 GMT + - Wed, 10 Dec 2025 05:01:28 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 6e0395e8-2b8e-4a06-a669-bce4ef3005e3 + - a94931a4-5ba0-4468-bf0c-fdc68b4c9076 Original-Request: - - req_nW9evbhYR5FfLk + - req_IqCaydqGvfRBJ6 Request-Id: - - req_nW9evbhYR5FfLk + - req_IqCaydqGvfRBJ6 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,18 +79,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVHrDGNdFUZkN", + "id": "cus_TZpBWHup9kupNV", "object": "customer", "address": null, "balance": 0, - "created": 1762270566, + "created": 1765342888, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "TOABGRZO", + "invoice_prefix": "OIJENCTG", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -107,24 +108,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:36:07 GMT + recorded_at: Wed, 10 Dec 2025 05:01:58 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_chargeDeclinedIncorrectCvc&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVHrDGNdFUZkN&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_chargeDeclinedIncorrectCvc&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpBWHup9kupNV&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_nW9evbhYR5FfLk","request_duration_ms":439}}' + - '{"last_request_metrics":{"request_id":"req_IqCaydqGvfRBJ6","request_duration_ms":423}}' Idempotency-Key: - - 21a982c6-e0e9-4f35-96fe-c157b6b557cc + - 94e33228-a787-429d-9aec-edfd7c84f70f Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -141,11 +142,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:07 GMT + - Wed, 10 Dec 2025 05:01:28 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -164,17 +165,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 21a982c6-e0e9-4f35-96fe-c157b6b557cc + - 94e33228-a787-429d-9aec-edfd7c84f70f Original-Request: - - req_Nb3iRjs5Nqedup + - req_lRkGVIOOiVBFaa Request-Id: - - req_Nb3iRjs5Nqedup + - req_lRkGVIOOiVBFaa Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -189,7 +190,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmHDKuuB1fWySn0nMlDsMO", + "id": "pi_3ScfWmKuuB1fWySn18X8bmJD", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -205,19 +206,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270567, + "created": 1765342888, "currency": "eur", - "customer": "cus_TMVHrDGNdFUZkN", + "customer": "cus_TZpBWHup9kupNV", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmHDKuuB1fWySneVPGB7OY", + "payment_method": "pm_1ScfWmKuuB1fWySnduK679dw", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -242,24 +243,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:36:07 GMT + recorded_at: Wed, 10 Dec 2025 05:01:59 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmHDKuuB1fWySn0nMlDsMO/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWmKuuB1fWySn18X8bmJD/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Nb3iRjs5Nqedup","request_duration_ms":405}}' + - '{"last_request_metrics":{"request_id":"req_lRkGVIOOiVBFaa","request_duration_ms":435}}' Idempotency-Key: - - 5b8480c6-85e9-402b-83f9-a1e7f06f2c2d + - 69b3254d-9935-45e6-bb50-a7e6db510e9e Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -276,11 +277,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:08 GMT + - Wed, 10 Dec 2025 05:01:29 GMT Content-Type: - application/json Content-Length: - - '5340' + - '5417' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -299,17 +300,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 5b8480c6-85e9-402b-83f9-a1e7f06f2c2d + - 69b3254d-9935-45e6-bb50-a7e6db510e9e Original-Request: - - req_987ctz6fJoMPTy + - req_u2SvlolTwWWcso Request-Id: - - req_987ctz6fJoMPTy + - req_u2SvlolTwWWcso Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: { "error": { "advice_code": "confirm_card_data", - "charge": "ch_3SPmHDKuuB1fWySn0D6PB9A0", + "charge": "ch_3ScfWmKuuB1fWySn1t42x5pH", "code": "incorrect_cvc", "decline_code": "incorrect_cvc", "doc_url": "https://stripe.com/docs/error-codes/incorrect-cvc", @@ -335,7 +336,7 @@ http_interactions: "network_decline_code": "N7", "param": "cvc", "payment_intent": { - "id": "pi_3SPmHDKuuB1fWySn0nMlDsMO", + "id": "pi_3ScfWmKuuB1fWySn18X8bmJD", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -351,15 +352,15 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270567, + "created": 1765342888, "currency": "eur", - "customer": "cus_TMVHrDGNdFUZkN", + "customer": "cus_TZpBWHup9kupNV", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": { "advice_code": "confirm_card_data", - "charge": "ch_3SPmHDKuuB1fWySn0D6PB9A0", + "charge": "ch_3ScfWmKuuB1fWySn1t42x5pH", "code": "incorrect_cvc", "decline_code": "incorrect_cvc", "doc_url": "https://stripe.com/docs/error-codes/incorrect-cvc", @@ -368,7 +369,7 @@ http_interactions: "network_decline_code": "N7", "param": "cvc", "payment_method": { - "id": "pm_1SPmHDKuuB1fWySneVPGB7OY", + "id": "pm_1ScfWmKuuB1fWySnduK679dw", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -394,7 +395,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "eWmxEL5j3bNdPnK5", "funding": "credit", @@ -412,15 +413,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270567, + "created": 1765342888, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, "type": "card_error" }, - "latest_charge": "ch_3SPmHDKuuB1fWySn0D6PB9A0", + "latest_charge": "ch_3ScfWmKuuB1fWySn1t42x5pH", "livemode": false, "metadata": {}, "next_action": null, @@ -451,7 +453,7 @@ http_interactions: "transfer_group": null }, "payment_method": { - "id": "pm_1SPmHDKuuB1fWySneVPGB7OY", + "id": "pm_1ScfWmKuuB1fWySnduK679dw", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -477,7 +479,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "eWmxEL5j3bNdPnK5", "funding": "credit", @@ -495,15 +497,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270567, + "created": 1765342888, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, - "request_log_url": "https://dashboard.stripe.com/test/logs/req_987ctz6fJoMPTy?t=1762270567", + "request_log_url": "https://dashboard.stripe.com/test/logs/req_u2SvlolTwWWcso?t=1765342888", "type": "card_error" } } - recorded_at: Tue, 04 Nov 2025 15:36:08 GMT + recorded_at: Wed, 10 Dec 2025 05:02:00 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 83% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml index 23bc6eb088..63556a1710 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml @@ -8,13 +8,13 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - ef34cbef-cf73-4154-bc61-44ced172ce3b + - d1296687-d288-4e05-a685-3994a0574b12 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:59 GMT + - Wed, 10 Dec 2025 05:01:20 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - ef34cbef-cf73-4154-bc61-44ced172ce3b + - d1296687-d288-4e05-a685-3994a0574b12 Original-Request: - - req_jtc4E4kqt1nx94 + - req_hR6Sm7zpAHpadz Request-Id: - - req_jtc4E4kqt1nx94 + - req_hR6Sm7zpAHpadz Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,18 +79,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVHiTRbiHNzUn", + "id": "cus_TZpATy1aw14RS5", "object": "customer", "address": null, "balance": 0, - "created": 1762270559, + "created": 1765342879, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "XEYDSEAG", + "invoice_prefix": "9TQH7EI7", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -107,24 +108,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:59 GMT + recorded_at: Wed, 10 Dec 2025 05:01:50 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_visa_chargeDeclinedInsufficientFunds&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVHiTRbiHNzUn&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_visa_chargeDeclinedInsufficientFunds&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpATy1aw14RS5&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_jtc4E4kqt1nx94","request_duration_ms":438}}' + - '{"last_request_metrics":{"request_id":"req_hR6Sm7zpAHpadz","request_duration_ms":433}}' Idempotency-Key: - - c44a482d-f0d5-4d3f-a4be-8ea4279d3681 + - cdd1b03f-b40d-440a-95f1-db692bb546a8 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -141,11 +142,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:59 GMT + - Wed, 10 Dec 2025 05:01:20 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -164,17 +165,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - c44a482d-f0d5-4d3f-a4be-8ea4279d3681 + - cdd1b03f-b40d-440a-95f1-db692bb546a8 Original-Request: - - req_rSQnFdY596IWaM + - req_DpXufl7ERooX3G Request-Id: - - req_rSQnFdY596IWaM + - req_DpXufl7ERooX3G Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -189,7 +190,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmH5KuuB1fWySn214HEXgY", + "id": "pi_3ScfWeKuuB1fWySn1J9HeL4I", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -205,19 +206,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270559, + "created": 1765342880, "currency": "eur", - "customer": "cus_TMVHiTRbiHNzUn", + "customer": "cus_TZpATy1aw14RS5", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmH5KuuB1fWySnsIC72pGB", + "payment_method": "pm_1ScfWeKuuB1fWySnbogzEME3", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -242,24 +243,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:59 GMT + recorded_at: Wed, 10 Dec 2025 05:01:51 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmH5KuuB1fWySn214HEXgY/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWeKuuB1fWySn1J9HeL4I/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_rSQnFdY596IWaM","request_duration_ms":407}}' + - '{"last_request_metrics":{"request_id":"req_DpXufl7ERooX3G","request_duration_ms":437}}' Idempotency-Key: - - ac0d3b34-e87d-48e5-8bc2-1daf924b7504 + - 4d1c1e09-fde1-4a4f-a4e1-117fc2ab0980 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -276,11 +277,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:00 GMT + - Wed, 10 Dec 2025 05:01:21 GMT Content-Type: - application/json Content-Length: - - '5290' + - '5367' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -299,17 +300,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - ac0d3b34-e87d-48e5-8bc2-1daf924b7504 + - 4d1c1e09-fde1-4a4f-a4e1-117fc2ab0980 Original-Request: - - req_YEs6PhcX83eFEI + - req_YIop0upyVXCFSW Request-Id: - - req_YEs6PhcX83eFEI + - req_YIop0upyVXCFSW Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: { "error": { "advice_code": "try_again_later", - "charge": "ch_3SPmH5KuuB1fWySn2YqkW7z5", + "charge": "ch_3ScfWeKuuB1fWySn1IgbVWeq", "code": "card_declined", "decline_code": "insufficient_funds", "doc_url": "https://stripe.com/docs/error-codes/card-declined", @@ -334,7 +335,7 @@ http_interactions: "network_advice_code": "02", "network_decline_code": "51", "payment_intent": { - "id": "pi_3SPmH5KuuB1fWySn214HEXgY", + "id": "pi_3ScfWeKuuB1fWySn1J9HeL4I", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -350,15 +351,15 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270559, + "created": 1765342880, "currency": "eur", - "customer": "cus_TMVHiTRbiHNzUn", + "customer": "cus_TZpATy1aw14RS5", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": { "advice_code": "try_again_later", - "charge": "ch_3SPmH5KuuB1fWySn2YqkW7z5", + "charge": "ch_3ScfWeKuuB1fWySn1IgbVWeq", "code": "card_declined", "decline_code": "insufficient_funds", "doc_url": "https://stripe.com/docs/error-codes/card-declined", @@ -366,7 +367,7 @@ http_interactions: "network_advice_code": "02", "network_decline_code": "51", "payment_method": { - "id": "pm_1SPmH5KuuB1fWySnsIC72pGB", + "id": "pm_1ScfWeKuuB1fWySnbogzEME3", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -392,7 +393,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "O0I0muUGQBJy3p73", "funding": "credit", @@ -410,15 +411,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270559, + "created": 1765342880, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, "type": "card_error" }, - "latest_charge": "ch_3SPmH5KuuB1fWySn2YqkW7z5", + "latest_charge": "ch_3ScfWeKuuB1fWySn1IgbVWeq", "livemode": false, "metadata": {}, "next_action": null, @@ -449,7 +451,7 @@ http_interactions: "transfer_group": null }, "payment_method": { - "id": "pm_1SPmH5KuuB1fWySnsIC72pGB", + "id": "pm_1ScfWeKuuB1fWySnbogzEME3", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -475,7 +477,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "O0I0muUGQBJy3p73", "funding": "credit", @@ -493,15 +495,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270559, + "created": 1765342880, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, - "request_log_url": "https://dashboard.stripe.com/test/logs/req_YEs6PhcX83eFEI?t=1762270559", + "request_log_url": "https://dashboard.stripe.com/test/logs/req_YIop0upyVXCFSW?t=1765342880", "type": "card_error" } } - recorded_at: Tue, 04 Nov 2025 15:36:00 GMT + recorded_at: Wed, 10 Dec 2025 05:01:52 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 83% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml index 51545a8aae..dd00416954 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml @@ -8,13 +8,13 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - d36047f2-ebb0-431e-a92a-9119abd69b43 + - 13697765-f756-4459-bafa-a6073e970d63 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:01 GMT + - Wed, 10 Dec 2025 05:01:22 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - d36047f2-ebb0-431e-a92a-9119abd69b43 + - 13697765-f756-4459-bafa-a6073e970d63 Original-Request: - - req_PZkRA9XIVsXHg4 + - req_CTY9QLN6Bg1pjf Request-Id: - - req_PZkRA9XIVsXHg4 + - req_CTY9QLN6Bg1pjf Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,18 +79,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVHvUO9T29XGN", + "id": "cus_TZpBDzroW7W2mt", "object": "customer", "address": null, "balance": 0, - "created": 1762270561, + "created": 1765342881, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "AEGYIDO5", + "invoice_prefix": "SDONQEZB", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -107,24 +108,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:36:01 GMT + recorded_at: Wed, 10 Dec 2025 05:01:52 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_visa_chargeDeclinedLostCard&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVHvUO9T29XGN&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_visa_chargeDeclinedLostCard&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpBDzroW7W2mt&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_PZkRA9XIVsXHg4","request_duration_ms":370}}' + - '{"last_request_metrics":{"request_id":"req_CTY9QLN6Bg1pjf","request_duration_ms":424}}' Idempotency-Key: - - 4a349654-f0f9-45e9-90f6-881a535bb335 + - 38549322-4931-4ba2-9ff9-55396d128954 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -141,11 +142,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:01 GMT + - Wed, 10 Dec 2025 05:01:23 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -164,17 +165,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 4a349654-f0f9-45e9-90f6-881a535bb335 + - 38549322-4931-4ba2-9ff9-55396d128954 Original-Request: - - req_nVlwFs3a9stQEy + - req_zjIL7unkJsrMLS Request-Id: - - req_nVlwFs3a9stQEy + - req_zjIL7unkJsrMLS Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -189,7 +190,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmH7KuuB1fWySn2sHevuHm", + "id": "pi_3ScfWgKuuB1fWySn2G472WqD", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -205,19 +206,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270561, + "created": 1765342882, "currency": "eur", - "customer": "cus_TMVHvUO9T29XGN", + "customer": "cus_TZpBDzroW7W2mt", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmH7KuuB1fWySnpMb95xYb", + "payment_method": "pm_1ScfWgKuuB1fWySnBJt4xrGE", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -242,24 +243,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:36:01 GMT + recorded_at: Wed, 10 Dec 2025 05:01:53 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmH7KuuB1fWySn2sHevuHm/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWgKuuB1fWySn2G472WqD/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_nVlwFs3a9stQEy","request_duration_ms":412}}' + - '{"last_request_metrics":{"request_id":"req_zjIL7unkJsrMLS","request_duration_ms":996}}' Idempotency-Key: - - 64a86196-2d0c-499e-9790-5c91c8b279db + - 7c380585-093a-4b5b-9f2a-4e1f3db00cf7 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -276,11 +277,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:02 GMT + - Wed, 10 Dec 2025 05:01:24 GMT Content-Type: - application/json Content-Length: - - '5254' + - '5331' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -299,17 +300,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 64a86196-2d0c-499e-9790-5c91c8b279db + - 7c380585-093a-4b5b-9f2a-4e1f3db00cf7 Original-Request: - - req_Yvi1gQt2CP1jYP + - req_1lreo6AEGdo3Hk Request-Id: - - req_Yvi1gQt2CP1jYP + - req_1lreo6AEGdo3Hk Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: { "error": { "advice_code": "do_not_try_again", - "charge": "ch_3SPmH7KuuB1fWySn2uu4tVIV", + "charge": "ch_3ScfWgKuuB1fWySn29haVSUz", "code": "card_declined", "decline_code": "lost_card", "doc_url": "https://stripe.com/docs/error-codes/card-declined", @@ -334,7 +335,7 @@ http_interactions: "network_advice_code": "01", "network_decline_code": "41", "payment_intent": { - "id": "pi_3SPmH7KuuB1fWySn2sHevuHm", + "id": "pi_3ScfWgKuuB1fWySn2G472WqD", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -350,15 +351,15 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270561, + "created": 1765342882, "currency": "eur", - "customer": "cus_TMVHvUO9T29XGN", + "customer": "cus_TZpBDzroW7W2mt", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": { "advice_code": "do_not_try_again", - "charge": "ch_3SPmH7KuuB1fWySn2uu4tVIV", + "charge": "ch_3ScfWgKuuB1fWySn29haVSUz", "code": "card_declined", "decline_code": "lost_card", "doc_url": "https://stripe.com/docs/error-codes/card-declined", @@ -366,7 +367,7 @@ http_interactions: "network_advice_code": "01", "network_decline_code": "41", "payment_method": { - "id": "pm_1SPmH7KuuB1fWySnpMb95xYb", + "id": "pm_1ScfWgKuuB1fWySnBJt4xrGE", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -392,7 +393,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "hMDekBwrnWL1oLxe", "funding": "credit", @@ -410,15 +411,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270561, + "created": 1765342882, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, "type": "card_error" }, - "latest_charge": "ch_3SPmH7KuuB1fWySn2uu4tVIV", + "latest_charge": "ch_3ScfWgKuuB1fWySn29haVSUz", "livemode": false, "metadata": {}, "next_action": null, @@ -449,7 +451,7 @@ http_interactions: "transfer_group": null }, "payment_method": { - "id": "pm_1SPmH7KuuB1fWySnpMb95xYb", + "id": "pm_1ScfWgKuuB1fWySnBJt4xrGE", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -475,7 +477,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "hMDekBwrnWL1oLxe", "funding": "credit", @@ -493,15 +495,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270561, + "created": 1765342882, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, - "request_log_url": "https://dashboard.stripe.com/test/logs/req_Yvi1gQt2CP1jYP?t=1762270561", + "request_log_url": "https://dashboard.stripe.com/test/logs/req_1lreo6AEGdo3Hk?t=1765342883", "type": "card_error" } } - recorded_at: Tue, 04 Nov 2025 15:36:02 GMT + recorded_at: Wed, 10 Dec 2025 05:01:54 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 83% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml index 64605e6cf1..493272d64d 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml @@ -8,13 +8,13 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - 3364af24-70a9-4a9a-9f4a-72ba7af13ce1 + - 13bc00fc-6732-4488-b62c-c35471c25745 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:09 GMT + - Wed, 10 Dec 2025 05:01:30 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 3364af24-70a9-4a9a-9f4a-72ba7af13ce1 + - 13bc00fc-6732-4488-b62c-c35471c25745 Original-Request: - - req_Q8RE0B0paGv6qw + - req_UXI1PVkDZz8uCs Request-Id: - - req_Q8RE0B0paGv6qw + - req_UXI1PVkDZz8uCs Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,18 +79,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVHKBm8LoU8TY", + "id": "cus_TZpBV6Gn0Y3Zca", "object": "customer", "address": null, "balance": 0, - "created": 1762270568, + "created": 1765342889, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "P9RDUMVV", + "invoice_prefix": "YMF3KBAP", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -107,24 +108,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:36:09 GMT + recorded_at: Wed, 10 Dec 2025 05:02:00 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_chargeDeclinedProcessingError&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVHKBm8LoU8TY&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_chargeDeclinedProcessingError&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpBV6Gn0Y3Zca&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Q8RE0B0paGv6qw","request_duration_ms":479}}' + - '{"last_request_metrics":{"request_id":"req_UXI1PVkDZz8uCs","request_duration_ms":419}}' Idempotency-Key: - - c832fb00-5b7e-4687-94ad-2df710404beb + - 44002f96-3b3e-4fa2-8b27-32bd0c64263d Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -141,11 +142,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:09 GMT + - Wed, 10 Dec 2025 05:01:30 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -164,17 +165,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - c832fb00-5b7e-4687-94ad-2df710404beb + - 44002f96-3b3e-4fa2-8b27-32bd0c64263d Original-Request: - - req_UUovUv3Knx1grN + - req_7hgWtZtD5aUZBa Request-Id: - - req_UUovUv3Knx1grN + - req_7hgWtZtD5aUZBa Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -189,7 +190,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmHFKuuB1fWySn1ZKZMAp1", + "id": "pi_3ScfWoKuuB1fWySn0x8q5egj", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -205,19 +206,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270569, + "created": 1765342890, "currency": "eur", - "customer": "cus_TMVHKBm8LoU8TY", + "customer": "cus_TZpBV6Gn0Y3Zca", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmHFKuuB1fWySneo3FnWXI", + "payment_method": "pm_1ScfWoKuuB1fWySnafCNjjfR", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -242,24 +243,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:36:09 GMT + recorded_at: Wed, 10 Dec 2025 05:02:01 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmHFKuuB1fWySn1ZKZMAp1/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWoKuuB1fWySn0x8q5egj/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_UUovUv3Knx1grN","request_duration_ms":503}}' + - '{"last_request_metrics":{"request_id":"req_7hgWtZtD5aUZBa","request_duration_ms":444}}' Idempotency-Key: - - aadd336a-d9ad-451f-ac38-a19e9657fc0e + - 49c6e42d-e141-4f86-acea-30b5cb0b1fd4 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -276,11 +277,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:10 GMT + - Wed, 10 Dec 2025 05:01:31 GMT Content-Type: - application/json Content-Length: - - '5306' + - '5383' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -299,17 +300,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - aadd336a-d9ad-451f-ac38-a19e9657fc0e + - 49c6e42d-e141-4f86-acea-30b5cb0b1fd4 Original-Request: - - req_HNvSASIbtq4Yai + - req_XHVi0Io0eJz5HC Request-Id: - - req_HNvSASIbtq4Yai + - req_XHVi0Io0eJz5HC Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,14 +327,14 @@ http_interactions: { "error": { "advice_code": "try_again_later", - "charge": "ch_3SPmHFKuuB1fWySn1CxL3Y2E", + "charge": "ch_3ScfWoKuuB1fWySn0dYLeKwP", "code": "processing_error", "decline_code": "processing_error", "doc_url": "https://stripe.com/docs/error-codes/processing-error", "message": "An error occurred while processing your card. Try again in a little bit.", "network_decline_code": "06", "payment_intent": { - "id": "pi_3SPmHFKuuB1fWySn1ZKZMAp1", + "id": "pi_3ScfWoKuuB1fWySn0x8q5egj", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -349,22 +350,22 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270569, + "created": 1765342890, "currency": "eur", - "customer": "cus_TMVHKBm8LoU8TY", + "customer": "cus_TZpBV6Gn0Y3Zca", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": { "advice_code": "try_again_later", - "charge": "ch_3SPmHFKuuB1fWySn1CxL3Y2E", + "charge": "ch_3ScfWoKuuB1fWySn0dYLeKwP", "code": "processing_error", "decline_code": "processing_error", "doc_url": "https://stripe.com/docs/error-codes/processing-error", "message": "An error occurred while processing your card. Try again in a little bit.", "network_decline_code": "06", "payment_method": { - "id": "pm_1SPmHFKuuB1fWySneo3FnWXI", + "id": "pm_1ScfWoKuuB1fWySnafCNjjfR", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -390,7 +391,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "9HWWxe4EyniQy61z", "funding": "credit", @@ -408,15 +409,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270569, + "created": 1765342890, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, "type": "card_error" }, - "latest_charge": "ch_3SPmHFKuuB1fWySn1CxL3Y2E", + "latest_charge": "ch_3ScfWoKuuB1fWySn0dYLeKwP", "livemode": false, "metadata": {}, "next_action": null, @@ -447,7 +449,7 @@ http_interactions: "transfer_group": null }, "payment_method": { - "id": "pm_1SPmHFKuuB1fWySneo3FnWXI", + "id": "pm_1ScfWoKuuB1fWySnafCNjjfR", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -473,7 +475,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "9HWWxe4EyniQy61z", "funding": "credit", @@ -491,15 +493,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270569, + "created": 1765342890, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, - "request_log_url": "https://dashboard.stripe.com/test/logs/req_HNvSASIbtq4Yai?t=1762270569", + "request_log_url": "https://dashboard.stripe.com/test/logs/req_XHVi0Io0eJz5HC?t=1765342890", "type": "card_error" } } - recorded_at: Tue, 04 Nov 2025 15:36:10 GMT + recorded_at: Wed, 10 Dec 2025 05:02:02 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 83% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml index 88168e513c..4a69a4e306 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_invalid/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml @@ -8,13 +8,13 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - 4517a27a-1547-4c88-a2fd-ad0d78976dd4 + - 27860be7-e383-4054-9204-263328dbd7b8 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:03 GMT + - Wed, 10 Dec 2025 05:01:24 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 4517a27a-1547-4c88-a2fd-ad0d78976dd4 + - 27860be7-e383-4054-9204-263328dbd7b8 Original-Request: - - req_XTJ87b5qS3Yufy + - req_OCZ1W5JI0r0eUf Request-Id: - - req_XTJ87b5qS3Yufy + - req_OCZ1W5JI0r0eUf Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,18 +79,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVHES6eEwzNVp", + "id": "cus_TZpBbH0OFX1Wpz", "object": "customer", "address": null, "balance": 0, - "created": 1762270563, + "created": 1765342884, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "I7OVCYPD", + "invoice_prefix": "PAUPDMBT", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -107,24 +108,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:36:03 GMT + recorded_at: Wed, 10 Dec 2025 05:01:55 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_visa_chargeDeclinedStolenCard&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVHES6eEwzNVp&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_visa_chargeDeclinedStolenCard&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpBbH0OFX1Wpz&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_XTJ87b5qS3Yufy","request_duration_ms":432}}' + - '{"last_request_metrics":{"request_id":"req_OCZ1W5JI0r0eUf","request_duration_ms":430}}' Idempotency-Key: - - e0c495e5-3ca5-45e8-bd20-57fd779d403a + - 6f8344c6-d4dd-4bdc-8232-aeb136839e1a Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -141,11 +142,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:03 GMT + - Wed, 10 Dec 2025 05:01:24 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -164,17 +165,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - e0c495e5-3ca5-45e8-bd20-57fd779d403a + - 6f8344c6-d4dd-4bdc-8232-aeb136839e1a Original-Request: - - req_BFKn5ifrsbaXNZ + - req_bWvkL8miMCpWrD Request-Id: - - req_BFKn5ifrsbaXNZ + - req_bWvkL8miMCpWrD Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -189,7 +190,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmH9KuuB1fWySn1kgg05UF", + "id": "pi_3ScfWiKuuB1fWySn2mG1zfY0", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -205,19 +206,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270563, + "created": 1765342884, "currency": "eur", - "customer": "cus_TMVHES6eEwzNVp", + "customer": "cus_TZpBbH0OFX1Wpz", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmH9KuuB1fWySnRj5LQQz8", + "payment_method": "pm_1ScfWiKuuB1fWySnPZECimSi", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -242,24 +243,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:36:03 GMT + recorded_at: Wed, 10 Dec 2025 05:01:55 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmH9KuuB1fWySn1kgg05UF/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWiKuuB1fWySn2mG1zfY0/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_BFKn5ifrsbaXNZ","request_duration_ms":612}}' + - '{"last_request_metrics":{"request_id":"req_bWvkL8miMCpWrD","request_duration_ms":442}}' Idempotency-Key: - - ee358913-eef5-449c-9ead-4c051f694d23 + - f0cb93d4-aa1f-42d1-bfb5-ba842895703b Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -276,11 +277,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:36:04 GMT + - Wed, 10 Dec 2025 05:01:25 GMT Content-Type: - application/json Content-Length: - - '5258' + - '5335' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -299,17 +300,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - ee358913-eef5-449c-9ead-4c051f694d23 + - f0cb93d4-aa1f-42d1-bfb5-ba842895703b Original-Request: - - req_N3qzc6D4HToHeQ + - req_W5mRMimSS5ttSE Request-Id: - - req_N3qzc6D4HToHeQ + - req_W5mRMimSS5ttSE Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: { "error": { "advice_code": "do_not_try_again", - "charge": "ch_3SPmH9KuuB1fWySn1s3WWMUl", + "charge": "ch_3ScfWiKuuB1fWySn2XI10S3z", "code": "card_declined", "decline_code": "stolen_card", "doc_url": "https://stripe.com/docs/error-codes/card-declined", @@ -334,7 +335,7 @@ http_interactions: "network_advice_code": "01", "network_decline_code": "43", "payment_intent": { - "id": "pi_3SPmH9KuuB1fWySn1kgg05UF", + "id": "pi_3ScfWiKuuB1fWySn2mG1zfY0", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -350,15 +351,15 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270563, + "created": 1765342884, "currency": "eur", - "customer": "cus_TMVHES6eEwzNVp", + "customer": "cus_TZpBbH0OFX1Wpz", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": { "advice_code": "do_not_try_again", - "charge": "ch_3SPmH9KuuB1fWySn1s3WWMUl", + "charge": "ch_3ScfWiKuuB1fWySn2XI10S3z", "code": "card_declined", "decline_code": "stolen_card", "doc_url": "https://stripe.com/docs/error-codes/card-declined", @@ -366,7 +367,7 @@ http_interactions: "network_advice_code": "01", "network_decline_code": "43", "payment_method": { - "id": "pm_1SPmH9KuuB1fWySnRj5LQQz8", + "id": "pm_1ScfWiKuuB1fWySnPZECimSi", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -392,7 +393,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "1pjhEFFOW1eCi1AB", "funding": "credit", @@ -410,15 +411,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270563, + "created": 1765342884, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, "type": "card_error" }, - "latest_charge": "ch_3SPmH9KuuB1fWySn1s3WWMUl", + "latest_charge": "ch_3ScfWiKuuB1fWySn2XI10S3z", "livemode": false, "metadata": {}, "next_action": null, @@ -449,7 +451,7 @@ http_interactions: "transfer_group": null }, "payment_method": { - "id": "pm_1SPmH9KuuB1fWySnRj5LQQz8", + "id": "pm_1ScfWiKuuB1fWySnPZECimSi", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -475,7 +477,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "1pjhEFFOW1eCi1AB", "funding": "credit", @@ -493,15 +495,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270563, + "created": 1765342884, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, - "request_log_url": "https://dashboard.stripe.com/test/logs/req_N3qzc6D4HToHeQ?t=1762270564", + "request_log_url": "https://dashboard.stripe.com/test/logs/req_W5mRMimSS5ttSE?t=1765342885", "type": "card_error" } } - recorded_at: Tue, 04 Nov 2025 15:36:04 GMT + recorded_at: Wed, 10 Dec 2025 05:01:56 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_American_Express/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_American_Express/captures_the_payment.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_American_Express/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_American_Express/captures_the_payment.yml index 1e9cf4bb1b..075174664f 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_American_Express/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_American_Express/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_ecipBFGS1o4tLN","request_duration_ms":241}}' + - '{"last_request_metrics":{"request_id":"req_9iMQiS4zbaCNeT","request_duration_ms":372}}' Idempotency-Key: - - 4d4c013c-b4a2-470e-b7e6-15127ef4fc0b + - 7dda7445-0058-4d28-8264-8a166624dfbc Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:27 GMT + - Wed, 10 Dec 2025 05:00:49 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 4d4c013c-b4a2-470e-b7e6-15127ef4fc0b + - 7dda7445-0058-4d28-8264-8a166624dfbc Original-Request: - - req_Z6PLctU8xikIZq + - req_BJTeHvgQih9dxu Request-Id: - - req_Z6PLctU8xikIZq + - req_BJTeHvgQih9dxu Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVHzXPFYiLlXQ", + "id": "cus_TZpAQzi3OZiJyj", "object": "customer", "address": null, "balance": 0, - "created": 1762270527, + "created": 1765342849, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "0CX30UDW", + "invoice_prefix": "R3BITBVD", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:27 GMT + recorded_at: Wed, 10 Dec 2025 05:01:20 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_amex&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVHzXPFYiLlXQ&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_amex&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpAQzi3OZiJyj&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Z6PLctU8xikIZq","request_duration_ms":484}}' + - '{"last_request_metrics":{"request_id":"req_BJTeHvgQih9dxu","request_duration_ms":452}}' Idempotency-Key: - - f8188908-cdd0-473a-95e9-b7c97e79e084 + - 5111e889-f733-4b89-b819-21ed31a47133 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:28 GMT + - Wed, 10 Dec 2025 05:00:50 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - f8188908-cdd0-473a-95e9-b7c97e79e084 + - 5111e889-f733-4b89-b819-21ed31a47133 Original-Request: - - req_9Pms9wg6XazTmt + - req_gYDgU5IvhzmzBb Request-Id: - - req_9Pms9wg6XazTmt + - req_gYDgU5IvhzmzBb Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGZKuuB1fWySn2XgnNYuk", + "id": "pi_3ScfWAKuuB1fWySn2ZrkxcEh", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270527, + "created": 1765342850, "currency": "eur", - "customer": "cus_TMVHzXPFYiLlXQ", + "customer": "cus_TZpAQzi3OZiJyj", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGZKuuB1fWySnCEuwUHRK", + "payment_method": "pm_1ScfW9KuuB1fWySndNxaWSn4", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:28 GMT + recorded_at: Wed, 10 Dec 2025 05:01:20 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGZKuuB1fWySn2XgnNYuk/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWAKuuB1fWySn2ZrkxcEh/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_9Pms9wg6XazTmt","request_duration_ms":407}}' + - '{"last_request_metrics":{"request_id":"req_gYDgU5IvhzmzBb","request_duration_ms":438}}' Idempotency-Key: - - 313d41ad-6783-4ae6-8f18-dc0be4901501 + - 6883087d-db8a-4a23-91d3-d59254b43f4d Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:28 GMT + - Wed, 10 Dec 2025 05:00:51 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 313d41ad-6783-4ae6-8f18-dc0be4901501 + - 6883087d-db8a-4a23-91d3-d59254b43f4d Original-Request: - - req_FQaGMkgTe7wwG0 + - req_I37m1bMtqe4zVg Request-Id: - - req_FQaGMkgTe7wwG0 + - req_I37m1bMtqe4zVg Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGZKuuB1fWySn2XgnNYuk", + "id": "pi_3ScfWAKuuB1fWySn2ZrkxcEh", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270527, + "created": 1765342850, "currency": "eur", - "customer": "cus_TMVHzXPFYiLlXQ", + "customer": "cus_TZpAQzi3OZiJyj", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGZKuuB1fWySn2bKxqDni", + "latest_charge": "ch_3ScfWAKuuB1fWySn2VWChgSA", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGZKuuB1fWySnCEuwUHRK", + "payment_method": "pm_1ScfW9KuuB1fWySndNxaWSn4", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:29 GMT + recorded_at: Wed, 10 Dec 2025 05:01:21 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGZKuuB1fWySn2XgnNYuk + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWAKuuB1fWySn2ZrkxcEh body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_FQaGMkgTe7wwG0","request_duration_ms":919}}' + - '{"last_request_metrics":{"request_id":"req_I37m1bMtqe4zVg","request_duration_ms":1008}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:29 GMT + - Wed, 10 Dec 2025 05:00:51 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_trjR341LouwoJy + - req_TuSBiNJF1UYY2F Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGZKuuB1fWySn2XgnNYuk", + "id": "pi_3ScfWAKuuB1fWySn2ZrkxcEh", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270527, + "created": 1765342850, "currency": "eur", - "customer": "cus_TMVHzXPFYiLlXQ", + "customer": "cus_TZpAQzi3OZiJyj", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGZKuuB1fWySn2bKxqDni", + "latest_charge": "ch_3ScfWAKuuB1fWySn2VWChgSA", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGZKuuB1fWySnCEuwUHRK", + "payment_method": "pm_1ScfW9KuuB1fWySndNxaWSn4", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,24 +505,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:29 GMT + recorded_at: Wed, 10 Dec 2025 05:01:22 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGZKuuB1fWySn2XgnNYuk/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWAKuuB1fWySn2ZrkxcEh/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_trjR341LouwoJy","request_duration_ms":304}}' + - '{"last_request_metrics":{"request_id":"req_TuSBiNJF1UYY2F","request_duration_ms":387}}' Idempotency-Key: - - f4cc185a-5ef4-4513-a86a-ca0c0e3c390e + - 44f1690f-abac-425d-bf1b-f35df62fe9e0 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -538,11 +539,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:30 GMT + - Wed, 10 Dec 2025 05:00:53 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -561,17 +562,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - f4cc185a-5ef4-4513-a86a-ca0c0e3c390e + - 44f1690f-abac-425d-bf1b-f35df62fe9e0 Original-Request: - - req_A3Kqh2uoftnAA1 + - req_jsVRUaisDiuk7a Request-Id: - - req_A3Kqh2uoftnAA1 + - req_jsVRUaisDiuk7a Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -586,7 +587,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGZKuuB1fWySn2XgnNYuk", + "id": "pi_3ScfWAKuuB1fWySn2ZrkxcEh", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -602,19 +603,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270527, + "created": 1765342850, "currency": "eur", - "customer": "cus_TMVHzXPFYiLlXQ", + "customer": "cus_TZpAQzi3OZiJyj", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGZKuuB1fWySn2bKxqDni", + "latest_charge": "ch_3ScfWAKuuB1fWySn2VWChgSA", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGZKuuB1fWySnCEuwUHRK", + "payment_method": "pm_1ScfW9KuuB1fWySndNxaWSn4", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -639,22 +640,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:30 GMT + recorded_at: Wed, 10 Dec 2025 05:01:23 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGZKuuB1fWySn2XgnNYuk + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWAKuuB1fWySn2ZrkxcEh body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_A3Kqh2uoftnAA1","request_duration_ms":1429}}' + - '{"last_request_metrics":{"request_id":"req_jsVRUaisDiuk7a","request_duration_ms":1496}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -669,11 +670,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:30 GMT + - Wed, 10 Dec 2025 05:00:53 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -692,11 +693,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_FLncA3W0eZj2Dc + - req_yt7qKeHK6WQoyT Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -711,7 +712,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGZKuuB1fWySn2XgnNYuk", + "id": "pi_3ScfWAKuuB1fWySn2ZrkxcEh", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -727,19 +728,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270527, + "created": 1765342850, "currency": "eur", - "customer": "cus_TMVHzXPFYiLlXQ", + "customer": "cus_TZpAQzi3OZiJyj", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGZKuuB1fWySn2bKxqDni", + "latest_charge": "ch_3ScfWAKuuB1fWySn2VWChgSA", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGZKuuB1fWySnCEuwUHRK", + "payment_method": "pm_1ScfW9KuuB1fWySndNxaWSn4", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -764,5 +765,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:31 GMT + recorded_at: Wed, 10 Dec 2025 05:01:24 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_American_Express/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_American_Express/returns_payment_intent_id.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_American_Express/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_American_Express/returns_payment_intent_id.yml index da1b7b2701..98014bb827 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_American_Express/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_American_Express/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_1oTssCZeEG1qt7","request_duration_ms":407}}' + - '{"last_request_metrics":{"request_id":"req_2WN48RMrUo5r8j","request_duration_ms":315}}' Idempotency-Key: - - cc62a2c7-1286-419c-98db-b90b55c13706 + - 8876532d-d0f5-4e11-9f46-3f097352bf36 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:25 GMT + - Wed, 10 Dec 2025 05:00:47 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - cc62a2c7-1286-419c-98db-b90b55c13706 + - 8876532d-d0f5-4e11-9f46-3f097352bf36 Original-Request: - - req_JmhURzkDE2IXQc + - req_rffxZ1EVDozHXu Request-Id: - - req_JmhURzkDE2IXQc + - req_rffxZ1EVDozHXu Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVHWXgfrH5Snm", + "id": "cus_TZpAvHwmZPexCm", "object": "customer", "address": null, "balance": 0, - "created": 1762270524, + "created": 1765342847, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "KHEGFNG8", + "invoice_prefix": "RUPB1LS3", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:25 GMT + recorded_at: Wed, 10 Dec 2025 05:01:17 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_amex&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVHWXgfrH5Snm&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_amex&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpAvHwmZPexCm&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_JmhURzkDE2IXQc","request_duration_ms":436}}' + - '{"last_request_metrics":{"request_id":"req_rffxZ1EVDozHXu","request_duration_ms":426}}' Idempotency-Key: - - 2e422ab5-d86c-4fbb-8c75-a111e311ed79 + - 1e373b76-61a5-471a-a070-59f41ccfc966 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:25 GMT + - Wed, 10 Dec 2025 05:00:47 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 2e422ab5-d86c-4fbb-8c75-a111e311ed79 + - 1e373b76-61a5-471a-a070-59f41ccfc966 Original-Request: - - req_LoOaNWoITqJwFw + - req_jKpwlWszQXp0lm Request-Id: - - req_LoOaNWoITqJwFw + - req_jKpwlWszQXp0lm Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGXKuuB1fWySn0mumchlX", + "id": "pi_3ScfW7KuuB1fWySn0elaZjLl", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270525, + "created": 1765342847, "currency": "eur", - "customer": "cus_TMVHWXgfrH5Snm", + "customer": "cus_TZpAvHwmZPexCm", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGXKuuB1fWySnrI2nt7xF", + "payment_method": "pm_1ScfW7KuuB1fWySnrSdzxgss", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:25 GMT + recorded_at: Wed, 10 Dec 2025 05:01:18 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGXKuuB1fWySn0mumchlX/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfW7KuuB1fWySn0elaZjLl/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_LoOaNWoITqJwFw","request_duration_ms":405}}' + - '{"last_request_metrics":{"request_id":"req_jKpwlWszQXp0lm","request_duration_ms":564}}' Idempotency-Key: - - 0ed28d38-88ad-4b6e-af97-5da4957a6e7e + - 8fa0bad5-edcb-4b51-abda-9f3ff662dd0c Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:26 GMT + - Wed, 10 Dec 2025 05:00:48 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 0ed28d38-88ad-4b6e-af97-5da4957a6e7e + - 8fa0bad5-edcb-4b51-abda-9f3ff662dd0c Original-Request: - - req_2Kmt7F4b8cI4nk + - req_JlSI6IgSetN3zg Request-Id: - - req_2Kmt7F4b8cI4nk + - req_JlSI6IgSetN3zg Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGXKuuB1fWySn0mumchlX", + "id": "pi_3ScfW7KuuB1fWySn0elaZjLl", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270525, + "created": 1765342847, "currency": "eur", - "customer": "cus_TMVHWXgfrH5Snm", + "customer": "cus_TZpAvHwmZPexCm", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGXKuuB1fWySn0Cb9B1OK", + "latest_charge": "ch_3ScfW7KuuB1fWySn0GE77Gno", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGXKuuB1fWySnrI2nt7xF", + "payment_method": "pm_1ScfW7KuuB1fWySnrSdzxgss", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:26 GMT + recorded_at: Wed, 10 Dec 2025 05:01:19 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGXKuuB1fWySn0mumchlX + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfW7KuuB1fWySn0elaZjLl body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_2Kmt7F4b8cI4nk","request_duration_ms":919}}' + - '{"last_request_metrics":{"request_id":"req_JlSI6IgSetN3zg","request_duration_ms":930}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:27 GMT + - Wed, 10 Dec 2025 05:00:49 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_ecipBFGS1o4tLN + - req_9iMQiS4zbaCNeT Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGXKuuB1fWySn0mumchlX", + "id": "pi_3ScfW7KuuB1fWySn0elaZjLl", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270525, + "created": 1765342847, "currency": "eur", - "customer": "cus_TMVHWXgfrH5Snm", + "customer": "cus_TZpAvHwmZPexCm", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGXKuuB1fWySn0Cb9B1OK", + "latest_charge": "ch_3ScfW7KuuB1fWySn0GE77Gno", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGXKuuB1fWySnrI2nt7xF", + "payment_method": "pm_1ScfW7KuuB1fWySnrSdzxgss", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,5 +505,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:27 GMT + recorded_at: Wed, 10 Dec 2025 05:01:19 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Diners_Club/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Diners_Club/captures_the_payment.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Diners_Club/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Diners_Club/captures_the_payment.yml index 6f1b0ae32d..3e7cc0b864 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Diners_Club/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Diners_Club/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_ChKuJJkxrl04zA","request_duration_ms":342}}' + - '{"last_request_metrics":{"request_id":"req_W8iIii7Ag6HNNN","request_duration_ms":695}}' Idempotency-Key: - - 21ca9f5b-e5a4-4640-9a1e-abbdf523785b + - f3fdc536-7239-4955-9c0c-846c6f77d5f0 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:40 GMT + - Wed, 10 Dec 2025 05:01:02 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 21ca9f5b-e5a4-4640-9a1e-abbdf523785b + - f3fdc536-7239-4955-9c0c-846c6f77d5f0 Original-Request: - - req_Q1UmehRLhlLWuR + - req_0xXOLXyjKIkRBR Request-Id: - - req_Q1UmehRLhlLWuR + - req_0xXOLXyjKIkRBR Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVHqKMTgM1OrP", + "id": "cus_TZpAMNazlmB7xY", "object": "customer", "address": null, "balance": 0, - "created": 1762270540, + "created": 1765342862, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "OUEEUGMN", + "invoice_prefix": "LVBDWGXF", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:40 GMT + recorded_at: Wed, 10 Dec 2025 05:01:33 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_diners&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVHqKMTgM1OrP&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_diners&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpAMNazlmB7xY&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Q1UmehRLhlLWuR","request_duration_ms":544}}' + - '{"last_request_metrics":{"request_id":"req_0xXOLXyjKIkRBR","request_duration_ms":440}}' Idempotency-Key: - - ec75fe38-2f85-4d5b-9826-f95d5c03c2ff + - eaa8f43e-2738-43d2-ab6a-4604d817a6fd Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:41 GMT + - Wed, 10 Dec 2025 05:01:02 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - ec75fe38-2f85-4d5b-9826-f95d5c03c2ff + - eaa8f43e-2738-43d2-ab6a-4604d817a6fd Original-Request: - - req_KmuwFTRxMjGsWS + - req_08k2lOVRM5Jd0J Request-Id: - - req_KmuwFTRxMjGsWS + - req_08k2lOVRM5Jd0J Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGnKuuB1fWySn0tWlJeSs", + "id": "pi_3ScfWMKuuB1fWySn1wVALxYz", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270541, + "created": 1765342862, "currency": "eur", - "customer": "cus_TMVHqKMTgM1OrP", + "customer": "cus_TZpAMNazlmB7xY", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGmKuuB1fWySnZzJTa0tf", + "payment_method": "pm_1ScfWMKuuB1fWySnkvwXzSJ0", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:41 GMT + recorded_at: Wed, 10 Dec 2025 05:01:33 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGnKuuB1fWySn0tWlJeSs/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWMKuuB1fWySn1wVALxYz/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_KmuwFTRxMjGsWS","request_duration_ms":392}}' + - '{"last_request_metrics":{"request_id":"req_08k2lOVRM5Jd0J","request_duration_ms":458}}' Idempotency-Key: - - a30427e9-8eef-4cc0-bbc4-54057ad83ab8 + - ebc38a4b-1bd6-4d5e-8c3c-a819c17c3c22 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:41 GMT + - Wed, 10 Dec 2025 05:01:03 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - a30427e9-8eef-4cc0-bbc4-54057ad83ab8 + - ebc38a4b-1bd6-4d5e-8c3c-a819c17c3c22 Original-Request: - - req_Ky7vDWgLO291he + - req_vyIb6Mx6qyS9ox Request-Id: - - req_Ky7vDWgLO291he + - req_vyIb6Mx6qyS9ox Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGnKuuB1fWySn0tWlJeSs", + "id": "pi_3ScfWMKuuB1fWySn1wVALxYz", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270541, + "created": 1765342862, "currency": "eur", - "customer": "cus_TMVHqKMTgM1OrP", + "customer": "cus_TZpAMNazlmB7xY", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGnKuuB1fWySn01k4EqNc", + "latest_charge": "ch_3ScfWMKuuB1fWySn1r8k9HfQ", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGmKuuB1fWySnZzJTa0tf", + "payment_method": "pm_1ScfWMKuuB1fWySnkvwXzSJ0", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:42 GMT + recorded_at: Wed, 10 Dec 2025 05:01:34 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGnKuuB1fWySn0tWlJeSs + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWMKuuB1fWySn1wVALxYz body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Ky7vDWgLO291he","request_duration_ms":831}}' + - '{"last_request_metrics":{"request_id":"req_vyIb6Mx6qyS9ox","request_duration_ms":923}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:42 GMT + - Wed, 10 Dec 2025 05:01:04 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_ph6shFouXPFdMM + - req_YykqQATOgNLgGC Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGnKuuB1fWySn0tWlJeSs", + "id": "pi_3ScfWMKuuB1fWySn1wVALxYz", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270541, + "created": 1765342862, "currency": "eur", - "customer": "cus_TMVHqKMTgM1OrP", + "customer": "cus_TZpAMNazlmB7xY", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGnKuuB1fWySn01k4EqNc", + "latest_charge": "ch_3ScfWMKuuB1fWySn1r8k9HfQ", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGmKuuB1fWySnZzJTa0tf", + "payment_method": "pm_1ScfWMKuuB1fWySnkvwXzSJ0", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,24 +505,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:42 GMT + recorded_at: Wed, 10 Dec 2025 05:01:34 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGnKuuB1fWySn0tWlJeSs/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWMKuuB1fWySn1wVALxYz/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_ph6shFouXPFdMM","request_duration_ms":303}}' + - '{"last_request_metrics":{"request_id":"req_YykqQATOgNLgGC","request_duration_ms":318}}' Idempotency-Key: - - 7b6673a8-ed18-4627-93db-d5afba46f23a + - 91c289d4-1940-4e8f-aab6-c0ad93eca21f Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -538,11 +539,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:43 GMT + - Wed, 10 Dec 2025 05:01:05 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -561,17 +562,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 7b6673a8-ed18-4627-93db-d5afba46f23a + - 91c289d4-1940-4e8f-aab6-c0ad93eca21f Original-Request: - - req_R5HEzJrT9yhqZH + - req_eBczzSpC7sYfos Request-Id: - - req_R5HEzJrT9yhqZH + - req_eBczzSpC7sYfos Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -586,7 +587,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGnKuuB1fWySn0tWlJeSs", + "id": "pi_3ScfWMKuuB1fWySn1wVALxYz", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -602,19 +603,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270541, + "created": 1765342862, "currency": "eur", - "customer": "cus_TMVHqKMTgM1OrP", + "customer": "cus_TZpAMNazlmB7xY", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGnKuuB1fWySn01k4EqNc", + "latest_charge": "ch_3ScfWMKuuB1fWySn1r8k9HfQ", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGmKuuB1fWySnZzJTa0tf", + "payment_method": "pm_1ScfWMKuuB1fWySnkvwXzSJ0", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -639,22 +640,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:43 GMT + recorded_at: Wed, 10 Dec 2025 05:01:36 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGnKuuB1fWySn0tWlJeSs + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWMKuuB1fWySn1wVALxYz body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_R5HEzJrT9yhqZH","request_duration_ms":1329}}' + - '{"last_request_metrics":{"request_id":"req_eBczzSpC7sYfos","request_duration_ms":1262}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -669,11 +670,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:43 GMT + - Wed, 10 Dec 2025 05:01:05 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -692,11 +693,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_FGDems8LyG4Ol4 + - req_spPhMwznL90adD Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -711,7 +712,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGnKuuB1fWySn0tWlJeSs", + "id": "pi_3ScfWMKuuB1fWySn1wVALxYz", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -727,19 +728,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270541, + "created": 1765342862, "currency": "eur", - "customer": "cus_TMVHqKMTgM1OrP", + "customer": "cus_TZpAMNazlmB7xY", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGnKuuB1fWySn01k4EqNc", + "latest_charge": "ch_3ScfWMKuuB1fWySn1r8k9HfQ", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGmKuuB1fWySnZzJTa0tf", + "payment_method": "pm_1ScfWMKuuB1fWySnkvwXzSJ0", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -764,5 +765,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:44 GMT + recorded_at: Wed, 10 Dec 2025 05:01:36 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Diners_Club/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Diners_Club/returns_payment_intent_id.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Diners_Club/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Diners_Club/returns_payment_intent_id.yml index 9a87b95aa7..8ac16e2cd5 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Diners_Club/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Diners_Club/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_aPtrU8xolGmmbv","request_duration_ms":303}}' + - '{"last_request_metrics":{"request_id":"req_mqDc28RgZT5OwU","request_duration_ms":318}}' Idempotency-Key: - - 7a2029e4-c4a0-4d7d-8c77-aef53947eb1e + - 96c1f742-abc6-4f28-a99d-b13dbc20de08 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:37 GMT + - Wed, 10 Dec 2025 05:00:59 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 7a2029e4-c4a0-4d7d-8c77-aef53947eb1e + - 96c1f742-abc6-4f28-a99d-b13dbc20de08 Original-Request: - - req_A22IcHcax0pvkx + - req_WuYoF604VcgRx4 Request-Id: - - req_A22IcHcax0pvkx + - req_WuYoF604VcgRx4 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVHjBpsd5PEEL", + "id": "cus_TZpAQ51spgWhWt", "object": "customer", "address": null, "balance": 0, - "created": 1762270537, + "created": 1765342859, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "T6NHV1TA", + "invoice_prefix": "LEQLTMEY", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:37 GMT + recorded_at: Wed, 10 Dec 2025 05:01:30 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_diners&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVHjBpsd5PEEL&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_diners&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpAQ51spgWhWt&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_A22IcHcax0pvkx","request_duration_ms":439}}' + - '{"last_request_metrics":{"request_id":"req_WuYoF604VcgRx4","request_duration_ms":412}}' Idempotency-Key: - - a2d8b147-d45c-43e3-9a8c-85bb08416958 + - 78788fb7-9d27-40f5-be9e-44a9455a0d23 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:38 GMT + - Wed, 10 Dec 2025 05:01:00 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - a2d8b147-d45c-43e3-9a8c-85bb08416958 + - 78788fb7-9d27-40f5-be9e-44a9455a0d23 Original-Request: - - req_WoyhuA6MNxxix9 + - req_ywEZJ8IdtBfl4h Request-Id: - - req_WoyhuA6MNxxix9 + - req_ywEZJ8IdtBfl4h Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGkKuuB1fWySn2IwPSLcD", + "id": "pi_3ScfWKKuuB1fWySn2BRHgYTF", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270538, + "created": 1765342860, "currency": "eur", - "customer": "cus_TMVHjBpsd5PEEL", + "customer": "cus_TZpAQ51spgWhWt", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGjKuuB1fWySnMAaqVQbp", + "payment_method": "pm_1ScfWJKuuB1fWySnqNLJiiaJ", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:38 GMT + recorded_at: Wed, 10 Dec 2025 05:01:30 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGkKuuB1fWySn2IwPSLcD/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWKKuuB1fWySn2BRHgYTF/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_WoyhuA6MNxxix9","request_duration_ms":612}}' + - '{"last_request_metrics":{"request_id":"req_ywEZJ8IdtBfl4h","request_duration_ms":463}}' Idempotency-Key: - - d6feb861-133d-4988-b9d7-d8229b055f19 + - ab408585-74b2-4bbf-9b04-33d65ec2d2d7 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:39 GMT + - Wed, 10 Dec 2025 05:01:01 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - d6feb861-133d-4988-b9d7-d8229b055f19 + - ab408585-74b2-4bbf-9b04-33d65ec2d2d7 Original-Request: - - req_OuACUjci3iiq9v + - req_Z1ChouY4JIJh1V Request-Id: - - req_OuACUjci3iiq9v + - req_Z1ChouY4JIJh1V Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGkKuuB1fWySn2IwPSLcD", + "id": "pi_3ScfWKKuuB1fWySn2BRHgYTF", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270538, + "created": 1765342860, "currency": "eur", - "customer": "cus_TMVHjBpsd5PEEL", + "customer": "cus_TZpAQ51spgWhWt", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGkKuuB1fWySn2BACBmM4", + "latest_charge": "ch_3ScfWKKuuB1fWySn2vBgZd22", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGjKuuB1fWySnMAaqVQbp", + "payment_method": "pm_1ScfWJKuuB1fWySnqNLJiiaJ", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:39 GMT + recorded_at: Wed, 10 Dec 2025 05:01:31 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGkKuuB1fWySn2IwPSLcD + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWKKuuB1fWySn2BRHgYTF body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_OuACUjci3iiq9v","request_duration_ms":918}}' + - '{"last_request_metrics":{"request_id":"req_Z1ChouY4JIJh1V","request_duration_ms":982}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:40 GMT + - Wed, 10 Dec 2025 05:01:01 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_ChKuJJkxrl04zA + - req_W8iIii7Ag6HNNN Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGkKuuB1fWySn2IwPSLcD", + "id": "pi_3ScfWKKuuB1fWySn2BRHgYTF", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270538, + "created": 1765342860, "currency": "eur", - "customer": "cus_TMVHjBpsd5PEEL", + "customer": "cus_TZpAQ51spgWhWt", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGkKuuB1fWySn2BACBmM4", + "latest_charge": "ch_3ScfWKKuuB1fWySn2vBgZd22", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGjKuuB1fWySnMAaqVQbp", + "payment_method": "pm_1ScfWJKuuB1fWySnqNLJiiaJ", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,5 +505,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:40 GMT + recorded_at: Wed, 10 Dec 2025 05:01:32 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Discover/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Discover/captures_the_payment.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Discover/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Discover/captures_the_payment.yml index 8aa9804f09..8791695c9e 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Discover/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Discover/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_NMgSNayxNWa5GB","request_duration_ms":332}}' + - '{"last_request_metrics":{"request_id":"req_hmjWXkhFwxGH05","request_duration_ms":320}}' Idempotency-Key: - - 6dc3a236-d4a8-4765-adfd-532a25e499e4 + - df41bd8e-ee35-4383-8d4d-557b53d201c6 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:34 GMT + - Wed, 10 Dec 2025 05:00:56 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 6dc3a236-d4a8-4765-adfd-532a25e499e4 + - df41bd8e-ee35-4383-8d4d-557b53d201c6 Original-Request: - - req_MBdZQaNNDhkIA1 + - req_2roPsULLot86bf Request-Id: - - req_MBdZQaNNDhkIA1 + - req_2roPsULLot86bf Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVHNiB2Hnbgd6", + "id": "cus_TZpAQGGdMJEnCg", "object": "customer", "address": null, "balance": 0, - "created": 1762270533, + "created": 1765342855, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "JCMTXI0T", + "invoice_prefix": "FGDF9JNG", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:34 GMT + recorded_at: Wed, 10 Dec 2025 05:01:26 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_discover&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVHNiB2Hnbgd6&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_discover&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpAQGGdMJEnCg&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_MBdZQaNNDhkIA1","request_duration_ms":451}}' + - '{"last_request_metrics":{"request_id":"req_2roPsULLot86bf","request_duration_ms":449}}' Idempotency-Key: - - d031a32e-100e-4f3e-a0bb-d0bf40fedc88 + - 5306fe8d-967f-4820-850a-a58a4b1a704c Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:34 GMT + - Wed, 10 Dec 2025 05:00:56 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - d031a32e-100e-4f3e-a0bb-d0bf40fedc88 + - 5306fe8d-967f-4820-850a-a58a4b1a704c Original-Request: - - req_VDh7y6BN8Sm3HS + - req_enidlGOJCUswCP Request-Id: - - req_VDh7y6BN8Sm3HS + - req_enidlGOJCUswCP Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGgKuuB1fWySn1U9h7wrD", + "id": "pi_3ScfWGKuuB1fWySn0FDDmtXO", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270534, + "created": 1765342856, "currency": "eur", - "customer": "cus_TMVHNiB2Hnbgd6", + "customer": "cus_TZpAQGGdMJEnCg", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGgKuuB1fWySnId5TwG24", + "payment_method": "pm_1ScfWGKuuB1fWySnkPD8AAnr", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:34 GMT + recorded_at: Wed, 10 Dec 2025 05:01:27 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGgKuuB1fWySn1U9h7wrD/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWGKuuB1fWySn0FDDmtXO/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_VDh7y6BN8Sm3HS","request_duration_ms":419}}' + - '{"last_request_metrics":{"request_id":"req_enidlGOJCUswCP","request_duration_ms":449}}' Idempotency-Key: - - c62e3f75-7444-4cc3-a8da-45361645b68c + - 98319817-6cb8-4e1b-9969-291737aa68f5 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:35 GMT + - Wed, 10 Dec 2025 05:00:57 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - c62e3f75-7444-4cc3-a8da-45361645b68c + - 98319817-6cb8-4e1b-9969-291737aa68f5 Original-Request: - - req_DXf8bwMEKuI8k0 + - req_8N31IhqZ95zeiB Request-Id: - - req_DXf8bwMEKuI8k0 + - req_8N31IhqZ95zeiB Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGgKuuB1fWySn1U9h7wrD", + "id": "pi_3ScfWGKuuB1fWySn0FDDmtXO", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270534, + "created": 1765342856, "currency": "eur", - "customer": "cus_TMVHNiB2Hnbgd6", + "customer": "cus_TZpAQGGdMJEnCg", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGgKuuB1fWySn1yoO46bT", + "latest_charge": "ch_3ScfWGKuuB1fWySn0BSzmO2x", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGgKuuB1fWySnId5TwG24", + "payment_method": "pm_1ScfWGKuuB1fWySnkPD8AAnr", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:35 GMT + recorded_at: Wed, 10 Dec 2025 05:01:28 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGgKuuB1fWySn1U9h7wrD + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWGKuuB1fWySn0FDDmtXO body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_DXf8bwMEKuI8k0","request_duration_ms":1008}}' + - '{"last_request_metrics":{"request_id":"req_8N31IhqZ95zeiB","request_duration_ms":879}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:35 GMT + - Wed, 10 Dec 2025 05:00:57 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_qLOORlThCl11ud + - req_25J6AnUK1LpFex Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGgKuuB1fWySn1U9h7wrD", + "id": "pi_3ScfWGKuuB1fWySn0FDDmtXO", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270534, + "created": 1765342856, "currency": "eur", - "customer": "cus_TMVHNiB2Hnbgd6", + "customer": "cus_TZpAQGGdMJEnCg", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGgKuuB1fWySn1yoO46bT", + "latest_charge": "ch_3ScfWGKuuB1fWySn0BSzmO2x", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGgKuuB1fWySnId5TwG24", + "payment_method": "pm_1ScfWGKuuB1fWySnkPD8AAnr", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,24 +505,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:35 GMT + recorded_at: Wed, 10 Dec 2025 05:01:28 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGgKuuB1fWySn1U9h7wrD/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWGKuuB1fWySn0FDDmtXO/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_qLOORlThCl11ud","request_duration_ms":304}}' + - '{"last_request_metrics":{"request_id":"req_25J6AnUK1LpFex","request_duration_ms":331}}' Idempotency-Key: - - 4842d3f2-8921-4ca6-9bf0-5bf30fb6f645 + - 635d70cc-d1a2-4e02-8b7f-86b84f243b4c Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -538,11 +539,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:36 GMT + - Wed, 10 Dec 2025 05:00:58 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -561,17 +562,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 4842d3f2-8921-4ca6-9bf0-5bf30fb6f645 + - 635d70cc-d1a2-4e02-8b7f-86b84f243b4c Original-Request: - - req_BIKJ5nR5pCMwIB + - req_9PrlhjOLSjBqIz Request-Id: - - req_BIKJ5nR5pCMwIB + - req_9PrlhjOLSjBqIz Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -586,7 +587,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGgKuuB1fWySn1U9h7wrD", + "id": "pi_3ScfWGKuuB1fWySn0FDDmtXO", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -602,19 +603,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270534, + "created": 1765342856, "currency": "eur", - "customer": "cus_TMVHNiB2Hnbgd6", + "customer": "cus_TZpAQGGdMJEnCg", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGgKuuB1fWySn1yoO46bT", + "latest_charge": "ch_3ScfWGKuuB1fWySn0BSzmO2x", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGgKuuB1fWySnId5TwG24", + "payment_method": "pm_1ScfWGKuuB1fWySnkPD8AAnr", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -639,22 +640,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:37 GMT + recorded_at: Wed, 10 Dec 2025 05:01:29 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGgKuuB1fWySn1U9h7wrD + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWGKuuB1fWySn0FDDmtXO body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_BIKJ5nR5pCMwIB","request_duration_ms":1019}}' + - '{"last_request_metrics":{"request_id":"req_9PrlhjOLSjBqIz","request_duration_ms":1101}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -669,11 +670,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:37 GMT + - Wed, 10 Dec 2025 05:00:59 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -692,11 +693,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_aPtrU8xolGmmbv + - req_mqDc28RgZT5OwU Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -711,7 +712,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGgKuuB1fWySn1U9h7wrD", + "id": "pi_3ScfWGKuuB1fWySn0FDDmtXO", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -727,19 +728,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270534, + "created": 1765342856, "currency": "eur", - "customer": "cus_TMVHNiB2Hnbgd6", + "customer": "cus_TZpAQGGdMJEnCg", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGgKuuB1fWySn1yoO46bT", + "latest_charge": "ch_3ScfWGKuuB1fWySn0BSzmO2x", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGgKuuB1fWySnId5TwG24", + "payment_method": "pm_1ScfWGKuuB1fWySnkPD8AAnr", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -764,5 +765,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:37 GMT + recorded_at: Wed, 10 Dec 2025 05:01:29 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Discover/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Discover/returns_payment_intent_id.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Discover/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Discover/returns_payment_intent_id.yml index 21458b2fdf..5e14ccca62 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Discover/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Discover/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_FLncA3W0eZj2Dc","request_duration_ms":303}}' + - '{"last_request_metrics":{"request_id":"req_yt7qKeHK6WQoyT","request_duration_ms":325}}' Idempotency-Key: - - 5f4d00bb-9b64-4c74-9c37-9512fd86982f + - c6822927-84df-42f1-b4d4-9b9d45e3599e Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:31 GMT + - Wed, 10 Dec 2025 05:00:53 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 5f4d00bb-9b64-4c74-9c37-9512fd86982f + - c6822927-84df-42f1-b4d4-9b9d45e3599e Original-Request: - - req_J3E1hg8sY0k3ff + - req_H2HJk1i9JyAkvz Request-Id: - - req_J3E1hg8sY0k3ff + - req_H2HJk1i9JyAkvz Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVHFSiXvMgJ59", + "id": "cus_TZpAVuTQmgCaPp", "object": "customer", "address": null, "balance": 0, - "created": 1762270531, + "created": 1765342853, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "PPCSMOP6", + "invoice_prefix": "KYTZC5LQ", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:31 GMT + recorded_at: Wed, 10 Dec 2025 05:01:24 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_discover&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVHFSiXvMgJ59&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_discover&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpAVuTQmgCaPp&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_J3E1hg8sY0k3ff","request_duration_ms":347}}' + - '{"last_request_metrics":{"request_id":"req_H2HJk1i9JyAkvz","request_duration_ms":475}}' Idempotency-Key: - - 77166bcb-a13a-4b79-9143-95bb63280ebb + - fdbf2f36-bb03-4c40-93ce-1e9aefe3ad32 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:31 GMT + - Wed, 10 Dec 2025 05:00:54 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 77166bcb-a13a-4b79-9143-95bb63280ebb + - fdbf2f36-bb03-4c40-93ce-1e9aefe3ad32 Original-Request: - - req_xtCFyPVf9rjZJO + - req_3XksJvJaux6FfG Request-Id: - - req_xtCFyPVf9rjZJO + - req_3XksJvJaux6FfG Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGdKuuB1fWySn2rew1hj7", + "id": "pi_3ScfWEKuuB1fWySn2FSFwqrm", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270531, + "created": 1765342854, "currency": "eur", - "customer": "cus_TMVHFSiXvMgJ59", + "customer": "cus_TZpAVuTQmgCaPp", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGdKuuB1fWySnEnQTP0uL", + "payment_method": "pm_1ScfWEKuuB1fWySn6E2Tz3gq", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:31 GMT + recorded_at: Wed, 10 Dec 2025 05:01:24 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGdKuuB1fWySn2rew1hj7/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWEKuuB1fWySn2FSFwqrm/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_xtCFyPVf9rjZJO","request_duration_ms":498}}' + - '{"last_request_metrics":{"request_id":"req_3XksJvJaux6FfG","request_duration_ms":482}}' Idempotency-Key: - - f06ccc5a-067f-4ab8-ae5b-ee47e62b30ed + - f4e1624a-c555-419c-b4b0-a524c0a16869 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:32 GMT + - Wed, 10 Dec 2025 05:00:55 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - f06ccc5a-067f-4ab8-ae5b-ee47e62b30ed + - f4e1624a-c555-419c-b4b0-a524c0a16869 Original-Request: - - req_XthzF3y6urDSok + - req_BPDPjc6AtYdiDg Request-Id: - - req_XthzF3y6urDSok + - req_BPDPjc6AtYdiDg Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGdKuuB1fWySn2rew1hj7", + "id": "pi_3ScfWEKuuB1fWySn2FSFwqrm", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270531, + "created": 1765342854, "currency": "eur", - "customer": "cus_TMVHFSiXvMgJ59", + "customer": "cus_TZpAVuTQmgCaPp", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGdKuuB1fWySn2KncQjbd", + "latest_charge": "ch_3ScfWEKuuB1fWySn2ALrQrb5", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGdKuuB1fWySnEnQTP0uL", + "payment_method": "pm_1ScfWEKuuB1fWySn6E2Tz3gq", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:32 GMT + recorded_at: Wed, 10 Dec 2025 05:01:25 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGdKuuB1fWySn2rew1hj7 + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWEKuuB1fWySn2FSFwqrm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_XthzF3y6urDSok","request_duration_ms":918}}' + - '{"last_request_metrics":{"request_id":"req_BPDPjc6AtYdiDg","request_duration_ms":950}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:33 GMT + - Wed, 10 Dec 2025 05:00:55 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_NMgSNayxNWa5GB + - req_hmjWXkhFwxGH05 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGdKuuB1fWySn2rew1hj7", + "id": "pi_3ScfWEKuuB1fWySn2FSFwqrm", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270531, + "created": 1765342854, "currency": "eur", - "customer": "cus_TMVHFSiXvMgJ59", + "customer": "cus_TZpAVuTQmgCaPp", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGdKuuB1fWySn2KncQjbd", + "latest_charge": "ch_3ScfWEKuuB1fWySn2ALrQrb5", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGdKuuB1fWySnEnQTP0uL", + "payment_method": "pm_1ScfWEKuuB1fWySn6E2Tz3gq", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,5 +505,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:33 GMT + recorded_at: Wed, 10 Dec 2025 05:01:26 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_JCB/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_JCB/captures_the_payment.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_JCB/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_JCB/captures_the_payment.yml index 0a4b3c1eac..5f2b30f4d6 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_JCB/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_JCB/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_LYlV1AAy5snbfV","request_duration_ms":308}}' + - '{"last_request_metrics":{"request_id":"req_0wF0DGFdEHGyQH","request_duration_ms":316}}' Idempotency-Key: - - f27ff8e7-3a64-4a54-9e9b-ec91a3f5f248 + - 4f5344fb-65f2-488c-acbe-34e928663486 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:47 GMT + - Wed, 10 Dec 2025 05:01:08 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - f27ff8e7-3a64-4a54-9e9b-ec91a3f5f248 + - 4f5344fb-65f2-488c-acbe-34e928663486 Original-Request: - - req_F2HHZLEo0cVUJP + - req_QMJNFqvTELrZWG Request-Id: - - req_F2HHZLEo0cVUJP + - req_QMJNFqvTELrZWG Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVHwdjpHCG5LC", + "id": "cus_TZpAcSQ80ASOuP", "object": "customer", "address": null, "balance": 0, - "created": 1762270546, + "created": 1765342868, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "NLARKOXW", + "invoice_prefix": "U1JUJJWM", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:47 GMT + recorded_at: Wed, 10 Dec 2025 05:01:39 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_jcb&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVHwdjpHCG5LC&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_jcb&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpAcSQ80ASOuP&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_F2HHZLEo0cVUJP","request_duration_ms":437}}' + - '{"last_request_metrics":{"request_id":"req_QMJNFqvTELrZWG","request_duration_ms":415}}' Idempotency-Key: - - da264e7c-362c-486b-abdd-1f1c369dff0f + - ec9d3274-2660-4040-8cdd-75cd05bc39fb Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:47 GMT + - Wed, 10 Dec 2025 05:01:09 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - da264e7c-362c-486b-abdd-1f1c369dff0f + - ec9d3274-2660-4040-8cdd-75cd05bc39fb Original-Request: - - req_1L2lUnJ3q9WWyN + - req_PE5sGATRIj25vG Request-Id: - - req_1L2lUnJ3q9WWyN + - req_PE5sGATRIj25vG Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGtKuuB1fWySn29CD8nm1", + "id": "pi_3ScfWTKuuB1fWySn2XubxSys", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270547, + "created": 1765342869, "currency": "eur", - "customer": "cus_TMVHwdjpHCG5LC", + "customer": "cus_TZpAcSQ80ASOuP", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGtKuuB1fWySnI1lIyFVR", + "payment_method": "pm_1ScfWSKuuB1fWySncUTOAYNN", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:47 GMT + recorded_at: Wed, 10 Dec 2025 05:01:39 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGtKuuB1fWySn29CD8nm1/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWTKuuB1fWySn2XubxSys/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_1L2lUnJ3q9WWyN","request_duration_ms":407}}' + - '{"last_request_metrics":{"request_id":"req_PE5sGATRIj25vG","request_duration_ms":474}}' Idempotency-Key: - - 88dda906-410d-44ef-93c3-e19fdfae4979 + - b82bdfd3-e6df-4924-9ec4-21aa9726ce3c Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:48 GMT + - Wed, 10 Dec 2025 05:01:10 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 88dda906-410d-44ef-93c3-e19fdfae4979 + - b82bdfd3-e6df-4924-9ec4-21aa9726ce3c Original-Request: - - req_K2QAWYaTZCLUbA + - req_Wgo3HGacpiKsMO Request-Id: - - req_K2QAWYaTZCLUbA + - req_Wgo3HGacpiKsMO Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGtKuuB1fWySn29CD8nm1", + "id": "pi_3ScfWTKuuB1fWySn2XubxSys", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270547, + "created": 1765342869, "currency": "eur", - "customer": "cus_TMVHwdjpHCG5LC", + "customer": "cus_TZpAcSQ80ASOuP", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGtKuuB1fWySn2m5ToSUf", + "latest_charge": "ch_3ScfWTKuuB1fWySn2ta5wj0q", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGtKuuB1fWySnI1lIyFVR", + "payment_method": "pm_1ScfWSKuuB1fWySncUTOAYNN", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:48 GMT + recorded_at: Wed, 10 Dec 2025 05:01:40 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGtKuuB1fWySn29CD8nm1 + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWTKuuB1fWySn2XubxSys body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_K2QAWYaTZCLUbA","request_duration_ms":917}}' + - '{"last_request_metrics":{"request_id":"req_Wgo3HGacpiKsMO","request_duration_ms":959}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:48 GMT + - Wed, 10 Dec 2025 05:01:10 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_VgbsOEXH6As9ba + - req_MKSN6cTtFzGHzr Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGtKuuB1fWySn29CD8nm1", + "id": "pi_3ScfWTKuuB1fWySn2XubxSys", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270547, + "created": 1765342869, "currency": "eur", - "customer": "cus_TMVHwdjpHCG5LC", + "customer": "cus_TZpAcSQ80ASOuP", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGtKuuB1fWySn2m5ToSUf", + "latest_charge": "ch_3ScfWTKuuB1fWySn2ta5wj0q", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGtKuuB1fWySnI1lIyFVR", + "payment_method": "pm_1ScfWSKuuB1fWySncUTOAYNN", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,24 +505,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:48 GMT + recorded_at: Wed, 10 Dec 2025 05:01:41 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGtKuuB1fWySn29CD8nm1/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWTKuuB1fWySn2XubxSys/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_VgbsOEXH6As9ba","request_duration_ms":253}}' + - '{"last_request_metrics":{"request_id":"req_MKSN6cTtFzGHzr","request_duration_ms":322}}' Idempotency-Key: - - 629423fe-81fb-4e8e-906c-3c672bbcb12f + - c6fc2983-7eae-4369-bcda-65712f08089a Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -538,11 +539,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:50 GMT + - Wed, 10 Dec 2025 05:01:11 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -561,17 +562,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 629423fe-81fb-4e8e-906c-3c672bbcb12f + - c6fc2983-7eae-4369-bcda-65712f08089a Original-Request: - - req_MkneodHH3GjtMl + - req_aObqqyJLz9k59W Request-Id: - - req_MkneodHH3GjtMl + - req_aObqqyJLz9k59W Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -586,7 +587,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGtKuuB1fWySn29CD8nm1", + "id": "pi_3ScfWTKuuB1fWySn2XubxSys", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -602,19 +603,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270547, + "created": 1765342869, "currency": "eur", - "customer": "cus_TMVHwdjpHCG5LC", + "customer": "cus_TZpAcSQ80ASOuP", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGtKuuB1fWySn2m5ToSUf", + "latest_charge": "ch_3ScfWTKuuB1fWySn2ta5wj0q", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGtKuuB1fWySnI1lIyFVR", + "payment_method": "pm_1ScfWSKuuB1fWySncUTOAYNN", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -639,22 +640,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:50 GMT + recorded_at: Wed, 10 Dec 2025 05:01:42 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGtKuuB1fWySn29CD8nm1 + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWTKuuB1fWySn2XubxSys body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_MkneodHH3GjtMl","request_duration_ms":1376}}' + - '{"last_request_metrics":{"request_id":"req_aObqqyJLz9k59W","request_duration_ms":1150}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -669,11 +670,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:50 GMT + - Wed, 10 Dec 2025 05:01:11 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -692,11 +693,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_MHeimaQFsntvdY + - req_NIiVT916uyrPb2 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -711,7 +712,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGtKuuB1fWySn29CD8nm1", + "id": "pi_3ScfWTKuuB1fWySn2XubxSys", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -727,19 +728,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270547, + "created": 1765342869, "currency": "eur", - "customer": "cus_TMVHwdjpHCG5LC", + "customer": "cus_TZpAcSQ80ASOuP", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGtKuuB1fWySn2m5ToSUf", + "latest_charge": "ch_3ScfWTKuuB1fWySn2ta5wj0q", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGtKuuB1fWySnI1lIyFVR", + "payment_method": "pm_1ScfWSKuuB1fWySncUTOAYNN", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -764,5 +765,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:50 GMT + recorded_at: Wed, 10 Dec 2025 05:01:42 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_JCB/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_JCB/returns_payment_intent_id.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_JCB/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_JCB/returns_payment_intent_id.yml index dd94ae0e4f..c90d6f7793 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_JCB/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_JCB/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_FGDems8LyG4Ol4","request_duration_ms":404}}' + - '{"last_request_metrics":{"request_id":"req_spPhMwznL90adD","request_duration_ms":327}}' Idempotency-Key: - - 3e3d7644-b1e4-44be-82ed-99fa5b77382e + - 623fadba-8eaa-450f-a18b-a6e6e824c967 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:44 GMT + - Wed, 10 Dec 2025 05:01:06 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 3e3d7644-b1e4-44be-82ed-99fa5b77382e + - 623fadba-8eaa-450f-a18b-a6e6e824c967 Original-Request: - - req_r5oLG187xt1OtV + - req_zcHuCDMrRSV2JE Request-Id: - - req_r5oLG187xt1OtV + - req_zcHuCDMrRSV2JE Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVH8G7HFZp72P", + "id": "cus_TZpAUM81uypZgw", "object": "customer", "address": null, "balance": 0, - "created": 1762270544, + "created": 1765342865, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "3ZGNY9WE", + "invoice_prefix": "0ERVDWDM", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:44 GMT + recorded_at: Wed, 10 Dec 2025 05:01:36 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_jcb&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVH8G7HFZp72P&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_jcb&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpAUM81uypZgw&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_r5oLG187xt1OtV","request_duration_ms":438}}' + - '{"last_request_metrics":{"request_id":"req_zcHuCDMrRSV2JE","request_duration_ms":446}}' Idempotency-Key: - - fe38d5d4-068f-4245-a85c-15fef2413c3a + - 275431c7-34cc-4d78-b918-35953880aa31 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:44 GMT + - Wed, 10 Dec 2025 05:01:06 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - fe38d5d4-068f-4245-a85c-15fef2413c3a + - 275431c7-34cc-4d78-b918-35953880aa31 Original-Request: - - req_giqLC8p8FfCjIo + - req_GBxB9T6wVrwbh2 Request-Id: - - req_giqLC8p8FfCjIo + - req_GBxB9T6wVrwbh2 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGqKuuB1fWySn2ayu62xN", + "id": "pi_3ScfWQKuuB1fWySn11DxpKkr", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270544, + "created": 1765342866, "currency": "eur", - "customer": "cus_TMVH8G7HFZp72P", + "customer": "cus_TZpAUM81uypZgw", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGqKuuB1fWySnQO0W8sjG", + "payment_method": "pm_1ScfWQKuuB1fWySnlTO8Apch", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:44 GMT + recorded_at: Wed, 10 Dec 2025 05:01:37 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGqKuuB1fWySn2ayu62xN/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWQKuuB1fWySn11DxpKkr/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_giqLC8p8FfCjIo","request_duration_ms":407}}' + - '{"last_request_metrics":{"request_id":"req_GBxB9T6wVrwbh2","request_duration_ms":467}}' Idempotency-Key: - - 94b59576-7ee3-4d17-834f-fecb0b502dca + - eac72e7e-c008-4f54-9c36-74aca68ede36 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:45 GMT + - Wed, 10 Dec 2025 05:01:07 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 94b59576-7ee3-4d17-834f-fecb0b502dca + - eac72e7e-c008-4f54-9c36-74aca68ede36 Original-Request: - - req_rdCTLOgezHht1C + - req_jHGSBTV7i7YGWu Request-Id: - - req_rdCTLOgezHht1C + - req_jHGSBTV7i7YGWu Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGqKuuB1fWySn2ayu62xN", + "id": "pi_3ScfWQKuuB1fWySn11DxpKkr", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270544, + "created": 1765342866, "currency": "eur", - "customer": "cus_TMVH8G7HFZp72P", + "customer": "cus_TZpAUM81uypZgw", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGqKuuB1fWySn22UV6iVG", + "latest_charge": "ch_3ScfWQKuuB1fWySn147kYUaV", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGqKuuB1fWySnQO0W8sjG", + "payment_method": "pm_1ScfWQKuuB1fWySnlTO8Apch", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:45 GMT + recorded_at: Wed, 10 Dec 2025 05:01:38 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGqKuuB1fWySn2ayu62xN + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWQKuuB1fWySn11DxpKkr body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_rdCTLOgezHht1C","request_duration_ms":796}}' + - '{"last_request_metrics":{"request_id":"req_jHGSBTV7i7YGWu","request_duration_ms":1218}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:46 GMT + - Wed, 10 Dec 2025 05:01:08 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_LYlV1AAy5snbfV + - req_0wF0DGFdEHGyQH Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGqKuuB1fWySn2ayu62xN", + "id": "pi_3ScfWQKuuB1fWySn11DxpKkr", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270544, + "created": 1765342866, "currency": "eur", - "customer": "cus_TMVH8G7HFZp72P", + "customer": "cus_TZpAUM81uypZgw", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGqKuuB1fWySn22UV6iVG", + "latest_charge": "ch_3ScfWQKuuB1fWySn147kYUaV", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGqKuuB1fWySnQO0W8sjG", + "payment_method": "pm_1ScfWQKuuB1fWySnlTO8Apch", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,5 +505,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:46 GMT + recorded_at: Wed, 10 Dec 2025 05:01:38 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard/captures_the_payment.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard/captures_the_payment.yml index 0107930495..aff4bdeb68 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_ttwFAUobUbUrxJ","request_duration_ms":392}}' + - '{"last_request_metrics":{"request_id":"req_gcITBF5qh1EGuz","request_duration_ms":341}}' Idempotency-Key: - - eb9d98f5-fab6-4c5c-a6d6-93da25acd8b5 + - 50d59b84-772c-4f60-b9d9-886952c71fe5 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:07 GMT + - Wed, 10 Dec 2025 05:00:30 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - eb9d98f5-fab6-4c5c-a6d6-93da25acd8b5 + - 50d59b84-772c-4f60-b9d9-886952c71fe5 Original-Request: - - req_pZrjswqm5vMi6L + - req_FCfCDdI7URHMI5 Request-Id: - - req_pZrjswqm5vMi6L + - req_FCfCDdI7URHMI5 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVGMMQSufQQRi", + "id": "cus_TZpATFNtaD3HSX", "object": "customer", "address": null, "balance": 0, - "created": 1762270507, + "created": 1765342830, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "XLESOL6P", + "invoice_prefix": "OGVCYXUC", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:07 GMT + recorded_at: Wed, 10 Dec 2025 05:01:01 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_mastercard&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVGMMQSufQQRi&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_mastercard&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpATFNtaD3HSX&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_pZrjswqm5vMi6L","request_duration_ms":448}}' + - '{"last_request_metrics":{"request_id":"req_FCfCDdI7URHMI5","request_duration_ms":445}}' Idempotency-Key: - - 5888c230-1646-4b21-9f75-19129e6648a4 + - 76002ce6-73e1-4914-ad53-a3de9874f43e Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:08 GMT + - Wed, 10 Dec 2025 05:00:30 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 5888c230-1646-4b21-9f75-19129e6648a4 + - 76002ce6-73e1-4914-ad53-a3de9874f43e Original-Request: - - req_yom4O6IjurmiDe + - req_j771djBZ4vy2ga Request-Id: - - req_yom4O6IjurmiDe + - req_j771djBZ4vy2ga Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGGKuuB1fWySn0TZv1OMS", + "id": "pi_3ScfVqKuuB1fWySn03jySp6E", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270508, + "created": 1765342830, "currency": "eur", - "customer": "cus_TMVGMMQSufQQRi", + "customer": "cus_TZpATFNtaD3HSX", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGFKuuB1fWySnNV4C10PU", + "payment_method": "pm_1ScfVqKuuB1fWySnwQzzDzsF", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:08 GMT + recorded_at: Wed, 10 Dec 2025 05:01:01 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGGKuuB1fWySn0TZv1OMS/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVqKuuB1fWySn03jySp6E/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_yom4O6IjurmiDe","request_duration_ms":612}}' + - '{"last_request_metrics":{"request_id":"req_j771djBZ4vy2ga","request_duration_ms":479}}' Idempotency-Key: - - 0a070ef8-58c8-4d56-b1c7-7a98b63d7705 + - 5a842e6b-deb0-4d7d-afdf-1b6f02478da2 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:09 GMT + - Wed, 10 Dec 2025 05:00:31 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 0a070ef8-58c8-4d56-b1c7-7a98b63d7705 + - 5a842e6b-deb0-4d7d-afdf-1b6f02478da2 Original-Request: - - req_SkY8Kl5LWbiPzN + - req_qytgRfb1MnHoSh Request-Id: - - req_SkY8Kl5LWbiPzN + - req_qytgRfb1MnHoSh Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGGKuuB1fWySn0TZv1OMS", + "id": "pi_3ScfVqKuuB1fWySn03jySp6E", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270508, + "created": 1765342830, "currency": "eur", - "customer": "cus_TMVGMMQSufQQRi", + "customer": "cus_TZpATFNtaD3HSX", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGGKuuB1fWySn0RASVhLe", + "latest_charge": "ch_3ScfVqKuuB1fWySn0zLwWQQw", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGFKuuB1fWySnNV4C10PU", + "payment_method": "pm_1ScfVqKuuB1fWySnwQzzDzsF", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:09 GMT + recorded_at: Wed, 10 Dec 2025 05:01:02 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGGKuuB1fWySn0TZv1OMS + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVqKuuB1fWySn03jySp6E body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_SkY8Kl5LWbiPzN","request_duration_ms":1121}}' + - '{"last_request_metrics":{"request_id":"req_qytgRfb1MnHoSh","request_duration_ms":999}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:09 GMT + - Wed, 10 Dec 2025 05:00:32 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_gr7IYtRm0gndva + - req_qNBiozphu2oIda Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGGKuuB1fWySn0TZv1OMS", + "id": "pi_3ScfVqKuuB1fWySn03jySp6E", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270508, + "created": 1765342830, "currency": "eur", - "customer": "cus_TMVGMMQSufQQRi", + "customer": "cus_TZpATFNtaD3HSX", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGGKuuB1fWySn0RASVhLe", + "latest_charge": "ch_3ScfVqKuuB1fWySn0zLwWQQw", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGFKuuB1fWySnNV4C10PU", + "payment_method": "pm_1ScfVqKuuB1fWySnwQzzDzsF", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,24 +505,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:09 GMT + recorded_at: Wed, 10 Dec 2025 05:01:02 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGGKuuB1fWySn0TZv1OMS/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVqKuuB1fWySn03jySp6E/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_gr7IYtRm0gndva","request_duration_ms":406}}' + - '{"last_request_metrics":{"request_id":"req_qNBiozphu2oIda","request_duration_ms":328}}' Idempotency-Key: - - a9f38239-1065-4af0-ae1e-c1c6be9c222d + - 74bfb5b4-a5f8-49a8-9206-03a10287ae87 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -538,11 +539,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:10 GMT + - Wed, 10 Dec 2025 05:00:33 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -561,17 +562,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - a9f38239-1065-4af0-ae1e-c1c6be9c222d + - 74bfb5b4-a5f8-49a8-9206-03a10287ae87 Original-Request: - - req_qc4M18rr5X8KlF + - req_45voIEqcICEbs9 Request-Id: - - req_qc4M18rr5X8KlF + - req_45voIEqcICEbs9 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -586,7 +587,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGGKuuB1fWySn0TZv1OMS", + "id": "pi_3ScfVqKuuB1fWySn03jySp6E", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -602,19 +603,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270508, + "created": 1765342830, "currency": "eur", - "customer": "cus_TMVGMMQSufQQRi", + "customer": "cus_TZpATFNtaD3HSX", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGGKuuB1fWySn0RASVhLe", + "latest_charge": "ch_3ScfVqKuuB1fWySn0zLwWQQw", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGFKuuB1fWySnNV4C10PU", + "payment_method": "pm_1ScfVqKuuB1fWySnwQzzDzsF", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -639,22 +640,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:11 GMT + recorded_at: Wed, 10 Dec 2025 05:01:04 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGGKuuB1fWySn0TZv1OMS + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVqKuuB1fWySn03jySp6E body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_qc4M18rr5X8KlF","request_duration_ms":1122}}' + - '{"last_request_metrics":{"request_id":"req_45voIEqcICEbs9","request_duration_ms":1558}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -669,11 +670,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:11 GMT + - Wed, 10 Dec 2025 05:00:34 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -692,11 +693,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_501WF7lJ5o7rT1 + - req_hpj9Bf2CLrDQgR Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -711,7 +712,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGGKuuB1fWySn0TZv1OMS", + "id": "pi_3ScfVqKuuB1fWySn03jySp6E", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -727,19 +728,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270508, + "created": 1765342830, "currency": "eur", - "customer": "cus_TMVGMMQSufQQRi", + "customer": "cus_TZpATFNtaD3HSX", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGGKuuB1fWySn0RASVhLe", + "latest_charge": "ch_3ScfVqKuuB1fWySn0zLwWQQw", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGFKuuB1fWySnNV4C10PU", + "payment_method": "pm_1ScfVqKuuB1fWySnwQzzDzsF", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -764,5 +765,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:11 GMT + recorded_at: Wed, 10 Dec 2025 05:01:05 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard/returns_payment_intent_id.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard/returns_payment_intent_id.yml index 0697eeb6bd..2f3c5f507e 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_ijlqRdHi6jPS7T","request_duration_ms":303}}' + - '{"last_request_metrics":{"request_id":"req_7Ez5Jnev856LUE","request_duration_ms":314}}' Idempotency-Key: - - eec320ec-2814-46f1-bb7a-590ab7db61d5 + - 0e2c1c94-21bf-49bc-bd5e-e98b216e2cf6 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:05 GMT + - Wed, 10 Dec 2025 05:00:28 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - eec320ec-2814-46f1-bb7a-590ab7db61d5 + - 0e2c1c94-21bf-49bc-bd5e-e98b216e2cf6 Original-Request: - - req_mds2ODW2bAI8SM + - req_DveGY9T356ZV10 Request-Id: - - req_mds2ODW2bAI8SM + - req_DveGY9T356ZV10 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVG7siFajtvsd", + "id": "cus_TZpAVX77NER4ix", "object": "customer", "address": null, "balance": 0, - "created": 1762270505, + "created": 1765342827, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "HQSZBSTZ", + "invoice_prefix": "4DNCTT9X", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:05 GMT + recorded_at: Wed, 10 Dec 2025 05:00:58 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_mastercard&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVG7siFajtvsd&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_mastercard&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpAVX77NER4ix&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_mds2ODW2bAI8SM","request_duration_ms":376}}' + - '{"last_request_metrics":{"request_id":"req_DveGY9T356ZV10","request_duration_ms":441}}' Idempotency-Key: - - 786765e6-6ad1-4425-b917-a10a686fb85a + - 3bb13027-eb2d-4732-992c-cff715ca7c42 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:05 GMT + - Wed, 10 Dec 2025 05:00:28 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 786765e6-6ad1-4425-b917-a10a686fb85a + - 3bb13027-eb2d-4732-992c-cff715ca7c42 Original-Request: - - req_5c4c56cpEHVAXn + - req_O0SmRQhmfE7R5q Request-Id: - - req_5c4c56cpEHVAXn + - req_O0SmRQhmfE7R5q Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGDKuuB1fWySn2ELr7qAB", + "id": "pi_3ScfVoKuuB1fWySn2QcfrsdY", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270505, + "created": 1765342828, "currency": "eur", - "customer": "cus_TMVG7siFajtvsd", + "customer": "cus_TZpAVX77NER4ix", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGDKuuB1fWySnGH1lFg2I", + "payment_method": "pm_1ScfVoKuuB1fWySnMwr1fI8R", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:05 GMT + recorded_at: Wed, 10 Dec 2025 05:00:59 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGDKuuB1fWySn2ELr7qAB/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVoKuuB1fWySn2QcfrsdY/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_5c4c56cpEHVAXn","request_duration_ms":464}}' + - '{"last_request_metrics":{"request_id":"req_O0SmRQhmfE7R5q","request_duration_ms":441}}' Idempotency-Key: - - 6ad1f933-16e9-4c70-9c3d-7e6108638c1c + - 2ef8d091-f007-4100-986f-3d84dd776825 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:06 GMT + - Wed, 10 Dec 2025 05:00:29 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 6ad1f933-16e9-4c70-9c3d-7e6108638c1c + - 2ef8d091-f007-4100-986f-3d84dd776825 Original-Request: - - req_XLetpZmkmRtukw + - req_YXm3a75V0iWyi1 Request-Id: - - req_XLetpZmkmRtukw + - req_YXm3a75V0iWyi1 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGDKuuB1fWySn2ELr7qAB", + "id": "pi_3ScfVoKuuB1fWySn2QcfrsdY", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270505, + "created": 1765342828, "currency": "eur", - "customer": "cus_TMVG7siFajtvsd", + "customer": "cus_TZpAVX77NER4ix", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGDKuuB1fWySn2O9J7wqP", + "latest_charge": "ch_3ScfVoKuuB1fWySn2W4SaaI7", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGDKuuB1fWySnGH1lFg2I", + "payment_method": "pm_1ScfVoKuuB1fWySnMwr1fI8R", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:06 GMT + recorded_at: Wed, 10 Dec 2025 05:01:00 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGDKuuB1fWySn2ELr7qAB + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVoKuuB1fWySn2QcfrsdY body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_XLetpZmkmRtukw","request_duration_ms":817}}' + - '{"last_request_metrics":{"request_id":"req_YXm3a75V0iWyi1","request_duration_ms":956}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:07 GMT + - Wed, 10 Dec 2025 05:00:29 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_ttwFAUobUbUrxJ + - req_gcITBF5qh1EGuz Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGDKuuB1fWySn2ELr7qAB", + "id": "pi_3ScfVoKuuB1fWySn2QcfrsdY", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270505, + "created": 1765342828, "currency": "eur", - "customer": "cus_TMVG7siFajtvsd", + "customer": "cus_TZpAVX77NER4ix", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGDKuuB1fWySn2O9J7wqP", + "latest_charge": "ch_3ScfVoKuuB1fWySn2W4SaaI7", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGDKuuB1fWySnGH1lFg2I", + "payment_method": "pm_1ScfVoKuuB1fWySnMwr1fI8R", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,5 +505,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:07 GMT + recorded_at: Wed, 10 Dec 2025 05:01:00 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_debit_/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_debit_/captures_the_payment.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_debit_/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_debit_/captures_the_payment.yml index f6ea7d6fce..1bc9c90e4f 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_debit_/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_debit_/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_yzJn5U6MvzJaV2","request_duration_ms":249}}' + - '{"last_request_metrics":{"request_id":"req_8uo1Xo1XpSUmdh","request_duration_ms":311}}' Idempotency-Key: - - c1a5f3d8-e101-457c-ad69-afd5ef97d7a8 + - f0e03b34-3056-45e7-bf70-07d40feb4906 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:14 GMT + - Wed, 10 Dec 2025 05:00:37 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - c1a5f3d8-e101-457c-ad69-afd5ef97d7a8 + - f0e03b34-3056-45e7-bf70-07d40feb4906 Original-Request: - - req_XTLp9N4f1MJbz4 + - req_pwOC6R8oQcORYc Request-Id: - - req_XTLp9N4f1MJbz4 + - req_pwOC6R8oQcORYc Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVGWp6XPcRLuh", + "id": "cus_TZpAsAED6BswJA", "object": "customer", "address": null, "balance": 0, - "created": 1762270514, + "created": 1765342836, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "DHTY9AGT", + "invoice_prefix": "ZW6LF5VO", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:14 GMT + recorded_at: Wed, 10 Dec 2025 05:01:07 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_mastercard_debit&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVGWp6XPcRLuh&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_mastercard_debit&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpAsAED6BswJA&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_XTLp9N4f1MJbz4","request_duration_ms":448}}' + - '{"last_request_metrics":{"request_id":"req_pwOC6R8oQcORYc","request_duration_ms":433}}' Idempotency-Key: - - 6e94bb10-d075-4fbf-a415-ca909aec80e7 + - bf836062-1dbb-4325-861a-6a01ef06f084 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:14 GMT + - Wed, 10 Dec 2025 05:00:37 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 6e94bb10-d075-4fbf-a415-ca909aec80e7 + - bf836062-1dbb-4325-861a-6a01ef06f084 Original-Request: - - req_VB1TvdY1zKz4zo + - req_liD1b7O529C8xA Request-Id: - - req_VB1TvdY1zKz4zo + - req_liD1b7O529C8xA Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGMKuuB1fWySn2OO47fvH", + "id": "pi_3ScfVxKuuB1fWySn0SLB9F4f", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270514, + "created": 1765342837, "currency": "eur", - "customer": "cus_TMVGWp6XPcRLuh", + "customer": "cus_TZpAsAED6BswJA", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGMKuuB1fWySnGODEgPHo", + "payment_method": "pm_1ScfVxKuuB1fWySnoEWaGTEy", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:14 GMT + recorded_at: Wed, 10 Dec 2025 05:01:08 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGMKuuB1fWySn2OO47fvH/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVxKuuB1fWySn0SLB9F4f/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_VB1TvdY1zKz4zo","request_duration_ms":411}}' + - '{"last_request_metrics":{"request_id":"req_liD1b7O529C8xA","request_duration_ms":447}}' Idempotency-Key: - - b16c0135-743e-4e79-a08e-d90ef4393df9 + - 6c271ec3-b76f-4980-ad6b-7335a7a89a90 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:15 GMT + - Wed, 10 Dec 2025 05:00:38 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - b16c0135-743e-4e79-a08e-d90ef4393df9 + - 6c271ec3-b76f-4980-ad6b-7335a7a89a90 Original-Request: - - req_iwRYfCnXhOefGF + - req_y9bMRvVkyLbSzH Request-Id: - - req_iwRYfCnXhOefGF + - req_y9bMRvVkyLbSzH Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGMKuuB1fWySn2OO47fvH", + "id": "pi_3ScfVxKuuB1fWySn0SLB9F4f", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270514, + "created": 1765342837, "currency": "eur", - "customer": "cus_TMVGWp6XPcRLuh", + "customer": "cus_TZpAsAED6BswJA", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGMKuuB1fWySn2yNpiKiX", + "latest_charge": "ch_3ScfVxKuuB1fWySn0xcURdxh", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGMKuuB1fWySnGODEgPHo", + "payment_method": "pm_1ScfVxKuuB1fWySnoEWaGTEy", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:15 GMT + recorded_at: Wed, 10 Dec 2025 05:01:09 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGMKuuB1fWySn2OO47fvH + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVxKuuB1fWySn0SLB9F4f body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_iwRYfCnXhOefGF","request_duration_ms":913}}' + - '{"last_request_metrics":{"request_id":"req_y9bMRvVkyLbSzH","request_duration_ms":941}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:16 GMT + - Wed, 10 Dec 2025 05:00:39 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_1jpkuKrWUTnenE + - req_stwtePvRfrT0MI Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGMKuuB1fWySn2OO47fvH", + "id": "pi_3ScfVxKuuB1fWySn0SLB9F4f", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270514, + "created": 1765342837, "currency": "eur", - "customer": "cus_TMVGWp6XPcRLuh", + "customer": "cus_TZpAsAED6BswJA", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGMKuuB1fWySn2yNpiKiX", + "latest_charge": "ch_3ScfVxKuuB1fWySn0xcURdxh", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGMKuuB1fWySnGODEgPHo", + "payment_method": "pm_1ScfVxKuuB1fWySnoEWaGTEy", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,24 +505,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:16 GMT + recorded_at: Wed, 10 Dec 2025 05:01:09 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGMKuuB1fWySn2OO47fvH/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVxKuuB1fWySn0SLB9F4f/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_1jpkuKrWUTnenE","request_duration_ms":252}}' + - '{"last_request_metrics":{"request_id":"req_stwtePvRfrT0MI","request_duration_ms":697}}' Idempotency-Key: - - eaee11de-2ff4-469c-9d7f-c8fec78b55bd + - c1df8825-8943-4726-a09c-54bd97523a07 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -538,11 +539,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:17 GMT + - Wed, 10 Dec 2025 05:00:40 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -561,17 +562,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - eaee11de-2ff4-469c-9d7f-c8fec78b55bd + - c1df8825-8943-4726-a09c-54bd97523a07 Original-Request: - - req_QCk8zEyajwR6mm + - req_bhgGRmIWMREqsF Request-Id: - - req_QCk8zEyajwR6mm + - req_bhgGRmIWMREqsF Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -586,7 +587,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGMKuuB1fWySn2OO47fvH", + "id": "pi_3ScfVxKuuB1fWySn0SLB9F4f", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -602,19 +603,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270514, + "created": 1765342837, "currency": "eur", - "customer": "cus_TMVGWp6XPcRLuh", + "customer": "cus_TZpAsAED6BswJA", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGMKuuB1fWySn2yNpiKiX", + "latest_charge": "ch_3ScfVxKuuB1fWySn0xcURdxh", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGMKuuB1fWySnGODEgPHo", + "payment_method": "pm_1ScfVxKuuB1fWySnoEWaGTEy", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -639,22 +640,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:17 GMT + recorded_at: Wed, 10 Dec 2025 05:01:10 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGMKuuB1fWySn2OO47fvH + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVxKuuB1fWySn0SLB9F4f body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_QCk8zEyajwR6mm","request_duration_ms":1376}}' + - '{"last_request_metrics":{"request_id":"req_bhgGRmIWMREqsF","request_duration_ms":1139}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -669,11 +670,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:17 GMT + - Wed, 10 Dec 2025 05:00:40 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -692,11 +693,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_1xY005HTux49la + - req_XWmC6fT4PpN3Mc Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -711,7 +712,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGMKuuB1fWySn2OO47fvH", + "id": "pi_3ScfVxKuuB1fWySn0SLB9F4f", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -727,19 +728,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270514, + "created": 1765342837, "currency": "eur", - "customer": "cus_TMVGWp6XPcRLuh", + "customer": "cus_TZpAsAED6BswJA", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGMKuuB1fWySn2yNpiKiX", + "latest_charge": "ch_3ScfVxKuuB1fWySn0xcURdxh", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGMKuuB1fWySnGODEgPHo", + "payment_method": "pm_1ScfVxKuuB1fWySnoEWaGTEy", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -764,5 +765,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:17 GMT + recorded_at: Wed, 10 Dec 2025 05:01:11 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_debit_/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_debit_/returns_payment_intent_id.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_debit_/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_debit_/returns_payment_intent_id.yml index 3a6c41abaa..aba1c107ee 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_debit_/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_debit_/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_501WF7lJ5o7rT1","request_duration_ms":282}}' + - '{"last_request_metrics":{"request_id":"req_hpj9Bf2CLrDQgR","request_duration_ms":685}}' Idempotency-Key: - - 22b2e440-c8c4-4e8f-97e8-e54856833551 + - 6e750ce9-0b99-44c1-bbbf-236d7f98e310 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:11 GMT + - Wed, 10 Dec 2025 05:00:34 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 22b2e440-c8c4-4e8f-97e8-e54856833551 + - 6e750ce9-0b99-44c1-bbbf-236d7f98e310 Original-Request: - - req_KOQR7tRuTRCxt2 + - req_RC3x8Mi5UI2y3o Request-Id: - - req_KOQR7tRuTRCxt2 + - req_RC3x8Mi5UI2y3o Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVGrwUI8yAUzH", + "id": "cus_TZpAWcFVq7XBTr", "object": "customer", "address": null, "balance": 0, - "created": 1762270511, + "created": 1765342834, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "5QB5E3GZ", + "invoice_prefix": "JQOSCXR7", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:11 GMT + recorded_at: Wed, 10 Dec 2025 05:01:05 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_mastercard_debit&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVGrwUI8yAUzH&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_mastercard_debit&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpAWcFVq7XBTr&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_KOQR7tRuTRCxt2","request_duration_ms":459}}' + - '{"last_request_metrics":{"request_id":"req_RC3x8Mi5UI2y3o","request_duration_ms":429}}' Idempotency-Key: - - 6ec53864-b7f3-4365-af1c-016d46dc7af9 + - 0ee9bbc0-0b8c-4bba-a668-6ddb33f9eced Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:12 GMT + - Wed, 10 Dec 2025 05:00:35 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 6ec53864-b7f3-4365-af1c-016d46dc7af9 + - 0ee9bbc0-0b8c-4bba-a668-6ddb33f9eced Original-Request: - - req_Y5dKtRrCMjcFSH + - req_ytRZYoZ7kutCiS Request-Id: - - req_Y5dKtRrCMjcFSH + - req_ytRZYoZ7kutCiS Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGKKuuB1fWySn2l1sbw00", + "id": "pi_3ScfVvKuuB1fWySn2TQgo8S9", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270512, + "created": 1765342835, "currency": "eur", - "customer": "cus_TMVGrwUI8yAUzH", + "customer": "cus_TZpAWcFVq7XBTr", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGKKuuB1fWySntap1MMoQ", + "payment_method": "pm_1ScfVvKuuB1fWySnbwZTrFgw", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:12 GMT + recorded_at: Wed, 10 Dec 2025 05:01:05 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGKKuuB1fWySn2l1sbw00/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVvKuuB1fWySn2TQgo8S9/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Y5dKtRrCMjcFSH","request_duration_ms":407}}' + - '{"last_request_metrics":{"request_id":"req_ytRZYoZ7kutCiS","request_duration_ms":437}}' Idempotency-Key: - - 862fc18b-a595-42cf-b38b-2a11c534b827 + - c27cf613-06e9-4af1-a10f-e338de762450 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:13 GMT + - Wed, 10 Dec 2025 05:00:36 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 862fc18b-a595-42cf-b38b-2a11c534b827 + - c27cf613-06e9-4af1-a10f-e338de762450 Original-Request: - - req_XU9uAewfJvUiBt + - req_PJgnpaCBhcvegr Request-Id: - - req_XU9uAewfJvUiBt + - req_PJgnpaCBhcvegr Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGKKuuB1fWySn2l1sbw00", + "id": "pi_3ScfVvKuuB1fWySn2TQgo8S9", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270512, + "created": 1765342835, "currency": "eur", - "customer": "cus_TMVGrwUI8yAUzH", + "customer": "cus_TZpAWcFVq7XBTr", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGKKuuB1fWySn2t2cOB6f", + "latest_charge": "ch_3ScfVvKuuB1fWySn261B4DH5", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGKKuuB1fWySntap1MMoQ", + "payment_method": "pm_1ScfVvKuuB1fWySnbwZTrFgw", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:13 GMT + recorded_at: Wed, 10 Dec 2025 05:01:06 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGKKuuB1fWySn2l1sbw00 + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVvKuuB1fWySn2TQgo8S9 body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_XU9uAewfJvUiBt","request_duration_ms":919}}' + - '{"last_request_metrics":{"request_id":"req_PJgnpaCBhcvegr","request_duration_ms":918}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:13 GMT + - Wed, 10 Dec 2025 05:00:36 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_yzJn5U6MvzJaV2 + - req_8uo1Xo1XpSUmdh Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGKKuuB1fWySn2l1sbw00", + "id": "pi_3ScfVvKuuB1fWySn2TQgo8S9", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270512, + "created": 1765342835, "currency": "eur", - "customer": "cus_TMVGrwUI8yAUzH", + "customer": "cus_TZpAWcFVq7XBTr", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGKKuuB1fWySn2t2cOB6f", + "latest_charge": "ch_3ScfVvKuuB1fWySn261B4DH5", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGKKuuB1fWySntap1MMoQ", + "payment_method": "pm_1ScfVvKuuB1fWySnbwZTrFgw", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,5 +505,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:13 GMT + recorded_at: Wed, 10 Dec 2025 05:01:07 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_prepaid_/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_prepaid_/captures_the_payment.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_prepaid_/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_prepaid_/captures_the_payment.yml index 675053cf92..34ce9ca59f 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_prepaid_/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_prepaid_/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_cWqi4IJfRj1hJw","request_duration_ms":393}}' + - '{"last_request_metrics":{"request_id":"req_2swhX06zkE5Qps","request_duration_ms":330}}' Idempotency-Key: - - 797a1beb-bf65-43e3-a46a-bf52c79e1bd9 + - 1ebe0347-6ce1-45c8-ab02-9b695b1b3e7a Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:21 GMT + - Wed, 10 Dec 2025 05:00:43 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 797a1beb-bf65-43e3-a46a-bf52c79e1bd9 + - 1ebe0347-6ce1-45c8-ab02-9b695b1b3e7a Original-Request: - - req_aunYOud8kpuvgn + - req_CtoQrzhdIxPCom Request-Id: - - req_aunYOud8kpuvgn + - req_CtoQrzhdIxPCom Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVHMWpIqZyWxZ", + "id": "cus_TZpAGE32BXlf7M", "object": "customer", "address": null, "balance": 0, - "created": 1762270520, + "created": 1765342843, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "IH8DLBY1", + "invoice_prefix": "SMC6X6XG", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:21 GMT + recorded_at: Wed, 10 Dec 2025 05:01:14 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_mastercard_prepaid&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVHMWpIqZyWxZ&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_mastercard_prepaid&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpAGE32BXlf7M&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_aunYOud8kpuvgn","request_duration_ms":492}}' + - '{"last_request_metrics":{"request_id":"req_CtoQrzhdIxPCom","request_duration_ms":470}}' Idempotency-Key: - - 10c5fa66-d262-431d-8766-e38c98ef962e + - 76140d6c-1a58-4549-86fe-901359594e35 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:21 GMT + - Wed, 10 Dec 2025 05:00:43 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 10c5fa66-d262-431d-8766-e38c98ef962e + - 76140d6c-1a58-4549-86fe-901359594e35 Original-Request: - - req_Ut3Eh3ZhMPtdxk + - req_Erf9Is7ex7npJW Request-Id: - - req_Ut3Eh3ZhMPtdxk + - req_Erf9Is7ex7npJW Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGTKuuB1fWySn2k2icnam", + "id": "pi_3ScfW3KuuB1fWySn27Rg6Ade", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270521, + "created": 1765342843, "currency": "eur", - "customer": "cus_TMVHMWpIqZyWxZ", + "customer": "cus_TZpAGE32BXlf7M", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGTKuuB1fWySnAc3Oe6xc", + "payment_method": "pm_1ScfW3KuuB1fWySnsGLf5EES", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:21 GMT + recorded_at: Wed, 10 Dec 2025 05:01:14 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGTKuuB1fWySn2k2icnam/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfW3KuuB1fWySn27Rg6Ade/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Ut3Eh3ZhMPtdxk","request_duration_ms":369}}' + - '{"last_request_metrics":{"request_id":"req_Erf9Is7ex7npJW","request_duration_ms":446}}' Idempotency-Key: - - b23a19bb-3eea-446b-94f9-ac8e268ee31e + - 21ef0225-147b-44e5-bf89-76be22a9bf5b Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:22 GMT + - Wed, 10 Dec 2025 05:00:44 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - b23a19bb-3eea-446b-94f9-ac8e268ee31e + - 21ef0225-147b-44e5-bf89-76be22a9bf5b Original-Request: - - req_CXwcLfyOK1OXlu + - req_5KqzDTGQ92f4Kd Request-Id: - - req_CXwcLfyOK1OXlu + - req_5KqzDTGQ92f4Kd Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGTKuuB1fWySn2k2icnam", + "id": "pi_3ScfW3KuuB1fWySn27Rg6Ade", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270521, + "created": 1765342843, "currency": "eur", - "customer": "cus_TMVHMWpIqZyWxZ", + "customer": "cus_TZpAGE32BXlf7M", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGTKuuB1fWySn2YQbu5V7", + "latest_charge": "ch_3ScfW3KuuB1fWySn2eMPcoW2", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGTKuuB1fWySnAc3Oe6xc", + "payment_method": "pm_1ScfW3KuuB1fWySnsGLf5EES", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:22 GMT + recorded_at: Wed, 10 Dec 2025 05:01:15 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGTKuuB1fWySn2k2icnam + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfW3KuuB1fWySn27Rg6Ade body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_CXwcLfyOK1OXlu","request_duration_ms":899}}' + - '{"last_request_metrics":{"request_id":"req_5KqzDTGQ92f4Kd","request_duration_ms":961}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:22 GMT + - Wed, 10 Dec 2025 05:00:45 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_kZ061F88JL1AeK + - req_jxEVoGHa4DWL16 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGTKuuB1fWySn2k2icnam", + "id": "pi_3ScfW3KuuB1fWySn27Rg6Ade", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270521, + "created": 1765342843, "currency": "eur", - "customer": "cus_TMVHMWpIqZyWxZ", + "customer": "cus_TZpAGE32BXlf7M", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGTKuuB1fWySn2YQbu5V7", + "latest_charge": "ch_3ScfW3KuuB1fWySn2eMPcoW2", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGTKuuB1fWySnAc3Oe6xc", + "payment_method": "pm_1ScfW3KuuB1fWySnsGLf5EES", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,24 +505,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:22 GMT + recorded_at: Wed, 10 Dec 2025 05:01:15 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGTKuuB1fWySn2k2icnam/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfW3KuuB1fWySn27Rg6Ade/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_kZ061F88JL1AeK","request_duration_ms":304}}' + - '{"last_request_metrics":{"request_id":"req_jxEVoGHa4DWL16","request_duration_ms":323}}' Idempotency-Key: - - 4cc1d248-cb2a-42ce-b4a1-864c5b36635e + - 01b1c7d6-506e-46ca-a85f-2646cd4d76a4 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -538,11 +539,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:24 GMT + - Wed, 10 Dec 2025 05:00:46 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -561,17 +562,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 4cc1d248-cb2a-42ce-b4a1-864c5b36635e + - 01b1c7d6-506e-46ca-a85f-2646cd4d76a4 Original-Request: - - req_8ZxGVyMd03iM0R + - req_ExBUzc4QfOBTQJ Request-Id: - - req_8ZxGVyMd03iM0R + - req_ExBUzc4QfOBTQJ Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -586,7 +587,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGTKuuB1fWySn2k2icnam", + "id": "pi_3ScfW3KuuB1fWySn27Rg6Ade", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -602,19 +603,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270521, + "created": 1765342843, "currency": "eur", - "customer": "cus_TMVHMWpIqZyWxZ", + "customer": "cus_TZpAGE32BXlf7M", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGTKuuB1fWySn2YQbu5V7", + "latest_charge": "ch_3ScfW3KuuB1fWySn2eMPcoW2", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGTKuuB1fWySnAc3Oe6xc", + "payment_method": "pm_1ScfW3KuuB1fWySnsGLf5EES", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -639,22 +640,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:24 GMT + recorded_at: Wed, 10 Dec 2025 05:01:17 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGTKuuB1fWySn2k2icnam + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfW3KuuB1fWySn27Rg6Ade body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_8ZxGVyMd03iM0R","request_duration_ms":1530}}' + - '{"last_request_metrics":{"request_id":"req_ExBUzc4QfOBTQJ","request_duration_ms":1347}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -669,11 +670,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:24 GMT + - Wed, 10 Dec 2025 05:00:46 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -692,11 +693,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_1oTssCZeEG1qt7 + - req_2WN48RMrUo5r8j Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -711,7 +712,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGTKuuB1fWySn2k2icnam", + "id": "pi_3ScfW3KuuB1fWySn27Rg6Ade", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -727,19 +728,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270521, + "created": 1765342843, "currency": "eur", - "customer": "cus_TMVHMWpIqZyWxZ", + "customer": "cus_TZpAGE32BXlf7M", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGTKuuB1fWySn2YQbu5V7", + "latest_charge": "ch_3ScfW3KuuB1fWySn2eMPcoW2", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGTKuuB1fWySnAc3Oe6xc", + "payment_method": "pm_1ScfW3KuuB1fWySnsGLf5EES", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -764,5 +765,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:24 GMT + recorded_at: Wed, 10 Dec 2025 05:01:17 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_prepaid_/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_prepaid_/returns_payment_intent_id.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_prepaid_/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_prepaid_/returns_payment_intent_id.yml index 962038e996..4401c0d14c 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_prepaid_/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Mastercard_prepaid_/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_1xY005HTux49la","request_duration_ms":302}}' + - '{"last_request_metrics":{"request_id":"req_XWmC6fT4PpN3Mc","request_duration_ms":328}}' Idempotency-Key: - - ace2f766-8c97-4a0e-af3e-6c5788fba362 + - b3410bc0-4ace-4dcb-aaca-9159101ed20e Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:18 GMT + - Wed, 10 Dec 2025 05:00:41 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - ace2f766-8c97-4a0e-af3e-6c5788fba362 + - b3410bc0-4ace-4dcb-aaca-9159101ed20e Original-Request: - - req_h9hzP85xF8PgtW + - req_bgf3c1kyHEHyp3 Request-Id: - - req_h9hzP85xF8PgtW + - req_bgf3c1kyHEHyp3 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVGyeQgUEZfgY", + "id": "cus_TZpADL4hte3zJG", "object": "customer", "address": null, "balance": 0, - "created": 1762270517, + "created": 1765342840, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "EBWFYRQF", + "invoice_prefix": "MMMXCQQJ", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:18 GMT + recorded_at: Wed, 10 Dec 2025 05:01:11 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_mastercard_prepaid&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVGyeQgUEZfgY&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_mastercard_prepaid&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpADL4hte3zJG&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_h9hzP85xF8PgtW","request_duration_ms":433}}' + - '{"last_request_metrics":{"request_id":"req_bgf3c1kyHEHyp3","request_duration_ms":450}}' Idempotency-Key: - - e9a3a563-7feb-4294-9528-67a0adb58ed0 + - ea70458a-1a42-466f-a2b5-dc24a4460696 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:18 GMT + - Wed, 10 Dec 2025 05:00:41 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - e9a3a563-7feb-4294-9528-67a0adb58ed0 + - ea70458a-1a42-466f-a2b5-dc24a4460696 Original-Request: - - req_0G6Y1C0XYdJMcM + - req_l1ikuiIw4Re4H8 Request-Id: - - req_0G6Y1C0XYdJMcM + - req_l1ikuiIw4Re4H8 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGQKuuB1fWySn03NNX9kN", + "id": "pi_3ScfW1KuuB1fWySn2qZRsbHA", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270518, + "created": 1765342841, "currency": "eur", - "customer": "cus_TMVGyeQgUEZfgY", + "customer": "cus_TZpADL4hte3zJG", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGQKuuB1fWySnzKuEBVFY", + "payment_method": "pm_1ScfW1KuuB1fWySn4ujp6XZp", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:18 GMT + recorded_at: Wed, 10 Dec 2025 05:01:12 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGQKuuB1fWySn03NNX9kN/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfW1KuuB1fWySn2qZRsbHA/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_0G6Y1C0XYdJMcM","request_duration_ms":430}}' + - '{"last_request_metrics":{"request_id":"req_l1ikuiIw4Re4H8","request_duration_ms":455}}' Idempotency-Key: - - cd69cadc-8320-41fa-8cb9-9af68094eff1 + - 958b9648-711f-4c03-abf7-7030bad9241c Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:19 GMT + - Wed, 10 Dec 2025 05:00:42 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - cd69cadc-8320-41fa-8cb9-9af68094eff1 + - 958b9648-711f-4c03-abf7-7030bad9241c Original-Request: - - req_K4LBTcpMFv68t4 + - req_RzIDJmiKgf8qxg Request-Id: - - req_K4LBTcpMFv68t4 + - req_RzIDJmiKgf8qxg Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGQKuuB1fWySn03NNX9kN", + "id": "pi_3ScfW1KuuB1fWySn2qZRsbHA", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270518, + "created": 1765342841, "currency": "eur", - "customer": "cus_TMVGyeQgUEZfgY", + "customer": "cus_TZpADL4hte3zJG", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGQKuuB1fWySn0YBmXMBF", + "latest_charge": "ch_3ScfW1KuuB1fWySn2IouOzpl", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGQKuuB1fWySnzKuEBVFY", + "payment_method": "pm_1ScfW1KuuB1fWySn4ujp6XZp", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:19 GMT + recorded_at: Wed, 10 Dec 2025 05:01:13 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGQKuuB1fWySn03NNX9kN + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfW1KuuB1fWySn2qZRsbHA body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_K4LBTcpMFv68t4","request_duration_ms":1198}}' + - '{"last_request_metrics":{"request_id":"req_RzIDJmiKgf8qxg","request_duration_ms":902}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:20 GMT + - Wed, 10 Dec 2025 05:00:42 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_cWqi4IJfRj1hJw + - req_2swhX06zkE5Qps Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGQKuuB1fWySn03NNX9kN", + "id": "pi_3ScfW1KuuB1fWySn2qZRsbHA", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270518, + "created": 1765342841, "currency": "eur", - "customer": "cus_TMVGyeQgUEZfgY", + "customer": "cus_TZpADL4hte3zJG", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGQKuuB1fWySn0YBmXMBF", + "latest_charge": "ch_3ScfW1KuuB1fWySn2IouOzpl", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGQKuuB1fWySnzKuEBVFY", + "payment_method": "pm_1ScfW1KuuB1fWySn4ujp6XZp", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,5 +505,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:20 GMT + recorded_at: Wed, 10 Dec 2025 05:01:13 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_UnionPay/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_UnionPay/captures_the_payment.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_UnionPay/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_UnionPay/captures_the_payment.yml index 91d035ebb5..89a17a505b 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_UnionPay/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_UnionPay/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_aXmH8HC2vQTWph","request_duration_ms":310}}' + - '{"last_request_metrics":{"request_id":"req_KbbW13AZpZbXGj","request_duration_ms":332}}' Idempotency-Key: - - 6125bfa7-0240-4a2e-b31c-8533404daf47 + - b942c19c-5000-489a-b153-8976b96dd1ad Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:53 GMT + - Wed, 10 Dec 2025 05:01:14 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 6125bfa7-0240-4a2e-b31c-8533404daf47 + - b942c19c-5000-489a-b153-8976b96dd1ad Original-Request: - - req_zendtV4rlqwy6K + - req_ho7cTvMwt9v6Zb Request-Id: - - req_zendtV4rlqwy6K + - req_ho7cTvMwt9v6Zb Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVHM2w47Sedf8", + "id": "cus_TZpAvR55iiCDvj", "object": "customer", "address": null, "balance": 0, - "created": 1762270553, + "created": 1765342874, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "BNC9GF5G", + "invoice_prefix": "UBMI1SPN", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:53 GMT + recorded_at: Wed, 10 Dec 2025 05:01:45 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_unionpay&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVHM2w47Sedf8&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_unionpay&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpAvR55iiCDvj&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_zendtV4rlqwy6K","request_duration_ms":451}}' + - '{"last_request_metrics":{"request_id":"req_ho7cTvMwt9v6Zb","request_duration_ms":414}}' Idempotency-Key: - - 6ee3c1bd-8430-4246-98a4-2f014359cb52 + - '049f162b-8887-4963-8cb9-d8c4107f2841' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:54 GMT + - Wed, 10 Dec 2025 05:01:15 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 6ee3c1bd-8430-4246-98a4-2f014359cb52 + - '049f162b-8887-4963-8cb9-d8c4107f2841' Original-Request: - - req_Mu5JjO4xBIIHSV + - req_2z87n4OJTVrKFg Request-Id: - - req_Mu5JjO4xBIIHSV + - req_2z87n4OJTVrKFg Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGzKuuB1fWySn0OnoN8uM", + "id": "pi_3ScfWYKuuB1fWySn0VbNUpWA", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270553, + "created": 1765342874, "currency": "eur", - "customer": "cus_TMVHM2w47Sedf8", + "customer": "cus_TZpAvR55iiCDvj", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGzKuuB1fWySnXzzgTINX", + "payment_method": "pm_1ScfWYKuuB1fWySnCEnIVc2b", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:54 GMT + recorded_at: Wed, 10 Dec 2025 05:01:45 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGzKuuB1fWySn0OnoN8uM/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWYKuuB1fWySn0VbNUpWA/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Mu5JjO4xBIIHSV","request_duration_ms":510}}' + - '{"last_request_metrics":{"request_id":"req_2z87n4OJTVrKFg","request_duration_ms":436}}' Idempotency-Key: - - e5dabe17-4993-4148-8c49-048f967cd54d + - 42e6e6e9-cee3-4f77-bd16-ca2e92155e50 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:54 GMT + - Wed, 10 Dec 2025 05:01:16 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - e5dabe17-4993-4148-8c49-048f967cd54d + - 42e6e6e9-cee3-4f77-bd16-ca2e92155e50 Original-Request: - - req_Do21H9islz38VI + - req_byIx76dHji0289 Request-Id: - - req_Do21H9islz38VI + - req_byIx76dHji0289 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGzKuuB1fWySn0OnoN8uM", + "id": "pi_3ScfWYKuuB1fWySn0VbNUpWA", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270553, + "created": 1765342874, "currency": "eur", - "customer": "cus_TMVHM2w47Sedf8", + "customer": "cus_TZpAvR55iiCDvj", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGzKuuB1fWySn0oTry0bK", + "latest_charge": "ch_3ScfWYKuuB1fWySn0JNFIWKz", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGzKuuB1fWySnXzzgTINX", + "payment_method": "pm_1ScfWYKuuB1fWySnCEnIVc2b", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:55 GMT + recorded_at: Wed, 10 Dec 2025 05:01:46 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGzKuuB1fWySn0OnoN8uM + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWYKuuB1fWySn0VbNUpWA body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Do21H9islz38VI","request_duration_ms":918}}' + - '{"last_request_metrics":{"request_id":"req_byIx76dHji0289","request_duration_ms":1039}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:55 GMT + - Wed, 10 Dec 2025 05:01:16 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_RDWte9fk0LRK5l + - req_fSOrDgaoz46b10 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGzKuuB1fWySn0OnoN8uM", + "id": "pi_3ScfWYKuuB1fWySn0VbNUpWA", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270553, + "created": 1765342874, "currency": "eur", - "customer": "cus_TMVHM2w47Sedf8", + "customer": "cus_TZpAvR55iiCDvj", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGzKuuB1fWySn0oTry0bK", + "latest_charge": "ch_3ScfWYKuuB1fWySn0JNFIWKz", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGzKuuB1fWySnXzzgTINX", + "payment_method": "pm_1ScfWYKuuB1fWySnCEnIVc2b", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,24 +505,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:55 GMT + recorded_at: Wed, 10 Dec 2025 05:01:47 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGzKuuB1fWySn0OnoN8uM/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWYKuuB1fWySn0VbNUpWA/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_RDWte9fk0LRK5l","request_duration_ms":305}}' + - '{"last_request_metrics":{"request_id":"req_fSOrDgaoz46b10","request_duration_ms":320}}' Idempotency-Key: - - e840e878-fd5c-43cc-b0b5-dc9d0444eeb9 + - daf4446e-4220-4cac-ba87-049403fe3844 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -538,11 +539,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:56 GMT + - Wed, 10 Dec 2025 05:01:17 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -561,17 +562,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - e840e878-fd5c-43cc-b0b5-dc9d0444eeb9 + - daf4446e-4220-4cac-ba87-049403fe3844 Original-Request: - - req_hqOfCEd5CkhoIJ + - req_dxtf3LhH51g8uY Request-Id: - - req_hqOfCEd5CkhoIJ + - req_dxtf3LhH51g8uY Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -586,7 +587,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGzKuuB1fWySn0OnoN8uM", + "id": "pi_3ScfWYKuuB1fWySn0VbNUpWA", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -602,19 +603,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270553, + "created": 1765342874, "currency": "eur", - "customer": "cus_TMVHM2w47Sedf8", + "customer": "cus_TZpAvR55iiCDvj", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGzKuuB1fWySn0oTry0bK", + "latest_charge": "ch_3ScfWYKuuB1fWySn0JNFIWKz", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGzKuuB1fWySnXzzgTINX", + "payment_method": "pm_1ScfWYKuuB1fWySnCEnIVc2b", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -639,22 +640,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:56 GMT + recorded_at: Wed, 10 Dec 2025 05:01:48 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGzKuuB1fWySn0OnoN8uM + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWYKuuB1fWySn0VbNUpWA body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_hqOfCEd5CkhoIJ","request_duration_ms":1429}}' + - '{"last_request_metrics":{"request_id":"req_dxtf3LhH51g8uY","request_duration_ms":1153}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -669,11 +670,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:56 GMT + - Wed, 10 Dec 2025 05:01:17 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -692,11 +693,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_Nop2qkp1LnkwYX + - req_ieGRzEsqo8BB5k Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -711,7 +712,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGzKuuB1fWySn0OnoN8uM", + "id": "pi_3ScfWYKuuB1fWySn0VbNUpWA", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -727,19 +728,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270553, + "created": 1765342874, "currency": "eur", - "customer": "cus_TMVHM2w47Sedf8", + "customer": "cus_TZpAvR55iiCDvj", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGzKuuB1fWySn0oTry0bK", + "latest_charge": "ch_3ScfWYKuuB1fWySn0JNFIWKz", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGzKuuB1fWySnXzzgTINX", + "payment_method": "pm_1ScfWYKuuB1fWySnCEnIVc2b", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -764,5 +765,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:57 GMT + recorded_at: Wed, 10 Dec 2025 05:01:48 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_UnionPay/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_UnionPay/returns_payment_intent_id.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_UnionPay/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_UnionPay/returns_payment_intent_id.yml index 0a2cb17e61..64921c2b63 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_UnionPay/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_UnionPay/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_MHeimaQFsntvdY","request_duration_ms":303}}' + - '{"last_request_metrics":{"request_id":"req_NIiVT916uyrPb2","request_duration_ms":319}}' Idempotency-Key: - - 4c0fbed6-deb7-461a-b68f-1c9615350a7d + - 6106e18a-2eaf-4aae-a9bf-7c551d7d7d34 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:50 GMT + - Wed, 10 Dec 2025 05:01:12 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 4c0fbed6-deb7-461a-b68f-1c9615350a7d + - 6106e18a-2eaf-4aae-a9bf-7c551d7d7d34 Original-Request: - - req_OY5HJ6GJTqheKh + - req_QZrwChQM4pJ2yY Request-Id: - - req_OY5HJ6GJTqheKh + - req_QZrwChQM4pJ2yY Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVH5DUx1T9ZvU", + "id": "cus_TZpAW5Hk2kXWsV", "object": "customer", "address": null, "balance": 0, - "created": 1762270550, + "created": 1765342872, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "8Y9NJYVG", + "invoice_prefix": "XE2BD0YK", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:50 GMT + recorded_at: Wed, 10 Dec 2025 05:01:43 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_unionpay&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVH5DUx1T9ZvU&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_unionpay&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpAW5Hk2kXWsV&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_OY5HJ6GJTqheKh","request_duration_ms":438}}' + - '{"last_request_metrics":{"request_id":"req_QZrwChQM4pJ2yY","request_duration_ms":444}}' Idempotency-Key: - - c5ef644f-dcc1-454c-9422-a5ca52ba5fbc + - c981ff01-9aed-44d2-b95c-738b7a3e4b96 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:51 GMT + - Wed, 10 Dec 2025 05:01:12 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - c5ef644f-dcc1-454c-9422-a5ca52ba5fbc + - c981ff01-9aed-44d2-b95c-738b7a3e4b96 Original-Request: - - req_3QPNzDcTzABW89 + - req_FoNIIWLIQlUQCz Request-Id: - - req_3QPNzDcTzABW89 + - req_FoNIIWLIQlUQCz Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGxKuuB1fWySn0CFWwjfm", + "id": "pi_3ScfWWKuuB1fWySn0isLT9Zo", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270551, + "created": 1765342872, "currency": "eur", - "customer": "cus_TMVH5DUx1T9ZvU", + "customer": "cus_TZpAW5Hk2kXWsV", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGxKuuB1fWySnrhQXgxmm", + "payment_method": "pm_1ScfWWKuuB1fWySnQDwXOZz9", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:51 GMT + recorded_at: Wed, 10 Dec 2025 05:01:43 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGxKuuB1fWySn0CFWwjfm/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWWKuuB1fWySn0isLT9Zo/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_3QPNzDcTzABW89","request_duration_ms":406}}' + - '{"last_request_metrics":{"request_id":"req_FoNIIWLIQlUQCz","request_duration_ms":444}}' Idempotency-Key: - - 6238d058-d644-4f08-9811-5e354ecdc9bf + - faa911bb-2ccf-4bba-bb22-b4148e310561 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:52 GMT + - Wed, 10 Dec 2025 05:01:13 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 6238d058-d644-4f08-9811-5e354ecdc9bf + - faa911bb-2ccf-4bba-bb22-b4148e310561 Original-Request: - - req_j7zYjCfienurIo + - req_v15OAHHdadGHJI Request-Id: - - req_j7zYjCfienurIo + - req_v15OAHHdadGHJI Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGxKuuB1fWySn0CFWwjfm", + "id": "pi_3ScfWWKuuB1fWySn0isLT9Zo", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270551, + "created": 1765342872, "currency": "eur", - "customer": "cus_TMVH5DUx1T9ZvU", + "customer": "cus_TZpAW5Hk2kXWsV", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGxKuuB1fWySn0BLGWRCb", + "latest_charge": "ch_3ScfWWKuuB1fWySn0Pg5sfpm", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGxKuuB1fWySnrhQXgxmm", + "payment_method": "pm_1ScfWWKuuB1fWySnQDwXOZz9", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:52 GMT + recorded_at: Wed, 10 Dec 2025 05:01:44 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmGxKuuB1fWySn0CFWwjfm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfWWKuuB1fWySn0isLT9Zo body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_j7zYjCfienurIo","request_duration_ms":918}}' + - '{"last_request_metrics":{"request_id":"req_v15OAHHdadGHJI","request_duration_ms":898}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:52 GMT + - Wed, 10 Dec 2025 05:01:14 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_aXmH8HC2vQTWph + - req_KbbW13AZpZbXGj Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmGxKuuB1fWySn0CFWwjfm", + "id": "pi_3ScfWWKuuB1fWySn0isLT9Zo", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270551, + "created": 1765342872, "currency": "eur", - "customer": "cus_TMVH5DUx1T9ZvU", + "customer": "cus_TZpAW5Hk2kXWsV", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmGxKuuB1fWySn0BLGWRCb", + "latest_charge": "ch_3ScfWWKuuB1fWySn0Pg5sfpm", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmGxKuuB1fWySnrhQXgxmm", + "payment_method": "pm_1ScfWWKuuB1fWySnQDwXOZz9", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,5 +505,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:53 GMT + recorded_at: Wed, 10 Dec 2025 05:01:44 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa/captures_the_payment.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa/captures_the_payment.yml index 64142253e2..831a00823e 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_1DNLlRAdcROlU7","request_duration_ms":350}}' + - '{"last_request_metrics":{"request_id":"req_4nKI5uzodExrIK","request_duration_ms":319}}' Idempotency-Key: - - 5c7dbe23-a74e-4385-b98c-e41d46719901 + - 113a28a7-bc4b-4634-aac0-11b25548dd2a Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:54 GMT + - Wed, 10 Dec 2025 05:00:17 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 5c7dbe23-a74e-4385-b98c-e41d46719901 + - 113a28a7-bc4b-4634-aac0-11b25548dd2a Original-Request: - - req_bYBrEOjyzYXhcg + - req_DFaDQxpKZoJmAv Request-Id: - - req_bYBrEOjyzYXhcg + - req_DFaDQxpKZoJmAv Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVGATQyiluxhs", + "id": "cus_TZp9lqJXii1pXi", "object": "customer", "address": null, "balance": 0, - "created": 1762270494, + "created": 1765342817, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "ANEVV83B", + "invoice_prefix": "NHJMLOXQ", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:34:54 GMT + recorded_at: Wed, 10 Dec 2025 05:00:48 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_visa&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVGATQyiluxhs&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_visa&payment_method_types[0]=card&capture_method=manual&customer=cus_TZp9lqJXii1pXi&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_bYBrEOjyzYXhcg","request_duration_ms":374}}' + - '{"last_request_metrics":{"request_id":"req_DFaDQxpKZoJmAv","request_duration_ms":471}}' Idempotency-Key: - - 4834fc71-ee9b-4056-9f78-b8f45f15aa1e + - 2d60884e-6570-498c-908d-e8f5303e37b4 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:54 GMT + - Wed, 10 Dec 2025 05:00:18 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 4834fc71-ee9b-4056-9f78-b8f45f15aa1e + - 2d60884e-6570-498c-908d-e8f5303e37b4 Original-Request: - - req_SpyKQkyxsuz5w1 + - req_UXS6XEMXjjZyth Request-Id: - - req_SpyKQkyxsuz5w1 + - req_UXS6XEMXjjZyth Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmG2KuuB1fWySn2znLLSGJ", + "id": "pi_3ScfVeKuuB1fWySn1Vubomhs", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270494, + "created": 1765342818, "currency": "eur", - "customer": "cus_TMVGATQyiluxhs", + "customer": "cus_TZp9lqJXii1pXi", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmG2KuuB1fWySngJLV3g2t", + "payment_method": "pm_1ScfVeKuuB1fWySnjS0cc9Az", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:55 GMT + recorded_at: Wed, 10 Dec 2025 05:00:49 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmG2KuuB1fWySn2znLLSGJ/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVeKuuB1fWySn1Vubomhs/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_SpyKQkyxsuz5w1","request_duration_ms":475}}' + - '{"last_request_metrics":{"request_id":"req_UXS6XEMXjjZyth","request_duration_ms":438}}' Idempotency-Key: - - 16286556-4fd5-40ba-914f-071efa9a5328 + - 75799b4a-7b0c-4a10-aaca-c9720f45d84d Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:55 GMT + - Wed, 10 Dec 2025 05:00:19 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 16286556-4fd5-40ba-914f-071efa9a5328 + - 75799b4a-7b0c-4a10-aaca-c9720f45d84d Original-Request: - - req_jZ9oQd1Z1apfas + - req_sSQh5L5puJyPkP Request-Id: - - req_jZ9oQd1Z1apfas + - req_sSQh5L5puJyPkP Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmG2KuuB1fWySn2znLLSGJ", + "id": "pi_3ScfVeKuuB1fWySn1Vubomhs", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270494, + "created": 1765342818, "currency": "eur", - "customer": "cus_TMVGATQyiluxhs", + "customer": "cus_TZp9lqJXii1pXi", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmG2KuuB1fWySn2ldrSnyN", + "latest_charge": "ch_3ScfVeKuuB1fWySn1MxGLQVq", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmG2KuuB1fWySngJLV3g2t", + "payment_method": "pm_1ScfVeKuuB1fWySnjS0cc9Az", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:56 GMT + recorded_at: Wed, 10 Dec 2025 05:00:49 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmG2KuuB1fWySn2znLLSGJ + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVeKuuB1fWySn1Vubomhs body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_jZ9oQd1Z1apfas","request_duration_ms":917}}' + - '{"last_request_metrics":{"request_id":"req_sSQh5L5puJyPkP","request_duration_ms":918}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:56 GMT + - Wed, 10 Dec 2025 05:00:19 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_cRG6yoQb06TdSc + - req_qLMUIn0FMw5oHk Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmG2KuuB1fWySn2znLLSGJ", + "id": "pi_3ScfVeKuuB1fWySn1Vubomhs", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270494, + "created": 1765342818, "currency": "eur", - "customer": "cus_TMVGATQyiluxhs", + "customer": "cus_TZp9lqJXii1pXi", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmG2KuuB1fWySn2ldrSnyN", + "latest_charge": "ch_3ScfVeKuuB1fWySn1MxGLQVq", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmG2KuuB1fWySngJLV3g2t", + "payment_method": "pm_1ScfVeKuuB1fWySnjS0cc9Az", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,24 +505,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:56 GMT + recorded_at: Wed, 10 Dec 2025 05:00:50 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmG2KuuB1fWySn2znLLSGJ/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVeKuuB1fWySn1Vubomhs/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_cRG6yoQb06TdSc","request_duration_ms":405}}' + - '{"last_request_metrics":{"request_id":"req_qLMUIn0FMw5oHk","request_duration_ms":321}}' Idempotency-Key: - - 14457e3b-cf8b-4ddf-9369-3ac0af1c57fe + - 634183e1-04a4-4b79-88ed-245a8d509dab Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -538,11 +539,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:57 GMT + - Wed, 10 Dec 2025 05:00:21 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -561,17 +562,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 14457e3b-cf8b-4ddf-9369-3ac0af1c57fe + - 634183e1-04a4-4b79-88ed-245a8d509dab Original-Request: - - req_5Q7C5mkj9uffhT + - req_UTpzGtK4UeCgTm Request-Id: - - req_5Q7C5mkj9uffhT + - req_UTpzGtK4UeCgTm Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -586,7 +587,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmG2KuuB1fWySn2znLLSGJ", + "id": "pi_3ScfVeKuuB1fWySn1Vubomhs", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -602,19 +603,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270494, + "created": 1765342818, "currency": "eur", - "customer": "cus_TMVGATQyiluxhs", + "customer": "cus_TZp9lqJXii1pXi", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmG2KuuB1fWySn2ldrSnyN", + "latest_charge": "ch_3ScfVeKuuB1fWySn1MxGLQVq", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmG2KuuB1fWySngJLV3g2t", + "payment_method": "pm_1ScfVeKuuB1fWySnjS0cc9Az", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -639,22 +640,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:57 GMT + recorded_at: Wed, 10 Dec 2025 05:00:51 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmG2KuuB1fWySn2znLLSGJ + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVeKuuB1fWySn1Vubomhs body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_5Q7C5mkj9uffhT","request_duration_ms":1225}}' + - '{"last_request_metrics":{"request_id":"req_UTpzGtK4UeCgTm","request_duration_ms":1568}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -669,11 +670,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:57 GMT + - Wed, 10 Dec 2025 05:00:21 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -692,11 +693,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_VRt2vUteOGVdoA + - req_fhEf3hMIf1LDxy Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -711,7 +712,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmG2KuuB1fWySn2znLLSGJ", + "id": "pi_3ScfVeKuuB1fWySn1Vubomhs", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -727,19 +728,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270494, + "created": 1765342818, "currency": "eur", - "customer": "cus_TMVGATQyiluxhs", + "customer": "cus_TZp9lqJXii1pXi", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmG2KuuB1fWySn2ldrSnyN", + "latest_charge": "ch_3ScfVeKuuB1fWySn1MxGLQVq", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmG2KuuB1fWySngJLV3g2t", + "payment_method": "pm_1ScfVeKuuB1fWySnjS0cc9Az", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -764,5 +765,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:58 GMT + recorded_at: Wed, 10 Dec 2025 05:00:52 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa/returns_payment_intent_id.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa/returns_payment_intent_id.yml index 25a053503b..75d648283d 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa/returns_payment_intent_id.yml @@ -8,13 +8,13 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - f0d925e9-613b-477b-a2a3-3fc63e63d011 + - b8aa84f9-849b-4840-82c6-8973d2cbec01 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:51 GMT + - Wed, 10 Dec 2025 05:00:15 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - f0d925e9-613b-477b-a2a3-3fc63e63d011 + - b8aa84f9-849b-4840-82c6-8973d2cbec01 Original-Request: - - req_TEJ9jHz5Gouzyt + - req_3YvrpAWFxTiW1l Request-Id: - - req_TEJ9jHz5Gouzyt + - req_3YvrpAWFxTiW1l Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,18 +79,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVGvIiEHPX9yL", + "id": "cus_TZp9VLjtHHbMyT", "object": "customer", "address": null, "balance": 0, - "created": 1762270491, + "created": 1765342815, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "JZFVREPV", + "invoice_prefix": "PH2WIK3G", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -107,24 +108,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:34:51 GMT + recorded_at: Wed, 10 Dec 2025 05:00:46 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_visa&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVGvIiEHPX9yL&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_visa&payment_method_types[0]=card&capture_method=manual&customer=cus_TZp9VLjtHHbMyT&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_TEJ9jHz5Gouzyt","request_duration_ms":404}}' + - '{"last_request_metrics":{"request_id":"req_3YvrpAWFxTiW1l","request_duration_ms":451}}' Idempotency-Key: - - 46c671e7-7a00-40df-b724-a08f17795214 + - db230fdd-3284-46ad-b8cb-01df84a383a8 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -141,11 +142,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:52 GMT + - Wed, 10 Dec 2025 05:00:16 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -164,17 +165,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 46c671e7-7a00-40df-b724-a08f17795214 + - db230fdd-3284-46ad-b8cb-01df84a383a8 Original-Request: - - req_egMsH1gXnpL8GC + - req_ME8nvvHngBya7I Request-Id: - - req_egMsH1gXnpL8GC + - req_ME8nvvHngBya7I Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -189,7 +190,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmG0KuuB1fWySn2u2sOMZC", + "id": "pi_3ScfVbKuuB1fWySn0821kf4L", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -205,19 +206,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270492, + "created": 1765342815, "currency": "eur", - "customer": "cus_TMVGvIiEHPX9yL", + "customer": "cus_TZp9VLjtHHbMyT", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFzKuuB1fWySnky1WfKK6", + "payment_method": "pm_1ScfVbKuuB1fWySn4t6UzFN3", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -242,24 +243,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:52 GMT + recorded_at: Wed, 10 Dec 2025 05:00:46 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmG0KuuB1fWySn2u2sOMZC/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVbKuuB1fWySn0821kf4L/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_egMsH1gXnpL8GC","request_duration_ms":510}}' + - '{"last_request_metrics":{"request_id":"req_ME8nvvHngBya7I","request_duration_ms":531}}' Idempotency-Key: - - 3ae6c1ed-2540-4c54-a74c-0d5492a46258 + - 88d6ad93-2552-4a15-97a6-11fbc58f317b Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -276,11 +277,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:53 GMT + - Wed, 10 Dec 2025 05:00:17 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -299,17 +300,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 3ae6c1ed-2540-4c54-a74c-0d5492a46258 + - 88d6ad93-2552-4a15-97a6-11fbc58f317b Original-Request: - - req_CN81bSIITxco1N + - req_5HnuyxPqaXNiG0 Request-Id: - - req_CN81bSIITxco1N + - req_5HnuyxPqaXNiG0 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -324,7 +325,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmG0KuuB1fWySn2u2sOMZC", + "id": "pi_3ScfVbKuuB1fWySn0821kf4L", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -340,19 +341,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270492, + "created": 1765342815, "currency": "eur", - "customer": "cus_TMVGvIiEHPX9yL", + "customer": "cus_TZp9VLjtHHbMyT", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmG0KuuB1fWySn2e89bXqu", + "latest_charge": "ch_3ScfVbKuuB1fWySn0WcJDK1P", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFzKuuB1fWySnky1WfKK6", + "payment_method": "pm_1ScfVbKuuB1fWySn4t6UzFN3", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -377,22 +378,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:53 GMT + recorded_at: Wed, 10 Dec 2025 05:00:47 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmG0KuuB1fWySn2u2sOMZC + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVbKuuB1fWySn0821kf4L body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_CN81bSIITxco1N","request_duration_ms":1020}}' + - '{"last_request_metrics":{"request_id":"req_5HnuyxPqaXNiG0","request_duration_ms":889}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -407,11 +408,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:54 GMT + - Wed, 10 Dec 2025 05:00:17 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -430,11 +431,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_1DNLlRAdcROlU7 + - req_4nKI5uzodExrIK Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -449,7 +450,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmG0KuuB1fWySn2u2sOMZC", + "id": "pi_3ScfVbKuuB1fWySn0821kf4L", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -465,19 +466,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270492, + "created": 1765342815, "currency": "eur", - "customer": "cus_TMVGvIiEHPX9yL", + "customer": "cus_TZp9VLjtHHbMyT", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmG0KuuB1fWySn2e89bXqu", + "latest_charge": "ch_3ScfVbKuuB1fWySn0WcJDK1P", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFzKuuB1fWySnky1WfKK6", + "payment_method": "pm_1ScfVbKuuB1fWySn4t6UzFN3", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -502,5 +503,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:54 GMT + recorded_at: Wed, 10 Dec 2025 05:00:48 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa_debit_/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa_debit_/captures_the_payment.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa_debit_/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa_debit_/captures_the_payment.yml index bb799302a6..6d8ffd4ae5 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa_debit_/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa_debit_/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_jI7YvkInGDIiMW","request_duration_ms":283}}' + - '{"last_request_metrics":{"request_id":"req_KlIfmKFbrQVOjR","request_duration_ms":321}}' Idempotency-Key: - - 3e3eb3f0-ba22-445f-a146-bb51ba8c9c88 + - b5ce2701-ceb2-4bd5-9082-60226f4a4692 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:01 GMT + - Wed, 10 Dec 2025 05:00:24 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 3e3eb3f0-ba22-445f-a146-bb51ba8c9c88 + - b5ce2701-ceb2-4bd5-9082-60226f4a4692 Original-Request: - - req_W9L8ePAxZyo0DU + - req_wCezQy52Uz55I6 Request-Id: - - req_W9L8ePAxZyo0DU + - req_wCezQy52Uz55I6 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVGIRLkkRO5XO", + "id": "cus_TZpA2WMOLsIZcr", "object": "customer", "address": null, "balance": 0, - "created": 1762270500, + "created": 1765342824, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "JWCCXVA4", + "invoice_prefix": "GVNIUKRR", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:35:01 GMT + recorded_at: Wed, 10 Dec 2025 05:00:55 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_visa_debit&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVGIRLkkRO5XO&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_visa_debit&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpA2WMOLsIZcr&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_W9L8ePAxZyo0DU","request_duration_ms":363}}' + - '{"last_request_metrics":{"request_id":"req_wCezQy52Uz55I6","request_duration_ms":451}}' Idempotency-Key: - - af92bf5e-13de-4571-be53-8eab81d9b570 + - 0a93983e-9cc1-4e3e-a6bd-0a9495eb5f05 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:01 GMT + - Wed, 10 Dec 2025 05:00:24 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - af92bf5e-13de-4571-be53-8eab81d9b570 + - 0a93983e-9cc1-4e3e-a6bd-0a9495eb5f05 Original-Request: - - req_hYP9LtsfgdKYCZ + - req_A3IiFKVwgX4UYj Request-Id: - - req_hYP9LtsfgdKYCZ + - req_A3IiFKVwgX4UYj Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmG9KuuB1fWySn0W0QY0oa", + "id": "pi_3ScfVkKuuB1fWySn143Xgsag", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270501, + "created": 1765342824, "currency": "eur", - "customer": "cus_TMVGIRLkkRO5XO", + "customer": "cus_TZpA2WMOLsIZcr", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmG9KuuB1fWySnvavHuvr9", + "payment_method": "pm_1ScfVkKuuB1fWySniwNxRr9v", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:01 GMT + recorded_at: Wed, 10 Dec 2025 05:00:55 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmG9KuuB1fWySn0W0QY0oa/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVkKuuB1fWySn143Xgsag/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_hYP9LtsfgdKYCZ","request_duration_ms":407}}' + - '{"last_request_metrics":{"request_id":"req_A3IiFKVwgX4UYj","request_duration_ms":474}}' Idempotency-Key: - - a085f49c-0546-4326-aa5a-374c9b84f2d8 + - 1cf05e2b-23ae-44ce-b57a-21ce31bc5877 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:02 GMT + - Wed, 10 Dec 2025 05:00:25 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - a085f49c-0546-4326-aa5a-374c9b84f2d8 + - 1cf05e2b-23ae-44ce-b57a-21ce31bc5877 Original-Request: - - req_rbfCg7ZN4rqDap + - req_ogrQTkYYTb9rMe Request-Id: - - req_rbfCg7ZN4rqDap + - req_ogrQTkYYTb9rMe Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmG9KuuB1fWySn0W0QY0oa", + "id": "pi_3ScfVkKuuB1fWySn143Xgsag", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270501, + "created": 1765342824, "currency": "eur", - "customer": "cus_TMVGIRLkkRO5XO", + "customer": "cus_TZpA2WMOLsIZcr", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmG9KuuB1fWySn0SEkpBGa", + "latest_charge": "ch_3ScfVkKuuB1fWySn1XV2ZuGG", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmG9KuuB1fWySnvavHuvr9", + "payment_method": "pm_1ScfVkKuuB1fWySniwNxRr9v", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:02 GMT + recorded_at: Wed, 10 Dec 2025 05:00:56 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmG9KuuB1fWySn0W0QY0oa + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVkKuuB1fWySn143Xgsag body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_rbfCg7ZN4rqDap","request_duration_ms":990}}' + - '{"last_request_metrics":{"request_id":"req_ogrQTkYYTb9rMe","request_duration_ms":914}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:02 GMT + - Wed, 10 Dec 2025 05:00:26 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_UuieVBjXPmF6oP + - req_chRXOVX0U2FEnk Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmG9KuuB1fWySn0W0QY0oa", + "id": "pi_3ScfVkKuuB1fWySn143Xgsag", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270501, + "created": 1765342824, "currency": "eur", - "customer": "cus_TMVGIRLkkRO5XO", + "customer": "cus_TZpA2WMOLsIZcr", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmG9KuuB1fWySn0SEkpBGa", + "latest_charge": "ch_3ScfVkKuuB1fWySn1XV2ZuGG", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmG9KuuB1fWySnvavHuvr9", + "payment_method": "pm_1ScfVkKuuB1fWySniwNxRr9v", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,24 +505,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:02 GMT + recorded_at: Wed, 10 Dec 2025 05:00:56 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmG9KuuB1fWySn0W0QY0oa/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVkKuuB1fWySn143Xgsag/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_UuieVBjXPmF6oP","request_duration_ms":304}}' + - '{"last_request_metrics":{"request_id":"req_chRXOVX0U2FEnk","request_duration_ms":315}}' Idempotency-Key: - - dac124b9-1282-436f-b158-2345977141d4 + - b61549d2-444c-4de1-903c-4af82e6c3431 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -538,11 +539,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:04 GMT + - Wed, 10 Dec 2025 05:00:27 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -561,17 +562,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - dac124b9-1282-436f-b158-2345977141d4 + - b61549d2-444c-4de1-903c-4af82e6c3431 Original-Request: - - req_pT8hyZBO1oGgnM + - req_mtQrqgQE3TV9jr Request-Id: - - req_pT8hyZBO1oGgnM + - req_mtQrqgQE3TV9jr Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -586,7 +587,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmG9KuuB1fWySn0W0QY0oa", + "id": "pi_3ScfVkKuuB1fWySn143Xgsag", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -602,19 +603,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270501, + "created": 1765342824, "currency": "eur", - "customer": "cus_TMVGIRLkkRO5XO", + "customer": "cus_TZpA2WMOLsIZcr", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmG9KuuB1fWySn0SEkpBGa", + "latest_charge": "ch_3ScfVkKuuB1fWySn1XV2ZuGG", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmG9KuuB1fWySnvavHuvr9", + "payment_method": "pm_1ScfVkKuuB1fWySniwNxRr9v", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -639,22 +640,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:04 GMT + recorded_at: Wed, 10 Dec 2025 05:00:57 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmG9KuuB1fWySn0W0QY0oa + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVkKuuB1fWySn143Xgsag body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_pT8hyZBO1oGgnM","request_duration_ms":1633}}' + - '{"last_request_metrics":{"request_id":"req_mtQrqgQE3TV9jr","request_duration_ms":1235}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -669,11 +670,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:04 GMT + - Wed, 10 Dec 2025 05:00:27 GMT Content-Type: - application/json Content-Length: - - '1424' + - '1433' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -692,11 +693,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_ijlqRdHi6jPS7T + - req_7Ez5Jnev856LUE Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -711,7 +712,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmG9KuuB1fWySn0W0QY0oa", + "id": "pi_3ScfVkKuuB1fWySn143Xgsag", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -727,19 +728,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270501, + "created": 1765342824, "currency": "eur", - "customer": "cus_TMVGIRLkkRO5XO", + "customer": "cus_TZpA2WMOLsIZcr", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmG9KuuB1fWySn0SEkpBGa", + "latest_charge": "ch_3ScfVkKuuB1fWySn1XV2ZuGG", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmG9KuuB1fWySnvavHuvr9", + "payment_method": "pm_1ScfVkKuuB1fWySniwNxRr9v", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -764,5 +765,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:04 GMT + recorded_at: Wed, 10 Dec 2025 05:00:58 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa_debit_/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa_debit_/returns_payment_intent_id.yml similarity index 80% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa_debit_/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa_debit_/returns_payment_intent_id.yml index 8b58b2675c..fb9eef0ed6 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa_debit_/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_Stripe_customer/when_payment_intent_is_valid/from_Visa_debit_/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_VRt2vUteOGVdoA","request_duration_ms":405}}' + - '{"last_request_metrics":{"request_id":"req_fhEf3hMIf1LDxy","request_duration_ms":349}}' Idempotency-Key: - - f9ae37a1-5f3f-467f-a723-576f295968ac + - f7ce3572-a29d-42e4-9b23-5a116aff5727 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:58 GMT + - Wed, 10 Dec 2025 05:00:22 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - f9ae37a1-5f3f-467f-a723-576f295968ac + - f7ce3572-a29d-42e4-9b23-5a116aff5727 Original-Request: - - req_01dTOsm5Ipz4oN + - req_I8WFGdCWIdFFty Request-Id: - - req_01dTOsm5Ipz4oN + - req_I8WFGdCWIdFFty Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,18 +81,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TMVGcRwlWJFIvD", + "id": "cus_TZpAztQeZXuZL1", "object": "customer", "address": null, "balance": 0, - "created": 1762270498, + "created": 1765342821, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "BI12CGH1", + "invoice_prefix": "NIJVHU6Z", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -109,24 +110,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 04 Nov 2025 15:34:58 GMT + recorded_at: Wed, 10 Dec 2025 05:00:52 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents body: encoding: UTF-8 - string: amount=100¤cy=eur&payment_method=pm_card_visa_debit&payment_method_types[0]=card&capture_method=manual&customer=cus_TMVGcRwlWJFIvD&setup_future_usage=off_session + string: amount=100¤cy=eur&payment_method=pm_card_visa_debit&payment_method_types[0]=card&capture_method=manual&customer=cus_TZpAztQeZXuZL1&setup_future_usage=off_session headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_01dTOsm5Ipz4oN","request_duration_ms":417}}' + - '{"last_request_metrics":{"request_id":"req_I8WFGdCWIdFFty","request_duration_ms":428}}' Idempotency-Key: - - 90811430-ac6d-41fb-afdd-04d4822dd3ea + - 0fda52d8-ca98-4ab2-b009-86f0c857c8e8 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -143,11 +144,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:58 GMT + - Wed, 10 Dec 2025 05:00:22 GMT Content-Type: - application/json Content-Length: - - '1409' + - '1418' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -166,17 +167,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 90811430-ac6d-41fb-afdd-04d4822dd3ea + - 0fda52d8-ca98-4ab2-b009-86f0c857c8e8 Original-Request: - - req_P13FW2v8xgi6Nz + - req_zsUAvjFLC9O2dt Request-Id: - - req_P13FW2v8xgi6Nz + - req_zsUAvjFLC9O2dt Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -191,7 +192,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmG6KuuB1fWySn0raQMRpv", + "id": "pi_3ScfViKuuB1fWySn2ROrEym3", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -207,19 +208,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270498, + "created": 1765342822, "currency": "eur", - "customer": "cus_TMVGcRwlWJFIvD", + "customer": "cus_TZpAztQeZXuZL1", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmG6KuuB1fWySnIuff9px3", + "payment_method": "pm_1ScfViKuuB1fWySn7rB5TBDL", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -244,24 +245,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:59 GMT + recorded_at: Wed, 10 Dec 2025 05:00:53 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmG6KuuB1fWySn0raQMRpv/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfViKuuB1fWySn2ROrEym3/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_P13FW2v8xgi6Nz","request_duration_ms":404}}' + - '{"last_request_metrics":{"request_id":"req_zsUAvjFLC9O2dt","request_duration_ms":459}}' Idempotency-Key: - - 745b145e-b685-42fa-a327-04df00d854e0 + - 43f70325-9841-460a-a8a1-2d67042765ef Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -278,11 +279,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:59 GMT + - Wed, 10 Dec 2025 05:00:23 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -301,17 +302,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 745b145e-b685-42fa-a327-04df00d854e0 + - 43f70325-9841-460a-a8a1-2d67042765ef Original-Request: - - req_P57jayVCivw8pl + - req_7beJd9bv36Nh2B Request-Id: - - req_P57jayVCivw8pl + - req_7beJd9bv36Nh2B Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -326,7 +327,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmG6KuuB1fWySn0raQMRpv", + "id": "pi_3ScfViKuuB1fWySn2ROrEym3", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -342,19 +343,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270498, + "created": 1765342822, "currency": "eur", - "customer": "cus_TMVGcRwlWJFIvD", + "customer": "cus_TZpAztQeZXuZL1", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmG6KuuB1fWySn02CPTF23", + "latest_charge": "ch_3ScfViKuuB1fWySn2RPjPyrE", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmG6KuuB1fWySnIuff9px3", + "payment_method": "pm_1ScfViKuuB1fWySn7rB5TBDL", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -379,22 +380,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:59 GMT + recorded_at: Wed, 10 Dec 2025 05:00:54 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmG6KuuB1fWySn0raQMRpv + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfViKuuB1fWySn2ROrEym3 body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_P57jayVCivw8pl","request_duration_ms":918}}' + - '{"last_request_metrics":{"request_id":"req_7beJd9bv36Nh2B","request_duration_ms":1042}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -409,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:35:00 GMT + - Wed, 10 Dec 2025 05:00:23 GMT Content-Type: - application/json Content-Length: - - '1431' + - '1440' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -432,11 +433,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_jI7YvkInGDIiMW + - req_KlIfmKFbrQVOjR Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -451,7 +452,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmG6KuuB1fWySn0raQMRpv", + "id": "pi_3ScfViKuuB1fWySn2ROrEym3", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -467,19 +468,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270498, + "created": 1765342822, "currency": "eur", - "customer": "cus_TMVGcRwlWJFIvD", + "customer": "cus_TZpAztQeZXuZL1", + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmG6KuuB1fWySn02CPTF23", + "latest_charge": "ch_3ScfViKuuB1fWySn2RPjPyrE", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmG6KuuB1fWySnIuff9px3", + "payment_method": "pm_1ScfViKuuB1fWySn7rB5TBDL", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -504,5 +505,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:35:00 GMT + recorded_at: Wed, 10 Dec 2025 05:00:54 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 86% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml index 38bf16de7f..ade5d9683c 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Exceeding_velocity_limit_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml @@ -8,13 +8,13 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_visa_chargeDeclinedVelocityLimitExceeded&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - 0a46cb1c-5bdd-4f83-987e-4d223c7fdf0b + - e310dc60-9271-4a1c-9c06-03a75bf972e4 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:50 GMT + - Wed, 10 Dec 2025 05:00:14 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 0a46cb1c-5bdd-4f83-987e-4d223c7fdf0b + - e310dc60-9271-4a1c-9c06-03a75bf972e4 Original-Request: - - req_HzNCaFm0hO8lRH + - req_f8omkztLii5S1x Request-Id: - - req_HzNCaFm0hO8lRH + - req_f8omkztLii5S1x Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,7 +79,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFyKuuB1fWySn27KFvHwl", + "id": "pi_3ScfVaKuuB1fWySn2dI3iGuq", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -95,19 +95,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270490, + "created": 1765342814, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFyKuuB1fWySnHgGTfnDy", + "payment_method": "pm_1ScfVZKuuB1fWySneIRkqzRN", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -132,24 +132,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:50 GMT + recorded_at: Wed, 10 Dec 2025 05:00:44 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFyKuuB1fWySn27KFvHwl/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVaKuuB1fWySn2dI3iGuq/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_HzNCaFm0hO8lRH","request_duration_ms":395}}' + - '{"last_request_metrics":{"request_id":"req_f8omkztLii5S1x","request_duration_ms":460}}' Idempotency-Key: - - 4378929f-2097-40de-a508-7f698ee2b64b + - 631ce5b5-b8e7-4ae2-a7b8-3cd81ad7ad31 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -166,11 +166,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:51 GMT + - Wed, 10 Dec 2025 05:00:15 GMT Content-Type: - application/json Content-Length: - - '5401' + - '5478' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -189,17 +189,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 4378929f-2097-40de-a508-7f698ee2b64b + - 631ce5b5-b8e7-4ae2-a7b8-3cd81ad7ad31 Original-Request: - - req_lhynTJ2UCLIpZV + - req_8RRTVUy2vV93Sv Request-Id: - - req_lhynTJ2UCLIpZV + - req_8RRTVUy2vV93Sv Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: { "error": { "advice_code": "try_again_later", - "charge": "ch_3SPmFyKuuB1fWySn26c2FCet", + "charge": "ch_3ScfVaKuuB1fWySn23zPYwca", "code": "card_declined", "decline_code": "card_velocity_exceeded", "doc_url": "https://stripe.com/docs/error-codes/card-declined", @@ -224,7 +224,7 @@ http_interactions: "network_advice_code": "02", "network_decline_code": "61", "payment_intent": { - "id": "pi_3SPmFyKuuB1fWySn27KFvHwl", + "id": "pi_3ScfVaKuuB1fWySn2dI3iGuq", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -240,15 +240,15 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270490, + "created": 1765342814, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": { "advice_code": "try_again_later", - "charge": "ch_3SPmFyKuuB1fWySn26c2FCet", + "charge": "ch_3ScfVaKuuB1fWySn23zPYwca", "code": "card_declined", "decline_code": "card_velocity_exceeded", "doc_url": "https://stripe.com/docs/error-codes/card-declined", @@ -256,7 +256,7 @@ http_interactions: "network_advice_code": "02", "network_decline_code": "61", "payment_method": { - "id": "pm_1SPmFyKuuB1fWySnHgGTfnDy", + "id": "pm_1ScfVZKuuB1fWySneIRkqzRN", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -282,7 +282,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "WoxwxVPUPcg0EjXW", "funding": "credit", @@ -300,15 +300,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270490, + "created": 1765342813, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, "type": "card_error" }, - "latest_charge": "ch_3SPmFyKuuB1fWySn26c2FCet", + "latest_charge": "ch_3ScfVaKuuB1fWySn23zPYwca", "livemode": false, "metadata": {}, "next_action": null, @@ -339,7 +340,7 @@ http_interactions: "transfer_group": null }, "payment_method": { - "id": "pm_1SPmFyKuuB1fWySnHgGTfnDy", + "id": "pm_1ScfVZKuuB1fWySneIRkqzRN", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -365,7 +366,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "WoxwxVPUPcg0EjXW", "funding": "credit", @@ -383,15 +384,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270490, + "created": 1765342813, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, - "request_log_url": "https://dashboard.stripe.com/test/logs/req_lhynTJ2UCLIpZV?t=1762270490", + "request_log_url": "https://dashboard.stripe.com/test/logs/req_8RRTVUy2vV93Sv?t=1765342814", "type": "card_error" } } - recorded_at: Tue, 04 Nov 2025 15:34:51 GMT + recorded_at: Wed, 10 Dec 2025 05:00:45 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 85% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml index 5fc3dc21a9..7fbadf19f4 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Expired_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml @@ -8,13 +8,13 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_chargeDeclinedExpiredCard&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - ca108eb0-2ed9-4d6b-93ce-c28926a40f32 + - b26c7dff-b553-4b64-be49-5fad9f61bff8 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:45 GMT + - Wed, 10 Dec 2025 05:00:09 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - ca108eb0-2ed9-4d6b-93ce-c28926a40f32 + - b26c7dff-b553-4b64-be49-5fad9f61bff8 Original-Request: - - req_i3dDeAKdzXYymq + - req_nAF18onbRyFWZz Request-Id: - - req_i3dDeAKdzXYymq + - req_nAF18onbRyFWZz Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,7 +79,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFtKuuB1fWySn0Xiexfez", + "id": "pi_3ScfVVKuuB1fWySn2Y4U9LJt", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -95,19 +95,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270485, + "created": 1765342809, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFtKuuB1fWySnXpPNoptA", + "payment_method": "pm_1ScfVVKuuB1fWySnCqbYBhhJ", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -132,24 +132,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:46 GMT + recorded_at: Wed, 10 Dec 2025 05:00:40 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFtKuuB1fWySn0Xiexfez/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVVKuuB1fWySn2Y4U9LJt/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_i3dDeAKdzXYymq","request_duration_ms":447}}' + - '{"last_request_metrics":{"request_id":"req_nAF18onbRyFWZz","request_duration_ms":496}}' Idempotency-Key: - - 2bd6d38e-9480-491a-bfd4-f678bdef81f3 + - e58df520-ee9d-4d1b-8bec-fcebd1a98309 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -166,11 +166,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:46 GMT + - Wed, 10 Dec 2025 05:00:10 GMT Content-Type: - application/json Content-Length: - - '5287' + - '5364' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -189,17 +189,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 2bd6d38e-9480-491a-bfd4-f678bdef81f3 + - e58df520-ee9d-4d1b-8bec-fcebd1a98309 Original-Request: - - req_B9b3BtPxA4yuhO + - req_egwAylA3vBFT1F Request-Id: - - req_B9b3BtPxA4yuhO + - req_egwAylA3vBFT1F Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: { "error": { "advice_code": "confirm_card_data", - "charge": "ch_3SPmFtKuuB1fWySn0HxWqUyA", + "charge": "ch_3ScfVVKuuB1fWySn2zkIgCrx", "code": "expired_card", "decline_code": "expired_card", "doc_url": "https://stripe.com/docs/error-codes/expired-card", @@ -225,7 +225,7 @@ http_interactions: "network_decline_code": "54", "param": "exp_month", "payment_intent": { - "id": "pi_3SPmFtKuuB1fWySn0Xiexfez", + "id": "pi_3ScfVVKuuB1fWySn2Y4U9LJt", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -241,15 +241,15 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270485, + "created": 1765342809, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": { "advice_code": "confirm_card_data", - "charge": "ch_3SPmFtKuuB1fWySn0HxWqUyA", + "charge": "ch_3ScfVVKuuB1fWySn2zkIgCrx", "code": "expired_card", "decline_code": "expired_card", "doc_url": "https://stripe.com/docs/error-codes/expired-card", @@ -258,7 +258,7 @@ http_interactions: "network_decline_code": "54", "param": "exp_month", "payment_method": { - "id": "pm_1SPmFtKuuB1fWySnXpPNoptA", + "id": "pm_1ScfVVKuuB1fWySnCqbYBhhJ", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -284,7 +284,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "qpQikrTL7IyNA2rE", "funding": "credit", @@ -302,15 +302,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270485, + "created": 1765342809, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, "type": "card_error" }, - "latest_charge": "ch_3SPmFtKuuB1fWySn0HxWqUyA", + "latest_charge": "ch_3ScfVVKuuB1fWySn2zkIgCrx", "livemode": false, "metadata": {}, "next_action": null, @@ -341,7 +342,7 @@ http_interactions: "transfer_group": null }, "payment_method": { - "id": "pm_1SPmFtKuuB1fWySnXpPNoptA", + "id": "pm_1ScfVVKuuB1fWySnCqbYBhhJ", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -367,7 +368,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "qpQikrTL7IyNA2rE", "funding": "credit", @@ -385,15 +386,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270485, + "created": 1765342809, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, - "request_log_url": "https://dashboard.stripe.com/test/logs/req_B9b3BtPxA4yuhO?t=1762270486", + "request_log_url": "https://dashboard.stripe.com/test/logs/req_egwAylA3vBFT1F?t=1765342809", "type": "card_error" } } - recorded_at: Tue, 04 Nov 2025 15:34:47 GMT + recorded_at: Wed, 10 Dec 2025 05:00:41 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 85% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml index bb632a9d2b..aa2698fff7 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Generic_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_visa_chargeDeclined&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_hjDjyr8Uk8EC2o","request_duration_ms":398}}' + - '{"last_request_metrics":{"request_id":"req_YFZzrNQpbV6UVG","request_duration_ms":334}}' Idempotency-Key: - - 6358a1b1-960f-40e6-8b6e-9bdb20475732 + - eb88b578-d5a5-4ee8-878e-e3b548123f06 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:40 GMT + - Wed, 10 Dec 2025 05:00:04 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 6358a1b1-960f-40e6-8b6e-9bdb20475732 + - eb88b578-d5a5-4ee8-878e-e3b548123f06 Original-Request: - - req_cErvP7w6o6b0qW + - req_OvIZkJle1R8UBq Request-Id: - - req_cErvP7w6o6b0qW + - req_OvIZkJle1R8UBq Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFnKuuB1fWySn0eYfhWTr", + "id": "pi_3ScfVPKuuB1fWySn0AqsSAAs", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270479, + "created": 1765342803, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFnKuuB1fWySnPYa33oDp", + "payment_method": "pm_1ScfVPKuuB1fWySnq5Y2UARH", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:40 GMT + recorded_at: Wed, 10 Dec 2025 05:00:34 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFnKuuB1fWySn0eYfhWTr/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVPKuuB1fWySn0AqsSAAs/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_cErvP7w6o6b0qW","request_duration_ms":435}}' + - '{"last_request_metrics":{"request_id":"req_OvIZkJle1R8UBq","request_duration_ms":433}}' Idempotency-Key: - - 0e581692-5d5e-4907-8317-981f775a044d + - d0fb05ac-b33b-4ac4-a17b-73c70601a551 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:41 GMT + - Wed, 10 Dec 2025 05:00:05 GMT Content-Type: - application/json Content-Length: - - '5169' + - '5246' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 0e581692-5d5e-4907-8317-981f775a044d + - d0fb05ac-b33b-4ac4-a17b-73c70601a551 Original-Request: - - req_8Zz281sujD9rpb + - req_qpugIJE5y0s5T2 Request-Id: - - req_8Zz281sujD9rpb + - req_qpugIJE5y0s5T2 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -218,14 +218,14 @@ http_interactions: { "error": { "advice_code": "try_again_later", - "charge": "ch_3SPmFnKuuB1fWySn0nuIwH0V", + "charge": "ch_3ScfVPKuuB1fWySn05KntjLl", "code": "card_declined", "decline_code": "generic_decline", "doc_url": "https://stripe.com/docs/error-codes/card-declined", "message": "Your card was declined.", "network_decline_code": "01", "payment_intent": { - "id": "pi_3SPmFnKuuB1fWySn0eYfhWTr", + "id": "pi_3ScfVPKuuB1fWySn0AqsSAAs", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -241,22 +241,22 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270479, + "created": 1765342803, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": { "advice_code": "try_again_later", - "charge": "ch_3SPmFnKuuB1fWySn0nuIwH0V", + "charge": "ch_3ScfVPKuuB1fWySn05KntjLl", "code": "card_declined", "decline_code": "generic_decline", "doc_url": "https://stripe.com/docs/error-codes/card-declined", "message": "Your card was declined.", "network_decline_code": "01", "payment_method": { - "id": "pm_1SPmFnKuuB1fWySnPYa33oDp", + "id": "pm_1ScfVPKuuB1fWySnq5Y2UARH", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -282,7 +282,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "IKC2ubfpSLuZKsVs", "funding": "credit", @@ -300,15 +300,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270479, + "created": 1765342803, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, "type": "card_error" }, - "latest_charge": "ch_3SPmFnKuuB1fWySn0nuIwH0V", + "latest_charge": "ch_3ScfVPKuuB1fWySn05KntjLl", "livemode": false, "metadata": {}, "next_action": null, @@ -339,7 +340,7 @@ http_interactions: "transfer_group": null }, "payment_method": { - "id": "pm_1SPmFnKuuB1fWySnPYa33oDp", + "id": "pm_1ScfVPKuuB1fWySnq5Y2UARH", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -365,7 +366,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "IKC2ubfpSLuZKsVs", "funding": "credit", @@ -383,15 +384,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270479, + "created": 1765342803, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, - "request_log_url": "https://dashboard.stripe.com/test/logs/req_8Zz281sujD9rpb?t=1762270480", + "request_log_url": "https://dashboard.stripe.com/test/logs/req_qpugIJE5y0s5T2?t=1765342804", "type": "card_error" } } - recorded_at: Tue, 04 Nov 2025 15:34:41 GMT + recorded_at: Wed, 10 Dec 2025 05:00:35 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 85% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml index 52d70f6ae4..73948b06b5 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Incorrect_CVC_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml @@ -8,13 +8,13 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_chargeDeclinedIncorrectCvc&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - 2d8661b7-6a2c-4d39-820e-925e821c7627 + - 6fd452c3-f177-428e-a2d1-992318b188ed Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:47 GMT + - Wed, 10 Dec 2025 05:00:11 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 2d8661b7-6a2c-4d39-820e-925e821c7627 + - 6fd452c3-f177-428e-a2d1-992318b188ed Original-Request: - - req_hidhscDcUh5rxA + - req_Z826eeGPHstkNc Request-Id: - - req_hidhscDcUh5rxA + - req_Z826eeGPHstkNc Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,7 +79,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFvKuuB1fWySn1Gh7vbuK", + "id": "pi_3ScfVXKuuB1fWySn1d2bsEje", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -95,19 +95,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270487, + "created": 1765342811, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFvKuuB1fWySnBAPmVkWu", + "payment_method": "pm_1ScfVXKuuB1fWySnBhS159K2", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -132,24 +132,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:47 GMT + recorded_at: Wed, 10 Dec 2025 05:00:41 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFvKuuB1fWySn1Gh7vbuK/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVXKuuB1fWySn1d2bsEje/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_hidhscDcUh5rxA","request_duration_ms":448}}' + - '{"last_request_metrics":{"request_id":"req_Z826eeGPHstkNc","request_duration_ms":436}}' Idempotency-Key: - - b040db7f-94e0-4670-9b96-fae019612be9 + - 1f8d9128-9235-4532-9ac6-d3bd5973a496 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -166,11 +166,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:48 GMT + - Wed, 10 Dec 2025 05:00:12 GMT Content-Type: - application/json Content-Length: - - '5315' + - '5392' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -189,17 +189,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - b040db7f-94e0-4670-9b96-fae019612be9 + - 1f8d9128-9235-4532-9ac6-d3bd5973a496 Original-Request: - - req_jQ9lonaIkKdlwp + - req_ApVTsZVx2PwX5o Request-Id: - - req_jQ9lonaIkKdlwp + - req_ApVTsZVx2PwX5o Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: { "error": { "advice_code": "confirm_card_data", - "charge": "ch_3SPmFvKuuB1fWySn1YTiWxdV", + "charge": "ch_3ScfVXKuuB1fWySn1VbzGt5I", "code": "incorrect_cvc", "decline_code": "incorrect_cvc", "doc_url": "https://stripe.com/docs/error-codes/incorrect-cvc", @@ -225,7 +225,7 @@ http_interactions: "network_decline_code": "N7", "param": "cvc", "payment_intent": { - "id": "pi_3SPmFvKuuB1fWySn1Gh7vbuK", + "id": "pi_3ScfVXKuuB1fWySn1d2bsEje", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -241,15 +241,15 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270487, + "created": 1765342811, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": { "advice_code": "confirm_card_data", - "charge": "ch_3SPmFvKuuB1fWySn1YTiWxdV", + "charge": "ch_3ScfVXKuuB1fWySn1VbzGt5I", "code": "incorrect_cvc", "decline_code": "incorrect_cvc", "doc_url": "https://stripe.com/docs/error-codes/incorrect-cvc", @@ -258,7 +258,7 @@ http_interactions: "network_decline_code": "N7", "param": "cvc", "payment_method": { - "id": "pm_1SPmFvKuuB1fWySnBAPmVkWu", + "id": "pm_1ScfVXKuuB1fWySnBhS159K2", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -284,7 +284,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "eWmxEL5j3bNdPnK5", "funding": "credit", @@ -302,15 +302,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270487, + "created": 1765342811, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, "type": "card_error" }, - "latest_charge": "ch_3SPmFvKuuB1fWySn1YTiWxdV", + "latest_charge": "ch_3ScfVXKuuB1fWySn1VbzGt5I", "livemode": false, "metadata": {}, "next_action": null, @@ -341,7 +342,7 @@ http_interactions: "transfer_group": null }, "payment_method": { - "id": "pm_1SPmFvKuuB1fWySnBAPmVkWu", + "id": "pm_1ScfVXKuuB1fWySnBhS159K2", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -367,7 +368,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "eWmxEL5j3bNdPnK5", "funding": "credit", @@ -385,15 +386,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270487, + "created": 1765342811, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, - "request_log_url": "https://dashboard.stripe.com/test/logs/req_jQ9lonaIkKdlwp?t=1762270487", + "request_log_url": "https://dashboard.stripe.com/test/logs/req_ApVTsZVx2PwX5o?t=1765342811", "type": "card_error" } } - recorded_at: Tue, 04 Nov 2025 15:34:48 GMT + recorded_at: Wed, 10 Dec 2025 05:00:42 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 85% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml index 7f76ae2885..a59c487f7b 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Insufficient_funds_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml @@ -8,13 +8,13 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_visa_chargeDeclinedInsufficientFunds&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - 8448ac58-f932-48d7-95c6-53505f8f15ee + - 13012d98-c96d-4ca4-a4e9-b9fb99f5f390 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:41 GMT + - Wed, 10 Dec 2025 05:00:05 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 8448ac58-f932-48d7-95c6-53505f8f15ee + - 13012d98-c96d-4ca4-a4e9-b9fb99f5f390 Original-Request: - - req_N9AvZzfH3sKoy9 + - req_TMk7LbqyMdwvBL Request-Id: - - req_N9AvZzfH3sKoy9 + - req_TMk7LbqyMdwvBL Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,7 +79,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFpKuuB1fWySn2Fhv39tY", + "id": "pi_3ScfVRKuuB1fWySn2KDF24BI", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -95,19 +95,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270481, + "created": 1765342805, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFpKuuB1fWySnPqdoRUKc", + "payment_method": "pm_1ScfVRKuuB1fWySnseiktq8U", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -132,24 +132,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:41 GMT + recorded_at: Wed, 10 Dec 2025 05:00:36 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFpKuuB1fWySn2Fhv39tY/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVRKuuB1fWySn2KDF24BI/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_N9AvZzfH3sKoy9","request_duration_ms":389}}' + - '{"last_request_metrics":{"request_id":"req_TMk7LbqyMdwvBL","request_duration_ms":450}}' Idempotency-Key: - - b75f0f10-b419-4e55-8042-01211d111056 + - 24848969-c550-4aa1-afb3-3566cf1f2b29 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -166,11 +166,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:42 GMT + - Wed, 10 Dec 2025 05:00:06 GMT Content-Type: - application/json Content-Length: - - '5265' + - '5342' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -189,17 +189,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - b75f0f10-b419-4e55-8042-01211d111056 + - 24848969-c550-4aa1-afb3-3566cf1f2b29 Original-Request: - - req_f3QESbekK3oFtT + - req_ARQ3pXKZGWKm81 Request-Id: - - req_f3QESbekK3oFtT + - req_ARQ3pXKZGWKm81 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: { "error": { "advice_code": "try_again_later", - "charge": "ch_3SPmFpKuuB1fWySn2gUNNPLJ", + "charge": "ch_3ScfVRKuuB1fWySn2RleKsFu", "code": "card_declined", "decline_code": "insufficient_funds", "doc_url": "https://stripe.com/docs/error-codes/card-declined", @@ -224,7 +224,7 @@ http_interactions: "network_advice_code": "02", "network_decline_code": "51", "payment_intent": { - "id": "pi_3SPmFpKuuB1fWySn2Fhv39tY", + "id": "pi_3ScfVRKuuB1fWySn2KDF24BI", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -240,15 +240,15 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270481, + "created": 1765342805, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": { "advice_code": "try_again_later", - "charge": "ch_3SPmFpKuuB1fWySn2gUNNPLJ", + "charge": "ch_3ScfVRKuuB1fWySn2RleKsFu", "code": "card_declined", "decline_code": "insufficient_funds", "doc_url": "https://stripe.com/docs/error-codes/card-declined", @@ -256,7 +256,7 @@ http_interactions: "network_advice_code": "02", "network_decline_code": "51", "payment_method": { - "id": "pm_1SPmFpKuuB1fWySnPqdoRUKc", + "id": "pm_1ScfVRKuuB1fWySnseiktq8U", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -282,7 +282,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "O0I0muUGQBJy3p73", "funding": "credit", @@ -300,15 +300,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270481, + "created": 1765342805, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, "type": "card_error" }, - "latest_charge": "ch_3SPmFpKuuB1fWySn2gUNNPLJ", + "latest_charge": "ch_3ScfVRKuuB1fWySn2RleKsFu", "livemode": false, "metadata": {}, "next_action": null, @@ -339,7 +340,7 @@ http_interactions: "transfer_group": null }, "payment_method": { - "id": "pm_1SPmFpKuuB1fWySnPqdoRUKc", + "id": "pm_1ScfVRKuuB1fWySnseiktq8U", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -365,7 +366,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "O0I0muUGQBJy3p73", "funding": "credit", @@ -383,15 +384,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270481, + "created": 1765342805, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, - "request_log_url": "https://dashboard.stripe.com/test/logs/req_f3QESbekK3oFtT?t=1762270481", + "request_log_url": "https://dashboard.stripe.com/test/logs/req_ARQ3pXKZGWKm81?t=1765342805", "type": "card_error" } } - recorded_at: Tue, 04 Nov 2025 15:34:42 GMT + recorded_at: Wed, 10 Dec 2025 05:00:37 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 85% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml index 657e541fb9..6d2e91738e 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Lost_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml @@ -8,13 +8,13 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_visa_chargeDeclinedLostCard&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - 740ffbb4-d955-491b-8bb6-28789aa1701e + - 5bb632cd-1f9e-49da-99b7-4d1fb3fe7fb3 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:42 GMT + - Wed, 10 Dec 2025 05:00:06 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 740ffbb4-d955-491b-8bb6-28789aa1701e + - 5bb632cd-1f9e-49da-99b7-4d1fb3fe7fb3 Original-Request: - - req_n7vn01RiD9lAyv + - req_7Z8czRUj9ZYTBl Request-Id: - - req_n7vn01RiD9lAyv + - req_7Z8czRUj9ZYTBl Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,7 +79,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFqKuuB1fWySn0ZvmhhnF", + "id": "pi_3ScfVSKuuB1fWySn1nOF5UGP", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -95,19 +95,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270482, + "created": 1765342806, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFqKuuB1fWySnkBRgGtgg", + "payment_method": "pm_1ScfVSKuuB1fWySn2mCMRrcd", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -132,24 +132,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:43 GMT + recorded_at: Wed, 10 Dec 2025 05:00:37 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFqKuuB1fWySn0ZvmhhnF/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVSKuuB1fWySn1nOF5UGP/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_n7vn01RiD9lAyv","request_duration_ms":447}}' + - '{"last_request_metrics":{"request_id":"req_7Z8czRUj9ZYTBl","request_duration_ms":446}}' Idempotency-Key: - - 63dbd6d8-e731-4451-a310-fb5a2d1c94de + - 26cb5b5f-a50a-4fa2-aa06-61c8e4a23925 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -166,11 +166,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:43 GMT + - Wed, 10 Dec 2025 05:00:07 GMT Content-Type: - application/json Content-Length: - - '5229' + - '5306' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -189,17 +189,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 63dbd6d8-e731-4451-a310-fb5a2d1c94de + - 26cb5b5f-a50a-4fa2-aa06-61c8e4a23925 Original-Request: - - req_3chN8qlQZJtszh + - req_XgbiZrx8T6wsWf Request-Id: - - req_3chN8qlQZJtszh + - req_XgbiZrx8T6wsWf Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: { "error": { "advice_code": "do_not_try_again", - "charge": "ch_3SPmFqKuuB1fWySn0BKsmaRL", + "charge": "ch_3ScfVSKuuB1fWySn19zgQhj3", "code": "card_declined", "decline_code": "lost_card", "doc_url": "https://stripe.com/docs/error-codes/card-declined", @@ -224,7 +224,7 @@ http_interactions: "network_advice_code": "01", "network_decline_code": "41", "payment_intent": { - "id": "pi_3SPmFqKuuB1fWySn0ZvmhhnF", + "id": "pi_3ScfVSKuuB1fWySn1nOF5UGP", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -240,15 +240,15 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270482, + "created": 1765342806, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": { "advice_code": "do_not_try_again", - "charge": "ch_3SPmFqKuuB1fWySn0BKsmaRL", + "charge": "ch_3ScfVSKuuB1fWySn19zgQhj3", "code": "card_declined", "decline_code": "lost_card", "doc_url": "https://stripe.com/docs/error-codes/card-declined", @@ -256,7 +256,7 @@ http_interactions: "network_advice_code": "01", "network_decline_code": "41", "payment_method": { - "id": "pm_1SPmFqKuuB1fWySnkBRgGtgg", + "id": "pm_1ScfVSKuuB1fWySn2mCMRrcd", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -282,7 +282,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "hMDekBwrnWL1oLxe", "funding": "credit", @@ -300,15 +300,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270482, + "created": 1765342806, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, "type": "card_error" }, - "latest_charge": "ch_3SPmFqKuuB1fWySn0BKsmaRL", + "latest_charge": "ch_3ScfVSKuuB1fWySn19zgQhj3", "livemode": false, "metadata": {}, "next_action": null, @@ -339,7 +340,7 @@ http_interactions: "transfer_group": null }, "payment_method": { - "id": "pm_1SPmFqKuuB1fWySnkBRgGtgg", + "id": "pm_1ScfVSKuuB1fWySn2mCMRrcd", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -365,7 +366,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "hMDekBwrnWL1oLxe", "funding": "credit", @@ -383,15 +384,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270482, + "created": 1765342806, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, - "request_log_url": "https://dashboard.stripe.com/test/logs/req_3chN8qlQZJtszh?t=1762270483", + "request_log_url": "https://dashboard.stripe.com/test/logs/req_XgbiZrx8T6wsWf?t=1765342807", "type": "card_error" } } - recorded_at: Tue, 04 Nov 2025 15:34:43 GMT + recorded_at: Wed, 10 Dec 2025 05:00:38 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 85% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml index 9157a6173d..542fec8868 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Processing_error_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml @@ -8,13 +8,13 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_chargeDeclinedProcessingError&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - d5e5d56c-3efe-4c2c-a5f7-228f14061217 + - dc407f06-6ca4-44df-a40b-085f3af6d5d6 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:49 GMT + - Wed, 10 Dec 2025 05:00:12 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - d5e5d56c-3efe-4c2c-a5f7-228f14061217 + - dc407f06-6ca4-44df-a40b-085f3af6d5d6 Original-Request: - - req_aqxxjt2vCPAyFO + - req_qD1UQXWn8TSb9b Request-Id: - - req_aqxxjt2vCPAyFO + - req_qD1UQXWn8TSb9b Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,7 +79,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFwKuuB1fWySn1llgTFeW", + "id": "pi_3ScfVYKuuB1fWySn2EWoMUTA", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -95,19 +95,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270488, + "created": 1765342812, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFwKuuB1fWySn395lOna0", + "payment_method": "pm_1ScfVYKuuB1fWySnJ0t6af2J", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -132,24 +132,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:49 GMT + recorded_at: Wed, 10 Dec 2025 05:00:43 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFwKuuB1fWySn1llgTFeW/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVYKuuB1fWySn2EWoMUTA/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_aqxxjt2vCPAyFO","request_duration_ms":441}}' + - '{"last_request_metrics":{"request_id":"req_qD1UQXWn8TSb9b","request_duration_ms":469}}' Idempotency-Key: - - 57d3bf71-9b69-48ed-af89-9ab95f243643 + - adcd30ff-4b96-43d5-a883-544b4262b0a7 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -166,11 +166,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:49 GMT + - Wed, 10 Dec 2025 05:00:13 GMT Content-Type: - application/json Content-Length: - - '5281' + - '5358' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -189,17 +189,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 57d3bf71-9b69-48ed-af89-9ab95f243643 + - adcd30ff-4b96-43d5-a883-544b4262b0a7 Original-Request: - - req_XPBa45k7snnrgx + - req_iNSPbByemn6VB4 Request-Id: - - req_XPBa45k7snnrgx + - req_iNSPbByemn6VB4 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,14 +216,14 @@ http_interactions: { "error": { "advice_code": "try_again_later", - "charge": "ch_3SPmFwKuuB1fWySn1b1LaSNH", + "charge": "ch_3ScfVYKuuB1fWySn22M8K4UI", "code": "processing_error", "decline_code": "processing_error", "doc_url": "https://stripe.com/docs/error-codes/processing-error", "message": "An error occurred while processing your card. Try again in a little bit.", "network_decline_code": "06", "payment_intent": { - "id": "pi_3SPmFwKuuB1fWySn1llgTFeW", + "id": "pi_3ScfVYKuuB1fWySn2EWoMUTA", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -239,22 +239,22 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270488, + "created": 1765342812, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": { "advice_code": "try_again_later", - "charge": "ch_3SPmFwKuuB1fWySn1b1LaSNH", + "charge": "ch_3ScfVYKuuB1fWySn22M8K4UI", "code": "processing_error", "decline_code": "processing_error", "doc_url": "https://stripe.com/docs/error-codes/processing-error", "message": "An error occurred while processing your card. Try again in a little bit.", "network_decline_code": "06", "payment_method": { - "id": "pm_1SPmFwKuuB1fWySn395lOna0", + "id": "pm_1ScfVYKuuB1fWySnJ0t6af2J", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -280,7 +280,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "9HWWxe4EyniQy61z", "funding": "credit", @@ -298,15 +298,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270488, + "created": 1765342812, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, "type": "card_error" }, - "latest_charge": "ch_3SPmFwKuuB1fWySn1b1LaSNH", + "latest_charge": "ch_3ScfVYKuuB1fWySn22M8K4UI", "livemode": false, "metadata": {}, "next_action": null, @@ -337,7 +338,7 @@ http_interactions: "transfer_group": null }, "payment_method": { - "id": "pm_1SPmFwKuuB1fWySn395lOna0", + "id": "pm_1ScfVYKuuB1fWySnJ0t6af2J", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -363,7 +364,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "9HWWxe4EyniQy61z", "funding": "credit", @@ -381,15 +382,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270488, + "created": 1765342812, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, - "request_log_url": "https://dashboard.stripe.com/test/logs/req_XPBa45k7snnrgx?t=1762270489", + "request_log_url": "https://dashboard.stripe.com/test/logs/req_iNSPbByemn6VB4?t=1765342812", "type": "card_error" } } - recorded_at: Tue, 04 Nov 2025 15:34:50 GMT + recorded_at: Wed, 10 Dec 2025 05:00:44 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml similarity index 85% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml index 31f41f8dc2..9e1f6bcb4c 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_invalid/from_Stolen_card_decline/raises_Stripe_error_with_payment_intent_last_payment_error_as_message.yml @@ -8,13 +8,13 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_visa_chargeDeclinedStolenCard&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - 31104fab-9174-4ffb-b16f-7a962fee2007 + - 977bc686-6421-40d8-b8a6-9d22a5610478 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:44 GMT + - Wed, 10 Dec 2025 05:00:08 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 31104fab-9174-4ffb-b16f-7a962fee2007 + - 977bc686-6421-40d8-b8a6-9d22a5610478 Original-Request: - - req_fhAAxXsJzpDXir + - req_L4umomv5u4QF8o Request-Id: - - req_fhAAxXsJzpDXir + - req_L4umomv5u4QF8o Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,7 +79,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFsKuuB1fWySn2n5X0Kfb", + "id": "pi_3ScfVUKuuB1fWySn0En3gtyV", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -95,19 +95,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270484, + "created": 1765342808, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFsKuuB1fWySnE31Z5E0B", + "payment_method": "pm_1ScfVUKuuB1fWySnUAPKSLdh", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -132,24 +132,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:44 GMT + recorded_at: Wed, 10 Dec 2025 05:00:39 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFsKuuB1fWySn2n5X0Kfb/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVUKuuB1fWySn0En3gtyV/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_fhAAxXsJzpDXir","request_duration_ms":446}}' + - '{"last_request_metrics":{"request_id":"req_L4umomv5u4QF8o","request_duration_ms":452}}' Idempotency-Key: - - d534e7fc-48dd-467f-a368-20a2aaf8485b + - ff3f54c7-479a-4575-b295-e84ec331c01f Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -166,11 +166,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:45 GMT + - Wed, 10 Dec 2025 05:00:09 GMT Content-Type: - application/json Content-Length: - - '5233' + - '5310' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -189,17 +189,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - d534e7fc-48dd-467f-a368-20a2aaf8485b + - ff3f54c7-479a-4575-b295-e84ec331c01f Original-Request: - - req_XkqesczAiaVUwm + - req_PaArrSacspfrLU Request-Id: - - req_XkqesczAiaVUwm + - req_PaArrSacspfrLU Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: { "error": { "advice_code": "do_not_try_again", - "charge": "ch_3SPmFsKuuB1fWySn2MiCLWFt", + "charge": "ch_3ScfVUKuuB1fWySn0ZheEYtC", "code": "card_declined", "decline_code": "stolen_card", "doc_url": "https://stripe.com/docs/error-codes/card-declined", @@ -224,7 +224,7 @@ http_interactions: "network_advice_code": "01", "network_decline_code": "43", "payment_intent": { - "id": "pi_3SPmFsKuuB1fWySn2n5X0Kfb", + "id": "pi_3ScfVUKuuB1fWySn0En3gtyV", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -240,15 +240,15 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270484, + "created": 1765342808, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": { "advice_code": "do_not_try_again", - "charge": "ch_3SPmFsKuuB1fWySn2MiCLWFt", + "charge": "ch_3ScfVUKuuB1fWySn0ZheEYtC", "code": "card_declined", "decline_code": "stolen_card", "doc_url": "https://stripe.com/docs/error-codes/card-declined", @@ -256,7 +256,7 @@ http_interactions: "network_advice_code": "01", "network_decline_code": "43", "payment_method": { - "id": "pm_1SPmFsKuuB1fWySnE31Z5E0B", + "id": "pm_1ScfVUKuuB1fWySnUAPKSLdh", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -282,7 +282,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "1pjhEFFOW1eCi1AB", "funding": "credit", @@ -300,15 +300,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270484, + "created": 1765342808, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, "type": "card_error" }, - "latest_charge": "ch_3SPmFsKuuB1fWySn2MiCLWFt", + "latest_charge": "ch_3ScfVUKuuB1fWySn0ZheEYtC", "livemode": false, "metadata": {}, "next_action": null, @@ -339,7 +340,7 @@ http_interactions: "transfer_group": null }, "payment_method": { - "id": "pm_1SPmFsKuuB1fWySnE31Z5E0B", + "id": "pm_1ScfVUKuuB1fWySnUAPKSLdh", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -365,7 +366,7 @@ http_interactions: }, "country": "US", "display_brand": "visa", - "exp_month": 11, + "exp_month": 12, "exp_year": 2026, "fingerprint": "1pjhEFFOW1eCi1AB", "funding": "credit", @@ -383,15 +384,16 @@ http_interactions: }, "wallet": null }, - "created": 1762270484, + "created": 1765342808, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" }, - "request_log_url": "https://dashboard.stripe.com/test/logs/req_XkqesczAiaVUwm?t=1762270484", + "request_log_url": "https://dashboard.stripe.com/test/logs/req_PaArrSacspfrLU?t=1765342808", "type": "card_error" } } - recorded_at: Tue, 04 Nov 2025 15:34:45 GMT + recorded_at: Wed, 10 Dec 2025 05:00:39 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_American_Express/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_American_Express/captures_the_payment.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_American_Express/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_American_Express/captures_the_payment.yml index a61fb0de33..875bcb1dfb 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_American_Express/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_American_Express/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_amex&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_wUnhRW5SZ5xP4M","request_duration_ms":293}}' + - '{"last_request_metrics":{"request_id":"req_G4sqbl8vGpBcCN","request_duration_ms":311}}' Idempotency-Key: - - cb04080c-cda1-4c3a-9998-785b7eda1276 + - c20fbe0a-0fa3-4aa9-8554-b355454394ab Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:15 GMT + - Wed, 10 Dec 2025 04:59:42 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - cb04080c-cda1-4c3a-9998-785b7eda1276 + - c20fbe0a-0fa3-4aa9-8554-b355454394ab Original-Request: - - req_MGjQ2k0jXx8qUn + - req_vM557wo8bW4QkZ Request-Id: - - req_MGjQ2k0jXx8qUn + - req_vM557wo8bW4QkZ Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFPKuuB1fWySn0DwEhyq5", + "id": "pi_3ScfV4KuuB1fWySn2KURdcVT", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270455, + "created": 1765342782, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFPKuuB1fWySnMbOIUQoc", + "payment_method": "pm_1ScfV4KuuB1fWySn5wtnkdWD", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:15 GMT + recorded_at: Wed, 10 Dec 2025 05:00:13 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFPKuuB1fWySn0DwEhyq5/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfV4KuuB1fWySn2KURdcVT/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_MGjQ2k0jXx8qUn","request_duration_ms":539}}' + - '{"last_request_metrics":{"request_id":"req_vM557wo8bW4QkZ","request_duration_ms":421}}' Idempotency-Key: - - d3f60423-2711-40a6-b8bd-683b27957857 + - d46b97ed-ca1c-45f5-971d-6869c9b3f243 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:16 GMT + - Wed, 10 Dec 2025 04:59:43 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - d3f60423-2711-40a6-b8bd-683b27957857 + - d46b97ed-ca1c-45f5-971d-6869c9b3f243 Original-Request: - - req_YbZOn8LFIcHDGT + - req_cYoOwMmd6ZwBnT Request-Id: - - req_YbZOn8LFIcHDGT + - req_cYoOwMmd6ZwBnT Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFPKuuB1fWySn0DwEhyq5", + "id": "pi_3ScfV4KuuB1fWySn2KURdcVT", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270455, + "created": 1765342782, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFPKuuB1fWySn0fV5mz4B", + "latest_charge": "ch_3ScfV4KuuB1fWySn2Tm2XMrz", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFPKuuB1fWySnMbOIUQoc", + "payment_method": "pm_1ScfV4KuuB1fWySn5wtnkdWD", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:16 GMT + recorded_at: Wed, 10 Dec 2025 05:00:14 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFPKuuB1fWySn0DwEhyq5 + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfV4KuuB1fWySn2KURdcVT body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_YbZOn8LFIcHDGT","request_duration_ms":918}}' + - '{"last_request_metrics":{"request_id":"req_cYoOwMmd6ZwBnT","request_duration_ms":856}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:16 GMT + - Wed, 10 Dec 2025 04:59:43 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_ZlREoOyt0Id0Rw + - req_wjHmf8MlRV1dRg Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFPKuuB1fWySn0DwEhyq5", + "id": "pi_3ScfV4KuuB1fWySn2KURdcVT", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270455, + "created": 1765342782, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFPKuuB1fWySn0fV5mz4B", + "latest_charge": "ch_3ScfV4KuuB1fWySn2Tm2XMrz", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFPKuuB1fWySnMbOIUQoc", + "payment_method": "pm_1ScfV4KuuB1fWySn5wtnkdWD", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,24 +394,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:16 GMT + recorded_at: Wed, 10 Dec 2025 05:00:14 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFPKuuB1fWySn0DwEhyq5/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfV4KuuB1fWySn2KURdcVT/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_ZlREoOyt0Id0Rw","request_duration_ms":302}}' + - '{"last_request_metrics":{"request_id":"req_wjHmf8MlRV1dRg","request_duration_ms":314}}' Idempotency-Key: - - 41233711-6680-4f97-b333-f0f4382c1e10 + - 7bccdc73-d2c6-4ef9-a68d-2792b957d33d Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -428,11 +428,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:17 GMT + - Wed, 10 Dec 2025 04:59:44 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -451,17 +451,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 41233711-6680-4f97-b333-f0f4382c1e10 + - 7bccdc73-d2c6-4ef9-a68d-2792b957d33d Original-Request: - - req_KFtEJ9cWLzsAbl + - req_3haFlry2GbKGTb Request-Id: - - req_KFtEJ9cWLzsAbl + - req_3haFlry2GbKGTb Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -476,7 +476,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFPKuuB1fWySn0DwEhyq5", + "id": "pi_3ScfV4KuuB1fWySn2KURdcVT", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -492,19 +492,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270455, + "created": 1765342782, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFPKuuB1fWySn0fV5mz4B", + "latest_charge": "ch_3ScfV4KuuB1fWySn2Tm2XMrz", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFPKuuB1fWySnMbOIUQoc", + "payment_method": "pm_1ScfV4KuuB1fWySn5wtnkdWD", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -529,22 +529,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:17 GMT + recorded_at: Wed, 10 Dec 2025 05:00:15 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFPKuuB1fWySn0DwEhyq5 + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfV4KuuB1fWySn2KURdcVT body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_KFtEJ9cWLzsAbl","request_duration_ms":1020}}' + - '{"last_request_metrics":{"request_id":"req_3haFlry2GbKGTb","request_duration_ms":972}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -559,11 +559,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:18 GMT + - Wed, 10 Dec 2025 04:59:45 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -582,11 +582,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_GGjbqSMHNlZlhf + - req_KbtJACqnESjQok Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -601,7 +601,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFPKuuB1fWySn0DwEhyq5", + "id": "pi_3ScfV4KuuB1fWySn2KURdcVT", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -617,19 +617,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270455, + "created": 1765342782, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFPKuuB1fWySn0fV5mz4B", + "latest_charge": "ch_3ScfV4KuuB1fWySn2Tm2XMrz", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFPKuuB1fWySnMbOIUQoc", + "payment_method": "pm_1ScfV4KuuB1fWySn5wtnkdWD", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -654,5 +654,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:18 GMT + recorded_at: Wed, 10 Dec 2025 05:00:15 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_American_Express/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_American_Express/returns_payment_intent_id.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_American_Express/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_American_Express/returns_payment_intent_id.yml index 3db6fd9cbf..6b2f6f30ef 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_American_Express/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_American_Express/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_amex&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_hChFaFK92TH2pX","request_duration_ms":303}}' + - '{"last_request_metrics":{"request_id":"req_eClvV0tfeGLyuD","request_duration_ms":309}}' Idempotency-Key: - - 4715e5fb-9c83-446f-bb46-6ec7be8c66d4 + - 0cd6eb61-4706-4379-a4ce-8956d3ea54fd Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:13 GMT + - Wed, 10 Dec 2025 04:59:40 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 4715e5fb-9c83-446f-bb46-6ec7be8c66d4 + - 0cd6eb61-4706-4379-a4ce-8956d3ea54fd Original-Request: - - req_9UoEZHcHiIrw1E + - req_virvXbRRwKvzuZ Request-Id: - - req_9UoEZHcHiIrw1E + - req_virvXbRRwKvzuZ Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFNKuuB1fWySn0s4fTX1n", + "id": "pi_3ScfV2KuuB1fWySn1Z5RjTI7", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270453, + "created": 1765342780, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFMKuuB1fWySn6gw8YPY9", + "payment_method": "pm_1ScfV2KuuB1fWySntkyF67CH", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:13 GMT + recorded_at: Wed, 10 Dec 2025 05:00:11 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFNKuuB1fWySn0s4fTX1n/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfV2KuuB1fWySn1Z5RjTI7/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_9UoEZHcHiIrw1E","request_duration_ms":539}}' + - '{"last_request_metrics":{"request_id":"req_virvXbRRwKvzuZ","request_duration_ms":416}}' Idempotency-Key: - - 96168356-622f-4992-aa82-a454b1b31e7c + - 79f84aaa-eb37-4703-9cdf-d35d82bf771d Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:14 GMT + - Wed, 10 Dec 2025 04:59:41 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 96168356-622f-4992-aa82-a454b1b31e7c + - 79f84aaa-eb37-4703-9cdf-d35d82bf771d Original-Request: - - req_7vzFVFFSMfdzxs + - req_ocMAnJ8p1xra3q Request-Id: - - req_7vzFVFFSMfdzxs + - req_ocMAnJ8p1xra3q Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFNKuuB1fWySn0s4fTX1n", + "id": "pi_3ScfV2KuuB1fWySn1Z5RjTI7", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270453, + "created": 1765342780, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFNKuuB1fWySn0N0zoMx0", + "latest_charge": "ch_3ScfV2KuuB1fWySn1CTxSDHZ", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFMKuuB1fWySn6gw8YPY9", + "payment_method": "pm_1ScfV2KuuB1fWySntkyF67CH", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:14 GMT + recorded_at: Wed, 10 Dec 2025 05:00:12 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFNKuuB1fWySn0s4fTX1n + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfV2KuuB1fWySn1Z5RjTI7 body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_7vzFVFFSMfdzxs","request_duration_ms":816}}' + - '{"last_request_metrics":{"request_id":"req_ocMAnJ8p1xra3q","request_duration_ms":790}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:14 GMT + - Wed, 10 Dec 2025 04:59:42 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_wUnhRW5SZ5xP4M + - req_G4sqbl8vGpBcCN Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFNKuuB1fWySn0s4fTX1n", + "id": "pi_3ScfV2KuuB1fWySn1Z5RjTI7", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270453, + "created": 1765342780, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFNKuuB1fWySn0N0zoMx0", + "latest_charge": "ch_3ScfV2KuuB1fWySn1CTxSDHZ", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFMKuuB1fWySn6gw8YPY9", + "payment_method": "pm_1ScfV2KuuB1fWySntkyF67CH", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,5 +394,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:14 GMT + recorded_at: Wed, 10 Dec 2025 05:00:12 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Diners_Club/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Diners_Club/captures_the_payment.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Diners_Club/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Diners_Club/captures_the_payment.yml index 40a34cb0fb..2bdfd7bdf0 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Diners_Club/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Diners_Club/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_diners&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_TJsyDQ6Ricr8kM","request_duration_ms":326}}' + - '{"last_request_metrics":{"request_id":"req_U3VoeqQBoVinJ9","request_duration_ms":308}}' Idempotency-Key: - - 3f5ce3d0-1971-489c-a383-3b06bc31e54d + - 92298306-adcd-453d-a62b-a2ee947b2a60 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:25 GMT + - Wed, 10 Dec 2025 04:59:52 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 3f5ce3d0-1971-489c-a383-3b06bc31e54d + - 92298306-adcd-453d-a62b-a2ee947b2a60 Original-Request: - - req_aB7E7pAexnHEiu + - req_9jPKwMeJyxF6wp Request-Id: - - req_aB7E7pAexnHEiu + - req_9jPKwMeJyxF6wp Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFZKuuB1fWySn22KE7RHh", + "id": "pi_3ScfVDKuuB1fWySn0T7l3XWP", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270465, + "created": 1765342791, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFZKuuB1fWySnkqGzk5cM", + "payment_method": "pm_1ScfVDKuuB1fWySn2AKZ4Qsf", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:25 GMT + recorded_at: Wed, 10 Dec 2025 05:00:22 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFZKuuB1fWySn22KE7RHh/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVDKuuB1fWySn0T7l3XWP/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_aB7E7pAexnHEiu","request_duration_ms":458}}' + - '{"last_request_metrics":{"request_id":"req_9jPKwMeJyxF6wp","request_duration_ms":538}}' Idempotency-Key: - - c6f62a0d-9ad7-4aa9-8394-ff5a7e56eaa3 + - c9c6c6ba-16ed-4b7f-90cc-4057504d419e Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:26 GMT + - Wed, 10 Dec 2025 04:59:52 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - c6f62a0d-9ad7-4aa9-8394-ff5a7e56eaa3 + - c9c6c6ba-16ed-4b7f-90cc-4057504d419e Original-Request: - - req_OsiyunmCxwRYB7 + - req_in7mPeoiI4iofu Request-Id: - - req_OsiyunmCxwRYB7 + - req_in7mPeoiI4iofu Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFZKuuB1fWySn22KE7RHh", + "id": "pi_3ScfVDKuuB1fWySn0T7l3XWP", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270465, + "created": 1765342791, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFZKuuB1fWySn2Vnigck2", + "latest_charge": "ch_3ScfVDKuuB1fWySn0Pk30gzb", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFZKuuB1fWySnkqGzk5cM", + "payment_method": "pm_1ScfVDKuuB1fWySn2AKZ4Qsf", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:26 GMT + recorded_at: Wed, 10 Dec 2025 05:00:23 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFZKuuB1fWySn22KE7RHh + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVDKuuB1fWySn0T7l3XWP body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_OsiyunmCxwRYB7","request_duration_ms":918}}' + - '{"last_request_metrics":{"request_id":"req_in7mPeoiI4iofu","request_duration_ms":792}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:27 GMT + - Wed, 10 Dec 2025 04:59:53 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_ReM9daXBXoIgkR + - req_tZXCiuGjO3Qfk5 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFZKuuB1fWySn22KE7RHh", + "id": "pi_3ScfVDKuuB1fWySn0T7l3XWP", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270465, + "created": 1765342791, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFZKuuB1fWySn2Vnigck2", + "latest_charge": "ch_3ScfVDKuuB1fWySn0Pk30gzb", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFZKuuB1fWySnkqGzk5cM", + "payment_method": "pm_1ScfVDKuuB1fWySn2AKZ4Qsf", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,24 +394,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:27 GMT + recorded_at: Wed, 10 Dec 2025 05:00:23 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFZKuuB1fWySn22KE7RHh/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVDKuuB1fWySn0T7l3XWP/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_ReM9daXBXoIgkR","request_duration_ms":307}}' + - '{"last_request_metrics":{"request_id":"req_tZXCiuGjO3Qfk5","request_duration_ms":304}}' Idempotency-Key: - - a51977d3-a7e1-4a1c-a8bd-deed2ff66681 + - b698af71-64fc-473a-ae1d-048a373fdf50 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -428,11 +428,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:28 GMT + - Wed, 10 Dec 2025 04:59:54 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -451,17 +451,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - a51977d3-a7e1-4a1c-a8bd-deed2ff66681 + - b698af71-64fc-473a-ae1d-048a373fdf50 Original-Request: - - req_y6L2628EPqJp2h + - req_HoZIY87Vf95H8s Request-Id: - - req_y6L2628EPqJp2h + - req_HoZIY87Vf95H8s Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -476,7 +476,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFZKuuB1fWySn22KE7RHh", + "id": "pi_3ScfVDKuuB1fWySn0T7l3XWP", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -492,19 +492,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270465, + "created": 1765342791, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFZKuuB1fWySn2Vnigck2", + "latest_charge": "ch_3ScfVDKuuB1fWySn0Pk30gzb", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFZKuuB1fWySnkqGzk5cM", + "payment_method": "pm_1ScfVDKuuB1fWySn2AKZ4Qsf", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -529,22 +529,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:28 GMT + recorded_at: Wed, 10 Dec 2025 05:00:24 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFZKuuB1fWySn22KE7RHh + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVDKuuB1fWySn0T7l3XWP body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_y6L2628EPqJp2h","request_duration_ms":1058}}' + - '{"last_request_metrics":{"request_id":"req_HoZIY87Vf95H8s","request_duration_ms":943}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -559,11 +559,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:28 GMT + - Wed, 10 Dec 2025 04:59:54 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -582,11 +582,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_Eb6i3tixU59sD5 + - req_3iLqyj9QraNySU Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -601,7 +601,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFZKuuB1fWySn22KE7RHh", + "id": "pi_3ScfVDKuuB1fWySn0T7l3XWP", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -617,19 +617,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270465, + "created": 1765342791, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFZKuuB1fWySn2Vnigck2", + "latest_charge": "ch_3ScfVDKuuB1fWySn0Pk30gzb", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFZKuuB1fWySnkqGzk5cM", + "payment_method": "pm_1ScfVDKuuB1fWySn2AKZ4Qsf", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -654,5 +654,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:28 GMT + recorded_at: Wed, 10 Dec 2025 05:00:25 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Diners_Club/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Diners_Club/returns_payment_intent_id.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Diners_Club/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Diners_Club/returns_payment_intent_id.yml index 0bf3e50cd5..95ccbb955b 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Diners_Club/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Diners_Club/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_diners&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_nq061DsjP7UZfV","request_duration_ms":302}}' + - '{"last_request_metrics":{"request_id":"req_oGW00Rf0SQ3QPZ","request_duration_ms":347}}' Idempotency-Key: - - 81a973f5-1b2b-4eae-887d-72e7e6631e4a + - 2fdf5405-594b-42e3-9eca-3fdbf2ee3f20 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:23 GMT + - Wed, 10 Dec 2025 04:59:50 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 81a973f5-1b2b-4eae-887d-72e7e6631e4a + - 2fdf5405-594b-42e3-9eca-3fdbf2ee3f20 Original-Request: - - req_H0hvPVnOaw4jKP + - req_5z6sg8retdKnBY Request-Id: - - req_H0hvPVnOaw4jKP + - req_5z6sg8retdKnBY Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFXKuuB1fWySn1KYGj99c", + "id": "pi_3ScfVBKuuB1fWySn04dUoZ6Y", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270463, + "created": 1765342789, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFXKuuB1fWySnrHWLwhhH", + "payment_method": "pm_1ScfVBKuuB1fWySntEFLhPjQ", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:23 GMT + recorded_at: Wed, 10 Dec 2025 05:00:20 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFXKuuB1fWySn1KYGj99c/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVBKuuB1fWySn04dUoZ6Y/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_H0hvPVnOaw4jKP","request_duration_ms":439}}' + - '{"last_request_metrics":{"request_id":"req_5z6sg8retdKnBY","request_duration_ms":409}}' Idempotency-Key: - - f32a0d7f-8ed1-42c8-a724-8ff8f13f3c66 + - 4f3a2095-fbf9-4767-8383-d9689bebf2c1 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:24 GMT + - Wed, 10 Dec 2025 04:59:50 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - f32a0d7f-8ed1-42c8-a724-8ff8f13f3c66 + - 4f3a2095-fbf9-4767-8383-d9689bebf2c1 Original-Request: - - req_sC6hLkkxrahhGZ + - req_CgJpQhwA0atN33 Request-Id: - - req_sC6hLkkxrahhGZ + - req_CgJpQhwA0atN33 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFXKuuB1fWySn1KYGj99c", + "id": "pi_3ScfVBKuuB1fWySn04dUoZ6Y", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270463, + "created": 1765342789, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFXKuuB1fWySn1X0ULyCx", + "latest_charge": "ch_3ScfVBKuuB1fWySn0nQM9V1C", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFXKuuB1fWySnrHWLwhhH", + "payment_method": "pm_1ScfVBKuuB1fWySntEFLhPjQ", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:24 GMT + recorded_at: Wed, 10 Dec 2025 05:00:21 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFXKuuB1fWySn1KYGj99c + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVBKuuB1fWySn04dUoZ6Y body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_sC6hLkkxrahhGZ","request_duration_ms":815}}' + - '{"last_request_metrics":{"request_id":"req_CgJpQhwA0atN33","request_duration_ms":814}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:25 GMT + - Wed, 10 Dec 2025 04:59:51 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_TJsyDQ6Ricr8kM + - req_U3VoeqQBoVinJ9 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFXKuuB1fWySn1KYGj99c", + "id": "pi_3ScfVBKuuB1fWySn04dUoZ6Y", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270463, + "created": 1765342789, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFXKuuB1fWySn1X0ULyCx", + "latest_charge": "ch_3ScfVBKuuB1fWySn0nQM9V1C", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFXKuuB1fWySnrHWLwhhH", + "payment_method": "pm_1ScfVBKuuB1fWySntEFLhPjQ", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,5 +394,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:25 GMT + recorded_at: Wed, 10 Dec 2025 05:00:22 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Discover/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Discover/captures_the_payment.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Discover/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Discover/captures_the_payment.yml index bb55c8e2fb..2cadbc8e29 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Discover/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Discover/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_discover&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_9vn53jo3fVKBVg","request_duration_ms":323}}' + - '{"last_request_metrics":{"request_id":"req_VsNtIjgx6PMjAF","request_duration_ms":333}}' Idempotency-Key: - - 5115b2ab-7e63-4fd1-b642-9e4978209d45 + - 2b40b11b-946b-4b7b-9419-58b44cddeffe Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:20 GMT + - Wed, 10 Dec 2025 04:59:47 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 5115b2ab-7e63-4fd1-b642-9e4978209d45 + - 2b40b11b-946b-4b7b-9419-58b44cddeffe Original-Request: - - req_ByhUERvwCifr3m + - req_JsxN0wdwKDcrZ6 Request-Id: - - req_ByhUERvwCifr3m + - req_JsxN0wdwKDcrZ6 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFUKuuB1fWySn2Lpjo5sC", + "id": "pi_3ScfV9KuuB1fWySn0a4Ii8N6", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270460, + "created": 1765342787, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFUKuuB1fWySnMYFJ4Uzg", + "payment_method": "pm_1ScfV8KuuB1fWySnnwdKUrIo", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:20 GMT + recorded_at: Wed, 10 Dec 2025 05:00:17 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFUKuuB1fWySn2Lpjo5sC/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfV9KuuB1fWySn0a4Ii8N6/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_ByhUERvwCifr3m","request_duration_ms":454}}' + - '{"last_request_metrics":{"request_id":"req_JsxN0wdwKDcrZ6","request_duration_ms":409}}' Idempotency-Key: - - b36716cb-7e51-4654-b3df-75a6a77071a3 + - f2261bc2-9840-44aa-8067-b960cd378cd2 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:21 GMT + - Wed, 10 Dec 2025 04:59:47 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - b36716cb-7e51-4654-b3df-75a6a77071a3 + - f2261bc2-9840-44aa-8067-b960cd378cd2 Original-Request: - - req_XbJtk7OHx7dnEa + - req_uv5FNKDqrJQyW0 Request-Id: - - req_XbJtk7OHx7dnEa + - req_uv5FNKDqrJQyW0 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFUKuuB1fWySn2Lpjo5sC", + "id": "pi_3ScfV9KuuB1fWySn0a4Ii8N6", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270460, + "created": 1765342787, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFUKuuB1fWySn2yDxp3zW", + "latest_charge": "ch_3ScfV9KuuB1fWySn0a3woIQ0", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFUKuuB1fWySnMYFJ4Uzg", + "payment_method": "pm_1ScfV8KuuB1fWySnnwdKUrIo", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:21 GMT + recorded_at: Wed, 10 Dec 2025 05:00:18 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFUKuuB1fWySn2Lpjo5sC + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfV9KuuB1fWySn0a4Ii8N6 body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_XbJtk7OHx7dnEa","request_duration_ms":777}}' + - '{"last_request_metrics":{"request_id":"req_uv5FNKDqrJQyW0","request_duration_ms":756}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:21 GMT + - Wed, 10 Dec 2025 04:59:48 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_lOvK1gl8jobOqs + - req_4r9cgzO9wMWVst Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFUKuuB1fWySn2Lpjo5sC", + "id": "pi_3ScfV9KuuB1fWySn0a4Ii8N6", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270460, + "created": 1765342787, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFUKuuB1fWySn2yDxp3zW", + "latest_charge": "ch_3ScfV9KuuB1fWySn0a3woIQ0", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFUKuuB1fWySnMYFJ4Uzg", + "payment_method": "pm_1ScfV8KuuB1fWySnnwdKUrIo", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,24 +394,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:21 GMT + recorded_at: Wed, 10 Dec 2025 05:00:18 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFUKuuB1fWySn2Lpjo5sC/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfV9KuuB1fWySn0a4Ii8N6/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_lOvK1gl8jobOqs","request_duration_ms":338}}' + - '{"last_request_metrics":{"request_id":"req_4r9cgzO9wMWVst","request_duration_ms":301}}' Idempotency-Key: - - 4d24f69f-3dc1-490d-bd11-3368b917aa64 + - 9d6e63b4-54ca-4cce-b43a-8d53061399c4 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -428,11 +428,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:22 GMT + - Wed, 10 Dec 2025 04:59:49 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -451,17 +451,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 4d24f69f-3dc1-490d-bd11-3368b917aa64 + - 9d6e63b4-54ca-4cce-b43a-8d53061399c4 Original-Request: - - req_DbxGDRUADM622w + - req_ZviD6zykos8uor Request-Id: - - req_DbxGDRUADM622w + - req_ZviD6zykos8uor Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -476,7 +476,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFUKuuB1fWySn2Lpjo5sC", + "id": "pi_3ScfV9KuuB1fWySn0a4Ii8N6", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -492,19 +492,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270460, + "created": 1765342787, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFUKuuB1fWySn2yDxp3zW", + "latest_charge": "ch_3ScfV9KuuB1fWySn0a3woIQ0", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFUKuuB1fWySnMYFJ4Uzg", + "payment_method": "pm_1ScfV8KuuB1fWySnnwdKUrIo", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -529,22 +529,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:22 GMT + recorded_at: Wed, 10 Dec 2025 05:00:19 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFUKuuB1fWySn2Lpjo5sC + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfV9KuuB1fWySn0a4Ii8N6 body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_DbxGDRUADM622w","request_duration_ms":1018}}' + - '{"last_request_metrics":{"request_id":"req_ZviD6zykos8uor","request_duration_ms":955}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -559,11 +559,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:23 GMT + - Wed, 10 Dec 2025 04:59:49 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -582,11 +582,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_nq061DsjP7UZfV + - req_oGW00Rf0SQ3QPZ Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -601,7 +601,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFUKuuB1fWySn2Lpjo5sC", + "id": "pi_3ScfV9KuuB1fWySn0a4Ii8N6", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -617,19 +617,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270460, + "created": 1765342787, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFUKuuB1fWySn2yDxp3zW", + "latest_charge": "ch_3ScfV9KuuB1fWySn0a3woIQ0", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFUKuuB1fWySnMYFJ4Uzg", + "payment_method": "pm_1ScfV8KuuB1fWySnnwdKUrIo", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -654,5 +654,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:23 GMT + recorded_at: Wed, 10 Dec 2025 05:00:20 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Discover/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Discover/returns_payment_intent_id.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Discover/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Discover/returns_payment_intent_id.yml index d4cc48498a..71b01004fe 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Discover/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Discover/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_discover&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_GGjbqSMHNlZlhf","request_duration_ms":303}}' + - '{"last_request_metrics":{"request_id":"req_KbtJACqnESjQok","request_duration_ms":309}}' Idempotency-Key: - - 5dfd1030-86d3-40b6-9973-6eb1eef99086 + - 1856fa71-2d8e-4006-8b2a-64b9457a5824 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:18 GMT + - Wed, 10 Dec 2025 04:59:45 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 5dfd1030-86d3-40b6-9973-6eb1eef99086 + - 1856fa71-2d8e-4006-8b2a-64b9457a5824 Original-Request: - - req_VXCBNbIvOMumT8 + - req_rBa4hK2dsbZMYN Request-Id: - - req_VXCBNbIvOMumT8 + - req_rBa4hK2dsbZMYN Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFSKuuB1fWySn2pNXKknq", + "id": "pi_3ScfV7KuuB1fWySn270lOS1O", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270458, + "created": 1765342785, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFSKuuB1fWySntXnZDGpK", + "payment_method": "pm_1ScfV7KuuB1fWySnkaFPNCD3", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:18 GMT + recorded_at: Wed, 10 Dec 2025 05:00:16 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFSKuuB1fWySn2pNXKknq/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfV7KuuB1fWySn270lOS1O/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_VXCBNbIvOMumT8","request_duration_ms":409}}' + - '{"last_request_metrics":{"request_id":"req_rBa4hK2dsbZMYN","request_duration_ms":477}}' Idempotency-Key: - - 6d1cdd62-343d-4b74-9de6-d5bf2bc32be4 + - 354298f2-9624-4c0d-95c9-a0a727ec1612 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:19 GMT + - Wed, 10 Dec 2025 04:59:46 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 6d1cdd62-343d-4b74-9de6-d5bf2bc32be4 + - 354298f2-9624-4c0d-95c9-a0a727ec1612 Original-Request: - - req_Y82cwb0q58u9Cq + - req_yALjkC9trAaI8K Request-Id: - - req_Y82cwb0q58u9Cq + - req_yALjkC9trAaI8K Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFSKuuB1fWySn2pNXKknq", + "id": "pi_3ScfV7KuuB1fWySn270lOS1O", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270458, + "created": 1765342785, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFSKuuB1fWySn2F7LQ7F5", + "latest_charge": "ch_3ScfV7KuuB1fWySn2psZD5PP", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFSKuuB1fWySntXnZDGpK", + "payment_method": "pm_1ScfV7KuuB1fWySnkaFPNCD3", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:19 GMT + recorded_at: Wed, 10 Dec 2025 05:00:16 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFSKuuB1fWySn2pNXKknq + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfV7KuuB1fWySn270lOS1O body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Y82cwb0q58u9Cq","request_duration_ms":843}}' + - '{"last_request_metrics":{"request_id":"req_yALjkC9trAaI8K","request_duration_ms":805}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:20 GMT + - Wed, 10 Dec 2025 04:59:46 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_9vn53jo3fVKBVg + - req_VsNtIjgx6PMjAF Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFSKuuB1fWySn2pNXKknq", + "id": "pi_3ScfV7KuuB1fWySn270lOS1O", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270458, + "created": 1765342785, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFSKuuB1fWySn2F7LQ7F5", + "latest_charge": "ch_3ScfV7KuuB1fWySn2psZD5PP", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFSKuuB1fWySntXnZDGpK", + "payment_method": "pm_1ScfV7KuuB1fWySnkaFPNCD3", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,5 +394,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:20 GMT + recorded_at: Wed, 10 Dec 2025 05:00:17 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_JCB/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_JCB/captures_the_payment.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_JCB/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_JCB/captures_the_payment.yml index 235eabbed8..08879bd599 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_JCB/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_JCB/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_jcb&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_tBkQ7MrlnpS37Y","request_duration_ms":426}}' + - '{"last_request_metrics":{"request_id":"req_vDcTCfqhonIKLL","request_duration_ms":319}}' Idempotency-Key: - - 075df7c7-26c0-4ad5-94fd-8231e276b0d7 + - 7d4511ef-505c-453e-beff-8f978530959b Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:31 GMT + - Wed, 10 Dec 2025 04:59:56 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 075df7c7-26c0-4ad5-94fd-8231e276b0d7 + - 7d4511ef-505c-453e-beff-8f978530959b Original-Request: - - req_XAP6e6PzXHDC6Y + - req_Q8PbHSVWhmFiY1 Request-Id: - - req_XAP6e6PzXHDC6Y + - req_Q8PbHSVWhmFiY1 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFfKuuB1fWySn1XNOKgIP", + "id": "pi_3ScfVIKuuB1fWySn1Eky8aRy", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270471, + "created": 1765342796, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFeKuuB1fWySnJjEwIbiP", + "payment_method": "pm_1ScfVIKuuB1fWySnwr1VMiAN", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:31 GMT + recorded_at: Wed, 10 Dec 2025 05:00:27 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFfKuuB1fWySn1XNOKgIP/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVIKuuB1fWySn1Eky8aRy/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_XAP6e6PzXHDC6Y","request_duration_ms":373}}' + - '{"last_request_metrics":{"request_id":"req_Q8PbHSVWhmFiY1","request_duration_ms":415}}' Idempotency-Key: - - afca61a7-b55d-41d4-b314-786806773340 + - d5b96a6b-2fb9-453b-8d37-c5cfc647fa69 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:31 GMT + - Wed, 10 Dec 2025 04:59:57 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - afca61a7-b55d-41d4-b314-786806773340 + - d5b96a6b-2fb9-453b-8d37-c5cfc647fa69 Original-Request: - - req_klhdq7lgNdaSA5 + - req_QMPeNGxP3rJk7R Request-Id: - - req_klhdq7lgNdaSA5 + - req_QMPeNGxP3rJk7R Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFfKuuB1fWySn1XNOKgIP", + "id": "pi_3ScfVIKuuB1fWySn1Eky8aRy", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270471, + "created": 1765342796, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFfKuuB1fWySn1yxZb4q4", + "latest_charge": "ch_3ScfVIKuuB1fWySn1wD0TC4P", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFeKuuB1fWySnJjEwIbiP", + "payment_method": "pm_1ScfVIKuuB1fWySnwr1VMiAN", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:31 GMT + recorded_at: Wed, 10 Dec 2025 05:00:27 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFfKuuB1fWySn1XNOKgIP + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVIKuuB1fWySn1Eky8aRy body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_klhdq7lgNdaSA5","request_duration_ms":787}}' + - '{"last_request_metrics":{"request_id":"req_QMPeNGxP3rJk7R","request_duration_ms":824}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:32 GMT + - Wed, 10 Dec 2025 04:59:57 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_PCKVuTg249LY6B + - req_qLGu6OM2Yz2GJV Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFfKuuB1fWySn1XNOKgIP", + "id": "pi_3ScfVIKuuB1fWySn1Eky8aRy", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270471, + "created": 1765342796, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFfKuuB1fWySn1yxZb4q4", + "latest_charge": "ch_3ScfVIKuuB1fWySn1wD0TC4P", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFeKuuB1fWySnJjEwIbiP", + "payment_method": "pm_1ScfVIKuuB1fWySnwr1VMiAN", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,24 +394,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:32 GMT + recorded_at: Wed, 10 Dec 2025 05:00:28 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFfKuuB1fWySn1XNOKgIP/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVIKuuB1fWySn1Eky8aRy/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_PCKVuTg249LY6B","request_duration_ms":406}}' + - '{"last_request_metrics":{"request_id":"req_qLGu6OM2Yz2GJV","request_duration_ms":326}}' Idempotency-Key: - - 31d8f07f-bfaa-460c-a534-6d5312ea16ae + - 611c5f2b-5b2e-4459-9be4-8a29afae954a Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -428,11 +428,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:33 GMT + - Wed, 10 Dec 2025 04:59:58 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -451,17 +451,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 31d8f07f-bfaa-460c-a534-6d5312ea16ae + - 611c5f2b-5b2e-4459-9be4-8a29afae954a Original-Request: - - req_WEFGnR5bfb6Z1z + - req_bSQ8ZdWsGmlevt Request-Id: - - req_WEFGnR5bfb6Z1z + - req_bSQ8ZdWsGmlevt Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -476,7 +476,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFfKuuB1fWySn1XNOKgIP", + "id": "pi_3ScfVIKuuB1fWySn1Eky8aRy", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -492,19 +492,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270471, + "created": 1765342796, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFfKuuB1fWySn1yxZb4q4", + "latest_charge": "ch_3ScfVIKuuB1fWySn1wD0TC4P", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFeKuuB1fWySnJjEwIbiP", + "payment_method": "pm_1ScfVIKuuB1fWySnwr1VMiAN", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -529,22 +529,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:33 GMT + recorded_at: Wed, 10 Dec 2025 05:00:29 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFfKuuB1fWySn1XNOKgIP + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVIKuuB1fWySn1Eky8aRy body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_WEFGnR5bfb6Z1z","request_duration_ms":979}}' + - '{"last_request_metrics":{"request_id":"req_bSQ8ZdWsGmlevt","request_duration_ms":950}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -559,11 +559,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:33 GMT + - Wed, 10 Dec 2025 04:59:58 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -582,11 +582,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_z0Sv8LCeRvd8Lm + - req_6c0FkWNld0SEoD Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -601,7 +601,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFfKuuB1fWySn1XNOKgIP", + "id": "pi_3ScfVIKuuB1fWySn1Eky8aRy", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -617,19 +617,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270471, + "created": 1765342796, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFfKuuB1fWySn1yxZb4q4", + "latest_charge": "ch_3ScfVIKuuB1fWySn1wD0TC4P", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFeKuuB1fWySnJjEwIbiP", + "payment_method": "pm_1ScfVIKuuB1fWySnwr1VMiAN", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -654,5 +654,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:33 GMT + recorded_at: Wed, 10 Dec 2025 05:00:29 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_JCB/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_JCB/returns_payment_intent_id.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_JCB/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_JCB/returns_payment_intent_id.yml index fe9eaa22a5..460c011d53 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_JCB/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_JCB/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_jcb&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Eb6i3tixU59sD5","request_duration_ms":246}}' + - '{"last_request_metrics":{"request_id":"req_3iLqyj9QraNySU","request_duration_ms":304}}' Idempotency-Key: - - 2ec962b6-e1f8-43cb-97b7-bcd7cef943c9 + - 8733b200-7001-4b90-bbd7-1b5a896f27f6 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:28 GMT + - Wed, 10 Dec 2025 04:59:54 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 2ec962b6-e1f8-43cb-97b7-bcd7cef943c9 + - 8733b200-7001-4b90-bbd7-1b5a896f27f6 Original-Request: - - req_mK1svsCSbgk8OT + - req_FowJILPTSJ3Ab1 Request-Id: - - req_mK1svsCSbgk8OT + - req_FowJILPTSJ3Ab1 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFcKuuB1fWySn2FwPqleD", + "id": "pi_3ScfVGKuuB1fWySn0VucGfWN", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270468, + "created": 1765342794, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFcKuuB1fWySnY4dxz4la", + "payment_method": "pm_1ScfVGKuuB1fWySnIs6gfnjH", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:29 GMT + recorded_at: Wed, 10 Dec 2025 05:00:25 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFcKuuB1fWySn2FwPqleD/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVGKuuB1fWySn0VucGfWN/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_mK1svsCSbgk8OT","request_duration_ms":460}}' + - '{"last_request_metrics":{"request_id":"req_FowJILPTSJ3Ab1","request_duration_ms":419}}' Idempotency-Key: - - 69bb720a-beb7-48c8-aef7-1bc445dab016 + - cf2a81bd-aa9b-42b3-9457-dd8637445c68 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:29 GMT + - Wed, 10 Dec 2025 04:59:55 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 69bb720a-beb7-48c8-aef7-1bc445dab016 + - cf2a81bd-aa9b-42b3-9457-dd8637445c68 Original-Request: - - req_z4RrsAsfvN3Atd + - req_TN4NuwKoxzGt8R Request-Id: - - req_z4RrsAsfvN3Atd + - req_TN4NuwKoxzGt8R Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFcKuuB1fWySn2FwPqleD", + "id": "pi_3ScfVGKuuB1fWySn0VucGfWN", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270468, + "created": 1765342794, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFcKuuB1fWySn205Ptmou", + "latest_charge": "ch_3ScfVGKuuB1fWySn09ahJW9a", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFcKuuB1fWySnY4dxz4la", + "payment_method": "pm_1ScfVGKuuB1fWySnIs6gfnjH", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:29 GMT + recorded_at: Wed, 10 Dec 2025 05:00:26 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFcKuuB1fWySn2FwPqleD + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVGKuuB1fWySn0VucGfWN body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_z4RrsAsfvN3Atd","request_duration_ms":816}}' + - '{"last_request_metrics":{"request_id":"req_TN4NuwKoxzGt8R","request_duration_ms":764}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:30 GMT + - Wed, 10 Dec 2025 04:59:56 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_tBkQ7MrlnpS37Y + - req_vDcTCfqhonIKLL Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFcKuuB1fWySn2FwPqleD", + "id": "pi_3ScfVGKuuB1fWySn0VucGfWN", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270468, + "created": 1765342794, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFcKuuB1fWySn205Ptmou", + "latest_charge": "ch_3ScfVGKuuB1fWySn09ahJW9a", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFcKuuB1fWySnY4dxz4la", + "payment_method": "pm_1ScfVGKuuB1fWySnIs6gfnjH", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,5 +394,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:30 GMT + recorded_at: Wed, 10 Dec 2025 05:00:26 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard/captures_the_payment.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard/captures_the_payment.yml index 15df9e64b1..4781961609 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_mastercard&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_h2P8KUsS7ejd1I","request_duration_ms":341}}' + - '{"last_request_metrics":{"request_id":"req_YOt4ZPkt8n0CtT","request_duration_ms":319}}' Idempotency-Key: - - b1d25eae-01f1-41e0-9f93-a21fe45149cf + - b4ae25b3-f88b-4152-bd5f-f0a14167534e Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:59 GMT + - Wed, 10 Dec 2025 04:59:28 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - b1d25eae-01f1-41e0-9f93-a21fe45149cf + - b4ae25b3-f88b-4152-bd5f-f0a14167534e Original-Request: - - req_JwJvQyy4pLGPhP + - req_QGRFdYT6rYijR6 Request-Id: - - req_JwJvQyy4pLGPhP + - req_QGRFdYT6rYijR6 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmF9KuuB1fWySn0PAHlhBm", + "id": "pi_3ScfUpKuuB1fWySn0SzREmQw", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270439, + "created": 1765342767, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmF9KuuB1fWySnHSIpeaFf", + "payment_method": "pm_1ScfUpKuuB1fWySnhi6md5zW", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:00 GMT + recorded_at: Wed, 10 Dec 2025 04:59:58 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmF9KuuB1fWySn0PAHlhBm/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUpKuuB1fWySn0SzREmQw/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_JwJvQyy4pLGPhP","request_duration_ms":546}}' + - '{"last_request_metrics":{"request_id":"req_QGRFdYT6rYijR6","request_duration_ms":408}}' Idempotency-Key: - - 4220ca92-932f-4ae4-940f-d068c446b2af + - e0199cb3-d891-46c6-9fc8-b125638bcb2f Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:00 GMT + - Wed, 10 Dec 2025 04:59:28 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 4220ca92-932f-4ae4-940f-d068c446b2af + - e0199cb3-d891-46c6-9fc8-b125638bcb2f Original-Request: - - req_seDr0dioKivUDv + - req_kJoJp679voZqEg Request-Id: - - req_seDr0dioKivUDv + - req_kJoJp679voZqEg Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmF9KuuB1fWySn0PAHlhBm", + "id": "pi_3ScfUpKuuB1fWySn0SzREmQw", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270439, + "created": 1765342767, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmF9KuuB1fWySn0J8GVaU1", + "latest_charge": "ch_3ScfUpKuuB1fWySn0Oczg8zk", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmF9KuuB1fWySnHSIpeaFf", + "payment_method": "pm_1ScfUpKuuB1fWySnhi6md5zW", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:00 GMT + recorded_at: Wed, 10 Dec 2025 04:59:59 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmF9KuuB1fWySn0PAHlhBm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUpKuuB1fWySn0SzREmQw body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_seDr0dioKivUDv","request_duration_ms":815}}' + - '{"last_request_metrics":{"request_id":"req_kJoJp679voZqEg","request_duration_ms":764}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:01 GMT + - Wed, 10 Dec 2025 04:59:29 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_1Um56xnYGp9qxr + - req_FWkU18g1iOWYCU Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmF9KuuB1fWySn0PAHlhBm", + "id": "pi_3ScfUpKuuB1fWySn0SzREmQw", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270439, + "created": 1765342767, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmF9KuuB1fWySn0J8GVaU1", + "latest_charge": "ch_3ScfUpKuuB1fWySn0Oczg8zk", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmF9KuuB1fWySnHSIpeaFf", + "payment_method": "pm_1ScfUpKuuB1fWySnhi6md5zW", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,24 +394,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:01 GMT + recorded_at: Wed, 10 Dec 2025 04:59:59 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmF9KuuB1fWySn0PAHlhBm/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUpKuuB1fWySn0SzREmQw/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_1Um56xnYGp9qxr","request_duration_ms":250}}' + - '{"last_request_metrics":{"request_id":"req_FWkU18g1iOWYCU","request_duration_ms":317}}' Idempotency-Key: - - 818dde07-cd52-4297-ac01-8ed5aff73173 + - 64413d43-1851-40ef-bdce-4e1925f92781 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -428,11 +428,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:02 GMT + - Wed, 10 Dec 2025 04:59:30 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -451,17 +451,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 818dde07-cd52-4297-ac01-8ed5aff73173 + - 64413d43-1851-40ef-bdce-4e1925f92781 Original-Request: - - req_3b61xI68MF4rSs + - req_ZqBjZSSjeJ6vVz Request-Id: - - req_3b61xI68MF4rSs + - req_ZqBjZSSjeJ6vVz Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -476,7 +476,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmF9KuuB1fWySn0PAHlhBm", + "id": "pi_3ScfUpKuuB1fWySn0SzREmQw", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -492,19 +492,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270439, + "created": 1765342767, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmF9KuuB1fWySn0J8GVaU1", + "latest_charge": "ch_3ScfUpKuuB1fWySn0Oczg8zk", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmF9KuuB1fWySnHSIpeaFf", + "payment_method": "pm_1ScfUpKuuB1fWySnhi6md5zW", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -529,22 +529,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:02 GMT + recorded_at: Wed, 10 Dec 2025 05:00:01 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmF9KuuB1fWySn0PAHlhBm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUpKuuB1fWySn0SzREmQw body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_3b61xI68MF4rSs","request_duration_ms":1072}}' + - '{"last_request_metrics":{"request_id":"req_ZqBjZSSjeJ6vVz","request_duration_ms":1280}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -559,11 +559,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:02 GMT + - Wed, 10 Dec 2025 04:59:30 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -582,11 +582,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_kTV56fJuTXRuel + - req_sWAhPIVbpZyqjC Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -601,7 +601,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmF9KuuB1fWySn0PAHlhBm", + "id": "pi_3ScfUpKuuB1fWySn0SzREmQw", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -617,19 +617,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270439, + "created": 1765342767, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmF9KuuB1fWySn0J8GVaU1", + "latest_charge": "ch_3ScfUpKuuB1fWySn0Oczg8zk", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmF9KuuB1fWySnHSIpeaFf", + "payment_method": "pm_1ScfUpKuuB1fWySnhi6md5zW", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -654,5 +654,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:02 GMT + recorded_at: Wed, 10 Dec 2025 05:00:01 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard/returns_payment_intent_id.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard/returns_payment_intent_id.yml index 69eb688086..65cf4a0cc1 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_mastercard&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_MRXzkNo93zg27F","request_duration_ms":304}}' + - '{"last_request_metrics":{"request_id":"req_eLrgM6ewOzKoU0","request_duration_ms":325}}' Idempotency-Key: - - 6fa52a7a-a6e9-4bc6-93f8-1ea6cee88609 + - bd083d90-62f2-4fbe-ad85-8f6d843deeba Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:58 GMT + - Wed, 10 Dec 2025 04:59:26 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 6fa52a7a-a6e9-4bc6-93f8-1ea6cee88609 + - bd083d90-62f2-4fbe-ad85-8f6d843deeba Original-Request: - - req_1fiYo71VJd6NGr + - req_ZJR0m55ZrFN76Z Request-Id: - - req_1fiYo71VJd6NGr + - req_ZJR0m55ZrFN76Z Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmF7KuuB1fWySn2EkHPaqD", + "id": "pi_3ScfUoKuuB1fWySn0kjT7GgE", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270437, + "created": 1765342766, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmF7KuuB1fWySnEBuJu9uC", + "payment_method": "pm_1ScfUoKuuB1fWySn2nPRYs7j", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:58 GMT + recorded_at: Wed, 10 Dec 2025 04:59:57 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmF7KuuB1fWySn2EkHPaqD/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUoKuuB1fWySn0kjT7GgE/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_1fiYo71VJd6NGr","request_duration_ms":439}}' + - '{"last_request_metrics":{"request_id":"req_ZJR0m55ZrFN76Z","request_duration_ms":410}}' Idempotency-Key: - - 156cae12-8412-4153-a0eb-a0040f791683 + - 22e24b50-8837-4707-a14a-a8847d7f5eba Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:58 GMT + - Wed, 10 Dec 2025 04:59:27 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 156cae12-8412-4153-a0eb-a0040f791683 + - 22e24b50-8837-4707-a14a-a8847d7f5eba Original-Request: - - req_kZf0oYAzFVac6V + - req_MpFsrcmOaqWewy Request-Id: - - req_kZf0oYAzFVac6V + - req_MpFsrcmOaqWewy Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmF7KuuB1fWySn2EkHPaqD", + "id": "pi_3ScfUoKuuB1fWySn0kjT7GgE", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270437, + "created": 1765342766, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmF7KuuB1fWySn2yC10ieP", + "latest_charge": "ch_3ScfUoKuuB1fWySn0J5nJyra", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmF7KuuB1fWySnEBuJu9uC", + "payment_method": "pm_1ScfUoKuuB1fWySn2nPRYs7j", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:58 GMT + recorded_at: Wed, 10 Dec 2025 04:59:57 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmF7KuuB1fWySn2EkHPaqD + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUoKuuB1fWySn0kjT7GgE body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_kZf0oYAzFVac6V","request_duration_ms":713}}' + - '{"last_request_metrics":{"request_id":"req_MpFsrcmOaqWewy","request_duration_ms":747}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:59 GMT + - Wed, 10 Dec 2025 04:59:27 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_h2P8KUsS7ejd1I + - req_YOt4ZPkt8n0CtT Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmF7KuuB1fWySn2EkHPaqD", + "id": "pi_3ScfUoKuuB1fWySn0kjT7GgE", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270437, + "created": 1765342766, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmF7KuuB1fWySn2yC10ieP", + "latest_charge": "ch_3ScfUoKuuB1fWySn0J5nJyra", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmF7KuuB1fWySnEBuJu9uC", + "payment_method": "pm_1ScfUoKuuB1fWySn2nPRYs7j", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,5 +394,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:59 GMT + recorded_at: Wed, 10 Dec 2025 04:59:58 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_debit_/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_debit_/captures_the_payment.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_debit_/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_debit_/captures_the_payment.yml index 2ef5ac6367..1b1515c035 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_debit_/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_debit_/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_mastercard_debit&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_V6I3S5VVAxQFBW","request_duration_ms":329}}' + - '{"last_request_metrics":{"request_id":"req_e4tOCG4Osjrrpk","request_duration_ms":311}}' Idempotency-Key: - - 95c520c0-dac5-4916-b3ce-cda8f04f9a2c + - d84da9fa-bf80-4719-8330-63931d1f13f9 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:05 GMT + - Wed, 10 Dec 2025 04:59:32 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 95c520c0-dac5-4916-b3ce-cda8f04f9a2c + - d84da9fa-bf80-4719-8330-63931d1f13f9 Original-Request: - - req_zc2QpUz3oh12zw + - req_31V89a9Lxoif48 Request-Id: - - req_zc2QpUz3oh12zw + - req_31V89a9Lxoif48 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFFKuuB1fWySn2jjIZH0V", + "id": "pi_3ScfUuKuuB1fWySn24EDImzn", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270445, + "created": 1765342772, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFEKuuB1fWySnpeE0Nvh0", + "payment_method": "pm_1ScfUuKuuB1fWySnl91DBqZa", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:05 GMT + recorded_at: Wed, 10 Dec 2025 05:00:03 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFFKuuB1fWySn2jjIZH0V/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUuKuuB1fWySn24EDImzn/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_zc2QpUz3oh12zw","request_duration_ms":440}}' + - '{"last_request_metrics":{"request_id":"req_31V89a9Lxoif48","request_duration_ms":419}}' Idempotency-Key: - - 40e4b954-3843-4556-a6e5-6a0f297299b6 + - 10375a08-11c0-441c-8f49-97909206ee31 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:05 GMT + - Wed, 10 Dec 2025 04:59:33 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 40e4b954-3843-4556-a6e5-6a0f297299b6 + - 10375a08-11c0-441c-8f49-97909206ee31 Original-Request: - - req_EpUqpDc4TUdXwd + - req_SzrvPVCAThic2m Request-Id: - - req_EpUqpDc4TUdXwd + - req_SzrvPVCAThic2m Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFFKuuB1fWySn2jjIZH0V", + "id": "pi_3ScfUuKuuB1fWySn24EDImzn", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270445, + "created": 1765342772, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFFKuuB1fWySn29p6u4VN", + "latest_charge": "ch_3ScfUuKuuB1fWySn2FRAsK2H", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFEKuuB1fWySnpeE0Nvh0", + "payment_method": "pm_1ScfUuKuuB1fWySnl91DBqZa", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:06 GMT + recorded_at: Wed, 10 Dec 2025 05:00:04 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFFKuuB1fWySn2jjIZH0V + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUuKuuB1fWySn24EDImzn body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_EpUqpDc4TUdXwd","request_duration_ms":917}}' + - '{"last_request_metrics":{"request_id":"req_SzrvPVCAThic2m","request_duration_ms":765}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:06 GMT + - Wed, 10 Dec 2025 04:59:34 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_OUGjLaer1pqObS + - req_ZMAY1gIbsHQRHE Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFFKuuB1fWySn2jjIZH0V", + "id": "pi_3ScfUuKuuB1fWySn24EDImzn", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270445, + "created": 1765342772, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFFKuuB1fWySn29p6u4VN", + "latest_charge": "ch_3ScfUuKuuB1fWySn2FRAsK2H", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFEKuuB1fWySnpeE0Nvh0", + "payment_method": "pm_1ScfUuKuuB1fWySnl91DBqZa", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,24 +394,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:06 GMT + recorded_at: Wed, 10 Dec 2025 05:00:04 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFFKuuB1fWySn2jjIZH0V/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUuKuuB1fWySn24EDImzn/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_OUGjLaer1pqObS","request_duration_ms":255}}' + - '{"last_request_metrics":{"request_id":"req_ZMAY1gIbsHQRHE","request_duration_ms":310}}' Idempotency-Key: - - 1b34cb40-5d93-4466-bc24-99d26449d830 + - f14bfb96-6d22-4929-983d-ec231d73a91d Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -428,11 +428,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:07 GMT + - Wed, 10 Dec 2025 04:59:35 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -451,17 +451,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 1b34cb40-5d93-4466-bc24-99d26449d830 + - f14bfb96-6d22-4929-983d-ec231d73a91d Original-Request: - - req_q9uOkxluY8pekT + - req_LedqlKHwfsrb2s Request-Id: - - req_q9uOkxluY8pekT + - req_LedqlKHwfsrb2s Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -476,7 +476,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFFKuuB1fWySn2jjIZH0V", + "id": "pi_3ScfUuKuuB1fWySn24EDImzn", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -492,19 +492,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270445, + "created": 1765342772, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFFKuuB1fWySn29p6u4VN", + "latest_charge": "ch_3ScfUuKuuB1fWySn2FRAsK2H", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFEKuuB1fWySnpeE0Nvh0", + "payment_method": "pm_1ScfUuKuuB1fWySnl91DBqZa", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -529,22 +529,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:07 GMT + recorded_at: Wed, 10 Dec 2025 05:00:05 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFFKuuB1fWySn2jjIZH0V + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUuKuuB1fWySn24EDImzn body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_q9uOkxluY8pekT","request_duration_ms":964}}' + - '{"last_request_metrics":{"request_id":"req_LedqlKHwfsrb2s","request_duration_ms":1071}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -559,11 +559,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:07 GMT + - Wed, 10 Dec 2025 04:59:35 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -582,11 +582,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_qEsolpKoUOl73Z + - req_SG19HIFuFG1doN Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -601,7 +601,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFFKuuB1fWySn2jjIZH0V", + "id": "pi_3ScfUuKuuB1fWySn24EDImzn", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -617,19 +617,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270445, + "created": 1765342772, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFFKuuB1fWySn29p6u4VN", + "latest_charge": "ch_3ScfUuKuuB1fWySn2FRAsK2H", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFEKuuB1fWySnpeE0Nvh0", + "payment_method": "pm_1ScfUuKuuB1fWySnl91DBqZa", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -654,5 +654,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:07 GMT + recorded_at: Wed, 10 Dec 2025 05:00:06 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_debit_/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_debit_/returns_payment_intent_id.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_debit_/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_debit_/returns_payment_intent_id.yml index 23680b8dca..790da7b4bd 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_debit_/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_debit_/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_mastercard_debit&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_kTV56fJuTXRuel","request_duration_ms":304}}' + - '{"last_request_metrics":{"request_id":"req_sWAhPIVbpZyqjC","request_duration_ms":323}}' Idempotency-Key: - - d0a4af69-3df1-4a64-83f9-e883d2f5c0a8 + - a90b8021-ef6f-4170-b687-f8a8a2d63a89 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:03 GMT + - Wed, 10 Dec 2025 04:59:31 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - d0a4af69-3df1-4a64-83f9-e883d2f5c0a8 + - a90b8021-ef6f-4170-b687-f8a8a2d63a89 Original-Request: - - req_VmSO5Q2r0gYaNI + - req_jE5hW2TwwtiaqV Request-Id: - - req_VmSO5Q2r0gYaNI + - req_jE5hW2TwwtiaqV Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFCKuuB1fWySn2lj2q7Ql", + "id": "pi_3ScfUtKuuB1fWySn0c4rRkOv", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270442, + "created": 1765342771, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFCKuuB1fWySnu0ynSmjU", + "payment_method": "pm_1ScfUtKuuB1fWySnS5Rj31ms", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:03 GMT + recorded_at: Wed, 10 Dec 2025 05:00:01 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFCKuuB1fWySn2lj2q7Ql/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUtKuuB1fWySn0c4rRkOv/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_VmSO5Q2r0gYaNI","request_duration_ms":552}}' + - '{"last_request_metrics":{"request_id":"req_jE5hW2TwwtiaqV","request_duration_ms":495}}' Idempotency-Key: - - 560bfb46-5ac9-4f35-9b2d-42520006215c + - ee3a06f7-2d84-4f33-936f-797050cc4a26 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:03 GMT + - Wed, 10 Dec 2025 04:59:32 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 560bfb46-5ac9-4f35-9b2d-42520006215c + - ee3a06f7-2d84-4f33-936f-797050cc4a26 Original-Request: - - req_gCX75nRz6MVjaC + - req_Epe7QdCiiw4N5t Request-Id: - - req_gCX75nRz6MVjaC + - req_Epe7QdCiiw4N5t Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFCKuuB1fWySn2lj2q7Ql", + "id": "pi_3ScfUtKuuB1fWySn0c4rRkOv", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270442, + "created": 1765342771, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFCKuuB1fWySn2RMYr9IQ", + "latest_charge": "ch_3ScfUtKuuB1fWySn0vi0QZhE", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFCKuuB1fWySnu0ynSmjU", + "payment_method": "pm_1ScfUtKuuB1fWySnS5Rj31ms", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:03 GMT + recorded_at: Wed, 10 Dec 2025 05:00:02 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFCKuuB1fWySn2lj2q7Ql + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUtKuuB1fWySn0c4rRkOv body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_gCX75nRz6MVjaC","request_duration_ms":707}}' + - '{"last_request_metrics":{"request_id":"req_Epe7QdCiiw4N5t","request_duration_ms":779}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:04 GMT + - Wed, 10 Dec 2025 04:59:32 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_V6I3S5VVAxQFBW + - req_e4tOCG4Osjrrpk Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFCKuuB1fWySn2lj2q7Ql", + "id": "pi_3ScfUtKuuB1fWySn0c4rRkOv", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270442, + "created": 1765342771, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFCKuuB1fWySn2RMYr9IQ", + "latest_charge": "ch_3ScfUtKuuB1fWySn0vi0QZhE", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFCKuuB1fWySnu0ynSmjU", + "payment_method": "pm_1ScfUtKuuB1fWySnS5Rj31ms", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,5 +394,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:04 GMT + recorded_at: Wed, 10 Dec 2025 05:00:03 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_prepaid_/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_prepaid_/captures_the_payment.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_prepaid_/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_prepaid_/captures_the_payment.yml index 0acec643a6..0628e5d3e6 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_prepaid_/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_prepaid_/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_mastercard_prepaid&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_RLjBrgKwgtbe2Q","request_duration_ms":371}}' + - '{"last_request_metrics":{"request_id":"req_z2ehwVL3d4NjrW","request_duration_ms":310}}' Idempotency-Key: - - 94dc99c9-e76d-45e5-8d4b-0c9802385390 + - b70120a7-3a46-4929-bf76-26e7285c9078 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:10 GMT + - Wed, 10 Dec 2025 04:59:37 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 94dc99c9-e76d-45e5-8d4b-0c9802385390 + - b70120a7-3a46-4929-bf76-26e7285c9078 Original-Request: - - req_QMTAUJalLE0i83 + - req_epBGOB2cEHHLGP Request-Id: - - req_QMTAUJalLE0i83 + - req_epBGOB2cEHHLGP Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFKKuuB1fWySn0s5TrCwP", + "id": "pi_3ScfUzKuuB1fWySn0pSuUETH", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270450, + "created": 1765342777, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFKKuuB1fWySns8PyLmlY", + "payment_method": "pm_1ScfUzKuuB1fWySnfT9xjAHB", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:10 GMT + recorded_at: Wed, 10 Dec 2025 05:00:08 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFKKuuB1fWySn0s5TrCwP/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUzKuuB1fWySn0pSuUETH/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_QMTAUJalLE0i83","request_duration_ms":436}}' + - '{"last_request_metrics":{"request_id":"req_epBGOB2cEHHLGP","request_duration_ms":420}}' Idempotency-Key: - - b71e9571-a262-4ef1-9c7c-b53619410348 + - c6242f50-bf9a-4d33-97e1-c2162e105c40 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:11 GMT + - Wed, 10 Dec 2025 04:59:38 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - b71e9571-a262-4ef1-9c7c-b53619410348 + - c6242f50-bf9a-4d33-97e1-c2162e105c40 Original-Request: - - req_EAM66pajZzkr5Y + - req_qrnHA4DFXZ0f4h Request-Id: - - req_EAM66pajZzkr5Y + - req_qrnHA4DFXZ0f4h Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFKKuuB1fWySn0s5TrCwP", + "id": "pi_3ScfUzKuuB1fWySn0pSuUETH", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270450, + "created": 1765342777, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFKKuuB1fWySn0pNnz4kz", + "latest_charge": "ch_3ScfUzKuuB1fWySn0k8nS41c", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFKKuuB1fWySns8PyLmlY", + "payment_method": "pm_1ScfUzKuuB1fWySnfT9xjAHB", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:11 GMT + recorded_at: Wed, 10 Dec 2025 05:00:09 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFKKuuB1fWySn0s5TrCwP + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUzKuuB1fWySn0pSuUETH body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_EAM66pajZzkr5Y","request_duration_ms":813}}' + - '{"last_request_metrics":{"request_id":"req_qrnHA4DFXZ0f4h","request_duration_ms":1073}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:11 GMT + - Wed, 10 Dec 2025 04:59:39 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_7wejeNMawxZ20p + - req_ky6VfrrkdaS4XC Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFKKuuB1fWySn0s5TrCwP", + "id": "pi_3ScfUzKuuB1fWySn0pSuUETH", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270450, + "created": 1765342777, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFKKuuB1fWySn0pNnz4kz", + "latest_charge": "ch_3ScfUzKuuB1fWySn0k8nS41c", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFKKuuB1fWySns8PyLmlY", + "payment_method": "pm_1ScfUzKuuB1fWySnfT9xjAHB", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,24 +394,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:11 GMT + recorded_at: Wed, 10 Dec 2025 05:00:09 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFKKuuB1fWySn0s5TrCwP/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUzKuuB1fWySn0pSuUETH/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_7wejeNMawxZ20p","request_duration_ms":252}}' + - '{"last_request_metrics":{"request_id":"req_ky6VfrrkdaS4XC","request_duration_ms":306}}' Idempotency-Key: - - 89286468-e025-4ff4-b978-f2fd95f4181d + - 1e60a892-9a28-4256-8fde-15dca7716417 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -428,11 +428,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:12 GMT + - Wed, 10 Dec 2025 04:59:40 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -451,17 +451,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 89286468-e025-4ff4-b978-f2fd95f4181d + - 1e60a892-9a28-4256-8fde-15dca7716417 Original-Request: - - req_L9nbXEFf2cLsHx + - req_NydCRJh6OcGjGF Request-Id: - - req_L9nbXEFf2cLsHx + - req_NydCRJh6OcGjGF Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -476,7 +476,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFKKuuB1fWySn0s5TrCwP", + "id": "pi_3ScfUzKuuB1fWySn0pSuUETH", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -492,19 +492,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270450, + "created": 1765342777, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFKKuuB1fWySn0pNnz4kz", + "latest_charge": "ch_3ScfUzKuuB1fWySn0k8nS41c", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFKKuuB1fWySns8PyLmlY", + "payment_method": "pm_1ScfUzKuuB1fWySnfT9xjAHB", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -529,22 +529,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:12 GMT + recorded_at: Wed, 10 Dec 2025 05:00:10 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFKKuuB1fWySn0s5TrCwP + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUzKuuB1fWySn0pSuUETH body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_L9nbXEFf2cLsHx","request_duration_ms":971}}' + - '{"last_request_metrics":{"request_id":"req_NydCRJh6OcGjGF","request_duration_ms":1047}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -559,11 +559,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:12 GMT + - Wed, 10 Dec 2025 04:59:40 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -582,11 +582,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_hChFaFK92TH2pX + - req_eClvV0tfeGLyuD Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -601,7 +601,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFKKuuB1fWySn0s5TrCwP", + "id": "pi_3ScfUzKuuB1fWySn0pSuUETH", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -617,19 +617,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270450, + "created": 1765342777, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFKKuuB1fWySn0pNnz4kz", + "latest_charge": "ch_3ScfUzKuuB1fWySn0k8nS41c", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFKKuuB1fWySns8PyLmlY", + "payment_method": "pm_1ScfUzKuuB1fWySnfT9xjAHB", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -654,5 +654,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:12 GMT + recorded_at: Wed, 10 Dec 2025 05:00:11 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_prepaid_/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_prepaid_/returns_payment_intent_id.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_prepaid_/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_prepaid_/returns_payment_intent_id.yml index e816b30b12..b66d4a21aa 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_prepaid_/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Mastercard_prepaid_/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_mastercard_prepaid&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_qEsolpKoUOl73Z","request_duration_ms":305}}' + - '{"last_request_metrics":{"request_id":"req_SG19HIFuFG1doN","request_duration_ms":637}}' Idempotency-Key: - - d5a1279e-5a5d-48fe-9d7e-4b1934d8b93c + - 1d8a2796-76ab-4de6-9caa-ca4f556f0e85 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:08 GMT + - Wed, 10 Dec 2025 04:59:36 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - d5a1279e-5a5d-48fe-9d7e-4b1934d8b93c + - 1d8a2796-76ab-4de6-9caa-ca4f556f0e85 Original-Request: - - req_AStFGKOF4KKL8V + - req_5dsOIda8cOitnn Request-Id: - - req_AStFGKOF4KKL8V + - req_5dsOIda8cOitnn Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFIKuuB1fWySn0KfkTHi7", + "id": "pi_3ScfUyKuuB1fWySn1nQEakHn", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270448, + "created": 1765342776, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFHKuuB1fWySnJAb8YuiA", + "payment_method": "pm_1ScfUxKuuB1fWySn3wIHkWUT", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:08 GMT + recorded_at: Wed, 10 Dec 2025 05:00:06 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFIKuuB1fWySn0KfkTHi7/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUyKuuB1fWySn1nQEakHn/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_AStFGKOF4KKL8V","request_duration_ms":440}}' + - '{"last_request_metrics":{"request_id":"req_5dsOIda8cOitnn","request_duration_ms":442}}' Idempotency-Key: - - 8a81ea83-96b4-49b9-8435-0ba4ba54db32 + - f9f20524-5037-4634-af21-1b998c35c6ee Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:08 GMT + - Wed, 10 Dec 2025 04:59:36 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 8a81ea83-96b4-49b9-8435-0ba4ba54db32 + - f9f20524-5037-4634-af21-1b998c35c6ee Original-Request: - - req_Sxz8xmGYyDMHhz + - req_F2XKyU303iBZXT Request-Id: - - req_Sxz8xmGYyDMHhz + - req_F2XKyU303iBZXT Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFIKuuB1fWySn0KfkTHi7", + "id": "pi_3ScfUyKuuB1fWySn1nQEakHn", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270448, + "created": 1765342776, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFIKuuB1fWySn0ShjfVvB", + "latest_charge": "ch_3ScfUyKuuB1fWySn1BlYkz75", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFHKuuB1fWySnJAb8YuiA", + "payment_method": "pm_1ScfUxKuuB1fWySn3wIHkWUT", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:09 GMT + recorded_at: Wed, 10 Dec 2025 05:00:07 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFIKuuB1fWySn0KfkTHi7 + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUyKuuB1fWySn1nQEakHn body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Sxz8xmGYyDMHhz","request_duration_ms":816}}' + - '{"last_request_metrics":{"request_id":"req_F2XKyU303iBZXT","request_duration_ms":746}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:09 GMT + - Wed, 10 Dec 2025 04:59:37 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_RLjBrgKwgtbe2Q + - req_z2ehwVL3d4NjrW Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFIKuuB1fWySn0KfkTHi7", + "id": "pi_3ScfUyKuuB1fWySn1nQEakHn", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270448, + "created": 1765342776, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFIKuuB1fWySn0ShjfVvB", + "latest_charge": "ch_3ScfUyKuuB1fWySn1BlYkz75", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFHKuuB1fWySnJAb8YuiA", + "payment_method": "pm_1ScfUxKuuB1fWySn3wIHkWUT", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,5 +394,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:09 GMT + recorded_at: Wed, 10 Dec 2025 05:00:07 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_UnionPay/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_UnionPay/captures_the_payment.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_UnionPay/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_UnionPay/captures_the_payment.yml index b7ff62f6a3..3b4a18eaa8 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_UnionPay/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_UnionPay/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_unionpay&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_d8C0blZV1zDV3Q","request_duration_ms":425}}' + - '{"last_request_metrics":{"request_id":"req_lGSYKjXDIjdYuY","request_duration_ms":332}}' Idempotency-Key: - - 4a0d711a-ab86-452a-934f-975c054760b6 + - 17919908-41b7-40b9-b9e3-ef70043527b2 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:36 GMT + - Wed, 10 Dec 2025 05:00:01 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 4a0d711a-ab86-452a-934f-975c054760b6 + - 17919908-41b7-40b9-b9e3-ef70043527b2 Original-Request: - - req_62ef97uoi80XUz + - req_9yVsWtSu9WoXmG Request-Id: - - req_62ef97uoi80XUz + - req_9yVsWtSu9WoXmG Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFkKuuB1fWySn2gWanAIW", + "id": "pi_3ScfVMKuuB1fWySn155Te08d", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270476, + "created": 1765342800, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFkKuuB1fWySnnQahB1c5", + "payment_method": "pm_1ScfVMKuuB1fWySnYrIs3xNd", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:36 GMT + recorded_at: Wed, 10 Dec 2025 05:00:31 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFkKuuB1fWySn2gWanAIW/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVMKuuB1fWySn155Te08d/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_62ef97uoi80XUz","request_duration_ms":449}}' + - '{"last_request_metrics":{"request_id":"req_9yVsWtSu9WoXmG","request_duration_ms":463}}' Idempotency-Key: - - 9c5ca0be-e46a-4edc-ad0c-955774a5a73d + - 6fe27a95-f980-4d02-bbb9-a35c5795d789 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:37 GMT + - Wed, 10 Dec 2025 05:00:02 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 9c5ca0be-e46a-4edc-ad0c-955774a5a73d + - 6fe27a95-f980-4d02-bbb9-a35c5795d789 Original-Request: - - req_F8EgOCXUERh4yf + - req_sr1d5C2TA2nCDT Request-Id: - - req_F8EgOCXUERh4yf + - req_sr1d5C2TA2nCDT Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFkKuuB1fWySn2gWanAIW", + "id": "pi_3ScfVMKuuB1fWySn155Te08d", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270476, + "created": 1765342800, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFkKuuB1fWySn2iRhmC3N", + "latest_charge": "ch_3ScfVMKuuB1fWySn1c9ntRHD", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFkKuuB1fWySnnQahB1c5", + "payment_method": "pm_1ScfVMKuuB1fWySnYrIs3xNd", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:37 GMT + recorded_at: Wed, 10 Dec 2025 05:00:32 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFkKuuB1fWySn2gWanAIW + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVMKuuB1fWySn155Te08d body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_F8EgOCXUERh4yf","request_duration_ms":917}}' + - '{"last_request_metrics":{"request_id":"req_sr1d5C2TA2nCDT","request_duration_ms":943}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:37 GMT + - Wed, 10 Dec 2025 05:00:02 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_tYaTqKF3zoMQvF + - req_omT4EKofhbAUgx Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFkKuuB1fWySn2gWanAIW", + "id": "pi_3ScfVMKuuB1fWySn155Te08d", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270476, + "created": 1765342800, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFkKuuB1fWySn2iRhmC3N", + "latest_charge": "ch_3ScfVMKuuB1fWySn1c9ntRHD", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFkKuuB1fWySnnQahB1c5", + "payment_method": "pm_1ScfVMKuuB1fWySnYrIs3xNd", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,24 +394,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:38 GMT + recorded_at: Wed, 10 Dec 2025 05:00:32 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFkKuuB1fWySn2gWanAIW/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVMKuuB1fWySn155Te08d/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_tYaTqKF3zoMQvF","request_duration_ms":406}}' + - '{"last_request_metrics":{"request_id":"req_omT4EKofhbAUgx","request_duration_ms":315}}' Idempotency-Key: - - 1713e13c-0bb2-4dd8-9b88-e27fba00d31e + - b366e60b-d52f-45dc-9be4-6434218e6fc1 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -428,11 +428,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:39 GMT + - Wed, 10 Dec 2025 05:00:03 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -451,17 +451,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 1713e13c-0bb2-4dd8-9b88-e27fba00d31e + - b366e60b-d52f-45dc-9be4-6434218e6fc1 Original-Request: - - req_3plb0YM1UVX72t + - req_aZf2f0lIjMjmh1 Request-Id: - - req_3plb0YM1UVX72t + - req_aZf2f0lIjMjmh1 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -476,7 +476,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFkKuuB1fWySn2gWanAIW", + "id": "pi_3ScfVMKuuB1fWySn155Te08d", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -492,19 +492,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270476, + "created": 1765342800, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFkKuuB1fWySn2iRhmC3N", + "latest_charge": "ch_3ScfVMKuuB1fWySn1c9ntRHD", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFkKuuB1fWySnnQahB1c5", + "payment_method": "pm_1ScfVMKuuB1fWySnYrIs3xNd", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -529,22 +529,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:39 GMT + recorded_at: Wed, 10 Dec 2025 05:00:33 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFkKuuB1fWySn2gWanAIW + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVMKuuB1fWySn155Te08d body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_3plb0YM1UVX72t","request_duration_ms":1128}}' + - '{"last_request_metrics":{"request_id":"req_aZf2f0lIjMjmh1","request_duration_ms":983}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -559,11 +559,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:39 GMT + - Wed, 10 Dec 2025 05:00:03 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -582,11 +582,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_hjDjyr8Uk8EC2o + - req_YFZzrNQpbV6UVG Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -601,7 +601,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFkKuuB1fWySn2gWanAIW", + "id": "pi_3ScfVMKuuB1fWySn155Te08d", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -617,19 +617,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270476, + "created": 1765342800, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFkKuuB1fWySn2iRhmC3N", + "latest_charge": "ch_3ScfVMKuuB1fWySn1c9ntRHD", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFkKuuB1fWySnnQahB1c5", + "payment_method": "pm_1ScfVMKuuB1fWySnYrIs3xNd", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -654,5 +654,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:39 GMT + recorded_at: Wed, 10 Dec 2025 05:00:34 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_UnionPay/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_UnionPay/returns_payment_intent_id.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_UnionPay/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_UnionPay/returns_payment_intent_id.yml index 010311202b..c8d8bcc532 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_UnionPay/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_UnionPay/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_unionpay&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_z0Sv8LCeRvd8Lm","request_duration_ms":447}}' + - '{"last_request_metrics":{"request_id":"req_6c0FkWNld0SEoD","request_duration_ms":306}}' Idempotency-Key: - - b03535cd-fd81-4c54-baba-053a79eeb85d + - 94bfbd37-dfa6-4d81-b305-9ecca5f6907a Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:34 GMT + - Wed, 10 Dec 2025 04:59:59 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - b03535cd-fd81-4c54-baba-053a79eeb85d + - 94bfbd37-dfa6-4d81-b305-9ecca5f6907a Original-Request: - - req_sRg1mD4wSZtzBB + - req_jIW5QC6y9r6FlQ Request-Id: - - req_sRg1mD4wSZtzBB + - req_jIW5QC6y9r6FlQ Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFiKuuB1fWySn1eqoriIH", + "id": "pi_3ScfVLKuuB1fWySn1xLg6Lg7", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270474, + "created": 1765342799, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFiKuuB1fWySn76ksoMLM", + "payment_method": "pm_1ScfVLKuuB1fWySnBGtaDOP9", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:34 GMT + recorded_at: Wed, 10 Dec 2025 05:00:29 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFiKuuB1fWySn1eqoriIH/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVLKuuB1fWySn1xLg6Lg7/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_sRg1mD4wSZtzBB","request_duration_ms":543}}' + - '{"last_request_metrics":{"request_id":"req_jIW5QC6y9r6FlQ","request_duration_ms":445}}' Idempotency-Key: - - 156baf10-1d34-48ac-a2d4-8648b46cdc53 + - af39865e-f702-491a-a218-a41ae5694333 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:35 GMT + - Wed, 10 Dec 2025 05:00:00 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 156baf10-1d34-48ac-a2d4-8648b46cdc53 + - af39865e-f702-491a-a218-a41ae5694333 Original-Request: - - req_UcU00HBeQpsjtJ + - req_UlO0Or187sEzc5 Request-Id: - - req_UcU00HBeQpsjtJ + - req_UlO0Or187sEzc5 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFiKuuB1fWySn1eqoriIH", + "id": "pi_3ScfVLKuuB1fWySn1xLg6Lg7", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270474, + "created": 1765342799, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFiKuuB1fWySn1ldQlGUG", + "latest_charge": "ch_3ScfVLKuuB1fWySn1P88zHvO", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFiKuuB1fWySn76ksoMLM", + "payment_method": "pm_1ScfVLKuuB1fWySnBGtaDOP9", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:35 GMT + recorded_at: Wed, 10 Dec 2025 05:00:30 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmFiKuuB1fWySn1eqoriIH + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfVLKuuB1fWySn1xLg6Lg7 body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_UcU00HBeQpsjtJ","request_duration_ms":917}}' + - '{"last_request_metrics":{"request_id":"req_UlO0Or187sEzc5","request_duration_ms":807}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:34:36 GMT + - Wed, 10 Dec 2025 05:00:00 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_d8C0blZV1zDV3Q + - req_lGSYKjXDIjdYuY Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmFiKuuB1fWySn1eqoriIH", + "id": "pi_3ScfVLKuuB1fWySn1xLg6Lg7", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270474, + "created": 1765342799, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmFiKuuB1fWySn1ldQlGUG", + "latest_charge": "ch_3ScfVLKuuB1fWySn1P88zHvO", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmFiKuuB1fWySn76ksoMLM", + "payment_method": "pm_1ScfVLKuuB1fWySnBGtaDOP9", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,5 +394,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:34:36 GMT + recorded_at: Wed, 10 Dec 2025 05:00:31 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa/captures_the_payment.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa/captures_the_payment.yml index be86560896..2e6023a5cf 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_visa&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_awEUN4jySU4CrJ","request_duration_ms":294}}' + - '{"last_request_metrics":{"request_id":"req_XSCIoGCdeInUq0","request_duration_ms":308}}' Idempotency-Key: - - '049381a6-f01d-49aa-af13-6b39380f6aa4' + - 985ba928-64ee-4e7c-bb4f-8b069ea0f4c8 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:49 GMT + - Wed, 10 Dec 2025 04:59:17 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - '049381a6-f01d-49aa-af13-6b39380f6aa4' + - 985ba928-64ee-4e7c-bb4f-8b069ea0f4c8 Original-Request: - - req_xqFhAuoXCzaNKO + - req_lzy6UGWpeRvobc Request-Id: - - req_xqFhAuoXCzaNKO + - req_lzy6UGWpeRvobc Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmEzKuuB1fWySn0TXgMI0G", + "id": "pi_3ScfUfKuuB1fWySn2Ndemq2G", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270429, + "created": 1765342757, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmEzKuuB1fWySnezd8Ddz1", + "payment_method": "pm_1ScfUfKuuB1fWySnSYxWoelM", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:49 GMT + recorded_at: Wed, 10 Dec 2025 04:59:48 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmEzKuuB1fWySn0TXgMI0G/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUfKuuB1fWySn2Ndemq2G/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_xqFhAuoXCzaNKO","request_duration_ms":461}}' + - '{"last_request_metrics":{"request_id":"req_lzy6UGWpeRvobc","request_duration_ms":421}}' Idempotency-Key: - - 9aa8eb85-e4e4-40fa-ad18-f92564961c4d + - 55ef6336-b4a6-4e5e-82dc-4186a0be350d Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:50 GMT + - Wed, 10 Dec 2025 04:59:18 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 9aa8eb85-e4e4-40fa-ad18-f92564961c4d + - 55ef6336-b4a6-4e5e-82dc-4186a0be350d Original-Request: - - req_Chjmh18guDhtSr + - req_8KWVlXZOZ2lCcN Request-Id: - - req_Chjmh18guDhtSr + - req_8KWVlXZOZ2lCcN Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmEzKuuB1fWySn0TXgMI0G", + "id": "pi_3ScfUfKuuB1fWySn2Ndemq2G", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270429, + "created": 1765342757, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmEzKuuB1fWySn0tNEPSMI", + "latest_charge": "ch_3ScfUfKuuB1fWySn2JfabUvU", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmEzKuuB1fWySnezd8Ddz1", + "payment_method": "pm_1ScfUfKuuB1fWySnSYxWoelM", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:50 GMT + recorded_at: Wed, 10 Dec 2025 04:59:49 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmEzKuuB1fWySn0TXgMI0G + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUfKuuB1fWySn2Ndemq2G body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Chjmh18guDhtSr","request_duration_ms":816}}' + - '{"last_request_metrics":{"request_id":"req_8KWVlXZOZ2lCcN","request_duration_ms":813}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:50 GMT + - Wed, 10 Dec 2025 04:59:18 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_xxQ8MzTOV7T0f1 + - req_1T4whhn0QBZhyv Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmEzKuuB1fWySn0TXgMI0G", + "id": "pi_3ScfUfKuuB1fWySn2Ndemq2G", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270429, + "created": 1765342757, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmEzKuuB1fWySn0tNEPSMI", + "latest_charge": "ch_3ScfUfKuuB1fWySn2JfabUvU", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmEzKuuB1fWySnezd8Ddz1", + "payment_method": "pm_1ScfUfKuuB1fWySnSYxWoelM", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,24 +394,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:51 GMT + recorded_at: Wed, 10 Dec 2025 04:59:49 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmEzKuuB1fWySn0TXgMI0G/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUfKuuB1fWySn2Ndemq2G/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_xxQ8MzTOV7T0f1","request_duration_ms":304}}' + - '{"last_request_metrics":{"request_id":"req_1T4whhn0QBZhyv","request_duration_ms":305}}' Idempotency-Key: - - 2a1a50d5-a26a-423c-b92f-d457d1b5f6e9 + - 302abb9c-300a-4661-87e9-df4f4ac4c77d Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -428,11 +428,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:51 GMT + - Wed, 10 Dec 2025 04:59:20 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -451,17 +451,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 2a1a50d5-a26a-423c-b92f-d457d1b5f6e9 + - 302abb9c-300a-4661-87e9-df4f4ac4c77d Original-Request: - - req_dag7grvAYMTqgQ + - req_HAL10JDXZNU5ol Request-Id: - - req_dag7grvAYMTqgQ + - req_HAL10JDXZNU5ol Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -476,7 +476,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmEzKuuB1fWySn0TXgMI0G", + "id": "pi_3ScfUfKuuB1fWySn2Ndemq2G", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -492,19 +492,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270429, + "created": 1765342757, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmEzKuuB1fWySn0tNEPSMI", + "latest_charge": "ch_3ScfUfKuuB1fWySn2JfabUvU", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmEzKuuB1fWySnezd8Ddz1", + "payment_method": "pm_1ScfUfKuuB1fWySnSYxWoelM", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -529,22 +529,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:52 GMT + recorded_at: Wed, 10 Dec 2025 04:59:50 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmEzKuuB1fWySn0TXgMI0G + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUfKuuB1fWySn2Ndemq2G body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_dag7grvAYMTqgQ","request_duration_ms":1123}}' + - '{"last_request_metrics":{"request_id":"req_HAL10JDXZNU5ol","request_duration_ms":1382}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -559,11 +559,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:52 GMT + - Wed, 10 Dec 2025 04:59:20 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -582,11 +582,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_aDAkErQgFZmzX1 + - req_jgJP3WA8cGMcRa Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -601,7 +601,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmEzKuuB1fWySn0TXgMI0G", + "id": "pi_3ScfUfKuuB1fWySn2Ndemq2G", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -617,19 +617,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270429, + "created": 1765342757, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmEzKuuB1fWySn0tNEPSMI", + "latest_charge": "ch_3ScfUfKuuB1fWySn2JfabUvU", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmEzKuuB1fWySnezd8Ddz1", + "payment_method": "pm_1ScfUfKuuB1fWySnSYxWoelM", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -654,5 +654,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:52 GMT + recorded_at: Wed, 10 Dec 2025 04:59:51 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa/returns_payment_intent_id.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa/returns_payment_intent_id.yml index d76fd7d690..1eaec88cda 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_visa&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Q6XVUoPlIlD7vK","request_duration_ms":1}}' + - '{"last_request_metrics":{"request_id":"req_dGVftadBzts2Su","request_duration_ms":3179}}' Idempotency-Key: - - 8aba7dd6-3789-431c-a33f-6a7c0ca1bd44 + - 04bc4ae8-0ef5-4fb2-b74d-32788b98c78a Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:47 GMT + - Wed, 10 Dec 2025 04:59:15 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 8aba7dd6-3789-431c-a33f-6a7c0ca1bd44 + - 04bc4ae8-0ef5-4fb2-b74d-32788b98c78a Original-Request: - - req_yyjn1PTYsxv8ZN + - req_TEz9gAIN5X2V0e Request-Id: - - req_yyjn1PTYsxv8ZN + - req_TEz9gAIN5X2V0e Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmExKuuB1fWySn2EZbmzIT", + "id": "pi_3ScfUdKuuB1fWySn0aq7D8ZR", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270427, + "created": 1765342755, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmExKuuB1fWySnnSovHGx7", + "payment_method": "pm_1ScfUdKuuB1fWySnw6EBrpmc", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:47 GMT + recorded_at: Wed, 10 Dec 2025 04:59:46 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmExKuuB1fWySn2EZbmzIT/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUdKuuB1fWySn0aq7D8ZR/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_yyjn1PTYsxv8ZN","request_duration_ms":660}}' + - '{"last_request_metrics":{"request_id":"req_TEz9gAIN5X2V0e","request_duration_ms":428}}' Idempotency-Key: - - 41c7d754-4298-42d5-acef-c51a465d2e38 + - 731ef5dd-5ddc-4937-a150-29845fa904fb Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:48 GMT + - Wed, 10 Dec 2025 04:59:16 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 41c7d754-4298-42d5-acef-c51a465d2e38 + - 731ef5dd-5ddc-4937-a150-29845fa904fb Original-Request: - - req_1nLEV8jYH0UFaj + - req_9sdZHyiINLRKiE Request-Id: - - req_1nLEV8jYH0UFaj + - req_9sdZHyiINLRKiE Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmExKuuB1fWySn2EZbmzIT", + "id": "pi_3ScfUdKuuB1fWySn0aq7D8ZR", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270427, + "created": 1765342755, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmExKuuB1fWySn29NLZEob", + "latest_charge": "ch_3ScfUdKuuB1fWySn0BpedjYJ", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmExKuuB1fWySnnSovHGx7", + "payment_method": "pm_1ScfUdKuuB1fWySnw6EBrpmc", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:48 GMT + recorded_at: Wed, 10 Dec 2025 04:59:47 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmExKuuB1fWySn2EZbmzIT + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUdKuuB1fWySn0aq7D8ZR body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_1nLEV8jYH0UFaj","request_duration_ms":815}}' + - '{"last_request_metrics":{"request_id":"req_9sdZHyiINLRKiE","request_duration_ms":806}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:49 GMT + - Wed, 10 Dec 2025 04:59:17 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_awEUN4jySU4CrJ + - req_XSCIoGCdeInUq0 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmExKuuB1fWySn2EZbmzIT", + "id": "pi_3ScfUdKuuB1fWySn0aq7D8ZR", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270427, + "created": 1765342755, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmExKuuB1fWySn29NLZEob", + "latest_charge": "ch_3ScfUdKuuB1fWySn0BpedjYJ", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmExKuuB1fWySnnSovHGx7", + "payment_method": "pm_1ScfUdKuuB1fWySnw6EBrpmc", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,5 +394,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:49 GMT + recorded_at: Wed, 10 Dec 2025 04:59:47 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa_debit_/captures_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa_debit_/captures_the_payment.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa_debit_/captures_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa_debit_/captures_the_payment.yml index 59ffbac652..76793cb196 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa_debit_/captures_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa_debit_/captures_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_visa_debit&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_IiinVDZsoB6CIR","request_duration_ms":252}}' + - '{"last_request_metrics":{"request_id":"req_Lal5TXYzM19hCa","request_duration_ms":311}}' Idempotency-Key: - - b2735538-ae24-4f70-90e1-9270c924f1cb + - 6bb6e13f-6f56-4e48-9ab0-f6a99dc5799e Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:55 GMT + - Wed, 10 Dec 2025 04:59:23 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - b2735538-ae24-4f70-90e1-9270c924f1cb + - 6bb6e13f-6f56-4e48-9ab0-f6a99dc5799e Original-Request: - - req_HhappGmwaKPro5 + - req_scVwPxGp35bfUm Request-Id: - - req_HhappGmwaKPro5 + - req_scVwPxGp35bfUm Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmF4KuuB1fWySn1Au5H6yL", + "id": "pi_3ScfUlKuuB1fWySn0t4OzpX0", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270434, + "created": 1765342763, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmF4KuuB1fWySn79pSnUzL", + "payment_method": "pm_1ScfUlKuuB1fWySndrDA2VGY", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:55 GMT + recorded_at: Wed, 10 Dec 2025 04:59:54 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmF4KuuB1fWySn1Au5H6yL/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUlKuuB1fWySn0t4OzpX0/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_HhappGmwaKPro5","request_duration_ms":524}}' + - '{"last_request_metrics":{"request_id":"req_scVwPxGp35bfUm","request_duration_ms":431}}' Idempotency-Key: - - aa31c722-91de-4eb6-8281-889578f83f24 + - 627c8ff7-1c52-44df-b583-03bbbe56db5a Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:55 GMT + - Wed, 10 Dec 2025 04:59:24 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - aa31c722-91de-4eb6-8281-889578f83f24 + - 627c8ff7-1c52-44df-b583-03bbbe56db5a Original-Request: - - req_mU2FA1Dns7wAxT + - req_Uec3ZGFOut87mq Request-Id: - - req_mU2FA1Dns7wAxT + - req_Uec3ZGFOut87mq Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmF4KuuB1fWySn1Au5H6yL", + "id": "pi_3ScfUlKuuB1fWySn0t4OzpX0", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270434, + "created": 1765342763, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmF4KuuB1fWySn1WFQglTA", + "latest_charge": "ch_3ScfUlKuuB1fWySn0JFtQvI0", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmF4KuuB1fWySn79pSnUzL", + "payment_method": "pm_1ScfUlKuuB1fWySndrDA2VGY", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:56 GMT + recorded_at: Wed, 10 Dec 2025 04:59:55 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmF4KuuB1fWySn1Au5H6yL + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUlKuuB1fWySn0t4OzpX0 body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_mU2FA1Dns7wAxT","request_duration_ms":811}}' + - '{"last_request_metrics":{"request_id":"req_Uec3ZGFOut87mq","request_duration_ms":826}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:56 GMT + - Wed, 10 Dec 2025 04:59:24 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_dvGVZ1IOzcdgz4 + - req_RSgnAHqAIBl4ub Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmF4KuuB1fWySn1Au5H6yL", + "id": "pi_3ScfUlKuuB1fWySn0t4OzpX0", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270434, + "created": 1765342763, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmF4KuuB1fWySn1WFQglTA", + "latest_charge": "ch_3ScfUlKuuB1fWySn0JFtQvI0", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmF4KuuB1fWySn79pSnUzL", + "payment_method": "pm_1ScfUlKuuB1fWySndrDA2VGY", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,24 +394,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:56 GMT + recorded_at: Wed, 10 Dec 2025 04:59:55 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmF4KuuB1fWySn1Au5H6yL/capture + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUlKuuB1fWySn0t4OzpX0/capture body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_dvGVZ1IOzcdgz4","request_duration_ms":303}}' + - '{"last_request_metrics":{"request_id":"req_RSgnAHqAIBl4ub","request_duration_ms":302}}' Idempotency-Key: - - f4035518-2a4b-4927-8a8d-148c3b037947 + - d2e37fe3-839e-4912-a4f3-343dd96cc5a3 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -428,11 +428,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:57 GMT + - Wed, 10 Dec 2025 04:59:25 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -451,17 +451,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - f4035518-2a4b-4927-8a8d-148c3b037947 + - d2e37fe3-839e-4912-a4f3-343dd96cc5a3 Original-Request: - - req_MvUVxme3MEXBkR + - req_W1jkWOfCluRmDi Request-Id: - - req_MvUVxme3MEXBkR + - req_W1jkWOfCluRmDi Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -476,7 +476,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmF4KuuB1fWySn1Au5H6yL", + "id": "pi_3ScfUlKuuB1fWySn0t4OzpX0", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -492,19 +492,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270434, + "created": 1765342763, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmF4KuuB1fWySn1WFQglTA", + "latest_charge": "ch_3ScfUlKuuB1fWySn0JFtQvI0", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmF4KuuB1fWySn79pSnUzL", + "payment_method": "pm_1ScfUlKuuB1fWySndrDA2VGY", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -529,22 +529,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:57 GMT + recorded_at: Wed, 10 Dec 2025 04:59:56 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmF4KuuB1fWySn1Au5H6yL + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUlKuuB1fWySn0t4OzpX0 body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_MvUVxme3MEXBkR","request_duration_ms":1019}}' + - '{"last_request_metrics":{"request_id":"req_W1jkWOfCluRmDi","request_duration_ms":1054}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -559,11 +559,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:57 GMT + - Wed, 10 Dec 2025 04:59:26 GMT Content-Type: - application/json Content-Length: - - '1399' + - '1408' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -582,11 +582,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_MRXzkNo93zg27F + - req_eLrgM6ewOzKoU0 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -601,7 +601,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmF4KuuB1fWySn1Au5H6yL", + "id": "pi_3ScfUlKuuB1fWySn0t4OzpX0", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -617,19 +617,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270434, + "created": 1765342763, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmF4KuuB1fWySn1WFQglTA", + "latest_charge": "ch_3ScfUlKuuB1fWySn0JFtQvI0", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmF4KuuB1fWySn79pSnUzL", + "payment_method": "pm_1ScfUlKuuB1fWySndrDA2VGY", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -654,5 +654,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:57 GMT + recorded_at: Wed, 10 Dec 2025 04:59:56 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa_debit_/returns_payment_intent_id.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa_debit_/returns_payment_intent_id.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa_debit_/returns_payment_intent_id.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa_debit_/returns_payment_intent_id.yml index 108073635f..888a09fdc0 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa_debit_/returns_payment_intent_id.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_PaymentIntentValidator/_call/as_a_guest/when_payment_intent_is_valid/from_Visa_debit_/returns_payment_intent_id.yml @@ -8,15 +8,15 @@ http_interactions: string: amount=100¤cy=eur&payment_method=pm_card_visa_debit&payment_method_types[0]=card&capture_method=manual headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_aDAkErQgFZmzX1","request_duration_ms":304}}' + - '{"last_request_metrics":{"request_id":"req_jgJP3WA8cGMcRa","request_duration_ms":312}}' Idempotency-Key: - - 778f3990-d6e5-46f8-9d0f-f9c4bb531b3d + - 69c195e3-8657-4d01-83d8-630713d2f3c0 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:52 GMT + - Wed, 10 Dec 2025 04:59:20 GMT Content-Type: - application/json Content-Length: - - '1384' + - '1393' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 778f3990-d6e5-46f8-9d0f-f9c4bb531b3d + - 69c195e3-8657-4d01-83d8-630713d2f3c0 Original-Request: - - req_J6rGRvUKx3xQSU + - req_0IPad0n78uQK5S Request-Id: - - req_J6rGRvUKx3xQSU + - req_0IPad0n78uQK5S Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmF2KuuB1fWySn0lk7JUtN", + "id": "pi_3ScfUiKuuB1fWySn1NZyesyg", "object": "payment_intent", "amount": 100, "amount_capturable": 0, @@ -97,19 +97,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270432, + "created": 1765342760, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmF2KuuB1fWySnhdxmOaAN", + "payment_method": "pm_1ScfUiKuuB1fWySnS0Kj2RMY", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -134,24 +134,24 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:52 GMT + recorded_at: Wed, 10 Dec 2025 04:59:51 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmF2KuuB1fWySn0lk7JUtN/confirm + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUiKuuB1fWySn1NZyesyg/confirm body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_J6rGRvUKx3xQSU","request_duration_ms":445}}' + - '{"last_request_metrics":{"request_id":"req_0IPad0n78uQK5S","request_duration_ms":410}}' Idempotency-Key: - - c6c0df54-5061-4422-a5e1-6816b7fab7bb + - 668436fe-4f83-4606-84cd-db0bb0e89a41 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -168,11 +168,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:53 GMT + - Wed, 10 Dec 2025 04:59:22 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -191,17 +191,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - c6c0df54-5061-4422-a5e1-6816b7fab7bb + - 668436fe-4f83-4606-84cd-db0bb0e89a41 Original-Request: - - req_HBqY0a7iw0WQAg + - req_wtmUFz6w3ntOD6 Request-Id: - - req_HBqY0a7iw0WQAg + - req_wtmUFz6w3ntOD6 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -216,7 +216,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmF2KuuB1fWySn0lk7JUtN", + "id": "pi_3ScfUiKuuB1fWySn1NZyesyg", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -232,19 +232,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270432, + "created": 1765342760, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmF2KuuB1fWySn0EhzSlhw", + "latest_charge": "ch_3ScfUiKuuB1fWySn16wZ5Iiv", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmF2KuuB1fWySnhdxmOaAN", + "payment_method": "pm_1ScfUiKuuB1fWySnS0Kj2RMY", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -269,22 +269,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:53 GMT + recorded_at: Wed, 10 Dec 2025 04:59:53 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SPmF2KuuB1fWySn0lk7JUtN + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfUiKuuB1fWySn1NZyesyg body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_HBqY0a7iw0WQAg","request_duration_ms":919}}' + - '{"last_request_metrics":{"request_id":"req_wtmUFz6w3ntOD6","request_duration_ms":1741}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -299,11 +299,11 @@ http_interactions: Server: - nginx Date: - - Tue, 04 Nov 2025 15:33:54 GMT + - Wed, 10 Dec 2025 04:59:23 GMT Content-Type: - application/json Content-Length: - - '1406' + - '1415' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -322,11 +322,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PipMrzRrvrSRrNDfiOV0m2AtWY4Xu21mxN7JK1oUGCIORFYtUb4u8aLv3S_orn3P3e7yWHdWanefB4Y2 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_IiinVDZsoB6CIR + - req_Lal5TXYzM19hCa Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -341,7 +341,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SPmF2KuuB1fWySn0lk7JUtN", + "id": "pi_3ScfUiKuuB1fWySn1NZyesyg", "object": "payment_intent", "amount": 100, "amount_capturable": 100, @@ -357,19 +357,19 @@ http_interactions: "capture_method": "manual", "client_secret": "", "confirmation_method": "automatic", - "created": 1762270432, + "created": 1765342760, "currency": "eur", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SPmF2KuuB1fWySn0EhzSlhw", + "latest_charge": "ch_3ScfUiKuuB1fWySn16wZ5Iiv", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SPmF2KuuB1fWySnhdxmOaAN", + "payment_method": "pm_1ScfUiKuuB1fWySnS0Kj2RMY", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -394,5 +394,5 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 04 Nov 2025 15:33:54 GMT + recorded_at: Wed, 10 Dec 2025 04:59:53 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_ProfileStorer/create_customer_from_token/when_called_from_Stripe_SCA/fetches_the_customer_id_and_the_card_id_from_the_correct_response_fields.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_ProfileStorer/create_customer_from_token/when_called_from_Stripe_SCA/fetches_the_customer_id_and_the_card_id_from_the_correct_response_fields.yml similarity index 83% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_ProfileStorer/create_customer_from_token/when_called_from_Stripe_SCA/fetches_the_customer_id_and_the_card_id_from_the_correct_response_fields.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_ProfileStorer/create_customer_from_token/when_called_from_Stripe_SCA/fetches_the_customer_id_and_the_card_id_from_the_correct_response_fields.yml index 4bb02bc659..8ccbd2a60a 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_ProfileStorer/create_customer_from_token/when_called_from_Stripe_SCA/fetches_the_customer_id_and_the_card_id_from_the_correct_response_fields.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_ProfileStorer/create_customer_from_token/when_called_from_Stripe_SCA/fetches_the_customer_id_and_the_card_id_from_the_correct_response_fields.yml @@ -8,13 +8,13 @@ http_interactions: string: type=card&card[number]=4242424242424242&card[exp_month]=12&card[exp_year]=2026&card[cvc]=314 headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Idempotency-Key: - - 01533b83-1cb0-4e7f-a033-86685d54c24b + - 4594d6ad-3d54-44bf-a9a1-f6d2fa7627d2 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -31,11 +31,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:09:46 GMT + - Wed, 10 Dec 2025 05:01:33 GMT Content-Type: - application/json Content-Length: - - '1055' + - '1083' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -54,17 +54,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 01533b83-1cb0-4e7f-a033-86685d54c24b + - 4594d6ad-3d54-44bf-a9a1-f6d2fa7627d2 Original-Request: - - req_lmPTPI9M4nvFXN + - req_9rArwgRw0I9Sp9 Request-Id: - - req_lmPTPI9M4nvFXN + - req_9rArwgRw0I9Sp9 Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -79,7 +79,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHycQKuuB1fWySnr5rXOVQZ", + "id": "pm_1ScfWrKuuB1fWySnObwK6JOg", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -123,26 +123,27 @@ http_interactions: }, "wallet": null }, - "created": 1760411386, + "created": 1765342893, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:09:46 GMT + recorded_at: Wed, 10 Dec 2025 05:02:04 GMT - request: method: post uri: https://api.stripe.com/v1/customers body: encoding: UTF-8 - string: expand[0]=sources&email=shirlene.gleichner%40lehner.info + string: expand[0]=sources&email=ethyl%40herman.info headers: Content-Type: - application/x-www-form-urlencoded Authorization: - "" User-Agent: - - Stripe/v1 ActiveMerchantBindings/1.133.0 + - Stripe/v1 ActiveMerchantBindings/1.137.0 Stripe-Version: - '2020-08-27' X-Stripe-Client-User-Agent: @@ -163,11 +164,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:09:47 GMT + - Wed, 10 Dec 2025 05:01:34 GMT Content-Type: - application/json Content-Length: - - '827' + - '842' Connection: - close Access-Control-Allow-Credentials: @@ -186,13 +187,13 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=1U-05ptFGa2yaWR63BMSuvX4Csn-Q9dqk25EwuCfbepTL8Va2Ii4SwFgtl-YxVPWPcyc_c9xbcDvRQml + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=cafZiEO-8PBaTVWZ_9sJy2lkiKKIf25BhmvNEkyAk8yLoFT3mpA_hOzZwfPk9NcszzgS2luWREx4sZEa Idempotency-Key: - - 33568bdb-7470-40c1-845a-802bcdea10c8 + - e19dd3a2-ea55-45b4-ab1c-d8306f1745dc Original-Request: - - req_nnJ2cQsfBO4LFi + - req_9SjPjZYfR6wlch Request-Id: - - req_nnJ2cQsfBO4LFi + - req_9SjPjZYfR6wlch Stripe-Should-Retry: - 'false' Stripe-Version: @@ -211,19 +212,20 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TERVdbHchh5Jm5", + "id": "cus_TZpBJe64asYE1d", "object": "customer", "address": null, "balance": 0, - "created": 1760411386, + "created": 1765342894, "currency": null, + "customer_account": null, "default_currency": null, "default_source": null, "delinquent": false, "description": null, "discount": null, - "email": "shirlene.gleichner@lehner.info", - "invoice_prefix": "9XBIVPXB", + "email": "ethyl@herman.info", + "invoice_prefix": "95QT6RK4", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -242,25 +244,25 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/customers/cus_TERVdbHchh5Jm5/sources" + "url": "/v1/customers/cus_TZpBJe64asYE1d/sources" }, "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 14 Oct 2025 03:09:46 GMT + recorded_at: Wed, 10 Dec 2025 05:02:05 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_methods/pm_1SHycQKuuB1fWySnr5rXOVQZ/attach + uri: https://api.stripe.com/v1/payment_methods/pm_1ScfWrKuuB1fWySnObwK6JOg/attach body: encoding: UTF-8 - string: customer=cus_TERVdbHchh5Jm5 + string: customer=cus_TZpBJe64asYE1d headers: Content-Type: - application/x-www-form-urlencoded Authorization: - "" User-Agent: - - Stripe/v1 ActiveMerchantBindings/1.133.0 + - Stripe/v1 ActiveMerchantBindings/1.137.0 Stripe-Version: - '2020-08-27' X-Stripe-Client-User-Agent: @@ -281,11 +283,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:09:47 GMT + - Wed, 10 Dec 2025 05:01:35 GMT Content-Type: - application/json Content-Length: - - '1066' + - '1094' Connection: - close Access-Control-Allow-Credentials: @@ -304,13 +306,13 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=wUjFEE7ApzH5YNfBC4D5QQ3TwwFHuZNdwxniGp3PLXLBI-JVktOqPznYTKf2wRCi8mxwVG7-kFp20KOD + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=sbULgA64Ex5NnUNCtMM_x0PWz9hOFxxhuBScTAfLd3tChV3xeuUzfKOwR6NS8KziLjB1ZwSdJs6INXbm Idempotency-Key: - - 3325283e-cf6e-4d00-91d8-c55eb000bc0d + - 9b180f37-7111-4ad4-9e7e-01f532bb7c9e Original-Request: - - req_aZjTKgyKXfQhKQ + - req_VP8qRqpxbepEkz Request-Id: - - req_aZjTKgyKXfQhKQ + - req_VP8qRqpxbepEkz Stripe-Should-Retry: - 'false' Stripe-Version: @@ -329,7 +331,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHycQKuuB1fWySnr5rXOVQZ", + "id": "pm_1ScfWrKuuB1fWySnObwK6JOg", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -373,11 +375,12 @@ http_interactions: }, "wallet": null }, - "created": 1760411386, - "customer": "cus_TERVdbHchh5Jm5", + "created": 1765342893, + "customer": "cus_TZpBJe64asYE1d", + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:09:47 GMT + recorded_at: Wed, 10 Dec 2025 05:02:05 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_ProfileStorer/create_customer_from_token/when_request_fails/raises_an_error.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_ProfileStorer/create_customer_from_token/when_request_fails/raises_an_error.yml similarity index 81% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_ProfileStorer/create_customer_from_token/when_request_fails/raises_an_error.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_ProfileStorer/create_customer_from_token/when_request_fails/raises_an_error.yml index 3dab6641d3..3ef3ac2c88 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/Stripe_ProfileStorer/create_customer_from_token/when_request_fails/raises_an_error.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/Stripe_ProfileStorer/create_customer_from_token/when_request_fails/raises_an_error.yml @@ -8,15 +8,15 @@ http_interactions: string: type=card&card[number]=4242424242424242&card[exp_month]=12&card[exp_year]=2026&card[cvc]=314 headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_lmPTPI9M4nvFXN","request_duration_ms":375}}' + - '{"last_request_metrics":{"request_id":"req_9rArwgRw0I9Sp9","request_duration_ms":385}}' Idempotency-Key: - - 71640edc-eae7-4198-9235-f6787df1dc50 + - 5a116c9c-85ba-4e95-ad7a-75dabad12fff Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:09:48 GMT + - Wed, 10 Dec 2025 05:01:35 GMT Content-Type: - application/json Content-Length: - - '1055' + - '1083' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 71640edc-eae7-4198-9235-f6787df1dc50 + - 5a116c9c-85ba-4e95-ad7a-75dabad12fff Original-Request: - - req_6aocEyTcUi1tDs + - req_zHb6Oc66rtcy2l Request-Id: - - req_6aocEyTcUi1tDs + - req_zHb6Oc66rtcy2l Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHycRKuuB1fWySnGyzJ9lzE", + "id": "pm_1ScfWtKuuB1fWySnZzXpBxwO", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -125,13 +125,14 @@ http_interactions: }, "wallet": null }, - "created": 1760411387, + "created": 1765342895, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:09:47 GMT + recorded_at: Wed, 10 Dec 2025 05:02:06 GMT - request: method: post uri: https://api.stripe.com/v1/customers @@ -140,15 +141,15 @@ http_interactions: string: name=Apple+Customer&email=applecustomer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_6aocEyTcUi1tDs","request_duration_ms":360}}' + - '{"last_request_metrics":{"request_id":"req_zHb6Oc66rtcy2l","request_duration_ms":383}}' Idempotency-Key: - - a5bd03a7-ce89-4aad-9538-6211fc8f4e27 + - cc03c7b3-3a9d-4eda-b951-e92043da2d7e Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -165,11 +166,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:09:48 GMT + - Wed, 10 Dec 2025 05:01:35 GMT Content-Type: - application/json Content-Length: - - '649' + - '677' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -188,17 +189,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - a5bd03a7-ce89-4aad-9538-6211fc8f4e27 + - cc03c7b3-3a9d-4eda-b951-e92043da2d7e Original-Request: - - req_JsZXL1nC53W4bE + - req_p7r8WgV8JKIfPN Request-Id: - - req_JsZXL1nC53W4bE + - req_p7r8WgV8JKIfPN Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -213,18 +214,19 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TERVPAxatKYQBe", + "id": "cus_TZpBxI8xWPUR65", "object": "customer", "address": null, "balance": 0, - "created": 1760411388, + "created": 1765342895, "currency": null, + "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "applecustomer@example.com", - "invoice_prefix": "7U7ZMZH9", + "invoice_prefix": "BMD34MZA", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -241,24 +243,24 @@ http_interactions: "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 14 Oct 2025 03:09:48 GMT + recorded_at: Wed, 10 Dec 2025 05:02:06 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_methods/pm_1SHycRKuuB1fWySnGyzJ9lzE/attach + uri: https://api.stripe.com/v1/payment_methods/pm_1ScfWtKuuB1fWySnZzXpBxwO/attach body: encoding: UTF-8 - string: customer=cus_TERVPAxatKYQBe + string: customer=cus_TZpBxI8xWPUR65 headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_JsZXL1nC53W4bE","request_duration_ms":428}}' + - '{"last_request_metrics":{"request_id":"req_p7r8WgV8JKIfPN","request_duration_ms":422}}' Idempotency-Key: - - 98df616a-2be1-413b-838e-6dbaef2535b6 + - 4118653b-2b2d-42bd-8449-bd0cfab3aa1a Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -275,11 +277,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:09:49 GMT + - Wed, 10 Dec 2025 05:01:36 GMT Content-Type: - application/json Content-Length: - - '1066' + - '1094' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -298,17 +300,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 98df616a-2be1-413b-838e-6dbaef2535b6 + - 4118653b-2b2d-42bd-8449-bd0cfab3aa1a Original-Request: - - req_SQ4f3FcbFiBaPJ + - req_CIRtVxWWmRPgAk Request-Id: - - req_SQ4f3FcbFiBaPJ + - req_CIRtVxWWmRPgAk Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -323,7 +325,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHycRKuuB1fWySnGyzJ9lzE", + "id": "pm_1ScfWtKuuB1fWySnZzXpBxwO", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -367,26 +369,27 @@ http_interactions: }, "wallet": null }, - "created": 1760411387, - "customer": "cus_TERVPAxatKYQBe", + "created": 1765342895, + "customer": "cus_TZpBxI8xWPUR65", + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:09:48 GMT + recorded_at: Wed, 10 Dec 2025 05:02:07 GMT - request: method: post uri: https://api.stripe.com/v1/customers body: encoding: UTF-8 - string: expand[0]=sources&email=mirtha_daugherty%40heathcote.us + string: expand[0]=sources&email=armida%40murray.name headers: Content-Type: - application/x-www-form-urlencoded Authorization: - "" User-Agent: - - Stripe/v1 ActiveMerchantBindings/1.133.0 + - Stripe/v1 ActiveMerchantBindings/1.137.0 Stripe-Version: - '2020-08-27' X-Stripe-Client-User-Agent: @@ -407,11 +410,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:09:49 GMT + - Wed, 10 Dec 2025 05:01:37 GMT Content-Type: - application/json Content-Length: - - '826' + - '843' Connection: - close Access-Control-Allow-Credentials: @@ -430,13 +433,13 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=xqUwulEfemKMHgaZFUjpwj1wYPS59tOOTqy2R-AXOSLmGtiTyyzE_2uMHsfpQ11VOlbxhNzWsc_zZZhu + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=sbULgA64Ex5NnUNCtMM_x0PWz9hOFxxhuBScTAfLd3tChV3xeuUzfKOwR6NS8KziLjB1ZwSdJs6INXbm Idempotency-Key: - - 9462c123-23cc-40b8-a5a1-47a69b355f62 + - bf99b3bb-80af-47cd-a434-7198c7b995cf Original-Request: - - req_urq6wjGFuyUxfB + - req_ciFjIJfHh8bDux Request-Id: - - req_urq6wjGFuyUxfB + - req_ciFjIJfHh8bDux Stripe-Should-Retry: - 'false' Stripe-Version: @@ -455,19 +458,20 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "cus_TERVKTDgmvjurg", + "id": "cus_TZpBSafVSPHEcA", "object": "customer", "address": null, "balance": 0, - "created": 1760411389, + "created": 1765342896, "currency": null, + "customer_account": null, "default_currency": null, "default_source": null, "delinquent": false, "description": null, "discount": null, - "email": "mirtha_daugherty@heathcote.us", - "invoice_prefix": "ETWCA3IX", + "email": "armida@murray.name", + "invoice_prefix": "VSWMZQVI", "invoice_settings": { "custom_fields": null, "default_payment_method": null, @@ -486,25 +490,25 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/customers/cus_TERVKTDgmvjurg/sources" + "url": "/v1/customers/cus_TZpBSafVSPHEcA/sources" }, "tax_exempt": "none", "test_clock": null } - recorded_at: Tue, 14 Oct 2025 03:09:49 GMT + recorded_at: Wed, 10 Dec 2025 05:02:07 GMT - request: method: post - uri: https://api.stripe.com/v1/payment_methods/pm_1SHycRKuuB1fWySnGyzJ9lzE/attach + uri: https://api.stripe.com/v1/payment_methods/pm_1ScfWtKuuB1fWySnZzXpBxwO/attach body: encoding: UTF-8 - string: customer=cus_TERVKTDgmvjurg + string: customer=cus_TZpBSafVSPHEcA headers: Content-Type: - application/x-www-form-urlencoded Authorization: - "" User-Agent: - - Stripe/v1 ActiveMerchantBindings/1.133.0 + - Stripe/v1 ActiveMerchantBindings/1.137.0 Stripe-Version: - '2020-08-27' X-Stripe-Client-User-Agent: @@ -525,7 +529,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:09:50 GMT + - Wed, 10 Dec 2025 05:01:37 GMT Content-Type: - application/json Content-Length: @@ -548,13 +552,13 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=2IQ5CsE46wixpONgk183_oZaMGTonZaO6V6PRXVrJtHm3wtj5r0IytAfD5XoHCxPJScgPiXUIcm0WklZ + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=cafZiEO-8PBaTVWZ_9sJy2lkiKKIf25BhmvNEkyAk8yLoFT3mpA_hOzZwfPk9NcszzgS2luWREx4sZEa Idempotency-Key: - - 4d43e887-f3d7-44ac-971d-2c7efaa71bd5 + - fce2d4da-8249-41e2-b52c-7c284cbdbcd2 Original-Request: - - req_cXDYEflwBeMyiJ + - req_FC4Y593nyPwVXB Request-Id: - - req_cXDYEflwBeMyiJ + - req_FC4Y593nyPwVXB Stripe-Should-Retry: - 'false' Stripe-Version: @@ -575,9 +579,9 @@ http_interactions: { "error": { "message": "The payment method you provided has already been attached to a customer.", - "request_log_url": "https://dashboard.stripe.com/test/logs/req_cXDYEflwBeMyiJ?t=1760411389", + "request_log_url": "https://dashboard.stripe.com/test/logs/req_FC4Y593nyPwVXB?t=1765342897", "type": "invalid_request_error" } } - recorded_at: Tue, 14 Oct 2025 03:09:50 GMT + recorded_at: Wed, 10 Dec 2025 05:02:08 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/_As_an_hub_manager_I_want_to_make_Stripe_payments_/with_a_payment_using_a_StripeSCA_payment_method/that_is_completed/allows_to_refund_the_payment.yml b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/_As_an_hub_manager_I_want_to_make_Stripe_payments_/with_a_payment_using_a_StripeSCA_payment_method/that_is_completed/allows_to_refund_the_payment.yml similarity index 83% rename from spec/fixtures/vcr_cassettes/Stripe-v13.5.1/_As_an_hub_manager_I_want_to_make_Stripe_payments_/with_a_payment_using_a_StripeSCA_payment_method/that_is_completed/allows_to_refund_the_payment.yml rename to spec/fixtures/vcr_cassettes/Stripe-v15.5.0/_As_an_hub_manager_I_want_to_make_Stripe_payments_/with_a_payment_using_a_StripeSCA_payment_method/that_is_completed/allows_to_refund_the_payment.yml index 6ad12e88aa..b7987e75d4 100644 --- a/spec/fixtures/vcr_cassettes/Stripe-v13.5.1/_As_an_hub_manager_I_want_to_make_Stripe_payments_/with_a_payment_using_a_StripeSCA_payment_method/that_is_completed/allows_to_refund_the_payment.yml +++ b/spec/fixtures/vcr_cassettes/Stripe-v15.5.0/_As_an_hub_manager_I_want_to_make_Stripe_payments_/with_a_payment_using_a_StripeSCA_payment_method/that_is_completed/allows_to_refund_the_payment.yml @@ -8,15 +8,15 @@ http_interactions: string: type=standard&country=AU&email=lettuce.producer%40example.com headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_VGdnL9HTac89Zz","request_duration_ms":325}}' + - '{"last_request_metrics":{"request_id":"req_KFpKlknDqR3CHY","request_duration_ms":322}}' Idempotency-Key: - - d6c688c4-592b-49b1-9f36-da19a71734f3 + - 9afc9bde-addc-4610-8896-a44ebb1a901c Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Content-Type: @@ -33,11 +33,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:13 GMT + - Wed, 10 Dec 2025 05:02:53 GMT Content-Type: - application/json Content-Length: - - '3447' + - '3529' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -56,17 +56,17 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - d6c688c4-592b-49b1-9f36-da19a71734f3 + - 9afc9bde-addc-4610-8896-a44ebb1a901c Original-Request: - - req_Pd688QDMfgVLje + - req_eA6TqgSdHzGMKI Request-Id: - - req_Pd688QDMfgVLje + - req_eA6TqgSdHzGMKI Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -81,7 +81,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHydn3LxZ4L8SBw", + "id": "acct_1ScfY73jWNG3tByU", "object": "account", "business_profile": { "annual_revenue": null, @@ -90,6 +90,7 @@ http_interactions: "minority_owned_business_designation": null, "name": null, "product_description": null, + "specified_commercial_transactions_act_url": null, "support_address": null, "support_email": null, "support_phone": null, @@ -114,7 +115,7 @@ http_interactions: "type": "application" }, "country": "AU", - "created": 1760411472, + "created": 1765342972, "default_currency": "aud", "details_submitted": false, "email": "lettuce.producer@example.com", @@ -123,7 +124,7 @@ http_interactions: "data": [], "has_more": false, "total_count": 0, - "url": "/v1/accounts/acct_1SHydn3LxZ4L8SBw/external_accounts" + "url": "/v1/accounts/acct_1ScfY73jWNG3tByU/external_accounts" }, "future_requirements": { "alternatives": [], @@ -215,6 +216,7 @@ http_interactions: }, "statement_descriptor": null }, + "paypay_payments": {}, "sepa_debit_payments": {} }, "tos_acceptance": { @@ -224,7 +226,7 @@ http_interactions: }, "type": "standard" } - recorded_at: Tue, 14 Oct 2025 03:11:12 GMT + recorded_at: Wed, 10 Dec 2025 05:03:24 GMT - request: method: get uri: https://api.stripe.com/v1/payment_methods/pm_card_mastercard @@ -233,13 +235,13 @@ http_interactions: string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_Pd688QDMfgVLje","request_duration_ms":2021}}' + - '{"last_request_metrics":{"request_id":"req_eA6TqgSdHzGMKI","request_duration_ms":2545}}' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -254,11 +256,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:13 GMT + - Wed, 10 Dec 2025 05:02:53 GMT Content-Type: - application/json Content-Length: - - '1073' + - '1101' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -277,11 +279,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Request-Id: - - req_R7TKcsNN3xQear + - req_RVoQuWJLJwzTRU Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -296,7 +298,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pm_1SHydpKuuB1fWySnC8ycxZeo", + "id": "pm_1ScfY9KuuB1fWySnmxNKTpkR", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { @@ -322,7 +324,7 @@ http_interactions: }, "country": "US", "display_brand": "mastercard", - "exp_month": 10, + "exp_month": 12, "exp_year": 2026, "fingerprint": "BL35fEFVcTTS5wpE", "funding": "credit", @@ -340,13 +342,14 @@ http_interactions: }, "wallet": null }, - "created": 1760411473, + "created": 1765342973, "customer": null, + "customer_account": null, "livemode": false, "metadata": {}, "type": "card" } - recorded_at: Tue, 14 Oct 2025 03:11:13 GMT + recorded_at: Wed, 10 Dec 2025 05:03:24 GMT - request: method: post uri: https://api.stripe.com/v1/payment_intents @@ -355,17 +358,17 @@ http_interactions: string: amount=3600¤cy=aud&payment_method=pm_card_mastercard&payment_method_types[0]=card&capture_method=automatic&confirm=true headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_R7TKcsNN3xQear","request_duration_ms":369}}' + - '{"last_request_metrics":{"request_id":"req_RVoQuWJLJwzTRU","request_duration_ms":361}}' Idempotency-Key: - - 594b8982-940b-4db6-8735-72ad6b4b8e71 + - a4d8d861-14a1-4d11-b2f0-e91d61c6363e Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Stripe-Account: - - acct_1SHydn3LxZ4L8SBw + - acct_1ScfY73jWNG3tByU X-Stripe-Client-User-Agent: - "" Content-Type: @@ -382,11 +385,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:14 GMT + - Wed, 10 Dec 2025 05:02:55 GMT Content-Type: - application/json Content-Length: - - '1437' + - '1446' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -405,19 +408,19 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - 594b8982-940b-4db6-8735-72ad6b4b8e71 + - a4d8d861-14a1-4d11-b2f0-e91d61c6363e Original-Request: - - req_BFLMdkqVUvyHpr + - req_ma7OqegIdUoInI Request-Id: - - req_BFLMdkqVUvyHpr + - req_ma7OqegIdUoInI Stripe-Account: - - acct_1SHydn3LxZ4L8SBw + - acct_1ScfY73jWNG3tByU Stripe-Should-Retry: - 'false' Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -432,7 +435,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHydp3LxZ4L8SBw1Y79S3fO", + "id": "pi_3ScfYA3jWNG3tByU0hYKYNl4", "object": "payment_intent", "amount": 3600, "amount_capturable": 0, @@ -448,19 +451,19 @@ http_interactions: "capture_method": "automatic", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411473, + "created": 1765342974, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SHydp3LxZ4L8SBw1YnTY61W", + "latest_charge": "ch_3ScfYA3jWNG3tByU0CEshSQ9", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHydp3LxZ4L8SBwK6AOUSGl", + "payment_method": "pm_1ScfYA3jWNG3tByUwtdZLQcn", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -485,22 +488,22 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:11:14 GMT + recorded_at: Wed, 10 Dec 2025 05:03:25 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SHydp3LxZ4L8SBw1Y79S3fO + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfYA3jWNG3tByU0hYKYNl4 body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Stripe-Account: - - acct_1SHydn3LxZ4L8SBw + - acct_1ScfY73jWNG3tByU X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -515,11 +518,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:19 GMT + - Wed, 10 Dec 2025 05:02:56 GMT Content-Type: - application/json Content-Length: - - '1437' + - '1446' Connection: - keep-alive Access-Control-Allow-Credentials: @@ -538,13 +541,13 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=wUjFEE7ApzH5YNfBC4D5QQ3TwwFHuZNdwxniGp3PLXLBI-JVktOqPznYTKf2wRCi8mxwVG7-kFp20KOD + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=EBEdXvGq7vyH5-HXur0mgbtI571KR9hWqG0PWAUMbAFCjbwUqpD4IZrGD38VgDCDiHYssbcVZ5ZF0Ci4 Request-Id: - - req_2ZxBr19dviIQHh + - req_PDtHgIyA1uFwWj Stripe-Account: - - acct_1SHydn3LxZ4L8SBw + - acct_1ScfY73jWNG3tByU Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -559,7 +562,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHydp3LxZ4L8SBw1Y79S3fO", + "id": "pi_3ScfYA3jWNG3tByU0hYKYNl4", "object": "payment_intent", "amount": 3600, "amount_capturable": 0, @@ -575,19 +578,19 @@ http_interactions: "capture_method": "automatic", "client_secret": "", "confirmation_method": "automatic", - "created": 1760411473, + "created": 1765342974, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, - "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SHydp3LxZ4L8SBw1YnTY61W", + "latest_charge": "ch_3ScfYA3jWNG3tByU0CEshSQ9", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHydp3LxZ4L8SBwK6AOUSGl", + "payment_method": "pm_1ScfYA3jWNG3tByUwtdZLQcn", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -612,10 +615,10 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:11:19 GMT + recorded_at: Wed, 10 Dec 2025 05:03:27 GMT - request: method: get - uri: https://api.stripe.com/v1/payment_intents/pi_3SHydp3LxZ4L8SBw1Y79S3fO + uri: https://api.stripe.com/v1/payment_intents/pi_3ScfYA3jWNG3tByU0hYKYNl4 body: encoding: US-ASCII string: '' @@ -623,7 +626,7 @@ http_interactions: Authorization: - "" User-Agent: - - Stripe/v1 ActiveMerchantBindings/1.133.0 + - Stripe/v1 ActiveMerchantBindings/1.137.0 Stripe-Version: - '2020-08-27' X-Stripe-Client-User-Agent: @@ -631,7 +634,7 @@ http_interactions: X-Stripe-Client-User-Metadata: - '{"ip":null}' Stripe-Account: - - acct_1SHydn3LxZ4L8SBw + - acct_1ScfY73jWNG3tByU Connection: - close Accept-Encoding: @@ -646,11 +649,11 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:19 GMT + - Wed, 10 Dec 2025 05:02:57 GMT Content-Type: - application/json Content-Length: - - '5484' + - '5512' Connection: - close Access-Control-Allow-Credentials: @@ -669,11 +672,11 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=wUjFEE7ApzH5YNfBC4D5QQ3TwwFHuZNdwxniGp3PLXLBI-JVktOqPznYTKf2wRCi8mxwVG7-kFp20KOD + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=sbULgA64Ex5NnUNCtMM_x0PWz9hOFxxhuBScTAfLd3tChV3xeuUzfKOwR6NS8KziLjB1ZwSdJs6INXbm Request-Id: - - req_trfO2kUrafKpB2 + - req_Fnyel1hp5UyqxU Stripe-Account: - - acct_1SHydn3LxZ4L8SBw + - acct_1ScfY73jWNG3tByU Stripe-Version: - '2020-08-27' Vary: @@ -690,7 +693,7 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "pi_3SHydp3LxZ4L8SBw1Y79S3fO", + "id": "pi_3ScfYA3jWNG3tByU0hYKYNl4", "object": "payment_intent", "amount": 3600, "amount_capturable": 0, @@ -708,7 +711,7 @@ http_interactions: "object": "list", "data": [ { - "id": "ch_3SHydp3LxZ4L8SBw1YnTY61W", + "id": "ch_3ScfYA3jWNG3tByU0CEshSQ9", "object": "charge", "amount": 3600, "amount_captured": 3600, @@ -716,7 +719,7 @@ http_interactions: "application": "", "application_fee": null, "application_fee_amount": null, - "balance_transaction": "txn_3SHydp3LxZ4L8SBw16CdJq0k", + "balance_transaction": "txn_3ScfYA3jWNG3tByU0SBqU9vY", "billing_details": { "address": { "city": null, @@ -733,7 +736,7 @@ http_interactions: }, "calculated_statement_descriptor": "OFNOFNOFN", "captured": true, - "created": 1760411473, + "created": 1765342974, "currency": "aud", "customer": null, "description": null, @@ -756,17 +759,17 @@ http_interactions: "network_status": "approved_by_network", "reason": null, "risk_level": "normal", - "risk_score": 20, + "risk_score": 54, "seller_message": "Payment complete.", "type": "authorized" }, "paid": true, - "payment_intent": "pi_3SHydp3LxZ4L8SBw1Y79S3fO", - "payment_method": "pm_1SHydp3LxZ4L8SBwK6AOUSGl", + "payment_intent": "pi_3ScfYA3jWNG3tByU0hYKYNl4", + "payment_method": "pm_1ScfYA3jWNG3tByUwtdZLQcn", "payment_method_details": { "card": { "amount_authorized": 3600, - "authorization_code": "726663", + "authorization_code": "287569", "brand": "mastercard", "checks": { "address_line1_check": null, @@ -774,7 +777,7 @@ http_interactions: "cvc_check": "pass" }, "country": "US", - "exp_month": 10, + "exp_month": 12, "exp_year": 2026, "extended_authorization": { "status": "disabled" @@ -794,7 +797,7 @@ http_interactions: "network_token": { "used": false }, - "network_transaction_id": "MCCDYBMRQ1014", + "network_transaction_id": "MCCPRAXWM1210", "overcapture": { "maximum_amount_capturable": 3600, "status": "unavailable" @@ -808,14 +811,14 @@ http_interactions: "radar_options": {}, "receipt_email": null, "receipt_number": null, - "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xU0h5ZG4zTHhaNEw4U0J3KNf-tscGMgbZLq6tOCU6LBYmOZC2gxWsBTeAtB3C47eRosqDrq-IdsoG-Kglt7-bA0_g1PPCmmNvi-4_", + "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xU2NmWTczaldORzN0QnlVKIH-48kGMgb8d8sh0_46LBb0L3PUeE-2IRV-qmg18Isk7XK3baN3_atFptLMY34zbPQ4335OnrUvhWQm", "refunded": false, "refunds": { "object": "list", "data": [], "has_more": false, "total_count": 0, - "url": "/v1/charges/ch_3SHydp3LxZ4L8SBw1YnTY61W/refunds" + "url": "/v1/charges/ch_3ScfYA3jWNG3tByU0CEshSQ9/refunds" }, "review": null, "shipping": null, @@ -830,23 +833,24 @@ http_interactions: ], "has_more": false, "total_count": 1, - "url": "/v1/charges?payment_intent=pi_3SHydp3LxZ4L8SBw1Y79S3fO" + "url": "/v1/charges?payment_intent=pi_3ScfYA3jWNG3tByU0hYKYNl4" }, "client_secret": "", "confirmation_method": "automatic", - "created": 1760411473, + "created": 1765342974, "currency": "aud", "customer": null, + "customer_account": null, "description": null, "excluded_payment_method_types": null, "invoice": null, "last_payment_error": null, - "latest_charge": "ch_3SHydp3LxZ4L8SBw1YnTY61W", + "latest_charge": "ch_3ScfYA3jWNG3tByU0CEshSQ9", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, - "payment_method": "pm_1SHydp3LxZ4L8SBwK6AOUSGl", + "payment_method": "pm_1ScfYA3jWNG3tByUwtdZLQcn", "payment_method_configuration_details": null, "payment_method_options": { "card": { @@ -871,10 +875,10 @@ http_interactions: "transfer_data": null, "transfer_group": null } - recorded_at: Tue, 14 Oct 2025 03:11:19 GMT + recorded_at: Wed, 10 Dec 2025 05:03:27 GMT - request: method: post - uri: https://api.stripe.com/v1/charges/ch_3SHydp3LxZ4L8SBw1YnTY61W/refunds + uri: https://api.stripe.com/v1/charges/ch_3ScfYA3jWNG3tByU0CEshSQ9/refunds body: encoding: UTF-8 string: amount=3600&expand[0]=charge @@ -884,7 +888,7 @@ http_interactions: Authorization: - "" User-Agent: - - Stripe/v1 ActiveMerchantBindings/1.133.0 + - Stripe/v1 ActiveMerchantBindings/1.137.0 Stripe-Version: - '2020-08-27' X-Stripe-Client-User-Agent: @@ -892,7 +896,7 @@ http_interactions: X-Stripe-Client-User-Metadata: - '{"ip":null}' Stripe-Account: - - acct_1SHydn3LxZ4L8SBw + - acct_1ScfY73jWNG3tByU Connection: - close Accept-Encoding: @@ -907,7 +911,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:21 GMT + - Wed, 10 Dec 2025 05:02:58 GMT Content-Type: - application/json Content-Length: @@ -930,15 +934,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=wUjFEE7ApzH5YNfBC4D5QQ3TwwFHuZNdwxniGp3PLXLBI-JVktOqPznYTKf2wRCi8mxwVG7-kFp20KOD + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=x2T6EiV0aVoqi7bptLcBBCRyz6_e_jOpOr8TL2aF1FPiuN1gl_B4E090YPWwRcl4Bf0Zj0kRKYN4666x Idempotency-Key: - - 397a6354-5feb-40c0-ac8d-9d184b56db67 + - afb74b07-b762-44e1-b485-c9014598259e Original-Request: - - req_qAWdOEvYKUek1i + - req_3Qy25ShuVlth78 Request-Id: - - req_qAWdOEvYKUek1i + - req_3Qy25ShuVlth78 Stripe-Account: - - acct_1SHydn3LxZ4L8SBw + - acct_1ScfY73jWNG3tByU Stripe-Should-Retry: - 'false' Stripe-Version: @@ -957,12 +961,12 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "re_3SHydp3LxZ4L8SBw1VlvX59r", + "id": "re_3ScfYA3jWNG3tByU0O9wi8Yn", "object": "refund", "amount": 3600, - "balance_transaction": "txn_3SHydp3LxZ4L8SBw1o5MGOEN", + "balance_transaction": "txn_3ScfYA3jWNG3tByU06egdpOD", "charge": { - "id": "ch_3SHydp3LxZ4L8SBw1YnTY61W", + "id": "ch_3ScfYA3jWNG3tByU0CEshSQ9", "object": "charge", "amount": 3600, "amount_captured": 3600, @@ -970,7 +974,7 @@ http_interactions: "application": "", "application_fee": null, "application_fee_amount": null, - "balance_transaction": "txn_3SHydp3LxZ4L8SBw16CdJq0k", + "balance_transaction": "txn_3ScfYA3jWNG3tByU0SBqU9vY", "billing_details": { "address": { "city": null, @@ -987,7 +991,7 @@ http_interactions: }, "calculated_statement_descriptor": "OFNOFNOFN", "captured": true, - "created": 1760411473, + "created": 1765342974, "currency": "aud", "customer": null, "description": null, @@ -1010,17 +1014,17 @@ http_interactions: "network_status": "approved_by_network", "reason": null, "risk_level": "normal", - "risk_score": 20, + "risk_score": 54, "seller_message": "Payment complete.", "type": "authorized" }, "paid": true, - "payment_intent": "pi_3SHydp3LxZ4L8SBw1Y79S3fO", - "payment_method": "pm_1SHydp3LxZ4L8SBwK6AOUSGl", + "payment_intent": "pi_3ScfYA3jWNG3tByU0hYKYNl4", + "payment_method": "pm_1ScfYA3jWNG3tByUwtdZLQcn", "payment_method_details": { "card": { "amount_authorized": 3600, - "authorization_code": "726663", + "authorization_code": "287569", "brand": "mastercard", "checks": { "address_line1_check": null, @@ -1028,7 +1032,7 @@ http_interactions: "cvc_check": "pass" }, "country": "US", - "exp_month": 10, + "exp_month": 12, "exp_year": 2026, "extended_authorization": { "status": "disabled" @@ -1048,7 +1052,7 @@ http_interactions: "network_token": { "used": false }, - "network_transaction_id": "MCCDYBMRQ1014", + "network_transaction_id": "MCCPRAXWM1210", "overcapture": { "maximum_amount_capturable": 3600, "status": "unavailable" @@ -1062,18 +1066,18 @@ http_interactions: "radar_options": {}, "receipt_email": null, "receipt_number": null, - "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xU0h5ZG4zTHhaNEw4U0J3KNj-tscGMgZf36HCUg06LBbSTLTN9hjPKHqY5ImN8Y6HaP2dJtZtr2GEEr42nRFehL1oslq2pOwUXYEV", + "receipt_url": "https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xU2NmWTczaldORzN0QnlVKIL-48kGMgbSoe0_UZw6LBYyxIIqW7vr6H4Z4x51NUZD031LR5Q4yEX6qO1urIWDHeDDv6QwvybZ6EHb", "refunded": true, "refunds": { "object": "list", "data": [ { - "id": "re_3SHydp3LxZ4L8SBw1VlvX59r", + "id": "re_3ScfYA3jWNG3tByU0O9wi8Yn", "object": "refund", "amount": 3600, - "balance_transaction": "txn_3SHydp3LxZ4L8SBw1o5MGOEN", - "charge": "ch_3SHydp3LxZ4L8SBw1YnTY61W", - "created": 1760411480, + "balance_transaction": "txn_3ScfYA3jWNG3tByU06egdpOD", + "charge": "ch_3ScfYA3jWNG3tByU0CEshSQ9", + "created": 1765342977, "currency": "aud", "destination_details": { "card": { @@ -1084,7 +1088,7 @@ http_interactions: "type": "card" }, "metadata": {}, - "payment_intent": "pi_3SHydp3LxZ4L8SBw1Y79S3fO", + "payment_intent": "pi_3ScfYA3jWNG3tByU0hYKYNl4", "reason": null, "receipt_number": null, "source_transfer_reversal": null, @@ -1094,7 +1098,7 @@ http_interactions: ], "has_more": false, "total_count": 1, - "url": "/v1/charges/ch_3SHydp3LxZ4L8SBw1YnTY61W/refunds" + "url": "/v1/charges/ch_3ScfYA3jWNG3tByU0CEshSQ9/refunds" }, "review": null, "shipping": null, @@ -1106,7 +1110,7 @@ http_interactions: "transfer_data": null, "transfer_group": null }, - "created": 1760411480, + "created": 1765342977, "currency": "aud", "destination_details": { "card": { @@ -1117,31 +1121,31 @@ http_interactions: "type": "card" }, "metadata": {}, - "payment_intent": "pi_3SHydp3LxZ4L8SBw1Y79S3fO", + "payment_intent": "pi_3ScfYA3jWNG3tByU0hYKYNl4", "reason": null, "receipt_number": null, "source_transfer_reversal": null, "status": "succeeded", "transfer_reversal": null } - recorded_at: Tue, 14 Oct 2025 03:11:21 GMT + recorded_at: Wed, 10 Dec 2025 05:03:29 GMT - request: method: delete - uri: https://api.stripe.com/v1/accounts/acct_1SHydn3LxZ4L8SBw + uri: https://api.stripe.com/v1/accounts/acct_1ScfY73jWNG3tByU body: encoding: US-ASCII string: '' headers: User-Agent: - - Stripe/v1 RubyBindings/13.5.1 + - Stripe/v1 RubyBindings/15.5.0 Authorization: - "" X-Stripe-Client-Telemetry: - - '{"last_request_metrics":{"request_id":"req_BFLMdkqVUvyHpr","request_duration_ms":1309}}' + - '{"last_request_metrics":{"request_id":"req_ma7OqegIdUoInI","request_duration_ms":1332}}' Idempotency-Key: - - e335c431-2807-40ae-af54-91dd54268e69 + - abf1aba7-ba03-4361-a1eb-bb33b722c5b2 Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil X-Stripe-Client-User-Agent: - "" Accept-Encoding: @@ -1156,7 +1160,7 @@ http_interactions: Server: - nginx Date: - - Tue, 14 Oct 2025 03:11:24 GMT + - Wed, 10 Dec 2025 05:03:01 GMT Content-Type: - application/json Content-Length: @@ -1179,15 +1183,15 @@ http_interactions: Content-Security-Policy: - base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src - 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=jVzrtviNjqYMRgh5ONHGaxUYdglkIUxJedPVvO4_Z4tZfU3NWDNTcN5sI4pIl2TqCbhMGJIPQqggpxt7 + 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=vn-kdYNC1s3hDiXRhhwC1XR0hBLmLcsdIMCRlo13rosJ4C3caLqD_POExMdYc1IhbElyv04kp1IcvLWm Idempotency-Key: - - e335c431-2807-40ae-af54-91dd54268e69 + - abf1aba7-ba03-4361-a1eb-bb33b722c5b2 Request-Id: - - req_9TnjHgPWycXFdi + - req_eWnTSRQ7q166nC Stripe-Account: - - acct_1SHydn3LxZ4L8SBw + - acct_1ScfY73jWNG3tByU Stripe-Version: - - 2025-02-24.acacia + - 2025-08-27.basil Vary: - Origin X-Stripe-Priority-Routing-Enabled: @@ -1202,9 +1206,9 @@ http_interactions: encoding: UTF-8 string: |- { - "id": "acct_1SHydn3LxZ4L8SBw", + "id": "acct_1ScfY73jWNG3tByU", "object": "account", "deleted": true } - recorded_at: Tue, 14 Oct 2025 03:11:24 GMT + recorded_at: Wed, 10 Dec 2025 05:03:31 GMT recorded_with: VCR 6.2.0 diff --git a/spec/fixtures/vcr_cassettes/payment_gateways/taler/_id/completes_the_order.yml b/spec/fixtures/vcr_cassettes/payment_gateways/taler/_id/completes_the_order.yml new file mode 100644 index 0000000000..d84ef9f88a --- /dev/null +++ b/spec/fixtures/vcr_cassettes/payment_gateways/taler/_id/completes_the_order.yml @@ -0,0 +1,209 @@ +--- +http_interactions: +- request: + method: get + uri: https://backend.demo.taler.net/instances/sandbox/private/orders/taler-order-id:12345 + body: + encoding: US-ASCII + string: '' + headers: + Authorization: + - "" + Accept: + - application/json + User-Agent: + - Taler Ruby + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + response: + status: + code: 404 + message: Not Found + headers: + Server: + - nginx/1.26.3 + Date: + - Sat, 24 Jan 2026 00:51:32 GMT + Content-Type: + - application/json + Content-Length: + - '109' + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - "*" + Cache-Control: + - no-store + Via: + - 1.1 Caddy + body: + encoding: ASCII-8BIT + string: |- + { + "code": 2005, + "hint": "The proposal is not known to the backend.", + "detail": "taler-order-id:12345" + } + recorded_at: Sat, 24 Jan 2026 00:51:31 GMT +- request: + method: get + uri: https://backend.demo.taler.net/instances/sandbox/private/orders/2026.020-03R3ETNZZ0DVA + body: + encoding: US-ASCII + string: '' + headers: + Authorization: + - "" + Accept: + - application/json + User-Agent: + - Taler Ruby + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx/1.26.3 + Date: + - Sat, 24 Jan 2026 00:55:33 GMT + Content-Type: + - application/json + Content-Length: + - '19676' + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - "*" + Cache-Control: + - no-store + Via: + - 1.1 Caddy + Strict-Transport-Security: + - max-age=63072000; includeSubDomains; preload + body: + encoding: ASCII-8BIT + string: |- + { + "wire_reports": [], + "exchange_code": 0, + "exchange_http_status": 0, + "exchange_ec": 0, + "exchange_hc": 0, + "deposit_total": "KUDOS:5.5", + "contract_terms": { + "nonce": "H8BTDASTRX0WMBQTEWN6JSVS3KK7MZ6WAZGTKDM28FQ0CE9W59EG", + "amount": "KUDOS:5.5", + "h_wire": "1HZYJW67Y7D9GDERGJ8R2B0MTYXRW425M0N11AWHY4VC3DAYCR14CG30X7B7NGM1G93YYC7V4FAS314NBF40GRF1EC8GB0FD5SSJET0", + "max_fee": "KUDOS:0", + "summary": "Open Food Network order", + "version": 0, + "merchant": { + "logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALEAAACxCAYAAACLKVzFAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAC+cSURBVHgB7V0HeBzVtf63qVerWM3SSpZs2ZYrpoNLQmJiCIaEZxICxgQIhAAuEIofxSaUEFNsg+FRbYcWYhNaSKNYFNMC7g3LktayZclqVtdK2tW+e2bnjmZX22Z3Ja2k+b9vNLur2X/u3vnn3HPPPfeOBip8hs1mS2A7I9umsY1e54h7o7hPEA81eqAxudg3su2I+FrYNBpNI1T4BA1UuAQTrJHt5rBtKnqFa8TAgUS8U9w+gV3YO6GiD1QRQ7KwJNLZsAuXW9pQAxc2ibqYiboYKkauiEXhLmbbAoSuaL2Bi3oT7KI2YQRiRIlYdBGugt3azsHwAxf02yNJ0MNexE4Wdw5GDooxQiz0sBUxE+8ctlsCu3CHoqsQTGxk26bh6kMPOxEz8S5Gr8ugwhEmtq1iYt6IYYRhIWLRZSCruxSq1fUFJgwjMQ9pEaviDRgmDAMxD1kRMwGTeFdCFW8wYMIQFvOQE7HYYduAgR09GykwYQiKeciIWIzxknjnQEV/YyPsYjZhCCDkRaz6vYOKlUzIqxDiCGkRq65DSMDEtrmhbJW1CFEwAT/BdluhCniwYWRbObse9yFEEXKWWPR934I9KUdFaMGEELTKIWWJxbDZDqgCDlUY2baDXaelCCGEhCUWO2/UXIVU5ajwiDXMIi9DCGDQRay6D0MaJoSAezGo7gQTMAmXOm+qgIcmjGzbKl7HQcOgiZj9cMo0I//XCBVDGUYMsp88KCIWwzUboWI44YnBCsMNuE8s/tCVUDFcMeCjfAMqYnEAQ41ADH8MaORiwETMBEzDx4uhYqRgIxPy1RgADIiIVQGPWAyIkPu9Yye6EIuhYiRisXj9+xX9KmKxE6f6wCMbS/s7atFv7oQahVDhhH6LWvSLiMVEnjVQocIRi5mQNyHICLqIxSHIHVChwjWmB3t1z6D6xLJkHhUq3OEtUSdBQ1AtMStcOdRcCBXeQZZ4brAWEg+aJRZDKUaoUOEd5HIGLWIRFBGLHTk1lKZCCZYGK/MtYHdC9G+oI6dOp1ehFOROTA80qT4YIlb9YBWBYCcT8XQEgIDcCXFAwwgVKvzHtECHpv22xKIbUQ4VKoKDuf4uAh6IiFU3QkUwYYLdP1YcdvPLnVDdCBX9ACP8jHAptsSqG6GiH+FXtMIfSxyya3KpGPKgMO0GKIQiEYsPdVkMFSr6D3PE1VB9hiJ3Qu3MqRgg0HOsc3092GdLLFphI1So6H8YlQxJ+2yJVSusYoBBnbxcX0JuPlnigbLCPT02WK1Wtu9BZ2cXLBYLAgHxWNnGyg+zuVPgDpjPaudT0e+gTp5P1tgnSxyIFaYLzu4m6X1zSxt2HTiKrXtb8eWeOhxqyUBjUys6urWw6uPZ8Rp0R2dj7YVluGVhke98exjf3lrGl4mTTS0wd+sYXxxs0KM7PA3vXV+HC2flBcjHysduBK1WC42tEwkRHchOCsO09Cb8eGYyTpmYAWNWisRFoqdjVfgNn6yxVxGLVlhx2EN+Ab/dewzr3jyEdw+koKmDfWA1A+Z68QTdgoiYRGCJzsM159rw/K2T+bklDtd8qYzPZufrZHy2Xj4tmNWMHY+75nfhoesmC1zu+Y5i7ZZDeO/gaJd8rqqJdC8ZZA3jMcQBuggYImMxNbUBv5mrweIFM2Ew6CXLLb9ZVPgMeorTSk8H+CJiRVaYi6OlrQP/+/xevPhVItqba6DpboKtx9LnlDp2/a1aDUalnIo9j4cjIzVecCP0en1fvucY39e+8EUgKzMbe9aMQUJcpBs+MyvfHq/lUwquUxuJOjwVZ2fXYP2NeZhamCWcm6BaZ0VoZCJO9HSAxyumxApzoTS1dGDxoyV4e3c4NC2ljKQH7jxIg87GmvpMLP9JPB67cazgswpNNVOCnO+qxw7jnV3Ed9g7X0QmbpsfgdU3TBT4dDqdm/JFeOULFFqqXWale8KTkZKYiA3Xh+GCc3IEMdNvVC2zz7ja0wMivYnYqxXmF6Szy4Ir/1SOLd92Qtt2RGAWDU/vyTR2FwEanb35jU5H8YoYzJ4xWhKZxNfZjSsfq8CWr9uhba9wyedAzJpyxIzFp/dE4dxpqa75HjmALdu1HstHiraRexCRLAgc+hhEhBkQaatFhLYTYcw96Ow0w6xlrlFXBGyWVvtxnQ2MskesN1e8zJ0xxCIlLRf/ujMMMwrTHVoIFR5RzK7hXHf/dCticdRkKzyAX4SX/mHCNc8z8bZ8Dwp49MguIhcGtAbYotKRFAXMHtuEy2fF4sdnT0RMlEHyVSW+vx/ENRvCoG3cS22va7ExodnCUxAbFY7Tx7Rg4VmRuGzeRMRGh/fle4/xbYyAtnm/ILg+5WMFtOmigcg0ZMRZ8LNprZh/ShRzAfKYOxKGyIhwl1azq6sbdSfbcKD0OD7e1YK3d2hw4EQkbJ0nBfeEyG1O59Iw378nMgvzijT418MzVKvsO9ymanoSsdtFAEkkVPnUVM+4eS92lNRCb22DRSY2+wVj1i4sAbGJo3Hj2fVY/ouJSB0V55nvFsZ3qIHxNbvgY8dpI6GNGYOfjq/C/VeNxZTCMR75pjO+nSWMz+LIR24pRUJsEanISonH3Re04JfzJiAuNgqBgM79+Y4K3P1KLT4tYzcGs/o6WFioz/HcrOmALWkqvl2pZVY5TbXK3vE2E/Elrv7hUsSeMtV4x6jsWBPG31KJnuYy++eixSGxaTUs3mtIQnayHs/fkIgfn1XAeftYHG98BJ3WJoS34hJS8eDFrbj+59Ng0Lvu9XvjEwTEXvfE5mP+uDo8u7wIWaMTXJbNX/AykDDXbD6Eu//GXJCmcuhYpEMuZp2GRVBYROa2eVasvnGqKmTPcBtucyfixXDRoeOV/EbxcfzisRrozUeZdeul0DNX12ILQ0KqEW/dGoU5M7L6hLZc8f2luAq/fLwa+o5jDnxCpAHhiBqVjU3X2XDpeYU+8b3xCSvfo47lE9xmtlkik/HjSeHYvGK8YHU9NefEpxXcmR50sMEXK3tPgx3h4WEIY35ymMHgUXjyMN6azYex7HX2vvl7oTDcRRJ+oy4W504fg08fzlOF7BnL2HXqszyaOxGTLzxH/hmv3JUvm7DqteMwWBvQLQ6A2a0vWZUc/N+v43H9RUaPYpPz3ftnE/7wugs+Mc770KU23PWrQp/57tlkwgN/ceQTXAdNGKKSMvDfB7MwIS/B54GIK/5YiVd3MFF1VNk7pCK0Oj2y2EDHkefHehWePEpywT378Y+dHdB1VMJqs5+fohg2rR45mWko3zBNFbJ7uOzg9RGxK1eCX4TfP3cYj75dDZ2lEXwEV7Akmgjk5eRj55o01lEL9yg2Od/yZ0vwxDsnHPgEwbE4b1pGNvatzUJiXJSDCDzxLfu/Q1jzbo0Dnz2Ml4XLzwReXTFdUUeKi2n7wRqcclcTdC0H2a3V21nTa3tgSJ6C9teNPgmPl/PbfZU49d5u6Jr2SHz2G5cFWNKL0PiyURWye+Q6J827UtrF8je8g7R6yzEm4Ko+ArFGZGD5JRkofd6IyHC9fbTMg4B7+SqZgNkN0S3j01JHMAmL5o7C8Q3jEMciDQRPAuZ8f9pcyQR8woFPr7WiO3YKPr4vRRAwdw98BRfRtHHJsL1VgPHjxrIohla4cQmWHi26anchYVG5cKy3XA8qJ93gMyakw/amEePGFQg3rL2TyUTOttaqXUi5usInvhGKxc4fuLqiV/EX3KK+83klbt94nPXwm2SCYxYuKh//XJGCx3470SfLwfne/rSR8ZXa+UTfULCYUdl4dWkWNt45Q+DzJF6H8n1ahjv+XCPxkVXTa1goK24Cal9IxpxTMgWxc2HQjbZt5zHhs+7ubngDnYOs6L6nJ+LSs/JZpzVBErLVpkNL1R7k/3q/wO+Nj9/kxLf/6UIsOC0WPU58Dcd2oPBa3/hGIGY7f+DQpjq7EnTBTccbUbC0HoaWEnSLgtMzAVti8rHv8XRMMMZ7dR/kfOXHWzDullIY2moYn51QryG+sfjm4WScOiHVZ39V4ltSDUMrlU9r78CxRlo3qggtr2bbBS3eXPxG+8nd+/Gv3Z04b3IsPngwX9H56Pu3P38Yq98SWxHxpqE4+ILZE/DW/2Yr5rt+zQE89596Bz6bxoCFc7PxxooJaiJRXyTKoxQOpm7lypXkSgjuBK/gpEUm6NpKpF4+WWBLdAHKn8lCfpY95qvkgiVfVcb4jkoxW7LAluh87H8iHVPykxTdEALfojLo20qFpl34QcwCI3EyOt4wgmJp8pyJ6vo2pC4uQcnhUmhZXLu02oxU9hNOK0z0KcTGw2bzTk1GR4cFnx/qhtZmFlwB6tgeONqGSZl6TMqN88nn5nwLzhqN2oYOfFPa48C3t1LD+Nhm9I1vBOHEqlWrvuJvnNUiuBK86Z25dD8TXBmzDvbDhCafCW7v46nISYsRPvOlciW+JYyvtZzxiTcEu4W6o/Kw408pKDTal3LzRcAOfG3l0g1GLYSVle/kRuZzisdIP5TxzvtDDyyN5Uwk1JwzgVtb8bsXW5mAWqXkHG/gLskj1+bhl2dGsMGXCCG6QF+nAZ+F69qE/Axfc5c53/qbx2P+jGghdVQYJCI+y0ksXNuGlrbAc6GHGRbI3zgrRnjQNAnzrU8r8N33dVJyDLmn3WHpbNw/GpPyRoEf5wvouDeLj+C7QzI+duZuQwreWBJn7zgpGGxwxadnfJaILOx+LBXRkeF9/HPyLfc+mYD4pCxopY4ZK0d7OSYsqRL8b6XCe+2emRiXRy6LTeSzCRGMSbfWCnxKb4z3H5yO9Iy03vJZ7XxFt5Qp4hsBoKWvpAUsJRGLuRIJ/EL+bJ1VGKrtEcM/NOiw7IJYzDsjWwpT+QJe8Zc+1ePIx+K2V54Twfy+MYp8PonvSUc+CxuOXnd1DCbnp7gsm0EcmKh6eTKz1rmC6AnUKtRXl2L1G2VeO5JycOF9/8w4IHZCLx/rmB2v2Ie1fz2qOBIi+PgvFLHyTRRaFeH3Mr6jx2vxyn9MqkvRCxLwNP5GXstz6A9dyHl37YS26YDkt1JHKXdMOh7/7XjFYSo69sd37nDk01gwevRk/Pmuqf7zNTuWb2JBDm7+WYFgTd1dbBKKnjUB21YlwhKeKlk8Jh/c/noHWtvNipptniW349FRsBiSe/nYZ0vfaIfZ3KWYj8r3wYpwqXwkZZ21GYuetQhcqlshYQ5/IVfPbLogFVX1+OCAzp5eCHuzb4mbiL1P5QsVqCQAL/Adr8eHB/W9fDQ0HTUWB9fHB4VPcCPiCvHdYzleB0UIJPCzpmZg/vQYIUYLHROMhsWj2ypx8QPKrDHnm8zcq/85m0VptOG9fC0mXPxghV98552WidmFBhaTtpePBpNsLPpy6QMnFPMNY0ihNrmCppGVu+yRCmjbWQzVZrdmVk0kHljQhqjICCiFwPcnJz6bHisWhCEhTnm2mCs+ciOeuUqHiHCDTxw84f6d+8bjwlsPIynaPqBAnbOKk2Vob89DVJTvv5XzvXbnODTXliApSsZXf5DxZfnF988HinDRbX8XoicCH7tZj9Z+h/aOJL+uxTCE5E7Ys2lttmnMyu04Vt2AnBuqoGk/IoV5ElLzUP9akU9WTg6ymseqTzK+SsZXIfIBEYnj0ba5wE8+Kt9xGV8PktLGouaVSYpjqe6O9zcmG+p8wxTCEDSvDSNVzI1PkZUzSbkBPWHJeHN5nDS0qwTEd/2TJsZ3pJePNYuvLgn3m+/G9RWOfKx8m5fF+nVh3R3vr0BCnW+YYg79EdwJ1nwJb97fz2Ke4iAeWbnkpHjMmZmtOLRD4bKOzk7860CkxEdpkNEpubj4HOV8dLyFDWW9v6+Xjy5lSrIBs09Rzqdi2EBwKQQRs87V1Of+tgvoqJeSx3v0CXjpujC/rBz5dS+9s4/xNUl8Vl0Ynl2s89tqbnhrN+Nr6C0fC5k9eUWKS76uri6EhYUh2KBYM4XqPIEv/nLy5EmptaHvREVF+ZWV5uq3BGtKU7Az5ZxdxGBONHADI/3hPvHJ3GsPJhwpL2EhHY19lm5MNqxvT/HbB8u99gCOlB+W+HpYBMH2t/wA+A5CXj5trBHdbxW55SssLERtbW1QZ2sQny9u0JlnnomvvvrK4TMeGvPnt48ZM4YNc3cIr9va2rBv3z7k5eUhGEhKSgpKHTU3N6OiogJpaWkOnxcXF+P8889HTEyMTzwkfLppc3JycNZZZ+Gmm24SfqubPpSJFh7U08hH/cnWBFNdh/3H2OyxycVndAlH+VPpjA+mOrPER/fKJZPq2D4/AD7H8l1xutlj+drb29HQ0IBgwZsFJpDQW1tbBQFrhEmivXOsXnvtNVxxxRXwB8H+Lc7cZrMZwYA7q97JXEvalODEiRP4+uuv8cQTT+C0007Dtm3bXLVARtIvKcC4ZeteoenndW6LTMedv8iCv2uObf7Ika8nPAl/WGQMGp9QvoUZfvP1F+iGeuyxx4TX8rLR57///e8x3BFM14TXH9Xdd999JxiR6upqV9fcKIh4w4dx0LBRIQKJnNZZGGdMg7/YuNWRT2+IwqQC//k2fezIR7kR4/MyPH5HaWfPW5Pq7Ybh/3/88cf7tA5CBh27AGVlZSF348kxEAMpSoVuX8TR7kpkZmYKfQSnUctpxGjcXkWuA694G35QYHcl/PWVth+X8wHnjG0NiO+7Kke+WcY2r3wXXXQRmpqaXB4TGxuLzZs3o76+XvosOjoaV155peDbuQI1u57OR+L88ssvBXeCl413bPh+2bJleOeddxCqIHH8/Oc/x6JFi6Tf4SvIV4+Li/N6HHUm7733XiQkJPQxNHTz03nJ53/vvfeEOueJWXx1qB/+8IeCayFDgn7PwfIJwoRK3lRro/CLc/zv2R+rroMjXzh+cWY4/EVfvggsPi/W43coivD00097PGbPnj0OlZGamur1O57yFqiCqRPCZ0fzvVzE7777ruAbUtMYqvHeGTNmCAagP3H99dcjIyPD63E33ngjnnnmGakuCV988YXQP0hMTORGxaj9fGd1BrpkU/kjR+PMomT4i13f18KBL3wUZs9Ih7/ow8fKd1ZRqsdm2ZdOGDVLcvgyn81dc0sVXFdXhx07dkjlIsF///33koD5RXjppZdCOhttIKZD+dKRpOtBRmXBggVSnfI6pFZUVofx2i+/N+cKS5mK0PR0InfMaPiLz/e1QM5HbkB+dir8hTMfLUCSkTYqpIRAluLBBx8UXvOZKcnJySgoKMDcuXMdjrv77rv7RC5U9AXPENy0aVOfunIKXxq1u8pb43hGGCEpITIgB397aQvkfKNidAH1WuV8pNvMlKiQaoq5dVi/fr3D2sd33XWXUPkUIpJbEmoKyZVR4R1Un/Hx8UJ/RQ6K18uQoK3rjB8lX/UuUVuPQFBaH+mwLGRiTGDTzuV8zMYhK6wUoYZ///vfQjMsH3j53e9+J4h3ypQpQieGf05WePny5WqCuwI4j1g6WeYEbattlE7qNbGKzU3uQiBotlIPlfNpkRNZg0DQIudDDybk+u/q9AdInBR1kIuSetDh4eGScFesWCFZbDruww8/FHreoZjzERHhX5pnf7hHfEkFGsKXw7lTqGcHOZQ6Icb/SAKhpU3eMbAhIc634Ua3fO0yPo0BmQmh40tSJVdVVeHAgQOSiOmzNWvWOITXqJd9++23O/Syn3zySdxxxx0INXz88cdCE04hM19AIclf/epXGDduHIIJ3qrdd999ff53ySUOi2Ma9c53kD7QgLeTxsIM/vuvwvprcmOlj0QU6hAqoEq+5557HMJpo0ePRlFRkcOKneTTzZo1C5999pn0vYcfflgQ8QAkyfgMKtd//vMfYVOC3NxcRSL2ZWCJykKdugceeECaf8gny86fP9+h3vTOy7GFGwIUsVP5IsL8F7GGL3IswYLOrtCY1cArccOGDZLbQJ9R9IHgvNzso48+KuQA8Pc0EPPNN99g5syZISNif92byMhIRceXlpaipaWljwtC9UCJTjRotHbtWphMJiFcSi4F/Y/CltRR5sdy6LVO9ddlCWwiotbpgpi7AvP7dDoZX1cbOiPHIxRAF+DNN98UXssHNSiQ75xZR/879dRThREtGpHixy9ZskS4YCMJ1Ff40Y9+5PU4nujDBUygG37p0qV9Mtr0ep2j6Do6AxOx3smQt5sDi06E67WQvDPWUTR3tCMUQCIld0A+IkcjXa7CifwiUNiNNg6Kd5JPScPgoWCN6TdRx45yn33tqJHvrKTsvmaz8Trlw87nnnsuPv30U5c50PrIyDDIswVONLQgEESEy/k0qG1oRiCg58DJUX2yA4MNsqTU1FFCj7xDd9lll+Gjjz5yeVHp/2eccYb0nl+kRx55RBooGWxQGVevXi10RP35bqDxe/kgEH9NN9Wzzz4rdB7dJfHr41hHqYZbE/ZBTbv3JA5PiNfWolbi68HxzjEIBDGolcpHN8XRqpMYbDhbYQLFMi+//HKv3+U+HoG+T74fiThUOnhOAwk+w1cBk2Ull8KVpafhaN5Jpv9Tgj1Ff+h9j9OyZA7nTgxvPWkTe0/0xRpzYCLOiu9ELx9wsj2wkFhBqlXio5viSJv/KZ3BAK/gLVu2OIjOORfDHeS5CcRFzfHWrVsxUkCuAWUPUpzceaPZOBxUt5S+Sh05EraHm8SkLcxO6pbHxZrbrSwC4H8SyOQCypOQ8ZmZn232fwBlcn5SbwYb29e0aDGYeQfC/MGXXhJeB2OwwtVgyXAHCdYZ5Cp8++230kx4usZkeWl0k/oNHjMIT8szN9ADBzloaLey2v9Y7PRM5rPq5amSGoHPX+FNHM1+sKF37Nxs0QmrRA4WSGwUgJdilGITR26Cr5v8e1Qvu3btEkalQnEEb6BA9UGhuueee05aiowvcTZt2jRPCyqatGdPz62BThbnM9dg6/Zq+Iszp+WwEsliueZafPRttd+W5oypOcIghwRLC3bsr8BggCpx//79qKyslG5KqmiK95I/56qJdLWRn8dXrOe+MCWKj/Q1JagurrvuOmGSqDz2Xl5eLojb7VochWPTy/VhsiWlerqw+fMm+IuczGRodDI+awfe/K//Ybv87NFwKF9XM/62bXBG7agSKbYrT+ah5B6KAdNrYUFAHzbqsEydOtWB+4UXXhD2vlhjCsn5C2/8o0aNQiAIxNXji45TXjaPBXO3guLvNEDiIu/bpI8IMzTmJHahrMXuc1LnaVtlulQgpRaUQmxZcToca6NHdtkD1l+Ux/jNxwLZMLLylTbz8lnw1nY91mJgQWWnThkl78itBAXfCUp+F32PRvB40J/ekyV///33hSFVT6DzUIKRL4n/cpAAHnroIVx66aUeuWk4/OWXX1a8+iZNCvjggw8CzqEgwdKsjfvvv19onQh8yJkGO2iigVM4r4kcM9PPZ3bjTxX0YY8glNaWVpgq65CTkQR/cP7EJrxQpZP42to7UH6sDsZM//jmT+rAk1Q+m53vaEs0mlvbERsdOWAdIjoP5QwT5CN0ZJmVxkjpe+edd54wqEDi5d+nG+KCCy7w+n1/85G9hc+oXOTq0OYPgjX1n24gyklZt26d0Feg91S2Q4cO4ZVXXhFixjIIa7E1XvnDDGHaT29pqvHk38r9Egid7IaLMmELH+XA9/Q7Jr/46ALf9LOxsEXIytdeic0flg14j54sGT8n7adPn+6QK+wr+PE0J483v7Q/fPgwampqPDb5gTbXQwG8E8fdCh47JitNk3npZpG5FSYtayJ3Fo0fg+jICGnZfnIpnv/c7ocqrTS6uNMmZCI8MhZcY/Rk+ec+i/SLj35AgTHNbnXFWJvW1oU//j2w4WznuK6nuWVUgbSQBzWZ8lkalE7pb0SBvkd5xnIRE/hkUzmCFVJ05SIEMyLiqpyu+H35PVQHWVlZuPnmmyUOLtzTTz9dELTIY9Iz38pEry6adBJ/+ZS7ABq0tLbgq50mnDYlW7HFEx7yUtiBd7/khdagmflk3+w2YWZRtl8WdMGkRrz6iX3xb0rPPFyjQU1dM5ISo/2aTkVLTZHvxTsP9NrT76H0xIULF0qhMcoBOPvss/0WAZ96Q4uqHD16VAroU/Pp3HcgXzBQsVHWHPX6nUGZdTSCFiio3K46nDTXkCc/8XL46s+TaMmloKQpSmclQ0M3IrVYe/fuFVJeQUtZ0V9WQeWHymuMhUuOC001Qcus8rSJ2fhu3VQoBV2E7fsrMfP3LBTW2SDxFY0bg11PT1PMJyw+UtuEzOuOMAf7mPCZhl3wheeMwl/uO0Mxn7uFAd197m7MXukay/6cz5dFDJVA7r8He0FB55vPXUdeSR/CUx0z/kbGk8iZdo7PG43UOA16k9o02F7OxFPX7NdzIk6ZlIWExBRBvMIJGd/uozZU1jQp5qMfnDE6EXnJWvDUUQ0zx2/sTBSei6HUSrkThbvP3V3oQFfM8eV8wRQwQS6eYAqY4CxYdy2uEt/cUx0z/p0Cn/jmCN0166+JhVUc+KAlVLUdx7DggSNSk+sreM995U8b0aPjvrX/fPbv27D2qkj0GGKl8mlaSnDzU/tH/CDBCMYu+iNZYhLJpT8Yi8iEHGaNucA0+Ka0G/sOn/BLdDcvnMlGtHPRqzENviuzYG9JlV98F84uQGxCJnRanq7HBgm2gYXbzIoe5k1c7qy3P4uHeGoJgs3na6LRCEEx/eHrExvZrlywxpt34uYXmR9rseft6jQ9iM+Ygvo/GxX7gMR3/6bDWPVqifCET4FP24PYtCk4+bLRr+d2vPe5CRc/VMbUIS7tyhyVqUU52L7W97WU6bwlFfWYsrQMcTpx7TTWoW3T5qN9Sx6Ugs67bVc1zrunBLFh3TK+PMaXD6VwxSd0aKPGoP7VCVAhYTq5FNydMLFdI4nupoXTEZ2cKfnGVpsWDdUl+MOmg4p9QOK7b3EBDIk5kvWkR+w2nijBqo37/PIpF8zKY5GEKcLNAHvhsaOkFf/5+rhPUQ8++nPa3WyQoe0E6pvMaGg2o67dgLWXdyluIXiSyqw/tKOns0XGF4ZnFpv953vAka++Mwxv3RY/opOEnNDo4BOL2MmDyu8tiYc1IkbqROlsnbj3nS5U1SpbK4H46CK+ej3ztfWx0pxPHTqx8l0Dizg0K+aj4/99txXW8AzBTSHf2NBdj3kPt6LbYvXoVvBx+F89vBctNfuZrbTfRFoWx45PzsV1PytUJDoegP/BioPQNu+XHg4p8CUZcdWFRf7x3ckMhgNfD/IyxmDWdO+L8I0g7OQv5CL+hP6QNZt7WjqKsieCZhcTrPSw7GYTxi0/LiVp+ArB1/5hNsbmZDBue1SCghN6dpHybjEr5hMmXU5Kx/nTI1kLaxdIdw+LqrQdQuEN+6Xp3e7w8fZqvPZ5K/vhFntnkx7RG5mFj1aESaNDvv4uOvavH5uwdRclTNm/J/BFZWHrPQHw7aEFxe3fo8bKGmVE8f0JQZkCNIzwCX8hr5Fi+sPzOL9dk4ie+CnSxE8Lq9T2qoOYvszkVShycJFufzQbPTHjwCemWmx6dNZ+hSm3HFTEx8v3/qoJ0CQUSeUjPZdXVGHh/dvlozkS6DsnalvxQ9ZMG7rrIDUAWh3OKzLglIkZivMfDpTX47J17dB310oPxKEa/UlRAqYXKuMjgTrzkXdED6+8eX40xmQkqQJ2RDF/4eBOsE1YQ5VEYGDq+OCuCFj0yZDX3c59h3H5A98qEh4dGxsdjk2/jYJFGy3j02LP/nJc+oc9ivkIn9wXDYuh96n0Bk03Nh/MQOUJx8W1iZdEkf7batYC7Lavdwx7J1MTOxYfPDxFyu/1BXRsFyOZuPwE9G2l4KscUCdYH5+Lfzw0VjFfN/MdJi5z5KMYe3rmWKy7Yayi1moEgPzhYv6mN/il0ZCAd8qPPG9mBn45O0mY7UGXQ4gd28x4fZsZS545pEh4ZLkWzcvBvNNzHPmYi/HmF00s3vu9Ij7COVNS8bt5EbDRs4+1BhZFyUfbi0lIT+kd/hT4NFpE/+oY9PSQdJv9BiALbo3Mwd7VCYqeMU3HdnX3IOrySuhbDzO/1S5Ug9Ds5+DQukzlfBaRr03GxzrC1tgJKHkm2+MkyREKB506t0/SWvzcDXjtjgKk5Uxj7+3tLzXDOmsj1r1Xg+ufsPugvsRCOd+/VuUiJWuy8LBHic/SiKf+UYtb1ivne+qWIuTkFeLWizNRu7EQ4WFaqUMpLEhnsSHqFyY2uL+bdbdEP5M5rhZ9DDbdlIrCvFSfmmlhSS22UUyabghd024muF6/tduQii23pSAnPcGnqIsD3+WMr7mXj26wbuZXb7s3HlERYaob0Reb5G8c2jt6nBLbOcyJ5+Pr4ZeVo6d+j+AbE3RaesBiDGZPz0bxw3k+j8MLISSats340LC3l48smTaC8RUxvjRFfPw4HnfmHaCSikaMu4lZ4I4ySSDCM/U0Olx74Uw8vyTFp84SP8e3B+tw6p01dgtsk/GxG2LphaPwxE1T/OLTMT6ryKdnO0tYCp65IRM3/DRL7cy5Rq4YFhbgUDuiS1Es/4wqm8TRuIk1k9SREi0oRSy01lZ8+t8DSLnyEDrElX68hcyEThc7pnFjBizxMj4r8ZkZ33dIW3xYcDX4egPe+Dj4ajF00V/8R4VdwOa+Al4wa5IgYB6T9QTuGtz+3DGcetth6NtLHQXM+BbOHSsI2F8+ZwHfeXGsKmD32CkXMMFVDX3i/AGJI4w5fW2vsIpNmMwqu9cVoCaxseoA4haZ8O7nNQ7Ll7oD8UWEG9C0iVncuEnQCULskfhOHNmD8IWH8Nq/qyTXwBv4ehBWpv4zl+/DtU+aYDCXs05Sb8tBFnPB7El4+55sr5ae++aNzV3IuaYMq7fsh66zjvGJs5x1xBeNy+ZNxht3jFHGd21pHz7yqS1hqbhzQSwevm6iTzfECMUm5w/6dJ/5ELSrb/OKjb+yEu01u0W/zv4/wYoYojEtPwP/vnc0UpO9xzXJKnV2W3DFfR+j3ZCDxqYWQYTJCTFID6+GTReGVb+eguz0BLcc3Lek87zyjyO48gVmiZv3Cp05fi8ZRJ/1xh/psX7pDI+Ckz+1csm6PVi3lcWgW0tZy6CTfqudLwV3XRKLh66dqIBvF+PTueCzoTsiG8/ekITfzM8KeorkMEOusyV2GQNiotjKdnNc/Y9X8MTfbMeBI9XQ9ditn0BGz1xm7oE1ugAXTe3EC7fkISUpzqOY/Zk8yr9nP6cG27aX4ZK1FtRWH4W+p0Ma6SJaCntZ2GDBG0sSsPAH7i0wL4eFxbce+csh3P9uBLobDgrRE6ucj8VWLJFj8OYdGfjZOam+871jQPfJkj58NBpnjZuIbStjcNaUNNWF8IxiVqdznT90J2KawvsE3IBfuJvWVmL9x7XQtVcIOREcfLi6JyYP5+Y04MXl41GQk4JAIRculWHLh4ew5M9m1DSzAWTzcSYHrWTduA7CRxlxYE2WEDXwJJCa+has/sv3WPNxPCxNJYL4rTKviL5G3DGpuShdb0RKYnRAfELHmIXRRqcV4fAzGYiODJNaFBVucTW79hudP3QnYmq/yaVw245zIe8+VIOZKxrZhSpnEup2vPDETs16WDJGJ0Vi8Wkt+PX8HDYEnc78YuUXq6m5DZ9sr8Djf+/AZ2VMRG3HWGewXUi4t/U+dkRIJbWwGPDPZ9iwZeVUh+FfLpRu5saUHKnBmx/XY+2nOiHRRmOuFpLte2QuuN1a2oQY8K9n6fHibRMd1kRw5vtbMeP7RIO6xi63fJTh1hNfgLvmReKh3yjP5hvB6ONKENy24+zivMV2F8MDeCyWLsANj36DZ78YBV3LQUFQzhdOmOOpZZGJCBaXZb6uMdmKc8bUCsOz+cntSB+djOjoCESGGdDe0YXW9jbsN7VhR0k9vjZFYX+VHs3WGKCDCcPSIhTd5kpshngkj0rC5w+mYrwxRRII3+85VI3zH2pATQuz5h2N0FhPgt95ffk0bEAkHuPS41D84Fg2iBLdh28345vP+E40Mz4zGym0NnjgY+WLzMRp+dH44P4xiIuNUgXsOzYyAV/t6h+eRDyH7bbCB3CrXNfQjJ+uPISvjhigbT/m0PFzOKlGdA00NPWGXfCI5D7P+hAOIrFau9j/rIIi7N/rexjNgu7RxyMuMRUvXKPB/5w3XoqQ8EERKt/jfy3Bra9b2I1W4uB69OVjlpKJLTPRjLdvz8fMotGSNeeuDPGtfr0at/+1kvFVeuSjH2eLykBhugHvrkgXXCtVvIoxVz7ULIfHHpWnDp4rcB+x7GgdFj96CJ8dYd5I+3FmndoFtyJIM88F2MWhFSx7dnoMnrpSh5/OKnBo4vlrahVm3FKNPaV7WMevG85PdOAthY21FIhKx+l5Omy4KRkTxqY5+OE80tDdbcW0247jwEE2wsjGAS1Wm2s+6vBF5+O8sQ146dZxGJOW4BCtUOEzTKy+ct3905uIF7PdBigEF3OH2YwN7+3HY/8chbJ6No5irmeCphkZNsWCloShY9bbkCisnrNwejPuWzQexqwkB/ESuLX815cV+MnqTiE/18ZiCzw7TGgI6MbSRQgtQVaiBsvm9eCaCwsQz5p5Z7Fxy7n5o8NYuN4m5A8Tn82Bj7UJtPgh48tPNOD3F2px+U+yERMVqUYdAoPLDh2HV3PAhEHD0AnwA3IhNDQ24++fleP5D5uxuyoWzZ0U3W+3X/2uelYSp6aVFpegJWdphU32v6jIKIxPasKCaRZc9qMCFOaN5uWz/xAny3b4SC0uergKB46ym6azlgk/nhlu+5Mp9RFxGGU4iVNygF+eE44FcyYw/zTSJRcPle0+WIGL/hiGI7WljK+xl48daohIRIruKGaOi8GiWdE4/+w8REdFui2bCkXwaIUJvoh4JdvdhyCjpbUNFdUt2MvEcbQ5GsdrGthnnTCzXv7oUTFIZAMeY1NsMGbEIS87Bamj4uRlshfejTgam824+enDmJDWhYgwHYsb65AW24bstDgUGNORnBiFcNmjVr3FqmkGym0vHMXkrE42MME6dWygIj22QyjbuNx0JMZF9Xm2iIqgwaMVJvgiYq/hNhUq+glerTDBq5MmJgUN9EqqKlQQVvlykE/OmmqNVQwCfLLCBJ+6y6I19umuUKEiSPBZb4q6zcwikzU2QoWK/oXPVpigNHB5NVSo6H8oavUViVgc9iuGChX9h43eQmrOUByFF5Pmd0Dt5KnoH7jMVPMExeOg4gnUkJuK/sAqpQIm+DUeKobcyBoboUJFcKCoMyeHXxkpYshN7eSpCCbmwk/4nVYldvJUt0JFMOCXG8ERcHoVcy3IrVD+NBkVKuzw243gCEaC6yUQFyJUoUIhSDd+uxEcAYtYbAbUIWkV/iAgN4IjaNnazK1Yw3ZLoEKFb1jLBLwUQUAwRUxhN5qTp/rHKrwhYD9YjqBN+hLDbuQfm6BChXuYEAQ/WI6gT/5iFpks8Q6oUOEawmO7EEQEffqtWEB1IESFKywLtoAJ/TKHXMxCUiMWKuSgSMQa9AP6dS55f82UVjHkQAJeiX5Cvy+IoIbeRjyCFkpzhwFZ1YMJeSPbXQUVIw2bmIAXo58xYEvTqEIecRgQARMGbHEw8QepWW8jA2sHSsCEAV3hTvSN1KjF8Maq/vaBnTEoK92pUYthi36NQrjDoC3X6O25ICqGHK5WOks5WBjUNUfFIWp6rIIRKoYqTGy7pD9G4nzFoC+cKy4BQNlvRqgYaiDhXhKMnOBAMOhLl1MFiGl5auRiaIGu19zBFjAhZNbfF3u0y6BOdQp10PWhRJ6lYvrtoCPk1uFX3YuQRki4D84IuSehyNwLNZ4cWqABjOmhJmBCyFliOVSrHBIwwR4+K0aIIqSfSaVa5UEFX1h9eigLmBDSllgO0SqvhJpENBAoht36mjAEMGREzCE+IJKGrI1QEWyYEOKugysMuUdc0tCm6GLQPD4TVAQDPGyWO9QETBhyltgZqmUOCPzxbmtCJebrD4a8iDlUMSvCsBAvx7ARMYcqZo8ohn3GxUYMIww7EXMwMc9hu8VQoxlkaYthH6woxjDEsBUxhxiamwO7mOdg5KCYbe/A/jSiYZ2PMuxFLIco6IthF/RwXPiwmG2fwC5cE0YIRpSI5XCy0CToofhIM7KwlJQzIiyuO4xYETtD9KFpm43QFTUXLVnbYno9UoUrhypiNxCnThlhF/ZUDLywTbAL9oi4Lx5JLoISqCJWAHEhcaPTFo/ecJ7z3hVM4r5R3Oh9k7jnltakWljf8f/1wahnyDNJwAAAAABJRU5ErkJggg==", + "name": "sandbox merchant", + "address": {}, + "jurisdiction": {} + }, + "order_id": "2026.020-03R3ETNZZ0DVA", + "products": [], + "exchanges": [ + { + "url": "https://exchange.demo.taler.net/", + "priority": 1024, + "master_pub": "F80MFRG8HVH6R9CQ47KRFQSJP3T6DBJ4K1D9B703RJY3Z39TBMJ0", + "max_contribution": "KUDOS:5.5" + } + ], + "timestamp": { + "t_s": 1768885088 + }, + "minimum_age": 0, + "wire_method": "x-taler-bank", + "merchant_pub": "74DV5N6T2ANY1DJFMD41BN7KJYXK70S18CM22TQABEYMA2GSDRD0", + "pay_deadline": { + "t_s": 1768885388 + }, + "fulfillment_url": "http://localhost:3000/payment_gateways/taler/17", + "refund_deadline": { + "t_s": 0 + }, + "merchant_base_url": "https://backend.demo.taler.net/instances/sandbox/", + "wire_transfer_deadline": { + "t_s": 1768885808 + } + }, + "order_status": "paid", + "last_payment": { + "t_s": 1768885096 + }, + "refunded": false, + "wired": true, + "refund_pending": false, + "refund_amount": "KUDOS:0", + "wire_details": [ + { + "wtid": "4E2DRXCHTBPVY2F72CZMK31X3ZTZTJW2RG4NF5KQA5T3C2AE2KVG", + "exchange_url": "https://exchange.demo.taler.net/", + "amount": "KUDOS:0.38", + "execution_time": { + "t_s": 1768885096 + }, + "confirmed": false + }, + { + "wtid": "4E2DRXCHTBPVY2F72CZMK31X3ZTZTJW2RG4NF5KQA5T3C2AE2KVG", + "exchange_url": "https://exchange.demo.taler.net/", + "amount": "KUDOS:1.28", + "execution_time": { + "t_s": 1768885096 + }, + "confirmed": false + }, + { + "wtid": "4E2DRXCHTBPVY2F72CZMK31X3ZTZTJW2RG4NF5KQA5T3C2AE2KVG", + "exchange_url": "https://exchange.demo.taler.net/", + "amount": "KUDOS:0.64", + "execution_time": { + "t_s": 1768885096 + }, + "confirmed": false + }, + { + "wtid": "4E2DRXCHTBPVY2F72CZMK31X3ZTZTJW2RG4NF5KQA5T3C2AE2KVG", + "exchange_url": "https://exchange.demo.taler.net/", + "amount": "KUDOS:1.28", + "execution_time": { + "t_s": 1768885096 + }, + "confirmed": false + }, + { + "wtid": "4E2DRXCHTBPVY2F72CZMK31X3ZTZTJW2RG4NF5KQA5T3C2AE2KVG", + "exchange_url": "https://exchange.demo.taler.net/", + "amount": "KUDOS:0.64", + "execution_time": { + "t_s": 1768885096 + }, + "confirmed": false + }, + { + "wtid": "4E2DRXCHTBPVY2F72CZMK31X3ZTZTJW2RG4NF5KQA5T3C2AE2KVG", + "exchange_url": "https://exchange.demo.taler.net/", + "amount": "KUDOS:1.28", + "execution_time": { + "t_s": 1768885096 + }, + "confirmed": false + } + ], + "refund_details": [], + "order_status_url": "https://backend.demo.taler.net/instances/sandbox/orders/2026.020-03R3ETNZZ0DVA" + } + recorded_at: Sat, 24 Jan 2026 00:55:32 GMT +recorded_with: VCR 6.3.1 diff --git a/spec/forms/enterprise_fees_bulk_update_spec.rb b/spec/forms/enterprise_fees_bulk_update_spec.rb index 2fcd1a854f..a482f004fc 100644 --- a/spec/forms/enterprise_fees_bulk_update_spec.rb +++ b/spec/forms/enterprise_fees_bulk_update_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe EnterpriseFeesBulkUpdate do describe "error reporting" do let(:enterprise_fee) { build_stubbed(:enterprise_fee) } diff --git a/spec/helpers/admin/enterprises_helper_spec.rb b/spec/helpers/admin/enterprises_helper_spec.rb index cd76300283..0cbff031b2 100644 --- a/spec/helpers/admin/enterprises_helper_spec.rb +++ b/spec/helpers/admin/enterprises_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Admin::EnterprisesHelper do let(:user) { build(:user) } diff --git a/spec/helpers/admin/orders_helper_spec.rb b/spec/helpers/admin/orders_helper_spec.rb index 9a1f9e9306..90059229b4 100644 --- a/spec/helpers/admin/orders_helper_spec.rb +++ b/spec/helpers/admin/orders_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Admin::OrdersHelper do describe "#order_adjustments_for_display" do let(:order) { create(:order) } diff --git a/spec/helpers/admin/products_helper_spec.rb b/spec/helpers/admin/products_helper_spec.rb index d0583488af..3cf3a75a02 100644 --- a/spec/helpers/admin/products_helper_spec.rb +++ b/spec/helpers/admin/products_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Admin::ProductsHelper do describe '#unit_value_with_description' do let(:variant) { diff --git a/spec/helpers/admin/reports_helper_spec.rb b/spec/helpers/admin/reports_helper_spec.rb index 6f2f0c33e4..def3b0f6fd 100644 --- a/spec/helpers/admin/reports_helper_spec.rb +++ b/spec/helpers/admin/reports_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ReportsHelper do describe "#report_payment_method_options" do let(:order_with_payments) { create(:order_ready_to_ship) } diff --git a/spec/helpers/admin/subscriptions_helper_spec.rb b/spec/helpers/admin/subscriptions_helper_spec.rb index c5e3ef23fa..aa5dcd0b85 100644 --- a/spec/helpers/admin/subscriptions_helper_spec.rb +++ b/spec/helpers/admin/subscriptions_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::SubscriptionsHelper do describe "checking if setup is complete for any [shop]" do let(:shop) { create(:distributor_enterprise) } diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index fe2679359c..9d68a60816 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ApplicationHelper do describe "#feature?" do it "takes several actors" do @@ -89,13 +87,13 @@ RSpec.describe ApplicationHelper do it "appends locale and digest to a single key" do expect( helper.cache_key_with_locale("single-key", "en") - ).to eq(["single-key", "en", en_digest]) + ).to eq(["single-key", "v3", "en", en_digest]) end it "appends locale and digest to multiple keys" do expect( helper.cache_key_with_locale(["array", "of", "keys"], "es") - ).to eq(["array", "of", "keys", "es", es_digest]) + ).to eq(["array", "of", "keys", "v3", "es", es_digest]) end end end diff --git a/spec/helpers/bulk_form_builder_spec.rb b/spec/helpers/bulk_form_builder_spec.rb index 6400d8b221..986a8adab7 100644 --- a/spec/helpers/bulk_form_builder_spec.rb +++ b/spec/helpers/bulk_form_builder_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - class TestHelper < ActionView::Base; end RSpec.describe BulkFormBuilder do diff --git a/spec/helpers/checkout_helper_spec.rb b/spec/helpers/checkout_helper_spec.rb index 709ee7ca29..d42ef87e87 100644 --- a/spec/helpers/checkout_helper_spec.rb +++ b/spec/helpers/checkout_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe CheckoutHelper do it "generates html for validated inputs" do expect(helper).to receive(:render).with( diff --git a/spec/helpers/i18n_helper_spec.rb b/spec/helpers/i18n_helper_spec.rb index 884e010c85..10a082507b 100644 --- a/spec/helpers/i18n_helper_spec.rb +++ b/spec/helpers/i18n_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe I18nHelper do let(:user) { create(:user) } let(:cookies) { {} } diff --git a/spec/helpers/injection_helper_spec.rb b/spec/helpers/injection_helper_spec.rb index cd0b57d29b..18b3c15790 100644 --- a/spec/helpers/injection_helper_spec.rb +++ b/spec/helpers/injection_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe InjectionHelper do let!(:enterprise) { create(:distributor_enterprise, facebook: "roger") } diff --git a/spec/helpers/link_helper_spec.rb b/spec/helpers/link_helper_spec.rb index aceeca8cf7..6dcc0677ad 100644 --- a/spec/helpers/link_helper_spec.rb +++ b/spec/helpers/link_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe LinkHelper do describe "ext_url" do it "adds prefix if missing" do diff --git a/spec/helpers/map_helper_spec.rb b/spec/helpers/map_helper_spec.rb index a75921a1b1..1e9ace350d 100644 --- a/spec/helpers/map_helper_spec.rb +++ b/spec/helpers/map_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' - RSpec.describe MapHelper do describe "#using_google_maps?" do it "returns true when a GOOGLE_MAPS_API_KEY is present" do diff --git a/spec/helpers/navigation_helper_spec.rb b/spec/helpers/navigation_helper_spec.rb index d2bc2be68d..e1c14734d1 100644 --- a/spec/helpers/navigation_helper_spec.rb +++ b/spec/helpers/navigation_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Spree module Admin RSpec.describe NavigationHelper do diff --git a/spec/helpers/order_cycles_helper_spec.rb b/spec/helpers/order_cycles_helper_spec.rb index 97d9f2bad9..a1ae719f3e 100644 --- a/spec/helpers/order_cycles_helper_spec.rb +++ b/spec/helpers/order_cycles_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderCyclesHelper do let(:oc) { double(:order_cycle) } diff --git a/spec/helpers/serializer_helper_spec.rb b/spec/helpers/serializer_helper_spec.rb index d41ccc2d73..a84c92cece 100644 --- a/spec/helpers/serializer_helper_spec.rb +++ b/spec/helpers/serializer_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe SerializerHelper do let(:serializer) do Class.new(ActiveModel::Serializer) do diff --git a/spec/helpers/shop_helper_spec.rb b/spec/helpers/shop_helper_spec.rb index 08697cb6cf..e176c5667d 100644 --- a/spec/helpers/shop_helper_spec.rb +++ b/spec/helpers/shop_helper_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' RSpec.describe ShopHelper do describe "shop_tabs" do context "distributor with groups" do diff --git a/spec/helpers/spree/admin/base_helper_spec.rb b/spec/helpers/spree/admin/base_helper_spec.rb index 090cdd63d1..c722e8c223 100644 --- a/spec/helpers/spree/admin/base_helper_spec.rb +++ b/spec/helpers/spree/admin/base_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Admin::BaseHelper do helper 'spree/admin/navigation' diff --git a/spec/helpers/spree/admin/general_settings_helper_spec.rb b/spec/helpers/spree/admin/general_settings_helper_spec.rb index 877578e39d..e0581eabd7 100644 --- a/spec/helpers/spree/admin/general_settings_helper_spec.rb +++ b/spec/helpers/spree/admin/general_settings_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Admin::GeneralSettingsHelper do describe "#all_units" do it "returns all units" do diff --git a/spec/helpers/spree/admin/orders_helper_spec.rb b/spec/helpers/spree/admin/orders_helper_spec.rb index 6b047774fa..a3fac8794b 100644 --- a/spec/helpers/spree/admin/orders_helper_spec.rb +++ b/spec/helpers/spree/admin/orders_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Admin::OrdersHelper do describe "#orders_links" do let(:order) { double(:order) } diff --git a/spec/helpers/spree/admin/tax_categories_helper_spec.rb b/spec/helpers/spree/admin/tax_categories_helper_spec.rb index a9463dc41e..6084055b47 100644 --- a/spec/helpers/spree/admin/tax_categories_helper_spec.rb +++ b/spec/helpers/spree/admin/tax_categories_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Spree::Admin::TaxCategoriesHelper do describe '#tax_category_dropdown_options' do let!(:default_tax_category) { create(:tax_category, is_default: true) } diff --git a/spec/helpers/spree/base_helper_spec.rb b/spec/helpers/spree/base_helper_spec.rb index 4debda7a2a..063c20cbac 100644 --- a/spec/helpers/spree/base_helper_spec.rb +++ b/spec/helpers/spree/base_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::BaseHelper do include Spree::BaseHelper diff --git a/spec/helpers/spree/orders_helper_spec.rb b/spec/helpers/spree/orders_helper_spec.rb index dc384e2a7a..45efa1a15f 100644 --- a/spec/helpers/spree/orders_helper_spec.rb +++ b/spec/helpers/spree/orders_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::OrdersHelper do describe "#changeable_orders" do let(:complete_orders) { double(:complete_orders, where: "some_orders") } diff --git a/spec/helpers/tax_helper_spec.rb b/spec/helpers/tax_helper_spec.rb index 0b9ad20e98..8ec3e47599 100644 --- a/spec/helpers/tax_helper_spec.rb +++ b/spec/helpers/tax_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe TaxHelper do let(:line_item) { create(:line_item) } let(:line_item2) { create(:line_item) } diff --git a/spec/helpers/terms_and_conditions_helper_spec.rb b/spec/helpers/terms_and_conditions_helper_spec.rb index a62e6aa049..b2df276a49 100644 --- a/spec/helpers/terms_and_conditions_helper_spec.rb +++ b/spec/helpers/terms_and_conditions_helper_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe TermsAndConditionsHelper do describe "#platform_terms_required?" do context 'when ToS file is present' do diff --git a/spec/javascripts/stimulus/tom_select_controller_test.js b/spec/javascripts/stimulus/tom_select_controller_test.js new file mode 100644 index 0000000000..4f4705e222 --- /dev/null +++ b/spec/javascripts/stimulus/tom_select_controller_test.js @@ -0,0 +1,296 @@ +/** + * @jest-environment jsdom + */ + +import { Application } from "stimulus"; +import { fireEvent, waitFor } from "@testing-library/dom"; +import tom_select_controller from "controllers/tom_select_controller"; +import showHttpError from "js/services/show_http_error"; + +jest.mock("js/services/show_http_error", () => ({ + __esModule: true, + default: jest.fn(), +})); + +/* ------------------------------------------------------------------ + * Helpers + * ------------------------------------------------------------------ */ + +const buildResults = (count, start = 1) => + Array.from({ length: count }, (_, i) => ({ + value: String(start + i), + label: `Option ${start + i}`, + })); + +const setupDOM = (html) => { + document.body.innerHTML = html; +}; + +const getSelect = () => document.getElementById("select"); +const getTomSelect = () => getSelect().tomselect; + +const openDropdown = () => fireEvent.click(document.getElementById("select-ts-control")); + +const mockRemoteFetch = (...responses) => { + responses.forEach((response) => { + fetch.mockResolvedValueOnce({ + ok: true, + json: async () => response, + }); + }); +}; + +const mockDropdownScroll = ( + dropdown, + { scrollHeight = 1000, clientHeight = 300, scrollTop = 700 } = {}, +) => { + Object.defineProperty(dropdown, "scrollHeight", { + configurable: true, + value: scrollHeight, + }); + + Object.defineProperty(dropdown, "clientHeight", { + configurable: true, + value: clientHeight, + }); + + Object.defineProperty(dropdown, "scrollTop", { + configurable: true, + writable: true, + value: scrollTop, + }); + + fireEvent.scroll(dropdown); +}; + +/* ------------------------------------------------------------------ + * Expectation helpers + * ------------------------------------------------------------------ */ + +const expectOptionsCount = (count) => { + expect(document.querySelectorAll('.ts-dropdown-content [role="option"]').length).toBe(count); +}; + +const expectDropdownToContain = (text) => { + expect(document.querySelector(".ts-dropdown-content")?.textContent).toContain(text); +}; + +const expectDropdownWithNoResults = () => { + expect(document.querySelector(".ts-dropdown-content")?.textContent).toBe("No results found"); +}; + +/* ------------------------------------------------------------------ + * Specs + * ------------------------------------------------------------------ */ + +describe("TomSelectController", () => { + let application; + + beforeAll(() => { + application = Application.start(); + application.register("tom-select", tom_select_controller); + }); + + beforeEach(() => { + global.fetch = jest.fn(); + global.I18n = { t: (key) => key }; + }); + + afterEach(() => { + document.body.innerHTML = ""; + jest.clearAllMocks(); + }); + + describe("connect()", () => { + beforeEach(() => { + setupDOM(` + + `); + }); + + it("initializes TomSelect with default options", () => { + const settings = getTomSelect().settings; + + expect(settings.placeholder).toBe("Default Option"); + expect(settings.maxItems).toBe(1); + expect(settings.plugins).toEqual(["dropdown_input"]); + expect(settings.allowEmptyOption).toBe(true); + }); + }); + + describe("connect() with custom values", () => { + beforeEach(() => { + setupDOM(` + + `); + }); + + it("applies custom placeholder and options", () => { + const settings = getTomSelect().settings; + + expect(settings.placeholder).toBe("Choose an option"); + expect(settings.maxItems).toBe(3); + expect(settings.plugins).toEqual(["remove_button"]); + }); + }); + + describe("connect() with remoteUrl", () => { + beforeEach(() => { + setupDOM(` + + `); + }); + + it("configures remote loading callbacks", () => { + const settings = getTomSelect().settings; + + expect(settings.valueField).toBe("value"); + expect(settings.labelField).toBe("label"); + expect(settings.searchField).toBe("label"); + expect(settings.load).toEqual(expect.any(Function)); + expect(settings.firstUrl).toEqual(expect.any(Function)); + expect(settings.onFocus).toEqual(expect.any(Function)); + }); + + it("fetches page 1 on focus", async () => { + mockRemoteFetch({ + results: buildResults(1), + pagination: { more: false }, + }); + + openDropdown(); + + await waitFor(() => expect(fetch).toHaveBeenCalledTimes(1)); + + expect(fetch).toHaveBeenCalledWith(expect.stringContaining("q=&page=1")); + + await waitFor(() => { + expectOptionsCount(1); + expectDropdownToContain("Option 1"); + }); + }); + + it("fetches remote options using search query", async () => { + const appleOption = { value: "apple", label: "Apple" }; + mockRemoteFetch({ + results: [...buildResults(1), appleOption], + pagination: { more: false }, + }); + + openDropdown(); + + await waitFor(() => { + expectOptionsCount(2); + }); + + mockRemoteFetch({ + results: [appleOption], + pagination: { more: false }, + }); + + fireEvent.input(document.getElementById("select-ts-control"), { + target: { value: "apple" }, + }); + + await waitFor(() => + expect(fetch).toHaveBeenCalledWith(expect.stringContaining("q=apple&page=1")), + ); + + await waitFor(() => { + expectOptionsCount(1); + expectDropdownToContain("Apple"); + }); + }); + + it("loads next page on scroll (infinite scroll)", async () => { + mockRemoteFetch( + { + results: buildResults(30), + pagination: { more: true }, + }, + { + results: buildResults(1, 31), + pagination: { more: false }, + }, + ); + + openDropdown(); + + await waitFor(() => { + expectOptionsCount(30); + }); + + const dropdown = document.querySelector(".ts-dropdown-content"); + mockDropdownScroll(dropdown); + + await waitFor(() => { + expectOptionsCount(31); + }); + + expect(fetch).toHaveBeenCalledTimes(2); + }); + + it("handles fetch errors gracefully", async () => { + fetch.mockRejectedValueOnce(new Error("Fetch error")); + + openDropdown(); + + await waitFor(() => { + expectDropdownWithNoResults(); + }); + + expect(showHttpError).not.toHaveBeenCalled(); + }); + + it("displays HTTP error on failure", async () => { + fetch.mockResolvedValueOnce({ + ok: false, + status: 500, + json: async () => ({}), + }); + + openDropdown(); + + await waitFor(() => { + expect(showHttpError).toHaveBeenCalledWith(500); + }); + + expectDropdownWithNoResults(); + }); + + it("controls loading behavior based on user interaction", () => { + const settings = getTomSelect().settings; + + // Initial state: openedByClick is false, query is empty + expect(settings.shouldLoad("")).toBe(false); + + // Simulating opening the dropdown + settings.onDropdownOpen(); + expect(settings.shouldLoad("")).toBe(true); + + // Simulating typing + settings.onType(); + expect(settings.shouldLoad("")).toBe(false); + + // Query present + expect(settings.shouldLoad("a")).toBe(true); + }); + }); +}); diff --git a/spec/javascripts/unit/darkswarm/controllers/home_controller_spec.js.coffee b/spec/javascripts/unit/darkswarm/controllers/home_controller_spec.js.coffee deleted file mode 100644 index 8ba07e2f77..0000000000 --- a/spec/javascripts/unit/darkswarm/controllers/home_controller_spec.js.coffee +++ /dev/null @@ -1,19 +0,0 @@ -describe "HomeCtrl", -> - ctrl = null - scope = null - - beforeEach -> - module 'Darkswarm' - scope = {} - - inject ($controller) -> - ctrl = $controller 'HomeCtrl', {$scope: scope} - - it "starts with the brand story contracted", -> - expect(scope.brandStoryExpanded).toBe false - - it "toggles the brand story", -> - scope.toggleBrandStory() - expect(scope.brandStoryExpanded).toBe true - scope.toggleBrandStory() - expect(scope.brandStoryExpanded).toBe false diff --git a/spec/jobs/amend_backorder_job_spec.rb b/spec/jobs/amend_backorder_job_spec.rb index 3216b109da..2519c9759e 100644 --- a/spec/jobs/amend_backorder_job_spec.rb +++ b/spec/jobs/amend_backorder_job_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe AmendBackorderJob do let(:order) { create(:completed_order_with_totals) } let(:distributor) { order.distributor } diff --git a/spec/jobs/backorder_job_spec.rb b/spec/jobs/backorder_job_spec.rb index 93425ebec3..e8a830cab6 100644 --- a/spec/jobs/backorder_job_spec.rb +++ b/spec/jobs/backorder_job_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe BackorderJob do let(:order) { create(:completed_order_with_totals) } let(:beans) { order.line_items.first.variant } diff --git a/spec/jobs/bulk_invoice_job_spec.rb b/spec/jobs/bulk_invoice_job_spec.rb index 3d8e137093..cac001a5d5 100644 --- a/spec/jobs/bulk_invoice_job_spec.rb +++ b/spec/jobs/bulk_invoice_job_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe BulkInvoiceJob do subject { BulkInvoiceJob.new(order_ids, "/tmp/file/path") } diff --git a/spec/jobs/complete_backorder_job_spec.rb b/spec/jobs/complete_backorder_job_spec.rb index 0bc1a741e3..07bf137987 100644 --- a/spec/jobs/complete_backorder_job_spec.rb +++ b/spec/jobs/complete_backorder_job_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe CompleteBackorderJob do let(:user) { create(:testdfc_user) } let(:urls) { FdcUrlBuilder.new(product_link) } diff --git a/spec/jobs/connect_app_job_spec.rb b/spec/jobs/connect_app_job_spec.rb index 118dddb3a3..c95ea4dfa2 100644 --- a/spec/jobs/connect_app_job_spec.rb +++ b/spec/jobs/connect_app_job_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ConnectAppJob do subject { ConnectAppJob.new(app, user.spree_api_key) } diff --git a/spec/jobs/heartbeat_job_spec.rb b/spec/jobs/heartbeat_job_spec.rb index 76fa8cbd29..43f5f6ba54 100644 --- a/spec/jobs/heartbeat_job_spec.rb +++ b/spec/jobs/heartbeat_job_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe HeartbeatJob do context "with time frozen" do let(:run_time) { Time.zone.local(2016, 4, 13, 13, 0, 0) } diff --git a/spec/jobs/job_logger_spec.rb b/spec/jobs/job_logger_spec.rb index 7d93868ef5..68eec3617a 100644 --- a/spec/jobs/job_logger_spec.rb +++ b/spec/jobs/job_logger_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe JobLogger do describe '.logger' do it "returns a Ruby's logger instance" do diff --git a/spec/jobs/open_order_cycle_job_spec.rb b/spec/jobs/open_order_cycle_job_spec.rb index 965e8e5068..f4f223b707 100644 --- a/spec/jobs/open_order_cycle_job_spec.rb +++ b/spec/jobs/open_order_cycle_job_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OpenOrderCycleJob do let(:now){ Time.zone.now } let(:order_cycle) { create(:simple_order_cycle, orders_open_at: now) } diff --git a/spec/jobs/order_cycle_closing_job_spec.rb b/spec/jobs/order_cycle_closing_job_spec.rb index dc1f7ce23d..3921cfef2c 100644 --- a/spec/jobs/order_cycle_closing_job_spec.rb +++ b/spec/jobs/order_cycle_closing_job_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderCycleClosingJob do let(:order_cycle1) { create(:order_cycle, automatic_notifications: true, orders_close_at: 1.minute.ago) diff --git a/spec/jobs/order_cycle_notification_job_spec.rb b/spec/jobs/order_cycle_notification_job_spec.rb index 872b63d6ad..765e45db76 100644 --- a/spec/jobs/order_cycle_notification_job_spec.rb +++ b/spec/jobs/order_cycle_notification_job_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderCycleNotificationJob do let(:order_cycle) { create(:order_cycle) } diff --git a/spec/jobs/report_job_spec.rb b/spec/jobs/report_job_spec.rb index fd8c9aaf86..8a506564cb 100644 --- a/spec/jobs/report_job_spec.rb +++ b/spec/jobs/report_job_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ReportJob do include CableReady::Broadcaster diff --git a/spec/jobs/stock_sync_job_spec.rb b/spec/jobs/stock_sync_job_spec.rb index de709f1aeb..c9c0e3d625 100644 --- a/spec/jobs/stock_sync_job_spec.rb +++ b/spec/jobs/stock_sync_job_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe StockSyncJob do let(:order) { create(:order_with_totals, distributor:) } let(:distributor) { build(:enterprise, owner: user) } diff --git a/spec/jobs/subscription_confirm_job_spec.rb b/spec/jobs/subscription_confirm_job_spec.rb index 6faae26b68..976b60b7f1 100644 --- a/spec/jobs/subscription_confirm_job_spec.rb +++ b/spec/jobs/subscription_confirm_job_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe SubscriptionConfirmJob do let(:job) { SubscriptionConfirmJob.new } diff --git a/spec/jobs/subscription_placement_job_spec.rb b/spec/jobs/subscription_placement_job_spec.rb index b35481e1dc..948160bb10 100644 --- a/spec/jobs/subscription_placement_job_spec.rb +++ b/spec/jobs/subscription_placement_job_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe SubscriptionPlacementJob do let(:job) { SubscriptionPlacementJob.new } let(:summarizer) { OrderManagement::Subscriptions::Summarizer.new } diff --git a/spec/jobs/trigger_order_cycles_to_open_job_spec.rb b/spec/jobs/trigger_order_cycles_to_open_job_spec.rb index 9b27202503..a00bbd0302 100644 --- a/spec/jobs/trigger_order_cycles_to_open_job_spec.rb +++ b/spec/jobs/trigger_order_cycles_to_open_job_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe TriggerOrderCyclesToOpenJob do let(:oc_opened_before) { create(:simple_order_cycle, orders_open_at: 1.hour.ago) diff --git a/spec/jobs/webhook_delivery_job_spec.rb b/spec/jobs/webhook_delivery_job_spec.rb index 45c2978c4b..088a707ca4 100644 --- a/spec/jobs/webhook_delivery_job_spec.rb +++ b/spec/jobs/webhook_delivery_job_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe WebhookDeliveryJob do subject { WebhookDeliveryJob.new(url, event, data, at:) } let(:url) { 'https://test/endpoint' } diff --git a/spec/lib/action_dispatch/request_spec.rb b/spec/lib/action_dispatch/request_spec.rb index 8ab68abc4c..71c604514f 100644 --- a/spec/lib/action_dispatch/request_spec.rb +++ b/spec/lib/action_dispatch/request_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ActionDispatch::Request do it "strips nils from arrays" do expect(parse_query_parameters('key[]=value&key[]')).to eq({ "key" => ["value"] }) diff --git a/spec/lib/i18n_digests_spec.rb b/spec/lib/i18n_digests_spec.rb index 6dd321c98b..213b565105 100644 --- a/spec/lib/i18n_digests_spec.rb +++ b/spec/lib/i18n_digests_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe I18nDigests do describe "#build_digests" do let(:available_locales) { ["en", "es"] } diff --git a/spec/lib/open_food_network/address_finder_spec.rb b/spec/lib/open_food_network/address_finder_spec.rb index a5dcffaab2..d036fd0288 100644 --- a/spec/lib/open_food_network/address_finder_spec.rb +++ b/spec/lib/open_food_network/address_finder_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'open_food_network/address_finder' RSpec.describe OpenFoodNetwork::AddressFinder do diff --git a/spec/lib/open_food_network/enterprise_fee_applicator_spec.rb b/spec/lib/open_food_network/enterprise_fee_applicator_spec.rb index 3648ba3d5a..a7c6256437 100644 --- a/spec/lib/open_food_network/enterprise_fee_applicator_spec.rb +++ b/spec/lib/open_food_network/enterprise_fee_applicator_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'open_food_network/enterprise_fee_applicator' module OpenFoodNetwork diff --git a/spec/lib/open_food_network/enterprise_fee_calculator_spec.rb b/spec/lib/open_food_network/enterprise_fee_calculator_spec.rb index 61ff704128..0c1a10c3bf 100644 --- a/spec/lib/open_food_network/enterprise_fee_calculator_spec.rb +++ b/spec/lib/open_food_network/enterprise_fee_calculator_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'open_food_network/enterprise_fee_calculator' RSpec.describe OpenFoodNetwork::EnterpriseFeeCalculator do diff --git a/spec/lib/open_food_network/enterprise_injection_data_spec.rb b/spec/lib/open_food_network/enterprise_injection_data_spec.rb index 7297b8f698..5a0bebd801 100644 --- a/spec/lib/open_food_network/enterprise_injection_data_spec.rb +++ b/spec/lib/open_food_network/enterprise_injection_data_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'open_food_network/enterprise_injection_data' RSpec.describe OpenFoodNetwork::EnterpriseInjectionData do diff --git a/spec/lib/open_food_network/enterprise_issue_validator_spec.rb b/spec/lib/open_food_network/enterprise_issue_validator_spec.rb index 879282cf9d..c7fedc4bb2 100644 --- a/spec/lib/open_food_network/enterprise_issue_validator_spec.rb +++ b/spec/lib/open_food_network/enterprise_issue_validator_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'open_food_network/enterprise_issue_validator' module OpenFoodNetwork diff --git a/spec/lib/open_food_network/feature_toggle_spec.rb b/spec/lib/open_food_network/feature_toggle_spec.rb index 9d185a8fc6..d251562adc 100644 --- a/spec/lib/open_food_network/feature_toggle_spec.rb +++ b/spec/lib/open_food_network/feature_toggle_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OpenFoodNetwork::FeatureToggle do subject(:feature_toggle) { OpenFoodNetwork::FeatureToggle } diff --git a/spec/lib/open_food_network/i18n_config_spec.rb b/spec/lib/open_food_network/i18n_config_spec.rb index 210be7e612..e491d550ce 100644 --- a/spec/lib/open_food_network/i18n_config_spec.rb +++ b/spec/lib/open_food_network/i18n_config_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'open_food_network/i18n_config' module OpenFoodNetwork diff --git a/spec/lib/open_food_network/i18n_inflections_spec.rb b/spec/lib/open_food_network/i18n_inflections_spec.rb index 70af2719d2..5f3d5c819a 100644 --- a/spec/lib/open_food_network/i18n_inflections_spec.rb +++ b/spec/lib/open_food_network/i18n_inflections_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'open_food_network/i18n_inflections' RSpec.describe OpenFoodNetwork::I18nInflections do diff --git a/spec/lib/open_food_network/order_cycle_form_applicator_spec.rb b/spec/lib/open_food_network/order_cycle_form_applicator_spec.rb index 80a20e0adc..85a1848113 100644 --- a/spec/lib/open_food_network/order_cycle_form_applicator_spec.rb +++ b/spec/lib/open_food_network/order_cycle_form_applicator_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - require 'open_food_network/order_cycle_form_applicator' RSpec.describe OpenFoodNetwork::OrderCycleFormApplicator do diff --git a/spec/lib/open_food_network/order_cycle_permissions_spec.rb b/spec/lib/open_food_network/order_cycle_permissions_spec.rb index 6c5b3c903c..b961846d5a 100644 --- a/spec/lib/open_food_network/order_cycle_permissions_spec.rb +++ b/spec/lib/open_food_network/order_cycle_permissions_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'open_food_network/order_cycle_permissions' RSpec.describe OpenFoodNetwork::OrderCyclePermissions do diff --git a/spec/lib/open_food_network/permissions_spec.rb b/spec/lib/open_food_network/permissions_spec.rb index 237581c130..124c70798c 100644 --- a/spec/lib/open_food_network/permissions_spec.rb +++ b/spec/lib/open_food_network/permissions_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'open_food_network/permissions' RSpec.describe OpenFoodNetwork::Permissions do diff --git a/spec/lib/open_food_network/property_merge_spec.rb b/spec/lib/open_food_network/property_merge_spec.rb index 1fd6ef8a74..ed6b44ccd4 100644 --- a/spec/lib/open_food_network/property_merge_spec.rb +++ b/spec/lib/open_food_network/property_merge_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module OpenFoodNetwork RSpec.describe PropertyMerge do let(:property) { create(:property, presentation: 'One') } diff --git a/spec/lib/open_food_network/referer_parser_spec.rb b/spec/lib/open_food_network/referer_parser_spec.rb index 98dd0f4deb..a117389033 100644 --- a/spec/lib/open_food_network/referer_parser_spec.rb +++ b/spec/lib/open_food_network/referer_parser_spec.rb @@ -1,7 +1,6 @@ # frozen_string_literal: false require 'open_food_network/referer_parser' -require 'spec_helper' module OpenFoodNetwork RSpec.describe RefererParser do diff --git a/spec/lib/open_food_network/scope_variant_to_hub_spec.rb b/spec/lib/open_food_network/scope_variant_to_hub_spec.rb index 3aac9e3c4b..a534b71568 100644 --- a/spec/lib/open_food_network/scope_variant_to_hub_spec.rb +++ b/spec/lib/open_food_network/scope_variant_to_hub_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'open_food_network/scope_variant_to_hub' RSpec.describe OpenFoodNetwork::ScopeVariantToHub do diff --git a/spec/lib/open_food_network/scope_variants_for_search_spec.rb b/spec/lib/open_food_network/scope_variants_for_search_spec.rb index b0fc09d51d..09ee2d85e5 100644 --- a/spec/lib/open_food_network/scope_variants_for_search_spec.rb +++ b/spec/lib/open_food_network/scope_variants_for_search_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'open_food_network/scope_variants_for_search' RSpec.describe OpenFoodNetwork::ScopeVariantsForSearch do diff --git a/spec/lib/open_food_network/tag_rule_applicator_spec.rb b/spec/lib/open_food_network/tag_rule_applicator_spec.rb index 454c492b3c..5137050da8 100644 --- a/spec/lib/open_food_network/tag_rule_applicator_spec.rb +++ b/spec/lib/open_food_network/tag_rule_applicator_spec.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true require 'open_food_network/tag_rule_applicator' -require 'spec_helper' RSpec.describe OpenFoodNetwork::TagRuleApplicator do let!(:enterprise) { create(:distributor_enterprise) } diff --git a/spec/lib/reports/bulk_coop_report_spec.rb b/spec/lib/reports/bulk_coop_report_spec.rb index b07643f9d9..56422194fc 100644 --- a/spec/lib/reports/bulk_coop_report_spec.rb +++ b/spec/lib/reports/bulk_coop_report_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - # rubocop:disable Metrics/ModuleLength module Reporting module Reports diff --git a/spec/lib/reports/customers_report_spec.rb b/spec/lib/reports/customers_report_spec.rb index 295dd53174..14af2f1c15 100644 --- a/spec/lib/reports/customers_report_spec.rb +++ b/spec/lib/reports/customers_report_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Reporting::Reports::Customers::Base do context "as a site admin" do let(:user) { create(:admin_user) } diff --git a/spec/lib/reports/enterprise_fee_summary/authorizer_spec.rb b/spec/lib/reports/enterprise_fee_summary/authorizer_spec.rb index 5e9edffc86..40660d39f3 100644 --- a/spec/lib/reports/enterprise_fee_summary/authorizer_spec.rb +++ b/spec/lib/reports/enterprise_fee_summary/authorizer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Reporting::Reports::EnterpriseFeeSummary::Authorizer do let(:user) { create(:user) } diff --git a/spec/lib/reports/enterprise_fee_summary/enterprise_fee_summary_report_spec.rb b/spec/lib/reports/enterprise_fee_summary/enterprise_fee_summary_report_spec.rb index ceeb312b5b..adc4b7cf55 100644 --- a/spec/lib/reports/enterprise_fee_summary/enterprise_fee_summary_report_spec.rb +++ b/spec/lib/reports/enterprise_fee_summary/enterprise_fee_summary_report_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Reporting::Reports::EnterpriseFeeSummary::FeeSummary do let(:report_module) { Reporting::Reports::EnterpriseFeeSummary } diff --git a/spec/lib/reports/enterprise_fee_summary/enterprise_fees_with_tax_report_by_producer_spec.rb b/spec/lib/reports/enterprise_fee_summary/enterprise_fees_with_tax_report_by_producer_spec.rb index db4004a158..85100cfaf5 100644 --- a/spec/lib/reports/enterprise_fee_summary/enterprise_fees_with_tax_report_by_producer_spec.rb +++ b/spec/lib/reports/enterprise_fee_summary/enterprise_fees_with_tax_report_by_producer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Reporting::Reports::EnterpriseFeeSummary::EnterpriseFeesWithTaxReportByProducer do let(:current_user) { create(:admin_user) } diff --git a/spec/lib/reports/enterprise_fee_summary/parameters_spec.rb b/spec/lib/reports/enterprise_fee_summary/parameters_spec.rb index b803041573..b34db45b92 100644 --- a/spec/lib/reports/enterprise_fee_summary/parameters_spec.rb +++ b/spec/lib/reports/enterprise_fee_summary/parameters_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - module Reporting module Reports module EnterpriseFeeSummary diff --git a/spec/lib/reports/enterprise_fee_summary/permissions_spec.rb b/spec/lib/reports/enterprise_fee_summary/permissions_spec.rb index decb37a18e..b0839e034b 100644 --- a/spec/lib/reports/enterprise_fee_summary/permissions_spec.rb +++ b/spec/lib/reports/enterprise_fee_summary/permissions_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Reporting::Reports::EnterpriseFeeSummary::Permissions do let!(:order_cycle) { create(:simple_order_cycle) } let!(:incoming_exchange) { create(:exchange, incoming: true, order_cycle:) } diff --git a/spec/lib/reports/enterprise_fee_summary/renderers/csv_renderer_spec.rb b/spec/lib/reports/enterprise_fee_summary/renderers/csv_renderer_spec.rb index bf58f26b4b..c03a563063 100644 --- a/spec/lib/reports/enterprise_fee_summary/renderers/csv_renderer_spec.rb +++ b/spec/lib/reports/enterprise_fee_summary/renderers/csv_renderer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - # describe Reporting::Reports::EnterpriseFeeSummary::Renderers::CsvRenderer do # let(:report_klass) { Reporting::Reports::EnterpriseFeeSummary } diff --git a/spec/lib/reports/enterprise_fee_summary/renderers/html_renderer_spec.rb b/spec/lib/reports/enterprise_fee_summary/renderers/html_renderer_spec.rb index b396458e0f..93b3aa7a17 100644 --- a/spec/lib/reports/enterprise_fee_summary/renderers/html_renderer_spec.rb +++ b/spec/lib/reports/enterprise_fee_summary/renderers/html_renderer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - # describe Reporting::Reports::EnterpriseFeeSummary::Renderers::HtmlRenderer do # let(:report_klass) { Reporting::Reports::EnterpriseFeeSummary } diff --git a/spec/lib/reports/enterprise_fee_summary/report_data/enterprise_fee_type_total_spec.rb b/spec/lib/reports/enterprise_fee_summary/report_data/enterprise_fee_type_total_spec.rb index d7e9e9f6b5..72ff02e036 100644 --- a/spec/lib/reports/enterprise_fee_summary/report_data/enterprise_fee_type_total_spec.rb +++ b/spec/lib/reports/enterprise_fee_summary/report_data/enterprise_fee_type_total_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Reporting::Reports::EnterpriseFeeSummary::ReportData::EnterpriseFeeTypeTotal do it "sorts instances according to their attributes" do instance_a = described_class.new( diff --git a/spec/lib/reports/enterprise_fee_summary/summarizer_spec.rb b/spec/lib/reports/enterprise_fee_summary/summarizer_spec.rb index e161d84597..a3f70db110 100644 --- a/spec/lib/reports/enterprise_fee_summary/summarizer_spec.rb +++ b/spec/lib/reports/enterprise_fee_summary/summarizer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Reporting::Reports::EnterpriseFeeSummary::Summarizer do let(:row) { { diff --git a/spec/lib/reports/frontend_data_spec.rb b/spec/lib/reports/frontend_data_spec.rb index 42ba84e92f..5cf485ff04 100644 --- a/spec/lib/reports/frontend_data_spec.rb +++ b/spec/lib/reports/frontend_data_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Reporting::FrontendData do subject { described_class.new(user) } diff --git a/spec/lib/reports/lettuce_share_report_spec.rb b/spec/lib/reports/lettuce_share_report_spec.rb index 028557b534..ddfce2b05a 100644 --- a/spec/lib/reports/lettuce_share_report_spec.rb +++ b/spec/lib/reports/lettuce_share_report_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Reporting module Reports module ProductsAndInventory diff --git a/spec/lib/reports/line_items_spec.rb b/spec/lib/reports/line_items_spec.rb index 2fc293973f..c4c8b12866 100644 --- a/spec/lib/reports/line_items_spec.rb +++ b/spec/lib/reports/line_items_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Reporting::LineItems do # This object lets us add some test coverage despite the very deep coupling between the class # under test and the various objects it depends on. Other more common moking strategies where very diff --git a/spec/lib/reports/order_cycle_management_report_spec.rb b/spec/lib/reports/order_cycle_management_report_spec.rb index 0a62bdd850..ba14f10b13 100644 --- a/spec/lib/reports/order_cycle_management_report_spec.rb +++ b/spec/lib/reports/order_cycle_management_report_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Reporting::Reports::OrderCycleManagement::Base do context "as a site admin" do subject { described_class.new(user, params) } diff --git a/spec/lib/reports/orders_and_distributors_report_spec.rb b/spec/lib/reports/orders_and_distributors_report_spec.rb index 98f4943f29..1f9305c30a 100644 --- a/spec/lib/reports/orders_and_distributors_report_spec.rb +++ b/spec/lib/reports/orders_and_distributors_report_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Reporting::Reports::OrdersAndDistributors::Base do describe 'orders and distributors report' do subject { described_class.new nil } diff --git a/spec/lib/reports/orders_and_fulfillment/order_cycle_customer_totals_report_spec.rb b/spec/lib/reports/orders_and_fulfillment/order_cycle_customer_totals_report_spec.rb index 6a5de015be..892a592afe 100644 --- a/spec/lib/reports/orders_and_fulfillment/order_cycle_customer_totals_report_spec.rb +++ b/spec/lib/reports/orders_and_fulfillment/order_cycle_customer_totals_report_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Reporting::Reports::OrdersAndFulfillment::OrderCycleCustomerTotals do let!(:distributor) { create(:distributor_enterprise, name: "Apple Market") } let!(:customer) { create(:customer, enterprise: distributor, user:, code: "JHN") } @@ -30,7 +28,7 @@ RSpec.describe Reporting::Reports::OrdersAndFulfillment::OrderCycleCustomerTotal completed_at: order_date, ).tap do |order| order.line_items[0].variant.supplier.update(name: "Apple Farmer") - order.line_items[0].product.update(name: "Apples") + order.line_items[0].update(product_name: "Apples") order.line_items[0].variant.update(sku: "APP") end end diff --git a/spec/lib/reports/orders_and_fulfillment/order_cycle_distributor_totals_by_supplier_report_spec.rb b/spec/lib/reports/orders_and_fulfillment/order_cycle_distributor_totals_by_supplier_report_spec.rb index 094e9a5c72..d28fe6673e 100644 --- a/spec/lib/reports/orders_and_fulfillment/order_cycle_distributor_totals_by_supplier_report_spec.rb +++ b/spec/lib/reports/orders_and_fulfillment/order_cycle_distributor_totals_by_supplier_report_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Reporting module Reports module OrdersAndFulfillment diff --git a/spec/lib/reports/orders_and_fulfillment/order_cycle_supplier_totals_by_distributor_report_spec.rb b/spec/lib/reports/orders_and_fulfillment/order_cycle_supplier_totals_by_distributor_report_spec.rb index 8ab11c88c8..cc1fe3c826 100644 --- a/spec/lib/reports/orders_and_fulfillment/order_cycle_supplier_totals_by_distributor_report_spec.rb +++ b/spec/lib/reports/orders_and_fulfillment/order_cycle_supplier_totals_by_distributor_report_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Reporting module Reports module OrdersAndFulfillment @@ -34,9 +32,10 @@ module Reporting end it "lists products sorted by name" do - order.line_items[0].variant.product.update(name: "Cucumber") - order.line_items[1].variant.product.update(name: "Apple") - order.line_items[2].variant.product.update(name: "Banane") + order.line_items[0].update(product_name: "Cucumber") + order.line_items[1].update(product_name: "Apple") + order.line_items[2].update(product_name: "Banane") + product_names = report.rows.map(&:product).compact_blank expect(product_names).to eq(["Apple", "Banane", "Cucumber"]) end @@ -81,9 +80,9 @@ module Reporting end it "lists products sorted by name" do - order.line_items[0].variant.product.update(name: "Cucumber") - order.line_items[1].variant.product.update(name: "Apple") - order.line_items[2].variant.product.update(name: "Banane") + order.line_items[0].update(product_name: "Cucumber") + order.line_items[1].update(product_name: "Apple") + order.line_items[2].update(product_name: "Banane") product_names = report.rows.map(&:product).compact_blank # only the supplier's variant is displayed expect(product_names).to include("Cucumber") diff --git a/spec/lib/reports/orders_and_fulfillment/orders_cycle_supplier_totals_report_spec.rb b/spec/lib/reports/orders_and_fulfillment/orders_cycle_supplier_totals_report_spec.rb index 38cedaa015..a76c4448fc 100644 --- a/spec/lib/reports/orders_and_fulfillment/orders_cycle_supplier_totals_report_spec.rb +++ b/spec/lib/reports/orders_and_fulfillment/orders_cycle_supplier_totals_report_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Reporting::Reports::OrdersAndFulfillment::OrderCycleSupplierTotals do let!(:distributor) { create(:distributor_enterprise) } @@ -25,14 +23,14 @@ RSpec.describe Reporting::Reports::OrdersAndFulfillment::OrderCycleSupplierTotal report.table_rows end + let(:item) { order.line_items.first } + let(:variant) { item.variant } + it "generates the report" do expect(report_table.length).to eq(1) end describe "total_units column" do - let(:item) { order.line_items.first } - let(:variant) { item.variant } - it "contains a sum of total items" do variant.update!(variant_unit: "items", variant_unit_name: "bottle", unit_value: 6) # six-pack item.update!(final_weight_volume: nil) # reset unit information @@ -180,4 +178,21 @@ RSpec.describe Reporting::Reports::OrdersAndFulfillment::OrderCycleSupplierTotal expect(last_column_title).to eq "SKU" expect(first_row_last_column_value).to eq variant_sku end + + it "doesn't update product name in report" do + variant_sku = order.line_items.first.variant.sku + last_column_title = table_headers[-3] + first_row_last_column_value = report_table.first[-3] + + expect(last_column_title).to eq "SKU" + expect(first_row_last_column_value).to eq variant_sku + + expect(report_table.first[1]).to eq(variant.product.name) + product_name = variant.product.name + variant.product.update(name: "#{product_name} Updated") + + new_report = described_class.new(current_user, params) + + expect(new_report.table_rows.first[1]).to eq(product_name) + end end diff --git a/spec/lib/reports/packing/packing_report_spec.rb b/spec/lib/reports/packing/packing_report_spec.rb index 62188b764e..cef1a24dad 100644 --- a/spec/lib/reports/packing/packing_report_spec.rb +++ b/spec/lib/reports/packing/packing_report_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe "Packing Reports" do describe "fetching orders" do let(:distributor) { create(:distributor_enterprise) } diff --git a/spec/lib/reports/products_and_inventory_report_spec.rb b/spec/lib/reports/products_and_inventory_report_spec.rb index 5ecbc95cb3..0c231601fa 100644 --- a/spec/lib/reports/products_and_inventory_report_spec.rb +++ b/spec/lib/reports/products_and_inventory_report_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Reporting::Reports::ProductsAndInventory::Base do context "As a site admin" do let(:user) { create(:admin_user) } diff --git a/spec/lib/reports/report_loader_spec.rb b/spec/lib/reports/report_loader_spec.rb index a7a1247ddd..bf925537af 100644 --- a/spec/lib/reports/report_loader_spec.rb +++ b/spec/lib/reports/report_loader_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Reporting module Reports module Bananas diff --git a/spec/lib/reports/report_metadata_builder_spec.rb b/spec/lib/reports/report_metadata_builder_spec.rb index 2c6b77759a..36ee6d3ddc 100644 --- a/spec/lib/reports/report_metadata_builder_spec.rb +++ b/spec/lib/reports/report_metadata_builder_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Reporting::ReportMetadataBuilder do let(:from_key) { described_class::DATE_FROM_KEYS.first } let(:to_key) { described_class::DATE_TO_KEYS.first } diff --git a/spec/lib/reports/report_renderer_spec.rb b/spec/lib/reports/report_renderer_spec.rb index 888f799522..f88bcd7552 100644 --- a/spec/lib/reports/report_renderer_spec.rb +++ b/spec/lib/reports/report_renderer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Reporting::ReportRenderer do let(:data) { [ diff --git a/spec/lib/reports/report_spec.rb b/spec/lib/reports/report_spec.rb index 22a725f99c..435d7c9a6e 100644 --- a/spec/lib/reports/report_spec.rb +++ b/spec/lib/reports/report_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - # rubocop:disable Metrics/ModuleLength module Reporting RSpec.describe ReportTemplate do diff --git a/spec/lib/reports/sales_tax_report_spec.rb b/spec/lib/reports/sales_tax_report_spec.rb index 501ad972e9..3b54af5e39 100644 --- a/spec/lib/reports/sales_tax_report_spec.rb +++ b/spec/lib/reports/sales_tax_report_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Reporting module Reports module SalesTax diff --git a/spec/lib/reports/sales_tax_totals_by_order_spec.rb b/spec/lib/reports/sales_tax_totals_by_order_spec.rb index e8003da3a9..c8227acc6b 100644 --- a/spec/lib/reports/sales_tax_totals_by_order_spec.rb +++ b/spec/lib/reports/sales_tax_totals_by_order_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe "Reporting::Reports::SalesTax::SalesTaxTotalsByOrder" do subject(:report) { Reporting::Reports::SalesTax::SalesTaxTotalsByOrder.new(user, {}) } diff --git a/spec/lib/reports/suppliers/pay_your_suppliers_report_spec.rb b/spec/lib/reports/suppliers/pay_your_suppliers_report_spec.rb index fbfb56df54..f21df629d0 100644 --- a/spec/lib/reports/suppliers/pay_your_suppliers_report_spec.rb +++ b/spec/lib/reports/suppliers/pay_your_suppliers_report_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "Pay Your Suppliers Report" do let(:hub) { create(:distributor_enterprise) } let(:order_cycle) { create(:open_order_cycle, distributors: [hub]) } diff --git a/spec/lib/reports/users_and_enterprises_report_spec.rb b/spec/lib/reports/users_and_enterprises_report_spec.rb index 6c1fb6eebe..6cb909ad27 100644 --- a/spec/lib/reports/users_and_enterprises_report_spec.rb +++ b/spec/lib/reports/users_and_enterprises_report_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Reporting::Reports::UsersAndEnterprises::Base do describe "query_result" do let!(:owners_and_enterprises) { double(:owners_and_enterprises) } diff --git a/spec/lib/reports/xero_invoices_report_spec.rb b/spec/lib/reports/xero_invoices_report_spec.rb index cddc30a7dd..9b19a7b69f 100644 --- a/spec/lib/reports/xero_invoices_report_spec.rb +++ b/spec/lib/reports/xero_invoices_report_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Reporting module Reports module XeroInvoices diff --git a/spec/lib/spree/core/environment_spec.rb b/spec/lib/spree/core/environment_spec.rb index 114a2f05ca..d960fe7177 100644 --- a/spec/lib/spree/core/environment_spec.rb +++ b/spec/lib/spree/core/environment_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Core::Environment do # Our version doesn't add any features we could test. # So we just check that our file is loaded correctly. diff --git a/spec/lib/spree/core/mail_settings_spec.rb b/spec/lib/spree/core/mail_settings_spec.rb index 29b4ef3e63..162c5ac1db 100644 --- a/spec/lib/spree/core/mail_settings_spec.rb +++ b/spec/lib/spree/core/mail_settings_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Core::MailSettings do context "overrides appplication defaults" do context "authentication method is login" do diff --git a/spec/lib/spree/core/product_duplicator_spec.rb b/spec/lib/spree/core/product_duplicator_spec.rb index e8163e961d..5f22636065 100644 --- a/spec/lib/spree/core/product_duplicator_spec.rb +++ b/spec/lib/spree/core/product_duplicator_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Core::ProductDuplicator do describe "unit" do let(:product) do diff --git a/spec/lib/spree/core/token_resource_spec.rb b/spec/lib/spree/core/token_resource_spec.rb index 1de0d25ea2..86f87e78d0 100644 --- a/spec/lib/spree/core/token_resource_spec.rb +++ b/spec/lib/spree/core/token_resource_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - # Its pretty difficult to test this module in isolation b/c it needs to work in conjunction # with an actual class that extends ActiveRecord::Base and has a corresponding table in the DB. # So we'll just test it using Order instead since it included the module. diff --git a/spec/lib/spree/localized_number_spec.rb b/spec/lib/spree/localized_number_spec.rb index 31ce979d91..45021dfa1d 100644 --- a/spec/lib/spree/localized_number_spec.rb +++ b/spec/lib/spree/localized_number_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'spree/localized_number' RSpec.describe Spree::LocalizedNumber do diff --git a/spec/lib/spree/money_spec.rb b/spec/lib/spree/money_spec.rb index a32d8576c6..1a70be5cd8 100644 --- a/spec/lib/spree/money_spec.rb +++ b/spec/lib/spree/money_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' - RSpec.describe Spree::Money do include PreferencesHelper diff --git a/spec/lib/stripe/account_connector_spec.rb b/spec/lib/stripe/account_connector_spec.rb index c399a620fe..55787236c3 100644 --- a/spec/lib/stripe/account_connector_spec.rb +++ b/spec/lib/stripe/account_connector_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'stripe/account_connector' require 'stripe/oauth' @@ -10,7 +9,7 @@ module Stripe let(:user) { create(:user) } let(:enterprise) { create(:enterprise) } let(:payload) { { "junk" => "Ssfs" } } - let(:state) { JWT.encode(payload, Openfoodnetwork::Application.config.secret_token) } + let(:state) { JWT.encode(payload, Rails.application.secret_key_base) } let(:params) { { "state" => state } } let(:connector) { AccountConnector.new(user, params) } diff --git a/spec/lib/stripe/authorize_response_patcher_spec.rb b/spec/lib/stripe/authorize_response_patcher_spec.rb index 56aac948f3..c734d74028 100644 --- a/spec/lib/stripe/authorize_response_patcher_spec.rb +++ b/spec/lib/stripe/authorize_response_patcher_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Stripe::AuthorizeResponsePatcher do describe "#call!" do subject(:patcher) { Stripe::AuthorizeResponsePatcher.new(response) } diff --git a/spec/lib/stripe/credit_card_cloner_spec.rb b/spec/lib/stripe/credit_card_cloner_spec.rb index 44acfb5373..f78e5d93c1 100644 --- a/spec/lib/stripe/credit_card_cloner_spec.rb +++ b/spec/lib/stripe/credit_card_cloner_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'stripe/credit_card_cloner' module Stripe diff --git a/spec/lib/stripe/credit_card_remover_spec.rb b/spec/lib/stripe/credit_card_remover_spec.rb index ebca8a2adf..15c0f26023 100644 --- a/spec/lib/stripe/credit_card_remover_spec.rb +++ b/spec/lib/stripe/credit_card_remover_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' require 'stripe/credit_card_remover' RSpec.describe Stripe::CreditCardRemover do diff --git a/spec/lib/stripe/payment_intent_validator_spec.rb b/spec/lib/stripe/payment_intent_validator_spec.rb index 1ff8e683bc..28c1b3374d 100644 --- a/spec/lib/stripe/payment_intent_validator_spec.rb +++ b/spec/lib/stripe/payment_intent_validator_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'stripe/payment_intent_validator' RSpec.describe Stripe::PaymentIntentValidator do diff --git a/spec/lib/stripe/profile_storer_spec.rb b/spec/lib/stripe/profile_storer_spec.rb index 972651ff2f..e188bebdbe 100644 --- a/spec/lib/stripe/profile_storer_spec.rb +++ b/spec/lib/stripe/profile_storer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Stripe RSpec.describe ProfileStorer do include StripeStubs diff --git a/spec/lib/stripe/webhook_handler_spec.rb b/spec/lib/stripe/webhook_handler_spec.rb index 8218f7fa61..485ce5d002 100644 --- a/spec/lib/stripe/webhook_handler_spec.rb +++ b/spec/lib/stripe/webhook_handler_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'stripe/webhook_handler' module Stripe diff --git a/spec/lib/tasks/data/remove_transient_data_spec.rb b/spec/lib/tasks/data/remove_transient_data_spec.rb index e568453da4..83e2b21cec 100644 --- a/spec/lib/tasks/data/remove_transient_data_spec.rb +++ b/spec/lib/tasks/data/remove_transient_data_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'tasks/data/remove_transient_data' RSpec.describe RemoveTransientData do diff --git a/spec/lib/tasks/data/truncate_data_rake_spec.rb b/spec/lib/tasks/data/truncate_data_rake_spec.rb index 0df9bc3ca8..d4c3a30369 100644 --- a/spec/lib/tasks/data/truncate_data_rake_spec.rb +++ b/spec/lib/tasks/data/truncate_data_rake_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe 'truncate_data.rake' do describe ':truncate' do context 'when months_to_keep is specified' do diff --git a/spec/lib/tasks/data/truncate_data_spec.rb b/spec/lib/tasks/data/truncate_data_spec.rb index e799ec3a02..a670feaea2 100644 --- a/spec/lib/tasks/data/truncate_data_spec.rb +++ b/spec/lib/tasks/data/truncate_data_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'tasks/data/truncate_data' RSpec.describe TruncateData do diff --git a/spec/lib/tasks/enterprises_rake_spec.rb b/spec/lib/tasks/enterprises_rake_spec.rb index 5c60e7efb6..5c9ede616a 100644 --- a/spec/lib/tasks/enterprises_rake_spec.rb +++ b/spec/lib/tasks/enterprises_rake_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe 'enterprises.rake' do describe ':remove_enterprise' do context 'when the enterprises exists' do diff --git a/spec/lib/tasks/import_product_images_rake_spec.rb b/spec/lib/tasks/import_product_images_rake_spec.rb index 244910f110..edc5e554ee 100644 --- a/spec/lib/tasks/import_product_images_rake_spec.rb +++ b/spec/lib/tasks/import_product_images_rake_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe 'ofn:import:product_images' do describe 'task' do context "filename is blank" do diff --git a/spec/lib/tasks/reset_spec.rb b/spec/lib/tasks/reset_spec.rb index 8212722613..edb80dfb3e 100644 --- a/spec/lib/tasks/reset_spec.rb +++ b/spec/lib/tasks/reset_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe "reset.rake" do it "clears job queues" do job_class = Class.new do diff --git a/spec/lib/tasks/sample_data_rake_spec.rb b/spec/lib/tasks/sample_data_rake_spec.rb index 1da5ee4ccd..b9a6b74ab4 100644 --- a/spec/lib/tasks/sample_data_rake_spec.rb +++ b/spec/lib/tasks/sample_data_rake_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe 'sample_data.rake' do before do # Create seed data required by the sample data. diff --git a/spec/lib/tasks/simplecov_spec.rb b/spec/lib/tasks/simplecov_spec.rb index 6cac5d58d4..4012c30032 100644 --- a/spec/lib/tasks/simplecov_spec.rb +++ b/spec/lib/tasks/simplecov_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe "simplecov.rake" do describe "simplecov:collate_results" do context "when there are reports to merge" do diff --git a/spec/lib/tasks/users_rake_spec.rb b/spec/lib/tasks/users_rake_spec.rb index 0de7f80daf..eb780d7e59 100644 --- a/spec/lib/tasks/users_rake_spec.rb +++ b/spec/lib/tasks/users_rake_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'rake' RSpec.describe 'users.rake' do diff --git a/spec/mailers/backorder_mailer_spec.rb b/spec/mailers/backorder_mailer_spec.rb index 4c6858d9a9..7f4fddc5bb 100644 --- a/spec/mailers/backorder_mailer_spec.rb +++ b/spec/mailers/backorder_mailer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe BackorderMailer do let(:order) { create(:completed_order_with_totals) } diff --git a/spec/mailers/enterprise_mailer_spec.rb b/spec/mailers/enterprise_mailer_spec.rb index 25acda034a..5c547ea66c 100644 --- a/spec/mailers/enterprise_mailer_spec.rb +++ b/spec/mailers/enterprise_mailer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe EnterpriseMailer do let(:enterprise) { build(:enterprise, name: "Fred's Farm") } let(:order) { build(:order_with_distributor) } diff --git a/spec/mailers/mail_interceptor_spec.rb b/spec/mailers/mail_interceptor_spec.rb index 510cc3deea..9c36b6a71e 100644 --- a/spec/mailers/mail_interceptor_spec.rb +++ b/spec/mailers/mail_interceptor_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - # Here we use the OrderMailer as a way to test the mail interceptor. RSpec.describe Spree::OrderMailer do let(:order) do diff --git a/spec/mailers/order_mailer_spec.rb b/spec/mailers/order_mailer_spec.rb index 0bc416fb1e..908ee6272e 100644 --- a/spec/mailers/order_mailer_spec.rb +++ b/spec/mailers/order_mailer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::OrderMailer do describe '#confirm_email_for_customer' do subject(:mail) { described_class.confirm_email_for_customer(order) } diff --git a/spec/mailers/payment_mailer_spec.rb b/spec/mailers/payment_mailer_spec.rb index f36ec9ea6c..dcce998d6e 100644 --- a/spec/mailers/payment_mailer_spec.rb +++ b/spec/mailers/payment_mailer_spec.rb @@ -1,10 +1,7 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe PaymentMailer do describe '#payment_mailer' do - let(:enterprise) { create(:enterprise) } let(:payment_method) { create(:payment_method, distributors: [order.distributor]) } @@ -17,7 +14,8 @@ RSpec.describe PaymentMailer do subject(:mail) { described_class.authorize_payment(payment) } it "includes the distributor's name in the subject" do - expect(mail.subject).to include("authorize your payment to #{order.distributor.name}") + order.distributor.name = "Fennel Farmer" + expect(mail.subject).to include("authorize your payment to Fennel Farmer") end it "sets a reply-to of the customer email" do @@ -52,4 +50,17 @@ RSpec.describe PaymentMailer do end end end + + describe "#refund_available" do + it "tells the user to accept a refund" do + payment = build(:payment) + payment.order.distributor = build(:enterprise, name: "Carrot Castle") + link = "https://taler.example.com/order/1" + mail = PaymentMailer.refund_available(payment, link) + + expect(mail.subject).to eq "Refund from Carrot Castle" + expect(mail.body).to include "Your payment of $45.75 to Carrot Castle is being refunded." + expect(mail.body).to include link + end + end end diff --git a/spec/mailers/producer_mailer_spec.rb b/spec/mailers/producer_mailer_spec.rb index 27711d711b..abe328648a 100644 --- a/spec/mailers/producer_mailer_spec.rb +++ b/spec/mailers/producer_mailer_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'yaml' RSpec.describe ProducerMailer do diff --git a/spec/mailers/report_mailer_spec.rb b/spec/mailers/report_mailer_spec.rb index 2505825373..2e51b7356c 100644 --- a/spec/mailers/report_mailer_spec.rb +++ b/spec/mailers/report_mailer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ReportMailer do describe "#report_ready" do subject(:mail) { diff --git a/spec/mailers/shipment_mailer_spec.rb b/spec/mailers/shipment_mailer_spec.rb index c1942b722f..e910c37521 100644 --- a/spec/mailers/shipment_mailer_spec.rb +++ b/spec/mailers/shipment_mailer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::ShipmentMailer do let(:order) { build(:order_with_distributor) } diff --git a/spec/mailers/subscription_mailer_spec.rb b/spec/mailers/subscription_mailer_spec.rb index bdcb32ffdc..9f5fd6754e 100644 --- a/spec/mailers/subscription_mailer_spec.rb +++ b/spec/mailers/subscription_mailer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe SubscriptionMailer do include ActionView::Helpers::SanitizeHelper diff --git a/spec/mailers/test_mailer_spec.rb b/spec/mailers/test_mailer_spec.rb index 314be75f74..bebad2a36e 100644 --- a/spec/mailers/test_mailer_spec.rb +++ b/spec/mailers/test_mailer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::TestMailer do subject(:mail) { described_class.test_email(order) } let(:user) { create(:user) } diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb index 29d092cecb..f9eac0f52a 100644 --- a/spec/mailers/user_mailer_spec.rb +++ b/spec/mailers/user_mailer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::UserMailer do let(:user) { build(:user) } let(:order) { build(:order_with_totals_and_distribution) } diff --git a/spec/migrations/20240213044159_copy_oidc_data_to_oidc_accounts_spec.rb b/spec/migrations/20240213044159_copy_oidc_data_to_oidc_accounts_spec.rb index 8a134c8b59..4e3ed64a3b 100644 --- a/spec/migrations/20240213044159_copy_oidc_data_to_oidc_accounts_spec.rb +++ b/spec/migrations/20240213044159_copy_oidc_data_to_oidc_accounts_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require 'spec_helper' + require_relative '../../db/migrate/20240213044159_copy_oidc_data_to_oidc_accounts' RSpec.describe CopyOidcDataToOidcAccounts do diff --git a/spec/migrations/20240502035220_update_n8n_url_spec.rb b/spec/migrations/20240502035220_update_n8n_url_spec.rb index 2c318dcf18..94dcf8c505 100644 --- a/spec/migrations/20240502035220_update_n8n_url_spec.rb +++ b/spec/migrations/20240502035220_update_n8n_url_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require 'spec_helper' + require_relative '../../db/migrate/20240502035220_update_n8n_url' RSpec.describe UpdateN8nUrl do diff --git a/spec/migrations/20240510033206_sanitize_enterprise_long_description_spec.rb b/spec/migrations/20240510033206_sanitize_enterprise_long_description_spec.rb index ee3d7b57ae..67c977582d 100644 --- a/spec/migrations/20240510033206_sanitize_enterprise_long_description_spec.rb +++ b/spec/migrations/20240510033206_sanitize_enterprise_long_description_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require 'spec_helper' + require_relative '../../db/migrate/20240510033206_sanitize_enterprise_long_description' RSpec.describe SanitizeEnterpriseLongDescription do diff --git a/spec/migrations/20241011071014_update_item_name_to_product_in_od_report_spec.rb b/spec/migrations/20241011071014_update_item_name_to_product_in_od_report_spec.rb index b791b140a0..e404e04c7a 100644 --- a/spec/migrations/20241011071014_update_item_name_to_product_in_od_report_spec.rb +++ b/spec/migrations/20241011071014_update_item_name_to_product_in_od_report_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require 'spec_helper' + require_relative '../../db/migrate/20241011071014_update_item_name_to_product_in_od_report' RSpec.describe UpdateItemNameToProductInOdReport, type: :migration do diff --git a/spec/migrations/20241023054951_sanitize_html_attributes_spec.rb b/spec/migrations/20241023054951_sanitize_html_attributes_spec.rb index d183cc4d1d..af8def5191 100644 --- a/spec/migrations/20241023054951_sanitize_html_attributes_spec.rb +++ b/spec/migrations/20241023054951_sanitize_html_attributes_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require 'spec_helper' + require_relative '../../db/migrate/20241023054951_sanitize_html_attributes' RSpec.describe SanitizeHtmlAttributes do diff --git a/spec/migrations/20241030025540_copy_subject_on_semantic_links_spec.rb b/spec/migrations/20241030025540_copy_subject_on_semantic_links_spec.rb index 6ab69e950a..87c2d7b5e1 100644 --- a/spec/migrations/20241030025540_copy_subject_on_semantic_links_spec.rb +++ b/spec/migrations/20241030025540_copy_subject_on_semantic_links_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require 'spec_helper' + require_relative '../../db/migrate/20241030025540_copy_subject_on_semantic_links' RSpec.describe CopySubjectOnSemanticLinks do diff --git a/spec/migrations/convert_stripe_connect_to_stripe_sca_spec.rb b/spec/migrations/convert_stripe_connect_to_stripe_sca_spec.rb index f107bb2b66..c35179862d 100644 --- a/spec/migrations/convert_stripe_connect_to_stripe_sca_spec.rb +++ b/spec/migrations/convert_stripe_connect_to_stripe_sca_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require_relative '../../db/migrate/20220118053107_convert_stripe_connect_to_stripe_sca' module Spree diff --git a/spec/migrations/migrate_admin_tax_amounts_spec.rb b/spec/migrations/migrate_admin_tax_amounts_spec.rb index 41250be1cc..81ddaaf1c8 100644 --- a/spec/migrations/migrate_admin_tax_amounts_spec.rb +++ b/spec/migrations/migrate_admin_tax_amounts_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require_relative '../../db/migrate/20210617203927_migrate_admin_tax_amounts' RSpec.describe MigrateAdminTaxAmounts do diff --git a/spec/migrations/migrate_customer_names_spec.rb b/spec/migrations/migrate_customer_names_spec.rb index 9338e0e9a8..412ac95d2e 100644 --- a/spec/migrations/migrate_customer_names_spec.rb +++ b/spec/migrations/migrate_customer_names_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require_relative '../../db/migrate/20211027140313_migrate_customer_names' RSpec.describe MigrateCustomerNames do diff --git a/spec/migrations/migrate_cvv_message_to_redirect_auth_url.rb b/spec/migrations/migrate_cvv_message_to_redirect_auth_url.rb index 02682ac80b..35d00b730c 100644 --- a/spec/migrations/migrate_cvv_message_to_redirect_auth_url.rb +++ b/spec/migrations/migrate_cvv_message_to_redirect_auth_url.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require_relative '../../db/migrate/20250827205335_migrate_cvv_message_to_redirect_auth_url' RSpec.describe MigrateCvvMessageToRedirectAuthUrl, type: :migration do diff --git a/spec/migrations/update_enterprise_instagram_links_spec.rb b/spec/migrations/update_enterprise_instagram_links_spec.rb index 6dc5ec5ef3..06f2fa7eed 100644 --- a/spec/migrations/update_enterprise_instagram_links_spec.rb +++ b/spec/migrations/update_enterprise_instagram_links_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - require Rails.root.join('db/migrate/20221208150521_update_enterprise_instagram_links.rb') RSpec.describe UpdateEnterpriseInstagramLinks do diff --git a/spec/models/adjustment_metadata_spec.rb b/spec/models/adjustment_metadata_spec.rb index 9f4cd157b3..50a749bc03 100644 --- a/spec/models/adjustment_metadata_spec.rb +++ b/spec/models/adjustment_metadata_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe AdjustmentMetadata do it { is_expected.to belong_to(:adjustment).required } it { is_expected.to belong_to(:enterprise).required } diff --git a/spec/models/application_record_spec.rb b/spec/models/application_record_spec.rb new file mode 100644 index 0000000000..05e6788a6b --- /dev/null +++ b/spec/models/application_record_spec.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +RSpec.describe ApplicationRecord do + describe ".image_service" do + subject { described_class.image_service } + + it { is_expected.to eq(:local) } + + context "with a S3 bucket defined" do + before do + allow(ENV).to receive(:[]).with("S3_BUCKET").and_return("test-bucket") + allow(ENV).to receive(:[]).with("S3_ENDPOINT").and_return(nil) + end + + it { is_expected.to eq(:amazon_public) } + + context "with a S3 endpoint defined" do + before do + allow(ENV).to receive(:[]).with("S3_ENDPOINT") + .and_return("https://s3-compatible-alternative.com") + end + + it { is_expected.to eq(:s3_compatible_storage_public) } + end + end + end +end diff --git a/spec/models/calculator/flat_percent_item_total_spec.rb b/spec/models/calculator/flat_percent_item_total_spec.rb index 8ffb10918a..2553d0f8fa 100644 --- a/spec/models/calculator/flat_percent_item_total_spec.rb +++ b/spec/models/calculator/flat_percent_item_total_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Calculator::FlatPercentItemTotal do let(:calculator) { Calculator::FlatPercentItemTotal.new } let(:line_item) { build_stubbed(:line_item, price: 10, quantity: 1) } diff --git a/spec/models/calculator/flat_percent_per_item_spec.rb b/spec/models/calculator/flat_percent_per_item_spec.rb index c8efad27a6..4d57f6edfc 100644 --- a/spec/models/calculator/flat_percent_per_item_spec.rb +++ b/spec/models/calculator/flat_percent_per_item_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Calculator::FlatPercentPerItem do let(:calculator) { Calculator::FlatPercentPerItem.new preferred_flat_percent: 20 } diff --git a/spec/models/calculator/flat_rate_spec.rb b/spec/models/calculator/flat_rate_spec.rb index 6b8ced68a6..c369be1f0b 100644 --- a/spec/models/calculator/flat_rate_spec.rb +++ b/spec/models/calculator/flat_rate_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Calculator::FlatRate do let(:calculator) { Calculator::FlatRate.new } diff --git a/spec/models/calculator/flexi_rate_spec.rb b/spec/models/calculator/flexi_rate_spec.rb index 7129d1555e..5282b69de0 100644 --- a/spec/models/calculator/flexi_rate_spec.rb +++ b/spec/models/calculator/flexi_rate_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Calculator::FlexiRate do let(:line_item) { build_stubbed(:line_item, quantity:) } let(:calculator) do diff --git a/spec/models/calculator/per_item_spec.rb b/spec/models/calculator/per_item_spec.rb index 78e324290a..94c843f3ef 100644 --- a/spec/models/calculator/per_item_spec.rb +++ b/spec/models/calculator/per_item_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Calculator::PerItem do let(:calculator) { Calculator::PerItem.new(preferred_amount: 10) } let(:shipping_calculable) { double(:calculable) } diff --git a/spec/models/calculator/price_sack_spec.rb b/spec/models/calculator/price_sack_spec.rb index 229f6b9cbf..633b0317f3 100644 --- a/spec/models/calculator/price_sack_spec.rb +++ b/spec/models/calculator/price_sack_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Calculator::PriceSack do let(:calculator) do calculator = Calculator::PriceSack.new diff --git a/spec/models/calculator/weight_spec.rb b/spec/models/calculator/weight_spec.rb index 0ab084057b..7b1449d22a 100644 --- a/spec/models/calculator/weight_spec.rb +++ b/spec/models/calculator/weight_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Calculator::Weight do it "computes shipping cost for an order by total weight" do variant1 = build_stubbed(:variant, unit_value: 10_000) diff --git a/spec/models/column_preference_spec.rb b/spec/models/column_preference_spec.rb index b043bd53db..1940924cec 100644 --- a/spec/models/column_preference_spec.rb +++ b/spec/models/column_preference_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ColumnPreference do subject { ColumnPreference.new( diff --git a/spec/models/concerns/balance_spec.rb b/spec/models/concerns/balance_spec.rb index dcf82dd601..1ab0b6dadb 100644 --- a/spec/models/concerns/balance_spec.rb +++ b/spec/models/concerns/balance_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Balance do context "#new_outstanding_balance" do context 'when orders are in cart state' do diff --git a/spec/models/concerns/calculated_adjustments_spec.rb b/spec/models/concerns/calculated_adjustments_spec.rb index 01eda5fbd1..cf6d210e5a 100644 --- a/spec/models/concerns/calculated_adjustments_spec.rb +++ b/spec/models/concerns/calculated_adjustments_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - # Its pretty difficult to test this module in isolation b/c it needs to work in conjunction # with an actual class that extends ActiveRecord::Base and has a corresponding table in the DB. # So we'll just test it using Order and ShippingMethod. These classes are including the module. diff --git a/spec/models/concerns/order_shipment_spec.rb b/spec/models/concerns/order_shipment_spec.rb index fe5843ebf3..23e35d2c9b 100644 --- a/spec/models/concerns/order_shipment_spec.rb +++ b/spec/models/concerns/order_shipment_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderShipment do let(:order) { create(:order) } diff --git a/spec/models/concerns/variant_stock_spec.rb b/spec/models/concerns/variant_stock_spec.rb index 26f650d86c..fc574e776b 100644 --- a/spec/models/concerns/variant_stock_spec.rb +++ b/spec/models/concerns/variant_stock_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe VariantStock do let(:variant) { create(:variant) } diff --git a/spec/models/connected_app_spec.rb b/spec/models/connected_app_spec.rb index b8d5749443..d4e057bc65 100644 --- a/spec/models/connected_app_spec.rb +++ b/spec/models/connected_app_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ConnectedApp do it { is_expected.to belong_to :enterprise } diff --git a/spec/models/connected_apps/vine_spec.rb b/spec/models/connected_apps/vine_spec.rb index c3a2e8cf44..85e4af0dca 100644 --- a/spec/models/connected_apps/vine_spec.rb +++ b/spec/models/connected_apps/vine_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe ConnectedApps::Vine do subject(:connected_app) { ConnectedApps::Vine.new(enterprise: create(:enterprise)) } diff --git a/spec/models/content_configuration_spec.rb b/spec/models/content_configuration_spec.rb index 4b29dd4904..42a74b2eea 100644 --- a/spec/models/content_configuration_spec.rb +++ b/spec/models/content_configuration_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ContentConfiguration do describe "default logos and home_hero" do it "sets a default url with existing image" do diff --git a/spec/models/coordinator_fee_spec.rb b/spec/models/coordinator_fee_spec.rb index 980935c0a9..38822215a1 100644 --- a/spec/models/coordinator_fee_spec.rb +++ b/spec/models/coordinator_fee_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe CoordinatorFee do it { is_expected.to belong_to(:order_cycle).required } it { is_expected.to belong_to(:enterprise_fee).required } diff --git a/spec/models/custom_tab_spec.rb b/spec/models/custom_tab_spec.rb index 7ee37614cf..195c6d3305 100644 --- a/spec/models/custom_tab_spec.rb +++ b/spec/models/custom_tab_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe CustomTab do describe 'associations' do it { is_expected.to belong_to(:enterprise).required } diff --git a/spec/models/customer_spec.rb b/spec/models/customer_spec.rb index 4aaf749067..c79bd269f8 100644 --- a/spec/models/customer_spec.rb +++ b/spec/models/customer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' - RSpec.describe Customer do it { is_expected.to belong_to(:enterprise).required } it { is_expected.to belong_to(:user).optional } diff --git a/spec/models/database_spec.rb b/spec/models/database_spec.rb index 2994085c97..df6fc91028 100644 --- a/spec/models/database_spec.rb +++ b/spec/models/database_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe "Database" do let(:models_todo) { ["Spree::CreditCard", "Spree::Adjustment", diff --git a/spec/models/dfc_permission_spec.rb b/spec/models/dfc_permission_spec.rb index d91c166cf0..5e3d64f41e 100644 --- a/spec/models/dfc_permission_spec.rb +++ b/spec/models/dfc_permission_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe DfcPermission do it { is_expected.to belong_to :user } it { is_expected.to belong_to :enterprise } diff --git a/spec/models/enterprise_caching_spec.rb b/spec/models/enterprise_caching_spec.rb index 38c1d8409a..6acc56e23b 100644 --- a/spec/models/enterprise_caching_spec.rb +++ b/spec/models/enterprise_caching_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Enterprise do context "key-based caching invalidation" do describe "is touched when a(n)" do diff --git a/spec/models/enterprise_fee_adjustments_spec.rb b/spec/models/enterprise_fee_adjustments_spec.rb index df281deeba..78bf644dab 100644 --- a/spec/models/enterprise_fee_adjustments_spec.rb +++ b/spec/models/enterprise_fee_adjustments_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe EnterpriseFeeAdjustments do let(:tax_rate) { create(:tax_rate, amount: 0.1) } let(:line_item) { create(:line_item) } diff --git a/spec/models/enterprise_fee_spec.rb b/spec/models/enterprise_fee_spec.rb index fac578eca2..5c0462ffde 100644 --- a/spec/models/enterprise_fee_spec.rb +++ b/spec/models/enterprise_fee_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe EnterpriseFee do describe "associations" do it { is_expected.to belong_to(:enterprise).required } diff --git a/spec/models/enterprise_group_spec.rb b/spec/models/enterprise_group_spec.rb index 6ce1aa856f..49f411d8e9 100644 --- a/spec/models/enterprise_group_spec.rb +++ b/spec/models/enterprise_group_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' - RSpec.describe EnterpriseGroup do describe "associations" do subject { build(:enterprise_group) } diff --git a/spec/models/enterprise_relationship_spec.rb b/spec/models/enterprise_relationship_spec.rb index d4d9dbd2c7..a5e08817f8 100644 --- a/spec/models/enterprise_relationship_spec.rb +++ b/spec/models/enterprise_relationship_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe EnterpriseRelationship do describe "scopes" do let(:e1) { create(:enterprise, name: 'A') } diff --git a/spec/models/enterprise_spec.rb b/spec/models/enterprise_spec.rb index f53e72b021..9deee6ddff 100644 --- a/spec/models/enterprise_spec.rb +++ b/spec/models/enterprise_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Enterprise do describe "sending emails" do describe "on creation" do @@ -396,24 +394,8 @@ RSpec.describe Enterprise do let(:content_type) { 'image/png' } before do - blob = instance_double( - "ActiveStorage::Blob", - filename: ActiveStorage::Filename.new('white-label-logo.png'), - content_type:, - byte_size: 1024 - ) - - # InstanceDouble is not working for attachment case as the blob method is not yet defined - # on instantiation. - attachment = double( - "ActiveStorage::Attached::One", - blank?: false, - attached?: true, - blob: - ) - - allow(enterprise) - .to receive(:white_label_logo).and_return(attachment) + blob = Rack::Test::UploadedFile.new('spec/fixtures/files/logo.png', content_type) + enterprise.white_label_logo.attach(blob) end context 'when the file attached is a PNG image' do @@ -424,6 +406,12 @@ RSpec.describe Enterprise do context 'when the file attached is a BMP image' do let(:content_type) { 'image/bmp' } + + before do + blob = Rack::Test::UploadedFile.new('spec/fixtures/files/logo.bmp', content_type) + enterprise.white_label_logo.attach(blob) + end + it 'is not valid' do expect(enterprise).not_to be_valid end diff --git a/spec/models/exchange_spec.rb b/spec/models/exchange_spec.rb index 2377e3618e..f71a94e0f8 100644 --- a/spec/models/exchange_spec.rb +++ b/spec/models/exchange_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Exchange do it { is_expected.to have_many :semantic_links } diff --git a/spec/models/invoice/data_presenter/line_item_spec.rb b/spec/models/invoice/data_presenter/line_item_spec.rb index 81abe073bd..f3fc34daf8 100644 --- a/spec/models/invoice/data_presenter/line_item_spec.rb +++ b/spec/models/invoice/data_presenter/line_item_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Invoice::DataPresenter::LineItem do subject(:presenter) { described_class.new(data) } diff --git a/spec/models/invoice/data_presenter_spec.rb b/spec/models/invoice/data_presenter_spec.rb index 4c76cb2e4e..3dbcbb374a 100644 --- a/spec/models/invoice/data_presenter_spec.rb +++ b/spec/models/invoice/data_presenter_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Invoice::DataPresenter do context "#display_date" do let(:invoice) { double(:invoice, date: '2023-08-01') } diff --git a/spec/models/invoice_spec.rb b/spec/models/invoice_spec.rb index 35b8aab258..146027df12 100644 --- a/spec/models/invoice_spec.rb +++ b/spec/models/invoice_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Invoice do let(:distributor) { create(:distributor_enterprise) } let(:order) { create(:order, :with_line_item, :completed, distributor:) } diff --git a/spec/models/oidc_account_spec.rb b/spec/models/oidc_account_spec.rb index 7ce379d299..19cf656d9c 100644 --- a/spec/models/oidc_account_spec.rb +++ b/spec/models/oidc_account_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OidcAccount do describe "associations and validations" do subject { diff --git a/spec/models/order_balance_spec.rb b/spec/models/order_balance_spec.rb index 7e3247900f..6c6d2cca27 100644 --- a/spec/models/order_balance_spec.rb +++ b/spec/models/order_balance_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderBalance do subject(:order_balance) { described_class.new(order) } let(:order) { build(:order) } diff --git a/spec/models/order_cycle_spec.rb b/spec/models/order_cycle_spec.rb index e10d404027..2cc3b3bb52 100644 --- a/spec/models/order_cycle_spec.rb +++ b/spec/models/order_cycle_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderCycle do it "should be valid when built from factory" do expect(build(:simple_order_cycle)).to be_valid diff --git a/spec/models/product_import/entry_processor_spec.rb b/spec/models/product_import/entry_processor_spec.rb index 13022d2207..071a744931 100644 --- a/spec/models/product_import/entry_processor_spec.rb +++ b/spec/models/product_import/entry_processor_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ProductImport::EntryProcessor do let(:importer) { double(:importer) } let(:validator) { double(:validator) } diff --git a/spec/models/product_import/entry_validator_spec.rb b/spec/models/product_import/entry_validator_spec.rb index 6583dcfe30..196eb66f87 100644 --- a/spec/models/product_import/entry_validator_spec.rb +++ b/spec/models/product_import/entry_validator_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ProductImport::EntryValidator do let(:current_user) { double(:current_user) } let(:import_time) { double(:import_time) } diff --git a/spec/models/product_import/inventory_reset_strategy_spec.rb b/spec/models/product_import/inventory_reset_strategy_spec.rb index d7e6a7abc7..039ec59b5d 100644 --- a/spec/models/product_import/inventory_reset_strategy_spec.rb +++ b/spec/models/product_import/inventory_reset_strategy_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ProductImport::InventoryResetStrategy do let(:inventory_reset) { described_class.new(excluded_items_ids) } diff --git a/spec/models/product_import/reset_absent_spec.rb b/spec/models/product_import/reset_absent_spec.rb index 6a1bf2a56a..2118441cb1 100644 --- a/spec/models/product_import/reset_absent_spec.rb +++ b/spec/models/product_import/reset_absent_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module ProductImport RSpec.describe ResetAbsent do let(:entry_processor) { instance_double(EntryProcessor) } diff --git a/spec/models/product_import/settings_spec.rb b/spec/models/product_import/settings_spec.rb index 1eaa119543..42fdb66b22 100644 --- a/spec/models/product_import/settings_spec.rb +++ b/spec/models/product_import/settings_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ProductImport::Settings do let(:settings) { described_class.new(import_settings) } diff --git a/spec/models/product_import/spreadsheet_entry_spec.rb b/spec/models/product_import/spreadsheet_entry_spec.rb index 06ed7d68f3..d092d27462 100644 --- a/spec/models/product_import/spreadsheet_entry_spec.rb +++ b/spec/models/product_import/spreadsheet_entry_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' RSpec.describe ProductImport::SpreadsheetEntry do let(:enterprise) { create(:enterprise) } let(:entry) { diff --git a/spec/models/product_importer_spec.rb b/spec/models/product_importer_spec.rb index f2494e1e97..7fa38ac28d 100644 --- a/spec/models/product_importer_spec.rb +++ b/spec/models/product_importer_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' require 'open_food_network/permissions' RSpec.describe ProductImport::ProductImporter do diff --git a/spec/models/proxy_order_spec.rb b/spec/models/proxy_order_spec.rb index 6c7f5666be..f3117ff16d 100644 --- a/spec/models/proxy_order_spec.rb +++ b/spec/models/proxy_order_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ProxyOrder do describe "cancel" do let(:order_cycle) { create(:simple_order_cycle) } diff --git a/spec/models/report_blob_spec.rb b/spec/models/report_blob_spec.rb index 1622b77c6f..be1b1261ad 100644 --- a/spec/models/report_blob_spec.rb +++ b/spec/models/report_blob_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' - RSpec.describe ReportBlob do it "preserves UTF-8 content" do content = "This works. ✓" diff --git a/spec/models/semantic_link_spec.rb b/spec/models/semantic_link_spec.rb index ac82a766e1..b6ccec660e 100644 --- a/spec/models/semantic_link_spec.rb +++ b/spec/models/semantic_link_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe SemanticLink do it { is_expected.to belong_to :subject } it { is_expected.to validate_presence_of(:semantic_id) } diff --git a/spec/models/spree/ability_spec.rb b/spec/models/spree/ability_spec.rb index 8d0aab1c4c..60b0b67f8e 100644 --- a/spec/models/spree/ability_spec.rb +++ b/spec/models/spree/ability_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'cancan/matchers' require 'support/ability_helpers' diff --git a/spec/models/spree/address_spec.rb b/spec/models/spree/address_spec.rb index 712a4ad6ed..bc8fe1c39e 100644 --- a/spec/models/spree/address_spec.rb +++ b/spec/models/spree/address_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Address do describe "clone" do it "creates a copy of the address with the exception of the id, " \ diff --git a/spec/models/spree/addresses_spec.rb b/spec/models/spree/addresses_spec.rb index e2aa0ea9e6..4bb146b50c 100644 --- a/spec/models/spree/addresses_spec.rb +++ b/spec/models/spree/addresses_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Address do let(:address) { build(:address) } let(:enterprise_address) { build(:address, enterprise: build(:enterprise)) } diff --git a/spec/models/spree/adjustment_spec.rb b/spec/models/spree/adjustment_spec.rb index a68e9db6d9..67b70cce7a 100644 --- a/spec/models/spree/adjustment_spec.rb +++ b/spec/models/spree/adjustment_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Adjustment do let(:order) { build(:order) } let(:adjustment) { described_class.create(label: "Adjustment", amount: 5) } diff --git a/spec/models/spree/app_configuration_spec.rb b/spec/models/spree/app_configuration_spec.rb index 9a0843fb30..1287ef89f7 100644 --- a/spec/models/spree/app_configuration_spec.rb +++ b/spec/models/spree/app_configuration_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::AppConfiguration do let(:prefs) { Rails.application.config.spree.preferences } diff --git a/spec/models/spree/asset_spec.rb b/spec/models/spree/asset_spec.rb index 2268537256..c27aa57073 100644 --- a/spec/models/spree/asset_spec.rb +++ b/spec/models/spree/asset_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Asset do describe "#viewable" do it "touches association" do diff --git a/spec/models/spree/calculator_spec.rb b/spec/models/spree/calculator_spec.rb index 85d6c4a908..26d746a967 100644 --- a/spec/models/spree/calculator_spec.rb +++ b/spec/models/spree/calculator_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Spree RSpec.describe Calculator do let(:calculator) { Spree::Calculator.new } diff --git a/spec/models/spree/credit_card_spec.rb b/spec/models/spree/credit_card_spec.rb index d39162360e..29f1fdf753 100644 --- a/spec/models/spree/credit_card_spec.rb +++ b/spec/models/spree/credit_card_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' - RSpec.describe Spree::CreditCard do let(:valid_credit_card_attributes) { { diff --git a/spec/models/spree/gateway/stripe_sca_spec.rb b/spec/models/spree/gateway/stripe_sca_spec.rb index 489c9fc90f..76761b001e 100644 --- a/spec/models/spree/gateway/stripe_sca_spec.rb +++ b/spec/models/spree/gateway/stripe_sca_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Gateway::StripeSCA, :vcr, :stripe_version do let(:order) { create(:order_ready_for_payment) } @@ -111,7 +109,7 @@ RSpec.describe Spree::Gateway::StripeSCA, :vcr, :stripe_version do end it "refunds the payment" do - response = subject.void(payment_intent.id, nil, {}) + response = subject.void(payment_intent.id, {}) expect(response.success?).to eq true end @@ -133,7 +131,7 @@ RSpec.describe Spree::Gateway::StripeSCA, :vcr, :stripe_version do end it "void the payment" do - response = subject.void(payment_intent.id, nil, {}) + response = subject.void(payment_intent.id, {}) expect(response.success?).to eq true end @@ -164,7 +162,7 @@ RSpec.describe Spree::Gateway::StripeSCA, :vcr, :stripe_version do stripe_account: stripe_test_account ) - response = subject.credit(1000, nil, payment_intent.id, {}) + response = subject.credit(1000, payment_intent.id, {}) expect(response.success?).to eq true end diff --git a/spec/models/spree/gateway_spec.rb b/spec/models/spree/gateway_spec.rb index b1e0d65205..f6e975ba38 100644 --- a/spec/models/spree/gateway_spec.rb +++ b/spec/models/spree/gateway_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Gateway do let(:test_gateway) do Class.new(Spree::Gateway) do @@ -16,8 +14,14 @@ RSpec.describe Spree::Gateway do end it "passes through all arguments on a method_missing call" do + expect(Rails.env).to receive(:local?).and_return(false) gateway = test_gateway.new expect(gateway.provider).to receive(:imaginary_method).with('foo') gateway.imaginary_method('foo') end + + it "raises an error in test env" do + gateway = test_gateway.new + expect { gateway.imaginary_method('foo') }.to raise_error StandardError + end end diff --git a/spec/models/spree/gateway_tagging_spec.rb b/spec/models/spree/gateway_tagging_spec.rb index 6ba82372e3..653bbb7eff 100644 --- a/spec/models/spree/gateway_tagging_spec.rb +++ b/spec/models/spree/gateway_tagging_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - # We extended Spree::PaymentMethod to be taggable. Unfortunately, an inheritance # bug prevented the taggable code to be passed on to the descendants of # PaymentMethod. We fixed that in config/initializers/spree.rb. diff --git a/spec/models/spree/image_spec.rb b/spec/models/spree/image_spec.rb index 115c20b526..1d044be020 100644 --- a/spec/models/spree/image_spec.rb +++ b/spec/models/spree/image_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' - module Spree RSpec.describe Image do include FileHelper diff --git a/spec/models/spree/inventory_unit_spec.rb b/spec/models/spree/inventory_unit_spec.rb index 8af09dc651..474ed58429 100644 --- a/spec/models/spree/inventory_unit_spec.rb +++ b/spec/models/spree/inventory_unit_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::InventoryUnit do let(:variant) { create(:variant) } let(:stock_item) { variant.stock_item } diff --git a/spec/models/spree/line_item_spec.rb b/spec/models/spree/line_item_spec.rb index eb4d345ce5..ce400a0462 100644 --- a/spec/models/spree/line_item_spec.rb +++ b/spec/models/spree/line_item_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::LineItem do let(:order) { create :order_with_line_items, line_items_count: 1 } let(:line_item) { order.line_items.first } @@ -16,7 +14,7 @@ RSpec.describe Spree::LineItem do it { is_expected.to have_many(:adjustments) } end - context '#save' do + describe '#save' do it 'should update inventory, totals, and tax' do # Regression check for Spree #1481 expect(line_item.order).to receive(:create_tax_charge!) @@ -25,7 +23,7 @@ RSpec.describe Spree::LineItem do end end - context '#destroy' do + describe '#destroy' do # Regression test for Spree #1481 it "applies tax adjustments" do expect(line_item.order).to receive(:create_tax_charge!) @@ -44,7 +42,7 @@ RSpec.describe Spree::LineItem do end # Test for Spree #3391 - context '#copy_price' do + describe '#copy_price' do it "copies over a variant's prices" do line_item.price = nil line_item.currency = nil @@ -56,7 +54,7 @@ RSpec.describe Spree::LineItem do end # Test for Spree #3481 - context '#copy_tax_category' do + describe '#copy_tax_category' do it "copies over a variant's tax category" do line_item.tax_category = nil line_item.copy_tax_category @@ -64,6 +62,28 @@ RSpec.describe Spree::LineItem do end end + describe '#full_variant_name' do + it "returns variant's full name" do + expect(line_item.full_variant_name).to eq(line_item.variant.full_name) + end + + it "uses variant.full_name when variant_name is nil" do + line_item.variant_name = nil + expect(line_item.full_variant_name).to eq(line_item.variant.full_name) + end + end + + describe '#full_product_name' do + it "returns product's full name" do + expect(line_item.full_product_name).to eq(line_item.product.name) + end + + it "uses product.name when product_name is nil" do + line_item.product_name = nil + expect(line_item.full_product_name).to eq(line_item.product.name) + end + end + describe '.currency' do it 'returns the globally configured currency' do line_item.currency == 'USD' diff --git a/spec/models/spree/order/address_spec.rb b/spec/models/spree/order/address_spec.rb index d85110c43b..5abfd16c10 100644 --- a/spec/models/spree/order/address_spec.rb +++ b/spec/models/spree/order/address_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Order do let(:order) { Spree::Order.new } diff --git a/spec/models/spree/order/adjustments_spec.rb b/spec/models/spree/order/adjustments_spec.rb index a204822061..4678de4fb5 100644 --- a/spec/models/spree/order/adjustments_spec.rb +++ b/spec/models/spree/order/adjustments_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Order do let(:order) { Spree::Order.new } diff --git a/spec/models/spree/order/callbacks_spec.rb b/spec/models/spree/order/callbacks_spec.rb index 9918b93157..5f2ea155d8 100644 --- a/spec/models/spree/order/callbacks_spec.rb +++ b/spec/models/spree/order/callbacks_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Order do let(:order) { build(:order) } before do diff --git a/spec/models/spree/order/checkout_spec.rb b/spec/models/spree/order/checkout_spec.rb index 1925b1ac15..4dec40c8b0 100644 --- a/spec/models/spree/order/checkout_spec.rb +++ b/spec/models/spree/order/checkout_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Order::Checkout do let(:order) { Spree::Order.new } diff --git a/spec/models/spree/order/payment_spec.rb b/spec/models/spree/order/payment_spec.rb index a3527849ba..146cfa5e02 100644 --- a/spec/models/spree/order/payment_spec.rb +++ b/spec/models/spree/order/payment_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Spree RSpec.describe Spree::Order do before { Stripe.api_key = "sk_test_12345" } @@ -35,6 +33,12 @@ module Spree } before do + # mock the call with "ofn.payment_transition" so we don't call the related listener + # and services + allow(ActiveSupport::Notifications).to receive(:instrument).and_call_original + allow(ActiveSupport::Notifications).to receive(:instrument) + .with("ofn.payment_transition", any_args).and_return(nil) + allow(order).to receive_message_chain(:line_items, :empty?).and_return(false) allow(order).to receive_messages total: 100 stub_request(:get, "https://api.stripe.com/v1/payment_intents/12345"). diff --git a/spec/models/spree/order/state_machine_spec.rb b/spec/models/spree/order/state_machine_spec.rb index b0a03d17eb..f50326789d 100644 --- a/spec/models/spree/order/state_machine_spec.rb +++ b/spec/models/spree/order/state_machine_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Order do let(:order) { Spree::Order.new } before do @@ -88,11 +86,11 @@ RSpec.describe Spree::Order do (Spree::Shipment.state_machine.states.keys - [:pending, :backorder, :ready]) .each do |shipment_state| - it "should be false if shipment_state is #{shipment_state}" do - allow(order).to receive_messages completed?: true - order.shipment_state = shipment_state - expect(order.can_cancel?).to be_falsy - end + it "should be false if shipment_state is #{shipment_state}" do + allow(order).to receive_messages completed?: true + order.shipment_state = shipment_state + expect(order.can_cancel?).to be_falsy + end end end diff --git a/spec/models/spree/order/tax_spec.rb b/spec/models/spree/order/tax_spec.rb index eaefb0855e..f5b47725e9 100644 --- a/spec/models/spree/order/tax_spec.rb +++ b/spec/models/spree/order/tax_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Order do let(:order) { build(:order) } diff --git a/spec/models/spree/order_contents_spec.rb b/spec/models/spree/order_contents_spec.rb index 7f18fe5f95..02b4a09d8f 100644 --- a/spec/models/spree/order_contents_spec.rb +++ b/spec/models/spree/order_contents_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::OrderContents do let!(:order) { create(:order) } let!(:variant) { create(:variant) } diff --git a/spec/models/spree/order_inventory_spec.rb b/spec/models/spree/order_inventory_spec.rb index 234e9d5207..67058014c5 100644 --- a/spec/models/spree/order_inventory_spec.rb +++ b/spec/models/spree/order_inventory_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::OrderInventory do let(:order) { create :completed_order_with_totals } let(:line_item) { order.line_items.first } diff --git a/spec/models/spree/order_spec.rb b/spec/models/spree/order_spec.rb index 1baabc5878..d9ae1a59f3 100644 --- a/spec/models/spree/order_spec.rb +++ b/spec/models/spree/order_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' - RSpec.describe Spree::Order do let(:user) { build(:user, email: "spree@example.com") } let(:order) { build(:order, user:) } @@ -299,13 +297,7 @@ RSpec.describe Spree::Order do context "when a payment raises a GatewayError" do before { expect(payment).to receive(:process!).and_raise(Spree::Core::GatewayError) } - it "returns true when configured to allow checkout on gateway failures" do - Spree::Config.set allow_checkout_on_gateway_error: true - expect(order.process_payments!).to be_truthy - end - - it "returns false when not configured to allow checkout on gateway failures" do - Spree::Config.set allow_checkout_on_gateway_error: false + it "returns false" do expect(order.process_payments!).to be_falsy end end diff --git a/spec/models/spree/payment_method/taler_spec.rb b/spec/models/spree/payment_method/taler_spec.rb new file mode 100644 index 0000000000..fc52541693 --- /dev/null +++ b/spec/models/spree/payment_method/taler_spec.rb @@ -0,0 +1,98 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Spree::PaymentMethod::Taler do + subject(:taler) { + Spree::PaymentMethod::Taler.new( + preferred_backend_url: backend_url, + preferred_api_key: "sandbox", + ) + } + let(:backend_url) { "https://backend.demo.taler.net/instances/sandbox" } + + describe "#external_payment_url", vcr: true do + it "creates an order reference and retrieves a URL to pay at" do + order = create(:order_ready_for_confirmation, payment_method: taler) + + url = subject.external_payment_url(order:) + expect(url).to eq "#{backend_url}/orders/2026.022-0284X4GE8WKMJ" + + payment = order.payments.last.reload + expect(payment.response_code).to match "2026.022-0284X4GE8WKMJ" + end + end + + describe "#purchase" do + let(:money) { 100 } + let(:source) { taler } + let(:payment) { build(:payment, response_code: "taler-order-7") } + let(:order_url) { "#{backend_url}/private/orders/taler-order-7" } + + it "returns an ActiveMerchant response" do + order_status = "paid" + stub_request(:get, order_url).to_return(body: { order_status: }.to_json) + + response = taler.purchase(nil, nil, payment:) + + expect(response.success?).to eq true + expect(response.message).to eq "paid" + end + + it "translates error messages" do + order_status = "claimed" + stub_request(:get, order_url).to_return(body: { order_status: }.to_json) + + response = taler.purchase(nil, nil, payment:) + + expect(response.success?).to eq false + expect(response.message).to eq "The payment request expired. Please try again." + end + end + + describe "#void" do + let(:order_endpoint) { "#{backend_url}/private/orders/taler-order-8" } + let(:refund_endpoint) { "#{order_endpoint}/refund" } + let(:taler_refund_uri) { + "taler://refund/backend.demo.taler.net/instances/sandbox/taler-order-8/" + } + + it "starts the refund process" do + order_status = { + order_status: "paid", + contract_terms: { + amount: "KUDOS:2", + } + } + stub_request(:get, order_endpoint).to_return(body: order_status.to_json) + stub_request(:post, refund_endpoint).to_return(body: { taler_refund_uri: }.to_json) + order = create(:completed_order_with_totals) + order.payments.create( + amount: order.total, state: :completed, + payment_method: taler, + response_code: "taler-order-8", + ) + expect { + response = taler.void("taler-order-8", { payment: order.payments[0] }) + expect(response.success?).to eq true + }.to enqueue_mail(PaymentMailer, :refund_available) + end + + it "returns early if payment already void" do + order_status = { + order_status: "claimed", + } + stub_request(:get, order_endpoint).to_return(body: order_status.to_json) + order = create(:completed_order_with_totals) + order.payments.create( + amount: order.total, state: :completed, + payment_method: taler, + response_code: "taler-order-8", + ) + expect { + response = taler.void("taler-order-8", { payment: order.payments[0] }) + expect(response.success?).to eq true + }.not_to enqueue_mail + end + end +end diff --git a/spec/models/spree/payment_method_spec.rb b/spec/models/spree/payment_method_spec.rb index 877164f8b4..44ec84cce7 100644 --- a/spec/models/spree/payment_method_spec.rb +++ b/spec/models/spree/payment_method_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - class Spree::Gateway::Test < Spree::Gateway end @@ -133,13 +131,6 @@ RSpec.describe Spree::PaymentMethod do expect(pm.errors.to_a).to eq(["Name can't be blank", "At least one hub must be selected"]) end - it "generates a clean name for known Payment Method types" do - expect(Spree::PaymentMethod::Check.clean_name) - .to eq('Cash/EFT/etc. (payments for which automatic validation is not required)') - expect(Spree::Gateway::PayPalExpress.clean_name).to eq('PayPal Express') - expect(Spree::Gateway::StripeSCA.clean_name).to eq('Stripe SCA') - end - it "computes the amount of fees" do order = create(:order) diff --git a/spec/models/spree/payment_spec.rb b/spec/models/spree/payment_spec.rb index 18050ebf13..83ba78d711 100644 --- a/spec/models/spree/payment_spec.rb +++ b/spec/models/spree/payment_spec.rb @@ -1,8 +1,13 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Payment do + before do + # mock the call with "ofn.payment_transition" so we don't call the related listener and services + allow(ActiveSupport::Notifications).to receive(:instrument).and_call_original + allow(ActiveSupport::Notifications).to receive(:instrument) + .with("ofn.payment_transition", any_args).and_return(nil) + end + context 'original specs from Spree' do before { Stripe.api_key = "sk_test_12345" } let(:order) { create(:order) } @@ -340,24 +345,6 @@ RSpec.describe Spree::Payment do allow(payment_method).to receive(:void).and_return(success_response) end - context "when profiles are supported" do - it "should call payment_enterprise.void with the payment's response_code" do - allow(payment_method).to receive(:payment_profiles_supported) { true } - expect(payment_method).to receive(:void).with('123', card, - anything).and_return(success_response) - payment.void_transaction! - end - end - - context "when profiles are not supported" do - it "should call payment_gateway.void with the payment's response_code" do - allow(payment_method).to receive(:payment_profiles_supported) { false } - expect(payment_method).to receive(:void).with('123', card, - anything).and_return(success_response) - payment.void_transaction! - end - end - it "should log the response" do payment.void_transaction! expect(payment).to have_received(:record_response) @@ -432,7 +419,7 @@ RSpec.describe Spree::Payment do end it "should call credit on the gateway with the credit amount and response_code" do - expect(payment_method).to receive(:credit).with(1000, card, '123', + expect(payment_method).to receive(:credit).with(1000, '123', anything).and_return(success_response) payment.credit! end @@ -458,7 +445,7 @@ RSpec.describe Spree::Payment do it "should call credit on the gateway with the credit amount and response_code" do expect(payment_method).to receive(:credit).with( - amount_in_cents, card, '123', anything + amount_in_cents, '123', anything ).and_return(success_response) payment.credit! end @@ -471,7 +458,7 @@ RSpec.describe Spree::Payment do it "should call credit on the gateway with original payment amount and response_code" do expect(payment_method).to receive(:credit).with( - amount_in_cents.to_f, card, '123', anything + amount_in_cents.to_f, '123', anything ).and_return(success_response) payment.credit! end @@ -653,7 +640,6 @@ RSpec.describe Spree::Payment do context "when profiles are supported" do before do - allow(payment_method).to receive(:payment_profiles_supported?) { true } allow(payment.source).to receive(:has_payment_profile?) { false } end @@ -695,26 +681,6 @@ RSpec.describe Spree::Payment do end end - context "when profiles are not supported" do - before do - allow(payment_method).to receive(:payment_profiles_supported?) { false } - end - - it "should not create a payment profile" do - payment_method.name = 'Gateway' - payment_method.distributors << create(:distributor_enterprise) - payment_method.save! - - expect(payment_method).not_to receive :create_profile - payment = Spree::Payment.create( - amount: 100, - order: create(:order), - source: card, - payment_method: - ) - end - end - context 'when the payment was completed but now void' do let(:payment) { create(:payment, :completed, amount: 100, order:) } @@ -872,23 +838,6 @@ RSpec.describe Spree::Payment do end end - describe "performing refunds" do - before do - allow(payment).to receive(:calculate_refund_amount) { 123 } - expect(payment.payment_method).to receive(:refund).and_return(success) - end - - it "performs the refund without payment profiles" do - allow(payment.payment_method).to receive(:payment_profiles_supported?) { false } - payment.refund! - end - - it "performs the refund with payment profiles" do - allow(payment.payment_method).to receive(:payment_profiles_supported?) { true } - payment.refund! - end - end - it "records the response" do allow(payment).to receive(:calculate_refund_amount) { 123 } allow(payment.payment_method).to receive(:refund).and_return(success) @@ -1064,4 +1013,17 @@ RSpec.describe Spree::Payment do expect(payment.captured_at).to be_present end end + + describe "payment transition" do + it "notifies of payment status change" do + payment = create(:payment) + + allow(ActiveSupport::Notifications).to receive(:instrument).and_call_original + expect(ActiveSupport::Notifications).to receive(:instrument).with( + "ofn.payment_transition", payment: payment, event: "processing" + ) + + payment.started_processing! + end + end end diff --git a/spec/models/spree/preference_spec.rb b/spec/models/spree/preference_spec.rb index 636c1d15c9..afa220f8fa 100644 --- a/spec/models/spree/preference_spec.rb +++ b/spec/models/spree/preference_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Preference do it "should require a key" do @preference = Spree::Preference.new diff --git a/spec/models/spree/preferences/configuration_spec.rb b/spec/models/spree/preferences/configuration_spec.rb index a309883dcd..0c63176a7b 100644 --- a/spec/models/spree/preferences/configuration_spec.rb +++ b/spec/models/spree/preferences/configuration_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Preferences::Configuration do let(:config) do Class.new(Spree::Preferences::Configuration) do diff --git a/spec/models/spree/preferences/preferable_spec.rb b/spec/models/spree/preferences/preferable_spec.rb index 6876551f83..ee2dc33b09 100644 --- a/spec/models/spree/preferences/preferable_spec.rb +++ b/spec/models/spree/preferences/preferable_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Preferences::Preferable do a_class = A = Class.new do diff --git a/spec/models/spree/preferences/store_spec.rb b/spec/models/spree/preferences/store_spec.rb index d8d2b4d1ec..cb53f5d951 100644 --- a/spec/models/spree/preferences/store_spec.rb +++ b/spec/models/spree/preferences/store_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Preferences::Store do before :each do @store = Spree::Preferences::StoreInstance.new diff --git a/spec/models/spree/price_spec.rb b/spec/models/spree/price_spec.rb index 047d5da268..4739151047 100644 --- a/spec/models/spree/price_spec.rb +++ b/spec/models/spree/price_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Spree RSpec.describe Price do let(:variant) { create(:variant) } diff --git a/spec/models/spree/product_property_spec.rb b/spec/models/spree/product_property_spec.rb index 1af2043ac0..94c4498fec 100644 --- a/spec/models/spree/product_property_spec.rb +++ b/spec/models/spree/product_property_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::ProductProperty do context "validations" do it "should validate length of value" do diff --git a/spec/models/spree/product_sort_by_stocks_spec.rb b/spec/models/spree/product_sort_by_stocks_spec.rb index 791957f8bb..6f9855632b 100644 --- a/spec/models/spree/product_sort_by_stocks_spec.rb +++ b/spec/models/spree/product_sort_by_stocks_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe 'ProductSortByStocks' do let(:product) { create(:product) } diff --git a/spec/models/spree/product_spec.rb b/spec/models/spree/product_spec.rb index 175d2f58f0..dd78acbac5 100644 --- a/spec/models/spree/product_spec.rb +++ b/spec/models/spree/product_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' require 'spree/core/product_duplicator' RSpec.describe Spree::Product do diff --git a/spec/models/spree/return_authorization_spec.rb b/spec/models/spree/return_authorization_spec.rb index 8dd7b949e4..40b63318ba 100644 --- a/spec/models/spree/return_authorization_spec.rb +++ b/spec/models/spree/return_authorization_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::ReturnAuthorization do let(:order) { create(:shipped_order) } let(:variant) { order.shipments.first.inventory_units.first.variant } diff --git a/spec/models/spree/shipment_spec.rb b/spec/models/spree/shipment_spec.rb index 81acff4c45..1ee1a3f863 100644 --- a/spec/models/spree/shipment_spec.rb +++ b/spec/models/spree/shipment_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'benchmark' RSpec.describe Spree::Shipment do diff --git a/spec/models/spree/shipping_method_spec.rb b/spec/models/spree/shipping_method_spec.rb index 776f9e2458..5470456bb9 100644 --- a/spec/models/spree/shipping_method_spec.rb +++ b/spec/models/spree/shipping_method_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::ShippingMethod do it "is valid when built from factory" do expect( diff --git a/spec/models/spree/shipping_rate_spec.rb b/spec/models/spree/shipping_rate_spec.rb index 3343355edf..1a6165697a 100644 --- a/spec/models/spree/shipping_rate_spec.rb +++ b/spec/models/spree/shipping_rate_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::ShippingRate do let(:shipment) { create(:shipment) } let(:shipping_method) { build_stubbed(:shipping_method) } diff --git a/spec/models/spree/state_spec.rb b/spec/models/spree/state_spec.rb index efe83bc41e..2f72ac823d 100644 --- a/spec/models/spree/state_spec.rb +++ b/spec/models/spree/state_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::State do before(:all) do Spree::State.destroy_all diff --git a/spec/models/spree/stock/availability_validator_spec.rb b/spec/models/spree/stock/availability_validator_spec.rb index ed286264f4..e8d51cbc26 100644 --- a/spec/models/spree/stock/availability_validator_spec.rb +++ b/spec/models/spree/stock/availability_validator_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Spree module Stock RSpec.describe AvailabilityValidator do diff --git a/spec/models/spree/stock/quantifier_spec.rb b/spec/models/spree/stock/quantifier_spec.rb index d697a668d8..d0219fef54 100644 --- a/spec/models/spree/stock/quantifier_spec.rb +++ b/spec/models/spree/stock/quantifier_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Spree module Stock RSpec.describe Quantifier do diff --git a/spec/models/spree/stock_item_spec.rb b/spec/models/spree/stock_item_spec.rb index 346c23c207..7af59c3efb 100644 --- a/spec/models/spree/stock_item_spec.rb +++ b/spec/models/spree/stock_item_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::StockItem do subject(:stock_item) { create(:variant, on_hand: 15).stock_item } diff --git a/spec/models/spree/tax_category_spec.rb b/spec/models/spree/tax_category_spec.rb index ce86c94017..59bd797bf7 100644 --- a/spec/models/spree/tax_category_spec.rb +++ b/spec/models/spree/tax_category_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::TaxCategory do context 'default tax category' do let(:tax_category) { create(:tax_category) } diff --git a/spec/models/spree/tax_rate_spec.rb b/spec/models/spree/tax_rate_spec.rb index 2e0fc50017..8aabfcd681 100644 --- a/spec/models/spree/tax_rate_spec.rb +++ b/spec/models/spree/tax_rate_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::TaxRate do describe ".match" do let!(:zone) { create(:zone_with_member) } diff --git a/spec/models/spree/taxon_spec.rb b/spec/models/spree/taxon_spec.rb index c699fd583f..30a56bbfae 100644 --- a/spec/models/spree/taxon_spec.rb +++ b/spec/models/spree/taxon_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Taxon do let(:taxon) { described_class.new(name: "Ruby on Rails") } diff --git a/spec/models/spree/user_spec.rb b/spec/models/spree/user_spec.rb index 6d123b6990..5e6fea55ef 100644 --- a/spec/models/spree/user_spec.rb +++ b/spec/models/spree/user_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::User do describe "associations" do it { is_expected.to have_many(:owned_enterprises) } @@ -19,7 +17,7 @@ RSpec.describe Spree::User do bill_address_attributes: new_bill_address.dup.attributes.merge( 'id' => old_bill_address.id ) - .except!('created_at', 'updated_at') + .except!('created_at', 'updated_at') ) expect(user.bill_address.id).to eq old_bill_address.id diff --git a/spec/models/spree/variant_spec.rb b/spec/models/spree/variant_spec.rb index aac0ae441c..86d3ca92ff 100644 --- a/spec/models/spree/variant_spec.rb +++ b/spec/models/spree/variant_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' require 'spree/localized_number' RSpec.describe Spree::Variant do diff --git a/spec/models/spree/variant_stock_spec.rb b/spec/models/spree/variant_stock_spec.rb index ee33b40f61..226c7b8ed0 100644 --- a/spec/models/spree/variant_stock_spec.rb +++ b/spec/models/spree/variant_stock_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: false -require 'spec_helper' - RSpec.describe Spree::Variant do # These methods are defined in app/models/concerns/variant_stock.rb. # There is a separate spec for that concern but here I want to test diff --git a/spec/models/spree/zone_spec.rb b/spec/models/spree/zone_spec.rb index 32f3a2dd53..ae2dd8ea13 100644 --- a/spec/models/spree/zone_spec.rb +++ b/spec/models/spree/zone_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Spree::Zone do describe "validations" do it { is_expected.to validate_presence_of(:name) } diff --git a/spec/models/stripe_account_spec.rb b/spec/models/stripe_account_spec.rb index 98fd70a934..930719366e 100644 --- a/spec/models/stripe_account_spec.rb +++ b/spec/models/stripe_account_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'stripe/oauth' RSpec.describe StripeAccount do diff --git a/spec/models/subscription_line_item_spec.rb b/spec/models/subscription_line_item_spec.rb index 473c04a1a5..976caf6ee0 100644 --- a/spec/models/subscription_line_item_spec.rb +++ b/spec/models/subscription_line_item_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe SubscriptionLineItem, model: true do describe "validations" do it "requires a subscription" do diff --git a/spec/models/subscription_spec.rb b/spec/models/subscription_spec.rb index 13a320cf45..ca76fdec98 100644 --- a/spec/models/subscription_spec.rb +++ b/spec/models/subscription_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Subscription do describe "associations" do it { expect(subject).to belong_to(:shop).optional } diff --git a/spec/models/tag_rule/filter_order_cycles_spec.rb b/spec/models/tag_rule/filter_order_cycles_spec.rb index c4eded6125..91a6c17180 100644 --- a/spec/models/tag_rule/filter_order_cycles_spec.rb +++ b/spec/models/tag_rule/filter_order_cycles_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe TagRule::FilterOrderCycles do let(:tag_rule) { build(:filter_order_cycles_tag_rule, preferred_exchange_tags: order_cycle_tags, enterprise:) diff --git a/spec/models/tag_rule/filter_payment_methods_spec.rb b/spec/models/tag_rule/filter_payment_methods_spec.rb index fe7b4056b2..3eb9388721 100644 --- a/spec/models/tag_rule/filter_payment_methods_spec.rb +++ b/spec/models/tag_rule/filter_payment_methods_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe TagRule::FilterPaymentMethods do let(:tag_rule) { build(:filter_payment_methods_tag_rule, preferred_payment_method_tags: payment_method_tags) diff --git a/spec/models/tag_rule/filter_products_spec.rb b/spec/models/tag_rule/filter_products_spec.rb index 58e0ec7409..316b27d41e 100644 --- a/spec/models/tag_rule/filter_products_spec.rb +++ b/spec/models/tag_rule/filter_products_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe TagRule::FilterProducts do let(:tag_rule) { build(:filter_products_tag_rule, preferred_variant_tags: variant_tags) } let(:variant_tags) { "" } diff --git a/spec/models/tag_rule/filter_shipping_methods_spec.rb b/spec/models/tag_rule/filter_shipping_methods_spec.rb index 022df21ee0..d85d79f899 100644 --- a/spec/models/tag_rule/filter_shipping_methods_spec.rb +++ b/spec/models/tag_rule/filter_shipping_methods_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe TagRule::FilterShippingMethods do let(:tag_rule) { build(:filter_shipping_methods_tag_rule, preferred_shipping_method_tags: shipping_method_tags) diff --git a/spec/models/tag_rule/filter_variants_spec.rb b/spec/models/tag_rule/filter_variants_spec.rb index a9da63d407..5e3d278ea5 100644 --- a/spec/models/tag_rule/filter_variants_spec.rb +++ b/spec/models/tag_rule/filter_variants_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe TagRule::FilterVariants do let(:tag_rule) { build(:filter_variants_tag_rule, preferred_variant_tags: variant_tags) } let(:variant_tags) { "" } diff --git a/spec/models/tag_rule_spec.rb b/spec/models/tag_rule_spec.rb index eb27a088de..7644c43570 100644 --- a/spec/models/tag_rule_spec.rb +++ b/spec/models/tag_rule_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe TagRule do describe "validations" do it "requires a enterprise" do diff --git a/spec/models/terms_of_service_file_spec.rb b/spec/models/terms_of_service_file_spec.rb index 41cb567136..95826c6e5a 100644 --- a/spec/models/terms_of_service_file_spec.rb +++ b/spec/models/terms_of_service_file_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe TermsOfServiceFile do include FileHelper diff --git a/spec/models/variant_override_spec.rb b/spec/models/variant_override_spec.rb index 41122e6e71..6bb91360be 100644 --- a/spec/models/variant_override_spec.rb +++ b/spec/models/variant_override_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe VariantOverride do let(:variant) { create(:variant) } let(:hub) { create(:distributor_enterprise) } diff --git a/spec/models/voucher_spec.rb b/spec/models/voucher_spec.rb index aff8f19eef..6893806260 100644 --- a/spec/models/voucher_spec.rb +++ b/spec/models/voucher_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - # This is used to test non implemented methods module Vouchers class TestVoucher < Voucher; end diff --git a/spec/models/vouchers/flat_rate_spec.rb b/spec/models/vouchers/flat_rate_spec.rb index b9e85d9fbb..4363b17816 100644 --- a/spec/models/vouchers/flat_rate_spec.rb +++ b/spec/models/vouchers/flat_rate_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Vouchers::FlatRate do describe 'validations' do subject { build(:voucher_flat_rate) } diff --git a/spec/models/vouchers/percentage_rate_spec.rb b/spec/models/vouchers/percentage_rate_spec.rb index 89c4834da3..be99d47b7f 100644 --- a/spec/models/vouchers/percentage_rate_spec.rb +++ b/spec/models/vouchers/percentage_rate_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Vouchers::PercentageRate do describe 'validations' do subject { build(:voucher_percentage_rate) } diff --git a/spec/models/vouchers/vine_spec.rb b/spec/models/vouchers/vine_spec.rb index 157aac3776..dc87f30efe 100644 --- a/spec/models/vouchers/vine_spec.rb +++ b/spec/models/vouchers/vine_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Vouchers::Vine do describe 'validations' do subject { build(:vine_voucher) } diff --git a/spec/models/webhook_endpoint_spec.rb b/spec/models/webhook_endpoint_spec.rb index 2aba887175..123567bcec 100644 --- a/spec/models/webhook_endpoint_spec.rb +++ b/spec/models/webhook_endpoint_spec.rb @@ -1,9 +1,11 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe WebhookEndpoint do describe "validations" do it { is_expected.to validate_presence_of(:url) } + it { + is_expected.to validate_inclusion_of(:webhook_type) + .in_array(%w(order_cycle_opened payment_status_changed)) + } end end diff --git a/spec/queries/batch_taggable_tags_query_spec.rb b/spec/queries/batch_taggable_tags_query_spec.rb index 991ce00258..1481b9a793 100644 --- a/spec/queries/batch_taggable_tags_query_spec.rb +++ b/spec/queries/batch_taggable_tags_query_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe BatchTaggableTagsQuery do it "fetches tags for multiple models in one query" do customer_i = create(:customer, tag_list: "member,volunteer") diff --git a/spec/queries/complete_orders_with_balance_query_spec.rb b/spec/queries/complete_orders_with_balance_query_spec.rb index 1f788669e1..f25e8eff4e 100644 --- a/spec/queries/complete_orders_with_balance_query_spec.rb +++ b/spec/queries/complete_orders_with_balance_query_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe CompleteOrdersWithBalanceQuery do subject(:result) { described_class.new(user).call } diff --git a/spec/queries/complete_visible_orders_query_spec.rb b/spec/queries/complete_visible_orders_query_spec.rb index a39de73bdf..a159d110ad 100644 --- a/spec/queries/complete_visible_orders_query_spec.rb +++ b/spec/queries/complete_visible_orders_query_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe CompleteVisibleOrdersQuery do subject(:result) { described_class.new(order_permissions).call } diff --git a/spec/queries/customers_with_balance_query_spec.rb b/spec/queries/customers_with_balance_query_spec.rb index a71adb7479..9077a09a33 100644 --- a/spec/queries/customers_with_balance_query_spec.rb +++ b/spec/queries/customers_with_balance_query_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe CustomersWithBalanceQuery do subject(:result) { described_class.new(Customer.where(id: customers)).call } diff --git a/spec/queries/outstanding_balance_query_spec.rb b/spec/queries/outstanding_balance_query_spec.rb index a79b209da0..e69cbfdd66 100644 --- a/spec/queries/outstanding_balance_query_spec.rb +++ b/spec/queries/outstanding_balance_query_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OutstandingBalanceQuery do subject(:query) { described_class.new(relation) } @@ -12,7 +10,7 @@ RSpec.describe OutstandingBalanceQuery do let(:normalized_sql_statement) { normalize(query.statement) } it 'returns the CASE statement necessary to compute the order balance' do - expect(normalized_sql_statement).to eq(normalize(<<-SQL.squish)) + expect(normalized_sql_statement).to eq(normalize(<<~SQL.squish)) CASE WHEN "spree_orders"."state" IN ('canceled', 'returned') THEN "spree_orders"."payment_total" WHEN "spree_orders"."state" IS NOT NULL THEN "spree_orders"."payment_total" - "spree_orders"."total" ELSE 0 END diff --git a/spec/queries/payments_requiring_action_query_spec.rb b/spec/queries/payments_requiring_action_query_spec.rb index 6c2d56d9e5..6237ed83f2 100644 --- a/spec/queries/payments_requiring_action_query_spec.rb +++ b/spec/queries/payments_requiring_action_query_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe PaymentsRequiringActionQuery do subject(:result) { described_class.new(user).call } diff --git a/spec/queries/product_scope_query_spec.rb b/spec/queries/product_scope_query_spec.rb index 24fa18ff99..434c5aa659 100755 --- a/spec/queries/product_scope_query_spec.rb +++ b/spec/queries/product_scope_query_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ProductScopeQuery do let!(:taxon) { create(:taxon) } let(:supplier) { create(:supplier_enterprise) } diff --git a/spec/reflex_helper.rb b/spec/reflex_helper.rb index 4f36f3b6f8..9550f27f46 100644 --- a/spec/reflex_helper.rb +++ b/spec/reflex_helper.rb @@ -1,4 +1,3 @@ # frozen_string_literal: true -require "base_spec_helper" require "stimulus_reflex_testing/rspec" diff --git a/spec/requests/admin/connected_apps_controller_spec.rb b/spec/requests/admin/connected_apps_controller_spec.rb index a39eaa52af..ff6b88a4ac 100644 --- a/spec/requests/admin/connected_apps_controller_spec.rb +++ b/spec/requests/admin/connected_apps_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "Admin ConnectedApp" do let(:user) { create(:admin_user) } let(:enterprise) { create(:enterprise, owner: user) } diff --git a/spec/requests/admin/enterprises_controller_spec.rb b/spec/requests/admin/enterprises_controller_spec.rb index 16e3ec42bf..68b22843f4 100644 --- a/spec/requests/admin/enterprises_controller_spec.rb +++ b/spec/requests/admin/enterprises_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Admin::EnterprisesController do let(:admin) { create(:admin_user) } let(:enterprise) { create(:enterprise) } diff --git a/spec/requests/admin/images_spec.rb b/spec/requests/admin/images_spec.rb index f86f36b86a..7eaedad45e 100644 --- a/spec/requests/admin/images_spec.rb +++ b/spec/requests/admin/images_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "/admin/products/:product_id/images" do include AuthenticationHelper diff --git a/spec/requests/admin/product_import_spec.rb b/spec/requests/admin/product_import_spec.rb index de6e066817..7609c4fa17 100644 --- a/spec/requests/admin/product_import_spec.rb +++ b/spec/requests/admin/product_import_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe "Product Import" do include AuthenticationHelper diff --git a/spec/requests/admin/products_v3_spec.rb b/spec/requests/admin/products_v3_spec.rb index 69e5562e27..ff1a6850bb 100644 --- a/spec/requests/admin/products_v3_spec.rb +++ b/spec/requests/admin/products_v3_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe "Admin::ProductsV3" do include AuthenticationHelper diff --git a/spec/requests/admin/reports_ajax_api_spec.rb b/spec/requests/admin/reports_ajax_api_spec.rb new file mode 100644 index 0000000000..cb4f50c0c2 --- /dev/null +++ b/spec/requests/admin/reports_ajax_api_spec.rb @@ -0,0 +1,328 @@ +# frozen_string_literal: true + +RSpec.describe "Admin Reports AJAX Search API" do + let(:bill_address) { create(:address) } + let(:ship_address) { create(:address) } + let(:instructions) { "pick up on thursday please" } + let(:coordinator1) { create(:distributor_enterprise) } + let(:supplier1) { create(:supplier_enterprise) } + let(:supplier2) { create(:supplier_enterprise) } + let(:supplier3) { create(:supplier_enterprise) } + let(:distributor1) { create(:distributor_enterprise) } + let(:distributor2) { create(:distributor_enterprise) } + let(:product1) { create(:product, price: 12.34, supplier_id: supplier1.id) } + let(:product2) { create(:product, price: 23.45, supplier_id: supplier2.id) } + let(:product3) { create(:product, price: 34.56, supplier_id: supplier3.id) } + + let(:enterprise_fee1) { create(:enterprise_fee, name: "Delivery Fee", enterprise: distributor1) } + let(:enterprise_fee2) { create(:enterprise_fee, name: "Admin Fee", enterprise: distributor2) } + + let(:ocA) { + create(:simple_order_cycle, coordinator: coordinator1, + distributors: [distributor1, distributor2], + suppliers: [supplier1, supplier2, supplier3], + variants: [product1.variants.first, product3.variants.first]) + } + let(:ocB) { + create(:simple_order_cycle, coordinator: coordinator1, + distributors: [distributor1, distributor2], + suppliers: [supplier1, supplier2, supplier3], + variants: [product2.variants.first]) + } + + let(:orderA1) do + order = create(:order, distributor: distributor1, bill_address:, + ship_address:, special_instructions: instructions, + order_cycle: ocA) + order.line_items << create(:line_item, variant: product1.variants.first) + order.line_items << create(:line_item, variant: product3.variants.first) + order.finalize! + order.save + order + end + + let(:orderA2) do + order = create(:order, distributor: distributor2, bill_address:, + ship_address:, special_instructions: instructions, + order_cycle: ocA) + order.line_items << create(:line_item, variant: product2.variants.first) + order.finalize! + order.save + order + end + + let(:orderB1) do + order = create(:order, distributor: distributor1, bill_address:, + ship_address:, special_instructions: instructions, + order_cycle: ocB) + order.line_items << create(:line_item, variant: product1.variants.first) + order.line_items << create(:line_item, variant: product3.variants.first) + order.finalize! + order.save + order + end + + let(:base_params) do + { + report_type: :enterprise_fee_summary, + report_subtype: :enterprise_fees_with_tax_report_by_order + } + end + + def create_adjustment(order, fee, amount) + order.adjustments.create!( + originator: fee, + label: fee.name, + amount:, + state: "finalized", + order: + ) + end + + context "when user is an admin" do + before do + login_as create(:admin_user) + create_adjustment(orderA1, enterprise_fee1, 5.0) + create_adjustment(orderB1, enterprise_fee2, 3.0) + end + + describe "GET /admin/reports/search_enterprise_fees" do + it "returns enterprise fees sorted alphabetically by name" do + get "/admin/reports/search_enterprise_fees", params: base_params + + expect(response).to have_http_status(:ok) + json_response = response.parsed_body + + expect(json_response["results"].pluck("label")).to eq(['Admin Fee', 'Delivery Fee']) + expect(json_response["pagination"]["more"]).to be false + end + + context "with more than 30 records" do + before do + create_list(:enterprise_fee, 35, enterprise: distributor1) do |fee, i| + index = (i + 1).to_s.rjust(2, "0") + fee.update!(name: "Fee #{index}") + create_adjustment(orderA1, fee, 1.0) + end + end + + it "returns first page with 30 results and more flag as true" do + get "/admin/reports/search_enterprise_fees", params: base_params.merge(page: 1) + + json_response = response.parsed_body + expect(json_response["results"].length).to eq(30) + expect(json_response["pagination"]["more"]).to be true + end + + it "returns remaining results on second page with more flag as false" do + get "/admin/reports/search_enterprise_fees", params: base_params.merge(page: 2) + + json_response = response.parsed_body + expect(json_response["results"].length).to eq(7) + expect(json_response["pagination"]["more"]).to be false + end + end + end + + describe "GET /admin/reports/search_enterprise_fee_owners" do + it "returns unique enterprise fee owners sorted alphabetically by name" do + distributor1.update!(name: "Zebra Farm") + distributor2.update!(name: "Alpha Market") + + get "/admin/reports/search_enterprise_fee_owners", params: base_params + + expect(response).to have_http_status(:ok) + json_response = response.parsed_body + + expect(json_response["results"].pluck("label")).to eq(['Alpha Market', 'Zebra Farm']) + expect(json_response["pagination"]["more"]).to be false + end + end + + describe "GET /admin/reports/search_order_customers" do + let!(:customer1) { create(:customer, email: "alice@example.com", enterprise: distributor1) } + let!(:customer2) { create(:customer, email: "bob@example.com", enterprise: distributor1) } + + before do + orderA1.update!(customer: customer1) + orderA2.update!(customer: customer2) + end + + it "returns all customers sorted by email" do + get "/admin/reports/search_order_customers", params: base_params + + json_response = response.parsed_body + expect(json_response["results"].pluck("label")).to eq(["alice@example.com", + "bob@example.com"]) + expect(json_response["pagination"]["more"]).to be false + end + + it "filters customers by email query" do + get "/admin/reports/search_order_customers", params: base_params.merge(q: "alice") + + json_response = response.parsed_body + expect(json_response["results"].pluck("label")).to eq(["alice@example.com"]) + expect(json_response["pagination"]["more"]).to be false + end + + context "with more than 30 customers" do + before do + create_list(:customer, 35, enterprise: distributor1) do |customer, i| + customer.update!(email: "customer#{(i + 1).to_s.rjust(2, '0')}@example.com") + order = create(:order, distributor: distributor1, order_cycle: ocA, customer:) + order.line_items << create(:line_item, variant: product1.variants.first) + order.finalize! + end + end + + it "returns first page with 30 results and more flag as true" do + get "/admin/reports/search_order_customers", params: base_params.merge(page: 1) + + json_response = response.parsed_body + expect(json_response["results"].length).to eq(30) + expect(json_response["pagination"]["more"]).to be true + end + + it "returns remaining results on second page with more flag as false" do + get "/admin/reports/search_order_customers", params: base_params.merge(page: 2) + + json_response = response.parsed_body + expect(json_response["results"].length).to eq(7) + expect(json_response["pagination"]["more"]).to be false + end + end + end + + describe "GET /admin/reports/search_order_cycles" do + before do + ocA.update!(name: "Winter Market") + ocB.update!(name: "Summer Market") + end + + it "returns order cycles sorted by close date" do + get "/admin/reports/search_order_cycles", params: base_params + + json_response = response.parsed_body + expect(json_response["results"].pluck("label")).to eq(["Summer Market", "Winter Market"]) + expect(json_response["pagination"]["more"]).to be false + end + + it "filters order cycles by name query" do + get "/admin/reports/search_order_cycles", params: base_params.merge(q: "Winter") + + json_response = response.parsed_body + expect(json_response["results"].pluck("label")).to eq(["Winter Market"]) + expect(json_response["pagination"]["more"]).to be false + end + end + + describe "GET /admin/reports/search_distributors" do + before do + distributor1.update!(name: "Alpha Farm") + distributor2.update!(name: "Beta Market") + end + + it "filters distributors by name query" do + get "/admin/reports/search_distributors", params: base_params.merge(q: "Alpha") + + json_response = response.parsed_body + expect(json_response["results"].pluck("label")).to eq(["Alpha Farm"]) + expect(json_response["pagination"]["more"]).to be false + end + + context "with more than 30 distributors" do + before { create_list(:distributor_enterprise, 35) } + + it "returns first page with 30 results and more flag as true" do + get "/admin/reports/search_distributors", params: base_params.merge(page: 1) + + json_response = response.parsed_body + expect(json_response["results"].length).to eq(30) + expect(json_response["pagination"]["more"]).to be true + end + + it "returns remaining results on subsequent pages with more flag as false" do + get "/admin/reports/search_distributors", params: base_params.merge(page: 2) + + json_response = response.parsed_body + expect(json_response["results"].length).to be > 0 + expect(json_response["pagination"]["more"]).to be false + end + end + end + end + + context "when user is not an admin" do + before do + login_as distributor1.users.first + create_adjustment(orderA1, enterprise_fee1, 5.0) + create_adjustment(orderA2, enterprise_fee2, 3.0) + end + + describe "GET /admin/reports/search_enterprise_fees" do + it "returns only enterprise fees for user's managed enterprises" do + get "/admin/reports/search_enterprise_fees", params: base_params + + expect(response).to have_http_status(:ok) + json_response = response.parsed_body + + expect(json_response["results"].pluck("label")).to eq(['Delivery Fee']) + expect(json_response["pagination"]["more"]).to be false + end + end + + describe "GET /admin/reports/search_enterprise_fee_owners" do + it "returns only enterprise fee owners for user's managed enterprises" do + get "/admin/reports/search_enterprise_fee_owners", params: base_params + + expect(response).to have_http_status(:ok) + json_response = response.parsed_body + + expect(json_response["results"].pluck("label")).to eq([distributor1.name]) + expect(json_response["pagination"]["more"]).to be false + end + end + + describe "GET /admin/reports/search_order_customers" do + it "returns only customers from user's managed enterprises" do + customer1 = create(:customer, email: "alice@example.com", enterprise: distributor1) + customer2 = create(:customer, email: "bob@example.com", enterprise: distributor1) + orderA1.update!(customer: customer1) + orderA2.update!(customer: customer2) + + get "/admin/reports/search_order_customers", params: base_params + + json_response = response.parsed_body + expect(json_response["results"].pluck("label")).to eq(["alice@example.com"]) + expect(json_response["pagination"]["more"]).to be false + end + end + + describe "GET /admin/reports/search_order_cycles" do + it "returns only order cycles accessible to user's managed enterprises" do + ocA.update!(name: "Winter Market") + ocB.update!(name: "Summer Market") + create(:simple_order_cycle, name: 'Autumn Market', coordinator: coordinator1, + distributors: [distributor2], + suppliers: [supplier1, supplier2, supplier3], + variants: [product2.variants.first]) + + get "/admin/reports/search_order_cycles", params: base_params + + json_response = response.parsed_body + expect(json_response["results"].pluck("label")).to eq(["Summer Market", "Winter Market"]) + expect(json_response["pagination"]["more"]).to be false + end + end + + describe "GET /admin/reports/search_distributors" do + it "returns only user's managed distributors" do + get "/admin/reports/search_distributors", params: base_params + + json_response = response.parsed_body + expect(json_response["results"].pluck("label")).to eq([distributor1.name]) + expect(json_response["pagination"]["more"]).to be false + end + end + end +end diff --git a/spec/requests/admin/vouchers_spec.rb b/spec/requests/admin/vouchers_spec.rb index 3c3eb7e6fb..5502d555e8 100644 --- a/spec/requests/admin/vouchers_spec.rb +++ b/spec/requests/admin/vouchers_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "/admin/enterprises/:enterprise_id/vouchers" do let(:enterprise) { create(:supplier_enterprise, name: "Feedme") } let(:enterprise_user) { create(:user, enterprise_limit: 1) } diff --git a/spec/requests/api/routes_spec.rb b/spec/requests/api/routes_spec.rb index a702010471..787fea4b78 100644 --- a/spec/requests/api/routes_spec.rb +++ b/spec/requests/api/routes_spec.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true # test a single endpoint to make sure the redirects are working as intended. -require 'spec_helper' RSpec.describe 'Orders Cycles endpoint' do let(:distributor) { create(:distributor_enterprise) } diff --git a/spec/requests/api_docs_spec.rb b/spec/requests/api_docs_spec.rb index 57ec4292e1..a729c25996 100644 --- a/spec/requests/api_docs_spec.rb +++ b/spec/requests/api_docs_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe "API documentation" do it "shows the OFN API v1" do get rswag_ui_path diff --git a/spec/requests/checkout/concurrency_spec.rb b/spec/requests/checkout/concurrency_spec.rb index 0805531d3d..8420fc3b77 100644 --- a/spec/requests/checkout/concurrency_spec.rb +++ b/spec/requests/checkout/concurrency_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - # This is the first example of testing concurrency in the Open Food Network. # If we want to do this more often, we should look at: # diff --git a/spec/requests/checkout/paypal_spec.rb b/spec/requests/checkout/paypal_spec.rb index 05eab82d63..a1c453ed3d 100644 --- a/spec/requests/checkout/paypal_spec.rb +++ b/spec/requests/checkout/paypal_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe "checking out an order with a paypal express payment method" do include ShopWorkflow include PaypalHelper diff --git a/spec/requests/checkout/routes_spec.rb b/spec/requests/checkout/routes_spec.rb index 6cbe586d3a..3fb9de5246 100644 --- a/spec/requests/checkout/routes_spec.rb +++ b/spec/requests/checkout/routes_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe 'checkout endpoints' do include ShopWorkflow diff --git a/spec/requests/checkout/stripe_sca_spec.rb b/spec/requests/checkout/stripe_sca_spec.rb index 12af937792..3e3cb1445a 100644 --- a/spec/requests/checkout/stripe_sca_spec.rb +++ b/spec/requests/checkout/stripe_sca_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe "checking out an order with a Stripe SCA payment method" do include ShopWorkflow include AuthenticationHelper diff --git a/spec/requests/errors_spec.rb b/spec/requests/errors_spec.rb index f0a364749a..24097c5229 100644 --- a/spec/requests/errors_spec.rb +++ b/spec/requests/errors_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe 'Errors' do include ExceptionHelper diff --git a/spec/requests/home_controller_spec.rb b/spec/requests/home_controller_spec.rb index 04c9eab414..306e58eddd 100644 --- a/spec/requests/home_controller_spec.rb +++ b/spec/requests/home_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe HomeController do context "#unauthorized" do it "renders the unauthorized template" do diff --git a/spec/requests/large_request_spec.rb b/spec/requests/large_request_spec.rb index ce5fbefb59..4005463046 100644 --- a/spec/requests/large_request_spec.rb +++ b/spec/requests/large_request_spec.rb @@ -3,7 +3,6 @@ # Large requests can fail if Devise tries to store the URL in the session cookie. # # http://daniel.fone.net.nz/blog/2014/11/28/actiondispatch-cookies-cookieoverflow-via-devise-s-user_return_to/ -require 'spec_helper' RSpec.describe 'A very large request' do it 'should not overflow cookies' do diff --git a/spec/requests/omniauth_callbacks_controller_spec.rb b/spec/requests/omniauth_callbacks_controller_spec.rb index 27f1ba9a54..4b1dc719f3 100644 --- a/spec/requests/omniauth_callbacks_controller_spec.rb +++ b/spec/requests/omniauth_callbacks_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - # Devise calls OmniauthCallbacksController for OpenID Connect callbacks. RSpec.describe '/user/spree_user/auth/openid_connect/callback' do include AuthenticationHelper diff --git a/spec/requests/payment_gateways/taler_spec.rb b/spec/requests/payment_gateways/taler_spec.rb new file mode 100644 index 0000000000..0ddc88b927 --- /dev/null +++ b/spec/requests/payment_gateways/taler_spec.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe "/payment_gateways/taler/:id" do + it "completes the order", :vcr do + shop = create(:distributor_enterprise) + taler = Spree::PaymentMethod::Taler.create!( + name: "Taler", + environment: "test", + distributors: [shop], + preferred_backend_url: "https://backend.demo.taler.net/instances/sandbox", + preferred_api_key: "sandbox", + ) + order = create(:order_ready_for_confirmation, payment_method: taler) + payment = Spree::Payment.last + payment.update!( + source: taler, + payment_method: taler, + # This is a Taler order id of a paid order on the test backend. + # It may be gone when you try to re-record this test. + # To create a new order, you need user interaction with a wallet. + response_code: "2026.020-03R3ETNZZ0DVA", + redirect_auth_url: "https://merchant.backend.where-we-paid.com", + ) + + get payment_gateways_confirm_taler_path(payment_id: payment.id) + expect(response).to redirect_to(order_path(order, order_token: order.token)) + + payment.reload + expect(payment.state).to eq "completed" + end +end diff --git a/spec/requests/payments_controller_spec.rb b/spec/requests/payments_controller_spec.rb index 242a4e1202..fba7b23773 100644 --- a/spec/requests/payments_controller_spec.rb +++ b/spec/requests/payments_controller_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe "/payments/:id/authorize" do let!(:user) { create(:user) } let!(:order) { create(:order, user:) } diff --git a/spec/requests/spree/admin/overview_spec.rb b/spec/requests/spree/admin/overview_spec.rb index 8649f0f57d..5fda013dd3 100644 --- a/spec/requests/spree/admin/overview_spec.rb +++ b/spec/requests/spree/admin/overview_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "/admin" do let(:enterprise) { create(:supplier_enterprise, name: "Feedme") } let(:enterprise_user) { create(:user, enterprise_limit: 1) } diff --git a/spec/requests/spree/admin/payments_spec.rb b/spec/requests/spree/admin/payments_spec.rb index 2a60c8cfa6..1b7667ca25 100644 --- a/spec/requests/spree/admin/payments_spec.rb +++ b/spec/requests/spree/admin/payments_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Spree::Admin::PaymentsController do let(:user) { order.user } let(:order) { create(:completed_order_with_fees) } diff --git a/spec/requests/voucher_adjustments_spec.rb b/spec/requests/voucher_adjustments_spec.rb index 4fcb382f5b..2419d032fa 100644 --- a/spec/requests/voucher_adjustments_spec.rb +++ b/spec/requests/voucher_adjustments_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe VoucherAdjustmentsController do let(:user) { order.user } let(:address) { create(:address) } @@ -161,7 +159,19 @@ RSpec.describe VoucherAdjustmentsController do post("/voucher_adjustments", params:) expect(response).to be_unprocessable - expect(flash[:error]).to match "There was an error while adding the voucher" + expect(flash[:error]).to match "The voucher is not valid" + end + end + + context "when voucher has expired" do + it "returns 422 and an error message" do + mock_vine_voucher_validator(voucher: nil, + errors: { invalid_voucher: "The voucher has expired" }) + + post("/voucher_adjustments", params:) + + expect(response).to be_unprocessable + expect(flash[:error]).to match "The voucher has expired" end end @@ -219,6 +229,20 @@ RSpec.describe VoucherAdjustmentsController do ) end end + + context "when voucher has expired" do + it "returns 422 and an error message" do + vine_voucher = build(:vine_voucher, code: vine_voucher_code, + enterprise: distributor) + mock_vine_voucher_validator(voucher: vine_voucher, + errors: { invalid_voucher: "The voucher has expired" }) + + post("/voucher_adjustments", params:) + + expect(response).to be_unprocessable + expect(flash[:error]).to match "The voucher has expired" + end + end end end end diff --git a/spec/requests/well_known_spec.rb b/spec/requests/well_known_spec.rb index 9f6f423958..6da89ed988 100644 --- a/spec/requests/well_known_spec.rb +++ b/spec/requests/well_known_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe "/.well-known/" do describe "dfc/" do it "publishes our endpoints" do diff --git a/spec/routing/stripe_spec.rb b/spec/routing/stripe_spec.rb index 8f51a48e44..4c2da08ac5 100644 --- a/spec/routing/stripe_spec.rb +++ b/spec/routing/stripe_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "routing for Stripe return URLS" do context "checkout return URLs" do it "routes /checkout to checkout#edit" do diff --git a/spec/serializers/api/admin/customer_serializer_spec.rb b/spec/serializers/api/admin/customer_serializer_spec.rb index 999c8015f1..d751a84c09 100644 --- a/spec/serializers/api/admin/customer_serializer_spec.rb +++ b/spec/serializers/api/admin/customer_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::Admin::CustomerSerializer do let(:tag_list) { ["one", "two", "three"] } let(:customer) { create(:customer, tag_list:) } diff --git a/spec/serializers/api/admin/customer_with_balance_serializer_spec.rb b/spec/serializers/api/admin/customer_with_balance_serializer_spec.rb index 53e9c4490b..fe49d26d22 100644 --- a/spec/serializers/api/admin/customer_with_balance_serializer_spec.rb +++ b/spec/serializers/api/admin/customer_with_balance_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::Admin::CustomerWithBalanceSerializer do let(:serialized_customer) { described_class.new(customer) } diff --git a/spec/serializers/api/admin/enterprise_serializer_spec.rb b/spec/serializers/api/admin/enterprise_serializer_spec.rb index 8483c2e27c..b9afc6747c 100644 --- a/spec/serializers/api/admin/enterprise_serializer_spec.rb +++ b/spec/serializers/api/admin/enterprise_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Api::Admin::EnterpriseSerializer do include FileHelper diff --git a/spec/serializers/api/admin/exchange_serializer_spec.rb b/spec/serializers/api/admin/exchange_serializer_spec.rb index 05915d7823..836ef142da 100644 --- a/spec/serializers/api/admin/exchange_serializer_spec.rb +++ b/spec/serializers/api/admin/exchange_serializer_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'open_food_network/order_cycle_permissions' RSpec.describe Api::Admin::ExchangeSerializer do diff --git a/spec/serializers/api/admin/for_order_cycle/supplied_product_serializer_spec.rb b/spec/serializers/api/admin/for_order_cycle/supplied_product_serializer_spec.rb index 9f76110001..4293f74b32 100644 --- a/spec/serializers/api/admin/for_order_cycle/supplied_product_serializer_spec.rb +++ b/spec/serializers/api/admin/for_order_cycle/supplied_product_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Api::Admin::ForOrderCycle::SuppliedProductSerializer do let(:coordinator) { create(:distributor_enterprise) } let(:order_cycle) { double(:order_cycle, coordinator:) } diff --git a/spec/serializers/api/admin/index_enterprise_serializer_spec.rb b/spec/serializers/api/admin/index_enterprise_serializer_spec.rb index 810fbf951b..a3740724cf 100644 --- a/spec/serializers/api/admin/index_enterprise_serializer_spec.rb +++ b/spec/serializers/api/admin/index_enterprise_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::Admin::IndexEnterpriseSerializer do let(:enterprise) { create(:distributor_enterprise) } context "when spree_current_user is a manager" do diff --git a/spec/serializers/api/admin/order_cycle_serializer_spec.rb b/spec/serializers/api/admin/order_cycle_serializer_spec.rb index b05bf9816e..bd7b256b5f 100644 --- a/spec/serializers/api/admin/order_cycle_serializer_spec.rb +++ b/spec/serializers/api/admin/order_cycle_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Api::Admin::OrderCycleSerializer do let(:order_cycle) { create(:order_cycle) } let(:serializer) { diff --git a/spec/serializers/api/admin/order_serializer_spec.rb b/spec/serializers/api/admin/order_serializer_spec.rb index 5a1a2c1f50..7c866ce341 100644 --- a/spec/serializers/api/admin/order_serializer_spec.rb +++ b/spec/serializers/api/admin/order_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Api::Admin::OrderSerializer do let(:serializer) { described_class.new order } let(:order) { build(:order) } diff --git a/spec/serializers/api/admin/product_serializer_spec.rb b/spec/serializers/api/admin/product_serializer_spec.rb index 8cbb0a63ec..b052cbb9e3 100644 --- a/spec/serializers/api/admin/product_serializer_spec.rb +++ b/spec/serializers/api/admin/product_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::Admin::ProductSerializer do let(:product) { create(:simple_product, supplier_id: create(:supplier_enterprise).id) } let(:serializer) { described_class.new(product) } diff --git a/spec/serializers/api/admin/subscription_customer_serializer_spec.rb b/spec/serializers/api/admin/subscription_customer_serializer_spec.rb index fd1927c4ef..f6cbce2922 100644 --- a/spec/serializers/api/admin/subscription_customer_serializer_spec.rb +++ b/spec/serializers/api/admin/subscription_customer_serializer_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'open_food_network/address_finder' RSpec.describe Api::Admin::SubscriptionCustomerSerializer do diff --git a/spec/serializers/api/admin/subscription_line_item_serializer_spec.rb b/spec/serializers/api/admin/subscription_line_item_serializer_spec.rb index 79acfced05..ed216466c2 100644 --- a/spec/serializers/api/admin/subscription_line_item_serializer_spec.rb +++ b/spec/serializers/api/admin/subscription_line_item_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module Api module Admin RSpec.describe SubscriptionLineItemSerializer do diff --git a/spec/serializers/api/admin/variant_serializer_spec.rb b/spec/serializers/api/admin/variant_serializer_spec.rb index 60f8ad45d4..a154f3b375 100644 --- a/spec/serializers/api/admin/variant_serializer_spec.rb +++ b/spec/serializers/api/admin/variant_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::Admin::VariantSerializer do let(:variant) { create(:variant) } diff --git a/spec/serializers/api/cached_enterprise_serializer_spec.rb b/spec/serializers/api/cached_enterprise_serializer_spec.rb index c358870149..32528cf903 100644 --- a/spec/serializers/api/cached_enterprise_serializer_spec.rb +++ b/spec/serializers/api/cached_enterprise_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::CachedEnterpriseSerializer do let(:cached_enterprise_serializer) { described_class.new(enterprise) } let(:enterprise) { create(:enterprise) } diff --git a/spec/serializers/api/credit_card_serializer_spec.rb b/spec/serializers/api/credit_card_serializer_spec.rb index f23160d9cf..3df2adcaac 100644 --- a/spec/serializers/api/credit_card_serializer_spec.rb +++ b/spec/serializers/api/credit_card_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::CreditCardSerializer do let(:card) { create(:credit_card) } let(:serializer) { Api::CreditCardSerializer.new card } diff --git a/spec/serializers/api/current_order_serializer_spec.rb b/spec/serializers/api/current_order_serializer_spec.rb index 255885c330..09a153743d 100644 --- a/spec/serializers/api/current_order_serializer_spec.rb +++ b/spec/serializers/api/current_order_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::CurrentOrderSerializer do let(:distributor) { build(:distributor_enterprise) } let(:order_cycle) { build(:simple_order_cycle) } diff --git a/spec/serializers/api/enterprise_serializer_spec.rb b/spec/serializers/api/enterprise_serializer_spec.rb index 0eb7d47abd..19789a218e 100644 --- a/spec/serializers/api/enterprise_serializer_spec.rb +++ b/spec/serializers/api/enterprise_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::EnterpriseSerializer do let(:serializer) { Api::EnterpriseSerializer.new enterprise, data: } let(:enterprise) { create(:distributor_enterprise, is_primary_producer: true) } diff --git a/spec/serializers/api/enterprise_shopfront_list_serializer_spec.rb b/spec/serializers/api/enterprise_shopfront_list_serializer_spec.rb index 47462ccbed..1a202fe8b6 100644 --- a/spec/serializers/api/enterprise_shopfront_list_serializer_spec.rb +++ b/spec/serializers/api/enterprise_shopfront_list_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::EnterpriseShopfrontListSerializer do let(:enterprise) { create(:distributor_enterprise) } let(:serializer) { diff --git a/spec/serializers/api/enterprise_shopfront_serializer_spec.rb b/spec/serializers/api/enterprise_shopfront_serializer_spec.rb index 3f0dee41da..0746f16e4a 100644 --- a/spec/serializers/api/enterprise_shopfront_serializer_spec.rb +++ b/spec/serializers/api/enterprise_shopfront_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::EnterpriseShopfrontSerializer do let!(:hub) { create(:distributor_enterprise, with_payment_and_shipping: true) } let!(:producer) { create(:supplier_enterprise) } diff --git a/spec/serializers/api/group_list_serializer_spec.rb b/spec/serializers/api/group_list_serializer_spec.rb index 5dff7def23..efecbdd951 100644 --- a/spec/serializers/api/group_list_serializer_spec.rb +++ b/spec/serializers/api/group_list_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::GroupListSerializer do let!(:group) { create(:enterprise_group) } let!(:producer) { create(:supplier_enterprise) } diff --git a/spec/serializers/api/order_cycle_serializer_spec.rb b/spec/serializers/api/order_cycle_serializer_spec.rb index af316624d7..fa38dba4ae 100644 --- a/spec/serializers/api/order_cycle_serializer_spec.rb +++ b/spec/serializers/api/order_cycle_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::OrderCycleSerializer do let(:order_cycle) { create(:simple_order_cycle) } let(:serializer) { Api::OrderCycleSerializer.new(order_cycle).to_json } diff --git a/spec/serializers/api/order_serializer_spec.rb b/spec/serializers/api/order_serializer_spec.rb index dde0126514..aa9ac09d2f 100644 --- a/spec/serializers/api/order_serializer_spec.rb +++ b/spec/serializers/api/order_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::OrderSerializer do let(:serializer) { Api::OrderSerializer.new order } let(:order) { create(:completed_order_with_totals) } diff --git a/spec/serializers/api/product_serializer_spec.rb b/spec/serializers/api/product_serializer_spec.rb index 73a6e952f9..50be73ca59 100644 --- a/spec/serializers/api/product_serializer_spec.rb +++ b/spec/serializers/api/product_serializer_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'open_food_network/enterprise_fee_calculator' RSpec.describe Api::ProductSerializer do diff --git a/spec/serializers/api/shipping_method_serializer_spec.rb b/spec/serializers/api/shipping_method_serializer_spec.rb index a24665052e..021481ebb0 100644 --- a/spec/serializers/api/shipping_method_serializer_spec.rb +++ b/spec/serializers/api/shipping_method_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::ShippingMethodSerializer do let(:shipping_method) { create(:shipping_method) } diff --git a/spec/serializers/api/uncached_enterprise_serializer_spec.rb b/spec/serializers/api/uncached_enterprise_serializer_spec.rb index b86ed91955..1e350a058d 100644 --- a/spec/serializers/api/uncached_enterprise_serializer_spec.rb +++ b/spec/serializers/api/uncached_enterprise_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::UncachedEnterpriseSerializer do let(:serializer) { described_class.new enterprise, { data: OpenFoodNetwork::EnterpriseInjectionData.new } diff --git a/spec/serializers/api/variant_serializer_spec.rb b/spec/serializers/api/variant_serializer_spec.rb index b8e50edad7..d4992d1359 100644 --- a/spec/serializers/api/variant_serializer_spec.rb +++ b/spec/serializers/api/variant_serializer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Api::VariantSerializer do subject { Api::VariantSerializer.new variant } let(:variant) { create(:variant) } diff --git a/spec/services/address_geocoder_spec.rb b/spec/services/address_geocoder_spec.rb index 5865275521..3493c7c51e 100644 --- a/spec/services/address_geocoder_spec.rb +++ b/spec/services/address_geocoder_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe AddressGeocoder do let(:australia) { Spree::Country.find_or_create_by!(name: "Australia") } let(:victoria) { Spree::State.find_or_create_by(name: "Victoria", country: australia) } diff --git a/spec/services/alert_spec.rb b/spec/services/alert_spec.rb index c899228e6a..528943a94f 100644 --- a/spec/services/alert_spec.rb +++ b/spec/services/alert_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Alert do around do |example| original_config = nil diff --git a/spec/services/backorder_updater_spec.rb b/spec/services/backorder_updater_spec.rb index af1f5471c1..efa3e0ce41 100644 --- a/spec/services/backorder_updater_spec.rb +++ b/spec/services/backorder_updater_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe BackorderUpdater do let(:order) { create(:completed_order_with_totals) } let(:order_cycle) { order.order_cycle } diff --git a/spec/services/cache_service_spec.rb b/spec/services/cache_service_spec.rb index 526f211bfd..bf02095c16 100644 --- a/spec/services/cache_service_spec.rb +++ b/spec/services/cache_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe CacheService do let(:rails_cache) { Rails.cache } diff --git a/spec/services/cap_quantity_spec.rb b/spec/services/cap_quantity_spec.rb index 3f97f117dc..9597de9411 100644 --- a/spec/services/cap_quantity_spec.rb +++ b/spec/services/cap_quantity_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe CapQuantity do describe "checking that line items are available to purchase" do let(:order_cycle) { create(:simple_order_cycle) } diff --git a/spec/services/cart_service_spec.rb b/spec/services/cart_service_spec.rb index ef2307fe61..a0f2d34d90 100644 --- a/spec/services/cart_service_spec.rb +++ b/spec/services/cart_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe CartService do let(:order) { instance_double(Spree::Order, id: 123) } let(:currency) { "EUR" } diff --git a/spec/services/checkout/payment_method_fetcher_spec.rb b/spec/services/checkout/payment_method_fetcher_spec.rb index b3f941b0e4..94866499b4 100644 --- a/spec/services/checkout/payment_method_fetcher_spec.rb +++ b/spec/services/checkout/payment_method_fetcher_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Checkout::PaymentMethodFetcher do let!(:order) { create(:completed_order_with_totals) } let(:payment1) { build(:payment, order:) } diff --git a/spec/services/checkout/post_checkout_actions_spec.rb b/spec/services/checkout/post_checkout_actions_spec.rb index 30b4936eaa..a2b0592f7c 100644 --- a/spec/services/checkout/post_checkout_actions_spec.rb +++ b/spec/services/checkout/post_checkout_actions_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Checkout::PostCheckoutActions do let(:order) { create(:order_with_distributor) } let(:postCheckoutActions) { Checkout::PostCheckoutActions.new(order) } diff --git a/spec/services/checkout/stripe_redirect_spec.rb b/spec/services/checkout/stripe_redirect_spec.rb index 6c3635cde2..219da451ef 100644 --- a/spec/services/checkout/stripe_redirect_spec.rb +++ b/spec/services/checkout/stripe_redirect_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Checkout::StripeRedirect do describe '#path' do let(:order) { create(:order) } diff --git a/spec/services/content_sanitizer_spec.rb b/spec/services/content_sanitizer_spec.rb index 63b6a15478..1d419acd4c 100644 --- a/spec/services/content_sanitizer_spec.rb +++ b/spec/services/content_sanitizer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ContentSanitizer do let(:service) { described_class.new } diff --git a/spec/services/default_shipping_category_spec.rb b/spec/services/default_shipping_category_spec.rb index 12d8488181..20b31968d8 100644 --- a/spec/services/default_shipping_category_spec.rb +++ b/spec/services/default_shipping_category_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe DefaultShippingCategory do describe '.create!' do it "names the location 'Default'" do diff --git a/spec/services/embedded_page_service_spec.rb b/spec/services/embedded_page_service_spec.rb index 11f242c515..091713b950 100644 --- a/spec/services/embedded_page_service_spec.rb +++ b/spec/services/embedded_page_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe EmbeddedPageService do let(:enterprise_slug) { 'test-enterprise' } let(:params) { diff --git a/spec/services/exchange_products_renderer_spec.rb b/spec/services/exchange_products_renderer_spec.rb index dd64f43df2..bb2618c1f0 100644 --- a/spec/services/exchange_products_renderer_spec.rb +++ b/spec/services/exchange_products_renderer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe ExchangeProductsRenderer do let(:order_cycle) { create(:order_cycle) } let(:coordinator) { order_cycle.coordinator } diff --git a/spec/services/exchange_variant_bulk_updater_spec.rb b/spec/services/exchange_variant_bulk_updater_spec.rb index 880f097548..26b784f089 100644 --- a/spec/services/exchange_variant_bulk_updater_spec.rb +++ b/spec/services/exchange_variant_bulk_updater_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ExchangeVariantBulkUpdater do let!(:first_variant) { create(:variant) } let!(:second_variant) { create(:variant) } diff --git a/spec/services/fdc_backorderer_spec.rb b/spec/services/fdc_backorderer_spec.rb index b2aea87d14..742bd90c11 100644 --- a/spec/services/fdc_backorderer_spec.rb +++ b/spec/services/fdc_backorderer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe FdcBackorderer do let(:subject) { FdcBackorderer.new(order.distributor.owner, urls) } let(:urls) { FdcUrlBuilder.new(product_link) } diff --git a/spec/services/fdc_offer_broker_spec.rb b/spec/services/fdc_offer_broker_spec.rb index 6987e0cec5..5de7ffc363 100644 --- a/spec/services/fdc_offer_broker_spec.rb +++ b/spec/services/fdc_offer_broker_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe FdcOfferBroker do subject { FdcOfferBroker.new(catalog) } let(:catalog) { diff --git a/spec/services/fdc_url_builder_spec.rb b/spec/services/fdc_url_builder_spec.rb index 5557cccf2a..22be3f5838 100644 --- a/spec/services/fdc_url_builder_spec.rb +++ b/spec/services/fdc_url_builder_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe FdcUrlBuilder do subject(:urls) { FdcUrlBuilder.new(product_link) } let(:product_link) { diff --git a/spec/services/file_path_sanitizer_spec.rb b/spec/services/file_path_sanitizer_spec.rb index 9dd4fc1581..b04aa9e4bb 100644 --- a/spec/services/file_path_sanitizer_spec.rb +++ b/spec/services/file_path_sanitizer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe FilePathSanitizer do let(:folder_path){ '/tmp/product_import123' } let(:file_path) { "#{folder_path}/import.csv" } diff --git a/spec/services/html_sanitizer_spec.rb b/spec/services/html_sanitizer_spec.rb index 60a247a63f..38a4d8d7d0 100644 --- a/spec/services/html_sanitizer_spec.rb +++ b/spec/services/html_sanitizer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe HtmlSanitizer do subject { described_class } diff --git a/spec/services/image_importer_spec.rb b/spec/services/image_importer_spec.rb index 67fa4793d2..9bde8fbbab 100644 --- a/spec/services/image_importer_spec.rb +++ b/spec/services/image_importer_spec.rb @@ -1,13 +1,11 @@ # frozen_string_literal: false -require 'spec_helper' - RSpec.describe ImageImporter do let(:ofn_url) { "https://s3.amazonaws.com/ofn_production/eofop2en1y6tu9fr1x9b0wzwgs5r" } let(:product) { create(:product) } describe "#import" do - it "downloads from the Internet", :vcr do + it "downloads from the Internet", :vcr, :aggregate_failures do expect { subject.import(ofn_url, product) }.to change { diff --git a/spec/services/invoice_data_generator_spec.rb b/spec/services/invoice_data_generator_spec.rb index 917b3557a8..7776aee240 100644 --- a/spec/services/invoice_data_generator_spec.rb +++ b/spec/services/invoice_data_generator_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe InvoiceDataGenerator do describe '#generate' do let!(:order) { create(:completed_order_with_fees) } diff --git a/spec/services/invoice_renderer_spec.rb b/spec/services/invoice_renderer_spec.rb index e732aa3b5d..269ba4c72b 100644 --- a/spec/services/invoice_renderer_spec.rb +++ b/spec/services/invoice_renderer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe InvoiceRenderer do include Spree::PaymentMethodsHelper diff --git a/spec/services/mail_configuration_spec.rb b/spec/services/mail_configuration_spec.rb index c4b6b7068d..c8d1985140 100644 --- a/spec/services/mail_configuration_spec.rb +++ b/spec/services/mail_configuration_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe MailConfiguration do describe 'apply!' do before do diff --git a/spec/services/order_cycles/clone_service_spec.rb b/spec/services/order_cycles/clone_service_spec.rb index ae9808eb08..2b9c50e1ca 100644 --- a/spec/services/order_cycles/clone_service_spec.rb +++ b/spec/services/order_cycles/clone_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderCycles::CloneService do describe "#create" do it "clones the order cycle" do diff --git a/spec/services/order_cycles/distributed_products_service_spec.rb b/spec/services/order_cycles/distributed_products_service_spec.rb index 2766219b0d..5de9929dab 100644 --- a/spec/services/order_cycles/distributed_products_service_spec.rb +++ b/spec/services/order_cycles/distributed_products_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderCycles::DistributedProductsService do # NOTE: product_relation_incl_supplier is tested via ProductsRenderer specs: # spec/services/products_renderer_spec.rb diff --git a/spec/services/order_cycles/distributed_variants_service_spec.rb b/spec/services/order_cycles/distributed_variants_service_spec.rb index d0abcf08f7..fc5a01bc7f 100644 --- a/spec/services/order_cycles/distributed_variants_service_spec.rb +++ b/spec/services/order_cycles/distributed_variants_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderCycles::DistributedVariantsService do let(:order) { double(:order) } let(:distributor) { double(:distributor) } diff --git a/spec/services/order_cycles/form_service_spec.rb b/spec/services/order_cycles/form_service_spec.rb index b0efb4fcee..514bdb5201 100644 --- a/spec/services/order_cycles/form_service_spec.rb +++ b/spec/services/order_cycles/form_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderCycles::FormService do describe "save" do describe "creating a new order cycle from params" do diff --git a/spec/services/order_cycles/warning_service_spec.rb b/spec/services/order_cycles/warning_service_spec.rb index aad80e8721..4292060285 100644 --- a/spec/services/order_cycles/warning_service_spec.rb +++ b/spec/services/order_cycles/warning_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderCycles::WarningService do let(:user) { create(:user) } let(:subject) { OrderCycles::WarningService } diff --git a/spec/services/order_cycles/webhook_service_spec.rb b/spec/services/order_cycles/webhook_service_spec.rb index a006d1e68e..1fe22323e7 100644 --- a/spec/services/order_cycles/webhook_service_spec.rb +++ b/spec/services/order_cycles/webhook_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe OrderCycles::WebhookService do let(:order_cycle) { create( @@ -22,7 +20,7 @@ RSpec.describe OrderCycles::WebhookService do # The co-ordinating enterprise has a non-owner user with an endpoint. # They shouldn't receive a notification. coordinator_user = create(:user, enterprises: [coordinator]) - coordinator_user.webhook_endpoints.create!(url: "http://coordinator_user_url") + coordinator_user.webhook_endpoints.order_cycle_opened.create!(url: "http://coordinator_user_url") expect{ subject } .not_to enqueue_job(WebhookDeliveryJob).with("http://coordinator_user_url", any_args) @@ -30,7 +28,7 @@ RSpec.describe OrderCycles::WebhookService do context "coordinator owner has endpoint configured" do before do - coordinator.owner.webhook_endpoints.create! url: "http://coordinator_owner_url" + coordinator.owner.webhook_endpoints.order_cycle_opened.create!(url: "http://coordinator_owner_url") end it "creates webhook payload for order cycle coordinator" do @@ -77,7 +75,7 @@ RSpec.describe OrderCycles::WebhookService do let(:two_distributors) { (1..2).map do |i| user = create(:user) - user.webhook_endpoints.create!(url: "http://distributor#{i}_owner_url") + user.webhook_endpoints.order_cycle_opened.create!(url: "http://distributor#{i}_owner_url") create(:distributor_enterprise, owner: user) end } @@ -109,7 +107,7 @@ RSpec.describe OrderCycles::WebhookService do } it "creates only one webhook payload for the user's endpoint" do - user.webhook_endpoints.create! url: "http://coordinator_owner_url" + user.webhook_endpoints.order_cycle_opened.create!(url: "http://coordinator_owner_url") expect{ subject } .to enqueue_job(WebhookDeliveryJob).with("http://coordinator_owner_url", any_args) @@ -128,7 +126,7 @@ RSpec.describe OrderCycles::WebhookService do } let(:supplier) { user = create(:user) - user.webhook_endpoints.create!(url: "http://supplier_owner_url") + user.webhook_endpoints.order_cycle_opened.create!(url: "http://supplier_owner_url") create(:supplier_enterprise, owner: user) } diff --git a/spec/services/orders/available_payment_methods_service_spec.rb b/spec/services/orders/available_payment_methods_service_spec.rb index fc442f3748..77e34ffd12 100644 --- a/spec/services/orders/available_payment_methods_service_spec.rb +++ b/spec/services/orders/available_payment_methods_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Orders::AvailablePaymentMethodsService do context "when the order has no current_distributor" do it "returns an empty array" do diff --git a/spec/services/orders/available_shipping_methods_service_spec.rb b/spec/services/orders/available_shipping_methods_service_spec.rb index 639ff8d0df..1220bba039 100644 --- a/spec/services/orders/available_shipping_methods_service_spec.rb +++ b/spec/services/orders/available_shipping_methods_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Orders::AvailableShippingMethodsService do context "when the order has no current_distributor" do it "returns an empty array" do diff --git a/spec/services/orders/cart_reset_service_spec.rb b/spec/services/orders/cart_reset_service_spec.rb index 3c4b01048d..77f36021f1 100644 --- a/spec/services/orders/cart_reset_service_spec.rb +++ b/spec/services/orders/cart_reset_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Orders::CartResetService do let(:distributor) { create(:distributor_enterprise) } let(:order) { create(:order, :with_line_item, distributor:) } diff --git a/spec/services/orders/check_stock_service_spec.rb b/spec/services/orders/check_stock_service_spec.rb index 4a3f6e26d0..60eed519c2 100644 --- a/spec/services/orders/check_stock_service_spec.rb +++ b/spec/services/orders/check_stock_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Orders::CheckStockService do subject { described_class.new(order:) } diff --git a/spec/services/orders/checkout_restart_service_spec.rb b/spec/services/orders/checkout_restart_service_spec.rb index 3ebc3284b4..bebf2250b2 100644 --- a/spec/services/orders/checkout_restart_service_spec.rb +++ b/spec/services/orders/checkout_restart_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Orders::CheckoutRestartService do let(:order) { create(:order_with_distributor) } diff --git a/spec/services/orders/compare_invoice_service_spec.rb b/spec/services/orders/compare_invoice_service_spec.rb index dd4757bd14..a3c5a8a2cc 100644 --- a/spec/services/orders/compare_invoice_service_spec.rb +++ b/spec/services/orders/compare_invoice_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.shared_examples "attribute changes - payment total" do |boolean, type| before do Spree::Order.where(id: order.id).update_all(payment_total: order.payment_total + 10) @@ -40,8 +38,8 @@ RSpec.shared_examples "attribute changes - tax total changes" do |boolean, type, create(:order_with_taxes, product_price: 110, tax_rate_amount: 0.1, included_in_price: included_boolean) .tap do |order| - order.create_tax_charge! - order.update_shipping_fees! + order.create_tax_charge! + order.update_shipping_fees! end end diff --git a/spec/services/orders/customer_cancellation_service_spec.rb b/spec/services/orders/customer_cancellation_service_spec.rb index 8f32177334..8634471be1 100644 --- a/spec/services/orders/customer_cancellation_service_spec.rb +++ b/spec/services/orders/customer_cancellation_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Orders::CustomerCancellationService do let(:mail_mock) { double(:mailer_mock, deliver_later: true) } before do diff --git a/spec/services/orders/factory_service_spec.rb b/spec/services/orders/factory_service_spec.rb index 8693494797..4d7d1632d1 100644 --- a/spec/services/orders/factory_service_spec.rb +++ b/spec/services/orders/factory_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Orders::FactoryService do let(:variant1) { create(:variant, price: 5.0) } let(:variant2) { create(:variant, price: 7.0) } diff --git a/spec/services/orders/find_payment_service_spec.rb b/spec/services/orders/find_payment_service_spec.rb index 1e898f7e53..bc4996921f 100644 --- a/spec/services/orders/find_payment_service_spec.rb +++ b/spec/services/orders/find_payment_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Orders::FindPaymentService do let(:order) { create(:order_with_distributor) } let(:finder) { Orders::FindPaymentService.new(order) } diff --git a/spec/services/orders/generate_invoice_service_spec.rb b/spec/services/orders/generate_invoice_service_spec.rb index e818eae266..69f1ff0317 100644 --- a/spec/services/orders/generate_invoice_service_spec.rb +++ b/spec/services/orders/generate_invoice_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Orders::GenerateInvoiceService do let!(:order) { create(:completed_order_with_fees) } let!(:invoice_data_generator){ InvoiceDataGenerator.new(order) } diff --git a/spec/services/orders/handle_fees_service_spec.rb b/spec/services/orders/handle_fees_service_spec.rb index 97c43d842b..1794575f49 100644 --- a/spec/services/orders/handle_fees_service_spec.rb +++ b/spec/services/orders/handle_fees_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Orders::HandleFeesService do let(:order_cycle) { create(:order_cycle) } let(:order) { diff --git a/spec/services/orders/mask_data_service_spec.rb b/spec/services/orders/mask_data_service_spec.rb index 658b0c03ab..a2c411ee2f 100644 --- a/spec/services/orders/mask_data_service_spec.rb +++ b/spec/services/orders/mask_data_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Orders::MaskDataService do describe '#call' do let(:distributor) { create(:enterprise) } diff --git a/spec/services/orders/order_tax_adjustments_fetcher_spec.rb b/spec/services/orders/order_tax_adjustments_fetcher_spec.rb index af19dd22f8..5204ed7769 100644 --- a/spec/services/orders/order_tax_adjustments_fetcher_spec.rb +++ b/spec/services/orders/order_tax_adjustments_fetcher_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Orders::FetchTaxAdjustmentsService do describe "#totals" do let(:zone) { create(:zone_with_member) } diff --git a/spec/services/orders/sync_service_spec.rb b/spec/services/orders/sync_service_spec.rb index 9dd6eb968d..594e76ae11 100644 --- a/spec/services/orders/sync_service_spec.rb +++ b/spec/services/orders/sync_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Orders::SyncService do describe "updating the shipping method" do let!(:subscription) { create(:subscription, with_items: true, with_proxy_orders: true) } @@ -440,7 +438,7 @@ RSpec.describe Orders::SyncService do expect(order.reload.total.to_f).to eq 59.97 line_item = order.line_items.find_by(variant_id: sli.variant_id) expect(syncer.order_update_issues[order.id]) - .to include "#{line_item.product.name} - #{line_item.variant.full_name} - " \ + .to include "#{line_item.product.name} - #{line_item.full_variant_name} - " \ "Insufficient stock available" end @@ -455,7 +453,7 @@ RSpec.describe Orders::SyncService do line_item = order.line_items.find_by(variant_id: sli.variant_id) expect(syncer.order_update_issues[order.id]) - .to include "#{line_item.product.name} - #{line_item.variant.full_name} - Out of Stock" + .to include "#{line_item.product.name} - #{line_item.full_variant_name} - Out of Stock" end end end @@ -500,7 +498,7 @@ RSpec.describe Orders::SyncService do expect(changed_line_item.reload.quantity).to eq 2 expect(order.reload.total.to_f).to eq 79.96 expect(syncer.order_update_issues[order.id]) - .to include "#{changed_line_item.product.name} - #{changed_line_item.variant.full_name}" + .to include "#{changed_line_item.product.name} - #{changed_line_item.full_variant_name}" end end end diff --git a/spec/services/orders/workflow_service_spec.rb b/spec/services/orders/workflow_service_spec.rb index d1db9ff3c3..035af7f2fb 100644 --- a/spec/services/orders/workflow_service_spec.rb +++ b/spec/services/orders/workflow_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Orders::WorkflowService do let!(:distributor) { create(:distributor_enterprise) } let!(:order) do diff --git a/spec/services/path_checker_spec.rb b/spec/services/path_checker_spec.rb index 2ce16c19b5..875c49349b 100644 --- a/spec/services/path_checker_spec.rb +++ b/spec/services/path_checker_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe PathChecker do describe "#active_path?" do let(:view_context) { double("view context") } diff --git a/spec/services/payments/status_changed_listener_service_spec.rb b/spec/services/payments/status_changed_listener_service_spec.rb new file mode 100644 index 0000000000..4a451aba65 --- /dev/null +++ b/spec/services/payments/status_changed_listener_service_spec.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +RSpec.describe Payments::StatusChangedListenerService do + let(:name) { "ofn.payment_transition" } + let(:started) { Time.zone.parse("2025-11-28 09:00:00") } + let(:finished) { Time.zone.parse("2025-11-28 09:00:02") } + let(:unique_id) { "d3a7ac9f635755fcff2c" } + let(:payload) { { payment:, event: "completed" } } + let(:payment) { build(:payment) } + + subject { described_class.new } + + describe "#call" do + it "calls Payments::WebhookService" do + expect(Payments::WebhookService).to receive(:create_webhook_job).with( + payment:, event: "payment.completed", at: started + ) + + subject.call(name, started, finished, unique_id, payload) + end + end +end diff --git a/spec/services/payments/webhook_payload_spec.rb b/spec/services/payments/webhook_payload_spec.rb new file mode 100644 index 0000000000..572ee71d4a --- /dev/null +++ b/spec/services/payments/webhook_payload_spec.rb @@ -0,0 +1,93 @@ +# frozen_string_literal: true + +RSpec.describe Payments::WebhookPayload do + describe "#to_hash" do + let(:order) { create(:completed_order_with_totals, order_cycle: ) } + let(:order_cycle) { create(:simple_order_cycle) } + let(:payment) { create(:payment, :completed, amount: order.total, order:) } + let(:tax_category) { create(:tax_category) } + + subject { described_class.new(payment:, order:, enterprise: order.distributor) } + + it "returns a hash with the relevant data" do + order.line_items.update_all(tax_category_id: tax_category.id) + + enterprise = order.distributor + line_items = order.line_items.map do |li| + { + quantity: li.quantity, + price: li.price, + tax_category_name: li.tax_category&.name, + product_name: li.product.name, + name_to_display: li.display_name, + unit_to_display: li.unit_presentation + } + end + + payload = { + payment: { + updated_at: payment.updated_at, + amount: payment.amount, + state: payment.state + }, + enterprise: { + abn: enterprise.abn, + acn: enterprise.acn, + name: enterprise.name, + address: { + address1: enterprise.address.address1, + address2: enterprise.address.address2, + city: enterprise.address.city, + zipcode: enterprise.address.zipcode + } + }, + order: { + total: order.total, + currency: order.currency, + line_items: line_items + } + }.with_indifferent_access + + expect(subject.to_hash).to eq(payload) + end + end + + describe ".test_data" do + it "returns a hash with test data" do + test_payload = { + payment: { + updated_at: kind_of(Time), + amount: 0.00, + state: "completed" + }, + enterprise: { + abn: "65797115831", + acn: "", + name: "TEST Enterprise", + address: { + address1: "1 testing street", + address2: "", + city: "TestCity", + zipcode: "1234" + } + }, + order: { + total: 0.00, + currency: "AUD", + line_items: [ + { + quantity: 1, + price: 20.00.to_d, + tax_category_name: "VAT", + product_name: "Test product", + name_to_display: nil, + unit_to_display: "1kg" + } + ] + } + }.with_indifferent_access + + expect(described_class.test_data.to_hash).to match(test_payload) + end + end +end diff --git a/spec/services/payments/webhook_service_spec.rb b/spec/services/payments/webhook_service_spec.rb new file mode 100644 index 0000000000..cab2394c8e --- /dev/null +++ b/spec/services/payments/webhook_service_spec.rb @@ -0,0 +1,114 @@ +# frozen_string_literal: true + +RSpec.describe Payments::WebhookService do + let(:order) { create(:completed_order_with_totals, order_cycle: ) } + let(:order_cycle) { create(:simple_order_cycle) } + let(:payment) { create(:payment, :completed, amount: order.total, order:) } + let(:tax_category) { create(:tax_category) } + let(:at) { Time.zone.parse("2025-11-26 09:00:02") } + + subject { described_class.create_webhook_job(payment: payment, event: "payment.completed", at:) } + + describe "creating payloads" do + context "with order cycle coordinator owner webhook endpoints configured" do + before do + order.order_cycle.coordinator.owner.webhook_endpoints.payment_status.create!( + url: "http://coordinator.payment.url" + ) + end + + it "calls endpoint for the owner if the order cycle coordinator" do + expect{ subject } + .to enqueue_job(WebhookDeliveryJob).exactly(1).times + .with("http://coordinator.payment.url", "payment.completed", any_args) + end + + it "creates webhook payload with payment details" do + order.line_items.update_all(tax_category_id: tax_category.id) + + enterprise = order.distributor + line_items = order.line_items.map do |li| + { + quantity: li.quantity, + price: li.price, + tax_category_name: li.tax_category&.name, + product_name: li.product.name, + name_to_display: li.display_name, + unit_to_display: li.unit_presentation + } + end + + data = { + payment: { + updated_at: payment.updated_at, + amount: payment.amount, + state: payment.state + }, + enterprise: { + abn: enterprise.abn, + acn: enterprise.acn, + name: enterprise.name, + address: { + address1: enterprise.address.address1, + address2: enterprise.address.address2, + city: enterprise.address.city, + zipcode: enterprise.address.zipcode + } + }, + order: { + total: order.total, + currency: order.currency, + line_items: line_items + } + } + + expect{ subject } + .to enqueue_job(WebhookDeliveryJob).exactly(1).times + .with("http://coordinator.payment.url", "payment.completed", hash_including(data), at:) + end + + context "with coordinator manager with webhook endpoint configured" do + let(:user1) { create(:user) } + let(:user2) { create(:user) } + + before do + coordinator = order.order_cycle.coordinator + coordinator.users << user1 + coordinator.users << user2 + end + + it "calls endpoint for all user managing the order cycle coordinator" do + user1.webhook_endpoints.payment_status.create!(url: "http://user1.payment.url") + user2.webhook_endpoints.payment_status.create!(url: "http://user2.payment.url") + + expect{ subject } + .to enqueue_job(WebhookDeliveryJob) + .with("http://coordinator.payment.url", "payment.completed", any_args) + .and enqueue_job(WebhookDeliveryJob) + .with("http://user1.payment.url", "payment.completed", any_args) + .and enqueue_job(WebhookDeliveryJob) + .with("http://user2.payment.url", "payment.completed", any_args) + end + + context "wiht duplicate webhook endpoints configured" do + it "calls each unique configured endpoint" do + user1.webhook_endpoints.payment_status.create!(url: "http://coordinator.payment.url") + user2.webhook_endpoints.payment_status.create!(url: "http://user2.payment.url") + + expect{ subject } + .to enqueue_job(WebhookDeliveryJob) + .with("http://coordinator.payment.url", "payment.completed", any_args) + .and enqueue_job(WebhookDeliveryJob) + .with("http://user2.payment.url", "payment.completed", any_args) + end + end + end + end + + context "with no webhook configured" do + it "does not call endpoint" do + expect{ subject }.not_to enqueue_job(WebhookDeliveryJob) + end + end + end +end diff --git a/spec/services/paypal_items_builder_spec.rb b/spec/services/paypal_items_builder_spec.rb index f34be2f6ac..6ec60798eb 100644 --- a/spec/services/paypal_items_builder_spec.rb +++ b/spec/services/paypal_items_builder_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe PaypalItemsBuilder do let(:order) { create(:completed_order_with_fees) } let(:service) { described_class.new(order) } diff --git a/spec/services/permissions/order_spec.rb b/spec/services/permissions/order_spec.rb index 4cba893542..0375d580f7 100644 --- a/spec/services/permissions/order_spec.rb +++ b/spec/services/permissions/order_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Permissions::Order do let(:permissions) { described_class.new(user) } let!(:basic_permissions) { OpenFoodNetwork::Permissions.new(user) } diff --git a/spec/services/permitted_attributes/order_cycle_spec.rb b/spec/services/permitted_attributes/order_cycle_spec.rb index 1036e426b2..a8afd388d1 100644 --- a/spec/services/permitted_attributes/order_cycle_spec.rb +++ b/spec/services/permitted_attributes/order_cycle_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module PermittedAttributes RSpec.describe OrderCycle do let(:oc_permitted_attributes) { PermittedAttributes::OrderCycle.new(params) } diff --git a/spec/services/permitted_attributes/user_spec.rb b/spec/services/permitted_attributes/user_spec.rb index e5119d696e..2abf7cda34 100644 --- a/spec/services/permitted_attributes/user_spec.rb +++ b/spec/services/permitted_attributes/user_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - module PermittedAttributes RSpec.describe User do describe "simple usage" do diff --git a/spec/services/place_proxy_order_spec.rb b/spec/services/place_proxy_order_spec.rb index a84c82bf53..18b54038e3 100644 --- a/spec/services/place_proxy_order_spec.rb +++ b/spec/services/place_proxy_order_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe PlaceProxyOrder do subject { described_class.new(proxy_order, summarizer, logger, stock_changes_loader) } diff --git a/spec/services/process_payment_intent_spec.rb b/spec/services/process_payment_intent_spec.rb index cc6684e9b3..3cfc9602b8 100644 --- a/spec/services/process_payment_intent_spec.rb +++ b/spec/services/process_payment_intent_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ProcessPaymentIntent do let(:service) { described_class.new } diff --git a/spec/services/product_filters_spec.rb b/spec/services/product_filters_spec.rb index dce7571c1e..ad016de5b8 100644 --- a/spec/services/product_filters_spec.rb +++ b/spec/services/product_filters_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ProductFilters do describe "extract" do it "should return a hash including only key from ProductFilters::PRODUCT_FILTERS" do diff --git a/spec/services/product_tag_rules_filterer_spec.rb b/spec/services/product_tag_rules_filterer_spec.rb index 5bfa6e50d2..501f2430b3 100644 --- a/spec/services/product_tag_rules_filterer_spec.rb +++ b/spec/services/product_tag_rules_filterer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe ProductTagRulesFilterer do describe "filtering by tag rules" do let!(:distributor) { create(:distributor_enterprise) } diff --git a/spec/services/products_renderer_spec.rb b/spec/services/products_renderer_spec.rb index a24356d403..53badf2c23 100644 --- a/spec/services/products_renderer_spec.rb +++ b/spec/services/products_renderer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe ProductsRenderer do let(:distributor) { create(:distributor_enterprise) } let(:order_cycle) { create(:simple_order_cycle, distributors: [distributor]) } diff --git a/spec/services/search_orders_spec.rb b/spec/services/search_orders_spec.rb index 3b3de62b4e..66e540a4ed 100644 --- a/spec/services/search_orders_spec.rb +++ b/spec/services/search_orders_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe SearchOrders do let!(:distributor) { create(:distributor_enterprise) } let!(:order1) { create(:order_with_line_items, distributor:, line_items_count: 3) } diff --git a/spec/services/sets/model_set_spec.rb b/spec/services/sets/model_set_spec.rb index bf9f7b37ec..d63acd0ad5 100644 --- a/spec/services/sets/model_set_spec.rb +++ b/spec/services/sets/model_set_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Sets::ModelSet do describe "updating" do it "creates new models" do diff --git a/spec/services/sets/product_set_spec.rb b/spec/services/sets/product_set_spec.rb index f6b28a5fc1..298beb94ab 100644 --- a/spec/services/sets/product_set_spec.rb +++ b/spec/services/sets/product_set_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Sets::ProductSet do describe '#save' do let(:product_set) do diff --git a/spec/services/shop/order_cycles_list_spec.rb b/spec/services/shop/order_cycles_list_spec.rb index 5b5e230fb1..5ac7890133 100644 --- a/spec/services/shop/order_cycles_list_spec.rb +++ b/spec/services/shop/order_cycles_list_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe Shop::OrderCyclesList do describe ".active_for" do let(:customer) { nil } diff --git a/spec/services/shops_list_service_spec.rb b/spec/services/shops_list_service_spec.rb index 4e6ea26a87..572d6a69b2 100644 --- a/spec/services/shops_list_service_spec.rb +++ b/spec/services/shops_list_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe ShopsListService do subject { described_class.new } before do diff --git a/spec/services/stripe_payment_status_spec.rb b/spec/services/stripe_payment_status_spec.rb index 08e8b7f234..374a95e6b9 100644 --- a/spec/services/stripe_payment_status_spec.rb +++ b/spec/services/stripe_payment_status_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe StripePaymentStatus, :vcr, :stripe_version do subject { StripePaymentStatus.new(payment) } diff --git a/spec/services/tax_rate_finder_spec.rb b/spec/services/tax_rate_finder_spec.rb index 0464565ef0..a502bb9902 100644 --- a/spec/services/tax_rate_finder_spec.rb +++ b/spec/services/tax_rate_finder_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe TaxRateFinder do describe "getting the corresponding tax rate" do let(:amount) { BigDecimal(120) } diff --git a/spec/services/tax_rate_updater_spec.rb b/spec/services/tax_rate_updater_spec.rb index 93c3223220..d0c2910105 100644 --- a/spec/services/tax_rate_updater_spec.rb +++ b/spec/services/tax_rate_updater_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe TaxRateUpdater do let!(:old_tax_rate) { create(:tax_rate, name: "Test Rate", amount: 0.2, calculator: Calculator::DefaultTax.new) diff --git a/spec/services/terms_of_service_spec.rb b/spec/services/terms_of_service_spec.rb index c2b4021b7e..75458bf4a0 100644 --- a/spec/services/terms_of_service_spec.rb +++ b/spec/services/terms_of_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe TermsOfService do let(:customer) { create(:customer) } let(:distributor) { create(:distributor_enterprise) } diff --git a/spec/services/unit_prices_spec.rb b/spec/services/unit_prices_spec.rb index 5166346aa1..03bca848d0 100644 --- a/spec/services/unit_prices_spec.rb +++ b/spec/services/unit_prices_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe UnitPrice do before do allow(Spree::Config).to receive(:available_units).and_return("g,lb,oz,kg,T,mL,L,kL") diff --git a/spec/services/upload_sanitizer_spec.rb b/spec/services/upload_sanitizer_spec.rb index e766fa7ec8..2405a31b9f 100644 --- a/spec/services/upload_sanitizer_spec.rb +++ b/spec/services/upload_sanitizer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe UploadSanitizer do describe "#call" do let(:upload) do diff --git a/spec/services/url_generator_spec.rb b/spec/services/url_generator_spec.rb index fcb0d78edd..79777759a3 100644 --- a/spec/services/url_generator_spec.rb +++ b/spec/services/url_generator_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe UrlGenerator do subject { UrlGenerator } diff --git a/spec/services/user_default_address_setter_spec.rb b/spec/services/user_default_address_setter_spec.rb index e90d53b32b..98d1aa3e30 100644 --- a/spec/services/user_default_address_setter_spec.rb +++ b/spec/services/user_default_address_setter_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe UserDefaultAddressSetter do let(:customer_address) { create(:address, address1: "customer road") } let(:order_address) { create(:address, address1: "order road") } diff --git a/spec/services/user_locale_setter_spec.rb b/spec/services/user_locale_setter_spec.rb index 9e3223c52e..a9e87c3a2d 100644 --- a/spec/services/user_locale_setter_spec.rb +++ b/spec/services/user_locale_setter_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe UserLocaleSetter do let(:user) { create(:user) } let(:default_locale) { I18n.default_locale } diff --git a/spec/services/variant_overrides_indexed_spec.rb b/spec/services/variant_overrides_indexed_spec.rb index d789c048c7..46fba6bddb 100644 --- a/spec/services/variant_overrides_indexed_spec.rb +++ b/spec/services/variant_overrides_indexed_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe VariantOverridesIndexed do subject(:variant_overrides) { described_class.new([variant.id], [distributor.id]) } diff --git a/spec/services/variant_tag_rules_filterer_spec.rb b/spec/services/variant_tag_rules_filterer_spec.rb index ee74416509..2e03aa4559 100644 --- a/spec/services/variant_tag_rules_filterer_spec.rb +++ b/spec/services/variant_tag_rules_filterer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe VariantTagRulesFilterer do subject(:filterer) { described_class.new(distributor:, customer:, variants_relation:) } diff --git a/spec/services/variant_units/option_value_namer_spec.rb b/spec/services/variant_units/option_value_namer_spec.rb index 2015cacf7d..3578d76787 100644 --- a/spec/services/variant_units/option_value_namer_spec.rb +++ b/spec/services/variant_units/option_value_namer_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe VariantUnits::OptionValueNamer do describe "generating option value name" do subject { described_class.new(v) } diff --git a/spec/services/variants_stock_levels_spec.rb b/spec/services/variants_stock_levels_spec.rb index 9903469799..83c5ce1e0b 100644 --- a/spec/services/variants_stock_levels_spec.rb +++ b/spec/services/variants_stock_levels_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe VariantsStockLevels do let(:order) { create(:order) } diff --git a/spec/services/vine/api_service_spec.rb b/spec/services/vine/api_service_spec.rb index 6ca76ece16..999b1755b8 100644 --- a/spec/services/vine/api_service_spec.rb +++ b/spec/services/vine/api_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Vine::ApiService do subject(:vine_api) { described_class.new(api_key: vine_api_key, jwt_generator: jwt_service) } diff --git a/spec/services/vine/jwt_service_spec.rb b/spec/services/vine/jwt_service_spec.rb index 1c192cfeaf..8ddd350545 100644 --- a/spec/services/vine/jwt_service_spec.rb +++ b/spec/services/vine/jwt_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Vine::JwtService do describe "#generate_token" do subject { described_class.new(secret: vine_secret) } diff --git a/spec/services/vine/voucher_redeemer_service_spec.rb b/spec/services/vine/voucher_redeemer_service_spec.rb index 3b12ad8d59..e9add644bb 100644 --- a/spec/services/vine/voucher_redeemer_service_spec.rb +++ b/spec/services/vine/voucher_redeemer_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Vine::VoucherRedeemerService, feature: :connected_apps do subject(:voucher_redeemer_service) { described_class.new(order: ) } diff --git a/spec/services/vine/voucher_validator_service_spec.rb b/spec/services/vine/voucher_validator_service_spec.rb index 2c263d3f97..12f1ff3e78 100644 --- a/spec/services/vine/voucher_validator_service_spec.rb +++ b/spec/services/vine/voucher_validator_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe Vine::VoucherValidatorService, feature: :connected_apps do subject(:validate_voucher_service) { described_class.new(voucher_code:, enterprise: distributor) } @@ -270,11 +268,12 @@ RSpec.describe Vine::VoucherValidatorService, feature: :connected_apps do enterprise: distributor, data: { api_key: "1234568", secret: "my_secret" } ) } + # Faraday returns un-parsed json let(:data) { { meta: { responseCode: 400, limit: 50, offset: 0, message: "Invalid merchant team." }, data: [] - }.deep_stringify_keys + }.to_json } before do @@ -285,7 +284,7 @@ RSpec.describe Vine::VoucherValidatorService, feature: :connected_apps do expect_validate_to_be_nil end - it "adds an error message" do + it "adds a general error message" do validate_voucher_service.validate expect(validate_voucher_service.errors).to include( @@ -293,6 +292,23 @@ RSpec.describe Vine::VoucherValidatorService, feature: :connected_apps do ) end + context "it is expired" do + let(:data) { + { + meta: { responseCode: 400, limit: 50, offset: 0, message: "This voucher has expired." }, + data: [] + }.to_json + } + + it "adds a specific error message" do + validate_voucher_service.validate + + expect(validate_voucher_service.errors).to include( + { invalid_voucher: "The voucher has expired" } + ) + end + end + it "doesn't creates a new VINE voucher" do expect_voucher_count_not_to_change end @@ -420,6 +436,25 @@ RSpec.describe Vine::VoucherValidatorService, feature: :connected_apps do }.not_to change { voucher.reload.amount } end end + + context "it is expired" do + let(:data) { + { + meta: { responseCode: 400, limit: 50, offset: 0, message: "This voucher has expired." }, + data: [] + }.to_json + } + + it "adds a specific error message" do + mock_api_exception(type: Faraday::BadRequestError, status: 409, body: data) + + validate_voucher_service.validate + + expect(validate_voucher_service.errors).to include( + { invalid_voucher: "The voucher has expired" } + ) + end + end end end diff --git a/spec/services/voucher_adjustments_service_spec.rb b/spec/services/voucher_adjustments_service_spec.rb index d9f05fb1df..8a8bddf771 100644 --- a/spec/services/voucher_adjustments_service_spec.rb +++ b/spec/services/voucher_adjustments_service_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe VoucherAdjustmentsService do describe '#update' do let(:enterprise) { build(:enterprise) } diff --git a/spec/services/weights_and_measures_spec.rb b/spec/services/weights_and_measures_spec.rb index 5b359469e2..08fb93791d 100644 --- a/spec/services/weights_and_measures_spec.rb +++ b/spec/services/weights_and_measures_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.describe WeightsAndMeasures do subject { WeightsAndMeasures.new(variant) } let(:variant) { instance_double(Spree::Variant) } diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index ef36599bbe..2078c0a3ca 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,9 +1,291 @@ # frozen_string_literal: true -require 'base_spec_helper' +# This file defines configurations that are universal to all spec types (feature, system, etc) + +ENV["RAILS_ENV"] ||= 'test' + +# for full configuration, see .simplecov +require 'simplecov' if ENV["COVERAGE"] + +require 'pry' unless ENV['CI'] +require 'view_component/test_helpers' + +require_relative "../config/environment" +require 'rspec/rails' +require 'rspec/retry' +require 'capybara' +require 'paper_trail/frameworks/rspec' +require "factory_bot_rails" require 'database_cleaner' +require 'shoulda/matchers' +Shoulda::Matchers.configure do |config| + config.integrate do |with| + with.test_framework :rspec + with.library :rails + end +end + +require 'knapsack_pro' +KnapsackPro::Adapters::RSpecAdapter.bind + +if ENV["COVERAGE"] && defined?(SimpleCov) + KnapsackPro::Hooks::Queue.before_queue do + SimpleCov.command_name("rspec_ci_node_#{KnapsackPro::Config::Env.ci_node_index}") + end +end + +# Allow connections to selenium whilst raising errors when connecting to external sites +require 'webmock/rspec' +WebMock.enable! +WebMock.disable_net_connect!( + allow_localhost: true, + allow: ['chromedriver.storage.googleapis.com'] +) + +# Requires supporting ruby files with custom matchers and macros, etc, +# in spec/support/ and its subdirectories. +Rails.root.glob("spec/support/**/*.rb").sort.each { |f| require f } + +Capybara.server = :puma, { Silent: true } +Capybara.disable_animation = true + +Capybara.configure do |config| + config.match = :prefer_exact + config.ignore_hidden_elements = true +end + +FactoryBot.use_parent_strategy = false +FactoryBot::SyntaxRunner.include FileHelper + +# raise I18n exception handler +I18n.exception_handler = proc do |exception, *_| + raise exception.to_exception +end + +# Disable timestamp check for test environment +InvisibleCaptcha.timestamp_enabled = false + +InvisibleCaptcha.spinner_enabled = false + RSpec.configure do |config| + # If you're not using ActiveRecord, or you'd prefer not to run each of your + # examples within a transaction, remove the following line or assign false + # instead of true. + # + # Setting this to true keeps the database clean by rolling back any changes. + config.use_transactional_fixtures = true + + # Some tests don't work within a transaction. Then we use DatabaseCleaner. + config.before(:each, concurrency: true) do + config.use_transactional_fixtures = false + DatabaseCleaner.strategy = :deletion, { except: ['spree_countries', 'spree_states'] } + DatabaseCleaner.start + end + config.append_after(:each, concurrency: true) do + DatabaseCleaner.clean + config.use_transactional_fixtures = true + end + + # If true, the base class of anonymous controllers will be inferred + # automatically. This will be the default behavior in future versions of + # rspec-rails. + config.infer_base_class_for_anonymous_controllers = false + + # Show retries in test output + config.verbose_retry = true + + # Force colored output, whether or not the output is a TTY + config.color_mode = :on + + # Force use of expect (over should) + config.expect_with :rspec do |expectations| + expectations.syntax = :expect + + # This option will default to `true` in RSpec 4. It makes the `description` + # and `failure_message` of custom matchers include text for helper methods + # defined using `chain`, e.g.: + # be_bigger_than(2).and_smaller_than(4).description + # # => "be bigger than 2 and smaller than 4" + # ...rather than: + # # => "be bigger than 2" + expectations.include_chain_clauses_in_custom_matcher_descriptions = true + end + + # rspec-mocks config goes here. You can use an alternate test double + # library (such as bogus or mocha) by changing the `mock_with` option here. + config.mock_with :rspec do |mocks| + # We use too many mocks at the moment. Activating the following + # feature fails a lot of specs. We should clean it up over time. + # + # Prevents you from mocking or stubbing a method that does not exist on + # a real object. This is generally recommended, and will default to + # `true` in RSpec 4. + # mocks.verify_partial_doubles = true + end + + # This option will default to `:apply_to_host_groups` in RSpec 4 (and will + # have no way to turn it off -- the option exists only for backwards + # compatibility in RSpec 3). It causes shared context metadata to be + # inherited by the metadata hash of host groups and examples, rather than + # triggering implicit auto-inclusion in groups with matching metadata. + config.shared_context_metadata_behavior = :apply_to_host_groups + + # Limits the available syntax to the non-monkey patched syntax that is + # recommended. For more details, see: + # https://rspec.info/features/3-12/rspec-core/configuration/zero-monkey-patching-mode/ + config.disable_monkey_patching! + + # Many RSpec users commonly either run the entire suite or an individual + # file, and it's useful to allow more verbose output when running an + # individual spec file. + if config.files_to_run.one? + # Use the documentation formatter for detailed output, + # unless a formatter has already been configured + # (e.g. via a command-line flag). + config.default_formatter = "doc" + end + + config.define_derived_metadata(file_path: %r{/spec/lib/tasks/}) do |metadata| + metadata[:type] = :rake + end + + # Reset locale for all specs. + config.around(:each) do |example| + locale = ENV.fetch('LOCALE', 'en_TST') + I18n.with_locale(locale) { example.run } + end + # Fix encoding issue in Rails 5.0; allows passing empty arrays or hashes as params. config.before(:each, type: :controller) { @request.env["CONTENT_TYPE"] = 'application/json' } + + # Reset all feature toggles to prevent leaking. + config.before(:each) do + Flipper.features.each(&:remove) + OpenFoodNetwork::FeatureToggle.setup! + end + + config.before(:each, :feature) do |example| + feature = example.metadata[:feature].to_s + + unless OpenFoodNetwork::FeatureToggle::CURRENT_FEATURES.key?(feature) + raise "Unkown feature: #{feature}" + end + + Flipper.enable(feature) + end + + # Enable caching in any specs tagged with `caching: true`. + config.around(:each, :caching) do |example| + caching = ActionController::Base.perform_caching + ActionController::Base.perform_caching = example.metadata[:caching] + example.run + ActionController::Base.perform_caching = caching + end + + # Show javascript errors in test output with `js_debug: true` + config.after(:each, :js_debug) do + errors = page.driver.browser.manage.logs.get(:browser) + if errors.present? + message = errors.map(&:message).join("\n") + puts message + end + end + + # Appends Stripe gem version to VCR cassette directory with ':stripe_version' flag + # + # When the Stripe gem is updated, we should re-record these cassettes: + # + # ./script/test-stripe-live + # + config.around(:each, :stripe_version) do |example| + stripe_version = "Stripe-v#{Stripe::VERSION}" + cassette_library_dir, default_cassette_options = nil, nil + + VCR.configure do |vcr_config| + cassette_library_dir = vcr_config.cassette_library_dir + default_cassette_options = vcr_config.default_cassette_options + vcr_config.cassette_library_dir += "/#{stripe_version}" + vcr_config.default_cassette_options = { record: :none } if ENV["CI"] + end + + example.run + + VCR.configure do |vcr_config| + vcr_config.cassette_library_dir = cassette_library_dir + vcr_config.default_cassette_options = default_cassette_options + end + end + + # Ensure we start with consistent config settings + config.before(:each) do + reset_spree_preferences do |spree_config| + # These are all settings that differ from Spree's defaults + spree_config.shipping_instructions = true + end + CurrentConfig.clear_all + end + + # Don't validate our invalid test data with expensive network requests. + config.before(:each) do + allow_any_instance_of(ValidEmail2::Address).to receive_messages( + valid_mx?: true, + valid_strict_mx?: true, + mx_server_is_in?: false + ) + end + + # Webmock raises errors that inherit directly from Exception (not StandardError). + # The messages contain useful information for debugging stubbed requests to external + # services (in tests), but they normally don't appear in the test output. + config.before(:all) do + ApplicationController.class_eval do + rescue_from WebMock::NetConnectNotAllowedError, with: :handle_webmock_error + + def handle_webmock_error(exception) + raise exception.message + end + end + end + + config.infer_spec_type_from_file_location! + + # You can use `rspec -n` to run only failed specs. + config.example_status_persistence_file_path = "tmp/rspec-status.txt" + + config.include_context "rake", type: :rake + + # Helpers + config.include FactoryBot::Syntax::Methods + config.include JsonSpec::Helpers + + config.include Rails.application.routes.url_helpers + config.include Spree::UrlHelpers + config.include Spree::MoneyHelper + config.include Spree::PaymentHelper + config.include PreferencesHelper + config.include OpenFoodNetwork::FiltersHelper + config.include OpenFoodNetwork::EnterpriseGroupsHelper + config.include OpenFoodNetwork::HtmlHelper + config.include ActiveSupport::Testing::TimeHelpers + config.include ActionView::Helpers::DateHelper + config.include OpenFoodNetwork::PerformanceHelper + config.include ActiveJob::TestHelper + config.include ReportsHelper + config.include TomSelectHelper, type: :system + + config.include ViewComponent::TestHelpers, type: :component + + config.include ControllerRequestsHelper, type: :controller + config.include Devise::Test::ControllerHelpers, type: :controller + config.include OpenFoodNetwork::ApiHelper, type: :controller + config.include OpenFoodNetwork::ControllerHelper, type: :controller + + config.include Devise::Test::IntegrationHelpers, type: :request + + config.include Features::DatepickerHelper, type: :system + config.include Features::TrixEditorHelper, type: :system + config.include DownloadsHelper, type: :system + config.include ReportsHelper, type: :system + config.include ProductsHelper, type: :system end diff --git a/spec/support/matchers/select2_matchers.rb b/spec/support/matchers/select2_matchers.rb index 8e7be8f87e..bdafd93ae9 100644 --- a/spec/support/matchers/select2_matchers.rb +++ b/spec/support/matchers/select2_matchers.rb @@ -92,9 +92,7 @@ RSpec::Matchers.define :have_select2 do |id, options = {}| end def selected_option_is(from, text) - within find(from) do - find("a.select2-choice").text == text - end + find("#{from} a.select2-choice", text:) end def with_select2_open(from) diff --git a/spec/support/performance_helper.rb b/spec/support/performance_helper.rb index f0236997fb..8967258717 100644 --- a/spec/support/performance_helper.rb +++ b/spec/support/performance_helper.rb @@ -2,12 +2,12 @@ module OpenFoodNetwork module PerformanceHelper - def multi_benchmark(num_samples, cache_key_patterns: [], &block) + def multi_benchmark(num_samples, cache_key_patterns: [], &) results = (0..num_samples).map do |_i| ActiveRecord::Base.connection.query_cache.clear delete_cache_keys(cache_key_patterns) - result = Benchmark.measure(&block) + result = Benchmark.measure(&) puts result diff --git a/spec/support/products_helper.rb b/spec/support/products_helper.rb index 42de042eb3..dde11158ce 100644 --- a/spec/support/products_helper.rb +++ b/spec/support/products_helper.rb @@ -34,8 +34,12 @@ module ProductsHelper click_button "Search" end - def search_by_tag(tag) - tomselect_multiselect tag, from: "tags_name_in" + def search_by_tag(*tags) + if tags.empty? + raise ArgumentError, "Please provide at least one tag to search for" + end + + tags.each { |tag| tomselect_multiselect tag, from: "tags_name_in" } click_button "Search" end diff --git a/spec/support/request/stripe_stubs.rb b/spec/support/request/stripe_stubs.rb index 524233cffc..8132d8751e 100644 --- a/spec/support/request/stripe_stubs.rb +++ b/spec/support/request/stripe_stubs.rb @@ -144,7 +144,7 @@ module StripeStubs customer_id = options[:customer_id] || "cus_A123" { status: 200, body: JSON.generate(id: customer_id, - sources: { data: [id: customer_id] }) } + sources: { data: [{ id: customer_id }] }) } end def payment_successful_refund_mock diff --git a/spec/support/request/tomselect_helper.rb b/spec/support/request/tomselect_helper.rb deleted file mode 100644 index 9a6196a305..0000000000 --- a/spec/support/request/tomselect_helper.rb +++ /dev/null @@ -1,45 +0,0 @@ -# frozen_string_literal: true - -module TomselectHelper - def tomselect_open(field_name) - page.find("##{field_name}-ts-control").click - end - - def tomselect_multiselect(value, options) - tomselect_wrapper = page.find_field(options[:from]).sibling(".ts-wrapper") - tomselect_wrapper.find(".ts-control").click - tomselect_wrapper.find(:css, '.ts-dropdown.multi .ts-dropdown-content .option', - text: value).click - # Close the dropdown - tomselect_wrapper.find(".ts-control").click - end - - def tomselect_search_and_select(value, options) - tomselect_wrapper = page.find_field(options[:from]).sibling(".ts-wrapper") - tomselect_wrapper.find(".ts-control").click - # Use send_keys as setting the value directly doesn't trigger the search - tomselect_wrapper.find(:css, '.ts-dropdown input.dropdown-input').send_keys(value) - tomselect_wrapper.find(:css, '.ts-dropdown .ts-dropdown-content .option', text: value).click - end - - def tomselect_select(value, options) - tomselect_wrapper = page.find_field(options[:from]).sibling(".ts-wrapper") - tomselect_wrapper.find(".ts-control").click - - tomselect_wrapper.find(:css, '.ts-dropdown .ts-dropdown-content .option', text: value).click - end - - def open_tomselect_to_validate!(page, field_name) - tomselect_wrapper = page.find_field(field_name).sibling(".ts-wrapper") - tomselect_wrapper.find(".ts-control").click # open the dropdown - - raise 'Please pass the block for expectations' unless block_given? - - # execute block containing expectations - yield - - tomselect_wrapper.find( - '.ts-dropdown .ts-dropdown-content .option.active', - ).click # close the dropdown by selecting the already selected value - end -end diff --git a/spec/support/request/web_helper.rb b/spec/support/request/web_helper.rb index 9087d59981..3e4bb3a632 100644 --- a/spec/support/request/web_helper.rb +++ b/spec/support/request/web_helper.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true module WebHelper - include TomselectHelper - def have_input(name, opts = {}) selector = "[name='#{name}']" selector += "[placeholder='#{opts[:placeholder]}']" if opts.key? :placeholder @@ -69,8 +67,6 @@ module WebHelper .find(:css, '.select2-drop-active .select2-result-label', text: options[:select_text] || value) .click - - expect(page).to have_select2 options[:from], selected: options[:select_text] || value end def open_select2(selector) diff --git a/spec/support/table_helper.rb b/spec/support/table_helper.rb new file mode 100644 index 0000000000..5847851ea4 --- /dev/null +++ b/spec/support/table_helper.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module TableHelper + # Selector for table row that has the given string + def row_containing(value) + find(:xpath, "(//tr[contains(., '#{value}')])") + end +end diff --git a/spec/support/tom_select_helper.rb b/spec/support/tom_select_helper.rb index d066bbe6ea..fa483f47f0 100644 --- a/spec/support/tom_select_helper.rb +++ b/spec/support/tom_select_helper.rb @@ -1,39 +1,58 @@ # frozen_string_literal: true module TomSelectHelper - def tomselect_open(field_name) - page.find("##{field_name}-ts-control").click - end - def tomselect_multiselect(value, options) - tomselect_wrapper = page.find("[name='#{options[:from]}']").sibling(".ts-wrapper") + tomselect_wrapper = page.find_field(options[:from]).sibling(".ts-wrapper") tomselect_wrapper.find(".ts-control").click - tomselect_wrapper.find(:css, '.ts-dropdown.multi .ts-dropdown-content .option', + tomselect_wrapper.find(:css, ".ts-dropdown.multi .ts-dropdown-content .option", text: value).click + # Close the dropdown + page.find("body").click end def tomselect_search_and_select(value, options) - tomselect_wrapper = page.find("[name='#{options[:from]}']").sibling(".ts-wrapper") + tomselect_wrapper = page.find_field(options[:from]).sibling(".ts-wrapper") tomselect_wrapper.find(".ts-control").click # Use send_keys as setting the value directly doesn't trigger the search - tomselect_wrapper.find(:css, '.ts-dropdown input.dropdown-input').send_keys(value) - tomselect_wrapper.find(:css, '.ts-dropdown .ts-dropdown-content .option', text: value).click + tomselect_wrapper.find(".ts-dropdown input.dropdown-input").send_keys(value) + tomselect_wrapper.find(".ts-dropdown .ts-dropdown-content .option.active", text: value).click end def tomselect_select(value, options) - tomselect_wrapper = page.find("[name='#{options[:from]}']").sibling(".ts-wrapper") + tomselect_wrapper = page.find_field(options[:from]).sibling(".ts-wrapper") tomselect_wrapper.find(".ts-control").click - tomselect_wrapper.find(:css, '.ts-dropdown .ts-dropdown-content .option', text: value).click + tomselect_wrapper.find(".ts-dropdown .ts-dropdown-content .option", text: value).click end - def select_tom_select(value, from:) - container = find(:id, from) + def open_tomselect_to_validate!(page, field_name) + tomselect_wrapper = page.find_field(field_name).sibling(".ts-wrapper") + tomselect_wrapper.find(".ts-control").click # open the dropdown - within(container) do - find('.ts-control').send_keys(value) + raise "Please pass the block for expectations" unless block_given? + + # execute block containing expectations + yield + + tomselect_wrapper.find( + ".ts-dropdown .ts-dropdown-content .option.active", + ).click # close the dropdown by selecting the already selected value + end + + def expect_tomselect_selected_options(from, *options) + tomselect_control = page + .find("[name='#{from}']") + .sibling(".ts-wrapper") + .find('.ts-control') + + within(tomselect_control) do + # options in case of we want to expect multiselect options + options.each do |option| + expect(page).to have_css( + "div[data-ts-item]", + text: option + ) + end end - - find('.ts-dropdown .ts-dropdown-content .option', text: /#{Regexp.quote(value)}/i).click end end diff --git a/spec/swagger_helper.rb b/spec/swagger_helper.rb index 28cec7a963..51bfb098fa 100644 --- a/spec/swagger_helper.rb +++ b/spec/swagger_helper.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' - RSpec.configure do |config| config.include Devise::Test::IntegrationHelpers, type: :request config.include OpenFoodNetwork::ApiHelper, type: :request diff --git a/spec/system/admin/adjustments_spec.rb b/spec/system/admin/adjustments_spec.rb index 64ce6a5ad0..8cb0cf9956 100644 --- a/spec/system/admin/adjustments_spec.rb +++ b/spec/system/admin/adjustments_spec.rb @@ -152,7 +152,7 @@ RSpec.describe ' click_link 'Adjustments' page.find('tr', text: 'Extra Adjustment').find('a.icon-edit').click - expect(page).to have_select2 :adjustment_tax_category_id, selected: [] + expect(page).to have_select2 :adjustment_tax_category_id, selected: "None" # When I edit the adjustment, setting a tax rate select2_select 'GST', from: :adjustment_tax_category_id diff --git a/spec/system/admin/bulk_order_management_spec.rb b/spec/system/admin/bulk_order_management_spec.rb index cf768670f2..33542ff71c 100644 --- a/spec/system/admin/bulk_order_management_spec.rb +++ b/spec/system/admin/bulk_order_management_spec.rb @@ -1044,10 +1044,10 @@ RSpec.describe ' page.driver .dismiss_modal :confirm, text: "Unsaved changes exist and will be lost if you continue." do - within "tr#li_#{li1.id}" do - fill_in "quantity", with: (li1.quantity + 1) - find("a.edit-order").click - end + within "tr#li_#{li1.id}" do + fill_in "quantity", with: (li1.quantity + 1) + find("a.edit-order").click + end end # So we save the changes diff --git a/spec/system/admin/configuration/tax_categories_spec.rb b/spec/system/admin/configuration/tax_categories_spec.rb index ea5074d8bf..56605a5848 100644 --- a/spec/system/admin/configuration/tax_categories_spec.rb +++ b/spec/system/admin/configuration/tax_categories_spec.rb @@ -55,4 +55,15 @@ RSpec.describe "Tax Categories" do expect(page).to have_content("desc 99") end end + + context "admin deleting a tax category" do + it "should be able to delete an existing tax category" do + create(:tax_category, name: "To be removed") + click_link "Tax Categories" + accept_confirm('Are you sure?') do + within_row(1) { find(".icon-trash").click } + end + expect(page).not_to have_content("To be removed") + end + end end diff --git a/spec/system/admin/enterprises/dfc_permissions_spec.rb b/spec/system/admin/enterprises/dfc_permissions_spec.rb index 7c86f6ed0f..b88c4e0d48 100644 --- a/spec/system/admin/enterprises/dfc_permissions_spec.rb +++ b/spec/system/admin/enterprises/dfc_permissions_spec.rb @@ -68,9 +68,9 @@ RSpec.describe "DFC Permissions", feature: "cqcm-dev", vcr: true do end end - def within_platform_list(variant, &block) + def within_platform_list(variant, &) retry_expectations(on: Ferrum::JavaScriptError) do - within(platform_list(variant), &block) + within(platform_list(variant), &) end end diff --git a/spec/system/admin/fees_on_orders_spec.rb b/spec/system/admin/fees_on_orders_spec.rb index 7e66888800..94c4dcb57a 100644 --- a/spec/system/admin/fees_on_orders_spec.rb +++ b/spec/system/admin/fees_on_orders_spec.rb @@ -555,7 +555,7 @@ RSpec.describe ' find_button("Confirm").click end - expect(page).to have_selector('.reveal-modal', visible: false) + expect(page).not_to have_content("This will mark the order as Shipped.") expect(page).to have_content "SHIPPED" click_link('Order Details') unless subpage == 'Order Details' @@ -578,7 +578,7 @@ RSpec.describe ' find_button("Confirm").click end - expect(page).to have_selector('.reveal-modal', visible: false) + expect(page).not_to have_content("This will mark the order as Shipped.") click_link('Order Details') unless subpage == 'Order Details' expect(page).to have_content "SHIPPED" diff --git a/spec/system/admin/orders_spec.rb b/spec/system/admin/orders_spec.rb index e5bcbcc776..68e5c1c489 100644 --- a/spec/system/admin/orders_spec.rb +++ b/spec/system/admin/orders_spec.rb @@ -100,10 +100,10 @@ RSpec.describe ' end it "order cycles appear in descending order by close date on orders page" do - tomselect_open('q_order_cycle_id_in').click - - expect(find('#q_order_cycle_id_in', - visible: :all)[:innerHTML]).to have_content(/.*Four.*Three.*Two.*Five/m) + open_tomselect_to_validate!(page, 'q_order_cycle_id_in') do + oc_html = find('#q_order_cycle_id_in', visible: :all)[:innerHTML] + expect(oc_html).to have_content(/.*Four.*Three.*Two.*Five/m) + end end it "filter by multiple order cycles" do diff --git a/spec/system/admin/payment_method_spec.rb b/spec/system/admin/payment_method_spec.rb index 1a6c519a59..2ee60b3c2b 100644 --- a/spec/system/admin/payment_method_spec.rb +++ b/spec/system/admin/payment_method_spec.rb @@ -20,7 +20,11 @@ RSpec.describe ' click_link 'Payment Methods' click_link 'New Payment Method' + expect(page).to have_select2 "payment_method_type", selected: "Choose..." + fill_in 'payment_method_name', with: 'Cheque payment method' + cash_name = "Cash/EFT/etc. (payments for which automatic validation is not required)" + select2_select cash_name, from: "payment_method_type" check "payment_method_distributor_ids_#{@distributors[0].id}" click_button 'Create' @@ -243,6 +247,9 @@ RSpec.describe ' it "creates payment methods" do visit spree.new_admin_payment_method_path fill_in 'payment_method_name', with: 'Cheque payment method' + cash_name = "Cash/EFT/etc. (payments for which automatic validation is not required)" + select2_select cash_name, from: "payment_method_type" + expect(page).to have_field 'payment_method_description' expect(page).to have_select 'payment_method_display_on' diff --git a/spec/system/admin/payments_taler_spec.rb b/spec/system/admin/payments_taler_spec.rb new file mode 100644 index 0000000000..b6ab367ba0 --- /dev/null +++ b/spec/system/admin/payments_taler_spec.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true + +require 'system_helper' + +RSpec.describe "Admin -> Order -> Payments" do + include AuthenticationHelper + include TableHelper + + let(:distributor) { build(:distributor_enterprise) } + let(:order) { create(:completed_order_with_fees, distributor:, payments: [payment]) } + let(:payment) { + build(:payment, :completed, payment_method: taler, source: taler, response_code: "taler-id-1") + } + let(:taler) { + Spree::PaymentMethod::Taler.new( + name: "Taler", + distributors: [distributor], + environment: "test", + preferred_backend_url: "https://taler.example.com", + preferred_api_key: "sandbox", + ) + } + + before do + login_as distributor.owner + end + + it "allows to refund a Taler payment" do + order_status = { + order_status: "paid", + contract_terms: { + amount: "KUDOS:2", + } + } + order_endpoint = "https://taler.example.com/private/orders/taler-id-1" + refund_endpoint = "https://taler.example.com/private/orders/taler-id-1/refund" + stub_request(:get, order_endpoint).to_return(body: order_status.to_json) + stub_request(:post, refund_endpoint).to_return(body: "{}") + + visit spree.admin_order_payments_path(order.number) + + within row_containing("Taler") do + expect(page).to have_text "COMPLETED" + expect(page).to have_link "Void" + + click_link class: "icon-void" + + expect(page).to have_text "VOID" + expect(page).not_to have_link "Void" + end + end +end diff --git a/spec/system/admin/products_spec.rb b/spec/system/admin/products_spec.rb index 8f10416261..93a699892b 100644 --- a/spec/system/admin/products_spec.rb +++ b/spec/system/admin/products_spec.rb @@ -604,7 +604,7 @@ RSpec.describe ' click_button "Create" expect(page).to have_text "Attachment has an invalid content type" - expect(page).to have_text "Attachment is not a valid image" + expect(page).to have_text "Attachment is not identified as a valid media file" end it "deleting product images" do diff --git a/spec/system/admin/products_v3/actions_spec.rb b/spec/system/admin/products_v3/actions_spec.rb index 6ce798332a..8b09bf6b7b 100644 --- a/spec/system/admin/products_v3/actions_spec.rb +++ b/spec/system/admin/products_v3/actions_spec.rb @@ -27,7 +27,7 @@ RSpec.describe 'As an enterprise user, I can manage my products' do # displays buttons to add products with the correct links expect(page).to have_link(class: "button", text: "New Product", href: "/admin/products/new") expect(page).to have_link(class: "button", text: "Import multiple products", - href: "/admin/products/import") + href: admin_product_import_path) end end diff --git a/spec/system/admin/products_v3/create_spec.rb b/spec/system/admin/products_v3/create_spec.rb index e36ba0c9fa..965d9f9e99 100644 --- a/spec/system/admin/products_v3/create_spec.rb +++ b/spec/system/admin/products_v3/create_spec.rb @@ -23,7 +23,7 @@ RSpec.describe 'As an enterprise user, I can manage my products' do expect(page).to have_content "New Product" fill_in 'product_name', with: 'Big Bag Of Apples' tomselect_select supplier.name, from: 'product[supplier_id]' - select_tom_select 'Weight (g)', from: 'product_variant_unit_field' + tomselect_search_and_select 'Weight (g)', from: "product_variant_unit_with_scale" fill_in 'product_unit_value', with: '100' fill_in 'product_price', with: '10.00' # TODO dropdowns below are still using select2: diff --git a/spec/system/admin/products_v3/index_spec.rb b/spec/system/admin/products_v3/index_spec.rb index ac56ec1cfb..d0f3d92337 100644 --- a/spec/system/admin/products_v3/index_spec.rb +++ b/spec/system/admin/products_v3/index_spec.rb @@ -417,16 +417,49 @@ RSpec.describe 'As an enterprise user, I can manage my products' do context "with variant tag", feature: :variant_tag do before do create(:variant, tag_list: "organic") - create_products 1 + create(:variant) # without tags + create(:variant) end - it "can search by tag" do - visit admin_products_url - search_by_tag "organic" + shared_examples "tag search" do + it description do + visit admin_products_url + search_by_tag(*search_tags) - expect(page).to have_select "tags_name_in", selected: "organic" - expect(page).to have_content "1 product found for your search criteria. Showing 1 to 1." - expect_products_count_to_be 1 + expect(page).to have_select("tags_name_in", selected: selected_tags) + expect(page).to have_content(result_text) + expect_products_count_to_be(expected_count) + end + end + + context "when searching by a single tag" do + let(:description) { "returns variants with that tag" } + let(:search_tags) { ["organic"] } + let(:selected_tags) { "organic" } + let(:expected_count) { 1 } + let(:result_text) { "1 product found for your search criteria. Showing 1 to 1." } + + include_examples "tag search" + end + + context "when searching by None tag" do + let(:description) { "returns variants without tags" } + let(:search_tags) { ["None"] } + let(:selected_tags) { "None" } + let(:expected_count) { 2 } + let(:result_text) { "2 products found for your search criteria. Showing 1 to 2." } + + include_examples "tag search" + end + + context "when searching by None and another tag" do + let(:description) { "returns variants with either no tags or the given tag" } + let(:search_tags) { ["None", "organic"] } + let(:selected_tags) { ["None", "organic"] } + let(:expected_count) { 3 } + let(:result_text) { "3 products found for your search criteria. Showing 1 to 3." } + + include_examples "tag search" end end end diff --git a/spec/system/admin/products_v3/update_spec.rb b/spec/system/admin/products_v3/update_spec.rb index 76e96b60eb..0da94594f6 100644 --- a/spec/system/admin/products_v3/update_spec.rb +++ b/spec/system/admin/products_v3/update_spec.rb @@ -731,6 +731,44 @@ RSpec.describe 'As an enterprise user, I can update my products' do expect(page).to have_css row_containing_name("zucchinis") end end + + context "when filters are applied" do + before do + variant_b1 # invoke to create the variant + variant_a1.tags.create!(name: 'organic') + visit admin_products_url + end + it 'persists the filters after update' do + # Ensure all products are shown + expect_products_count_to_be 2 + + supplier_name = variant_a1.supplier.name + category_name = variant_a1.primary_taxon.name + tag_name = variant_a1.tags.first.name + tomselect_select supplier_name, from: "producer_id" + tomselect_select category_name, from: "category_id" + tomselect_multiselect tag_name, from: "tags_name_in" + click_button "Search" + + # Ensure filters are selected and applied after search + expect_tomselect_selected_options("producer_id", supplier_name) + expect_tomselect_selected_options("category_id", category_name) + expect_tomselect_selected_options("tags_name_in[]", tag_name) + expect_products_count_to_be 1 + + within row_containing_name("Medium box") do + fill_in "Price", with: "10.25" + end + click_button "Save changes" + expect(page).to have_content "Changes saved" + + # Ensure filters still selected and applied even after update + expect_tomselect_selected_options("producer_id", supplier_name) + expect_tomselect_selected_options("category_id", category_name) + expect_tomselect_selected_options("tags_name_in[]", tag_name) + expect_products_count_to_be 1 + end + end end describe "edit image" do @@ -770,12 +808,12 @@ RSpec.describe 'As an enterprise user, I can update my products' do end end - it 'shows a modal telling not a valid image when uploading a non valid image file' do + it 'shows a modal telling not a valid image when uploading an invalid image file' do within ".reveal-modal" do attach_file 'image[attachment]', Rails.public_path.join('invalid_image.jpg'), visible: false - expect(page).to have_content /Attachment is not a valid image/ + expect(page).to have_content /Attachment is not identified as a valid media file/ end end end diff --git a/spec/system/admin/reports/enterprise_summary_fees/enterprise_summary_fee_with_tax_report_by_producer_spec.rb b/spec/system/admin/reports/enterprise_summary_fees/enterprise_summary_fee_with_tax_report_by_producer_spec.rb index 002e0a7247..2218908fac 100644 --- a/spec/system/admin/reports/enterprise_summary_fees/enterprise_summary_fee_with_tax_report_by_producer_spec.rb +++ b/spec/system/admin/reports/enterprise_summary_fees/enterprise_summary_fee_with_tax_report_by_producer_spec.rb @@ -296,11 +296,8 @@ RSpec.describe "Enterprise Summary Fee with Tax Report By Producer" do end it "should filter by distributor and order cycle" do - page.find("#s2id_autogen1").click - find('li', text: distributor.name).click # selects Distributor - - page.find("#s2id_q_order_cycle_id_in").click - find('li', text: order_cycle.name).click + tomselect_multiselect distributor.name, from: 'q[distributor_id_in][]' + tomselect_multiselect order_cycle.name, from: 'q[order_cycle_id_in][]' run_report expect(page.find("table.report__table thead tr")).to have_content(table_header) @@ -455,9 +452,6 @@ RSpec.describe "Enterprise Summary Fee with Tax Report By Producer" do } context "filtering" do - let(:fee_name_selector){ "#s2id_q_enterprise_fee_id_in" } - let(:fee_owner_selector){ "#s2id_q_enterprise_fee_owner_id_in" } - let(:summary_row_after_filtering_by_fee_name){ [cost_of_produce1, "TOTAL", "120.0", "4.8", "124.8"].join(" ") } @@ -471,11 +465,8 @@ RSpec.describe "Enterprise Summary Fee with Tax Report By Producer" do end it "should filter by distributor and order cycle" do - page.find("#s2id_autogen1").click - find('li', text: distributor.name).click # selects Distributor - - page.find("#s2id_q_order_cycle_id_in").click - find('li', text: order_cycle3.name).click + tomselect_multiselect distributor.name, from: 'q[distributor_id_in][]' + tomselect_multiselect order_cycle3.name, from: 'q[order_cycle_id_in][]' run_report expect(page.find("table.report__table thead tr")).to have_content(table_header) @@ -504,8 +495,7 @@ RSpec.describe "Enterprise Summary Fee with Tax Report By Producer" do end it "should filter by producer" do - page.find("#s2id_supplier_id_in").click - find('li', text: supplier2.name).click + tomselect_multiselect supplier2.name, from: 'supplier_id_in[]' run_report expect(page.find("table.report__table thead tr")).to have_content(table_header) @@ -528,8 +518,7 @@ RSpec.describe "Enterprise Summary Fee with Tax Report By Producer" do end it "should filter by fee name" do - page.find(fee_name_selector).click - find('li', text: supplier_fees.name).click + tomselect_multiselect supplier_fees.name, from: 'q[enterprise_fee_id_in][]' run_report @@ -557,8 +546,7 @@ RSpec.describe "Enterprise Summary Fee with Tax Report By Producer" do end it "should filter by fee owner" do - page.find(fee_owner_selector).click - find('li', text: supplier.name).click + tomselect_multiselect supplier.name, from: 'q[enterprise_fee_owner_id_in][]' run_report expect(page.find("table.report__table thead tr")).to have_content(table_header) diff --git a/spec/system/consumer/account/developer_settings_spec.rb b/spec/system/consumer/account/developer_settings_spec.rb index 06b204d762..6c9c57f6bf 100644 --- a/spec/system/consumer/account/developer_settings_spec.rb +++ b/spec/system/consumer/account/developer_settings_spec.rb @@ -39,15 +39,33 @@ RSpec.describe "Developer Settings" do describe "Webhook Endpoints" do it "creates a new webhook endpoint and deletes it" do within "#webhook_endpoints" do - fill_in "webhook_endpoint_url", with: "https://url" + within(:table_row, ["Order Cycle Opened"]) do + fill_in "order_cycle_opened_webhook_endpoint_url", with: "https://url" - click_button I18n.t(:create) - expect(page.document).to have_content I18n.t('webhook_endpoints.create.success') - expect(page).to have_content "https://url" + click_button "Create" + expect(page.document).to have_content "Webhook endpoint successfully created" + expect(page).to have_content "https://url" - click_button I18n.t(:delete) - expect(page.document).to have_content I18n.t('webhook_endpoints.destroy.success') + accept_confirm do + click_button "Delete" + end + end + expect(page.document).to have_content "Webhook endpoint successfully deleted" expect(page).not_to have_content "https://url" + + within(:table_row, ["Post webhook on Payment status change"]) do + fill_in "payment_status_changed_webhook_endpoint_url", with: "https://url/payment" + click_button "Create" + expect(page.document).to have_content "Webhook endpoint successfully created" + expect(page).to have_content "https://url/payment" + + accept_confirm do + click_button "Delete" + end + end + + expect(page.document).to have_content "Webhook endpoint successfully deleted" + expect(page).not_to have_content "https://url/payment" end end end diff --git a/spec/system/consumer/checkout/payment_spec.rb b/spec/system/consumer/checkout/payment_spec.rb index 7daff49b42..da6e7bc1a5 100644 --- a/spec/system/consumer/checkout/payment_spec.rb +++ b/spec/system/consumer/checkout/payment_spec.rb @@ -198,7 +198,7 @@ RSpec.describe "As a consumer, I want to checkout my order" do fill_in "Enter voucher code", with: "KM1891" click_button("Apply") - expect(page).to have_content("There was an error while adding the voucher") + expect(page).to have_content("The voucher is not valid") expect(Vouchers::Vine.find_by(code: "KM1891", enterprise: distributor)).to be_nil end end @@ -340,6 +340,35 @@ RSpec.describe "As a consumer, I want to checkout my order" do it_behaves_like "different payment methods", "Stripe SCA" end + + context "Taler" do + let!(:taler) do + Spree::PaymentMethod::Taler.create!( + name: "Taler", + environment: "test", + distributors: [distributor] + ) + end + + before do + # Shortcut the user interaction and go straight to our + # confirmation action. + taler_order_id = { "order_id" => "taler-order:123" } + expect_any_instance_of(Taler::Order) + .to receive(:create).and_return(taler_order_id) + + # And fake the payment status to avoid user interaction. + allow_any_instance_of(Taler::Order) + .to receive(:status_url) do + payment = Spree::Payment.last + payment_gateways_confirm_taler_path(payment_id: payment.id) + end + allow_any_instance_of(Taler::Order) + .to receive(:fetch).with("order_status").and_return("paid") + end + + it_behaves_like "different payment methods", "Taler" + end end end diff --git a/spec/system/consumer/registration_spec.rb b/spec/system/consumer/registration_spec.rb index ad37f4a8c1..13c7916a21 100644 --- a/spec/system/consumer/registration_spec.rb +++ b/spec/system/consumer/registration_spec.rb @@ -165,11 +165,7 @@ RSpec.describe "Registration" do end before do - address = Spree::Address.create!(firstname: 'John', lastname: 'Doe', - address1: '1400 Sesame street', zipcode: '3070', - city: 'Southcote', phone: '12 3456 7890', - country_id: 1, state_id: 1, company: 'unused') - Enterprise.create(name: 'My Awesome Enterprise', address:, owner:) + Enterprise.create(name: 'My Awesome Enterprise', address: create(:address), owner:) end it "checks that button after failure is still enabled" do diff --git a/spec/system_helper.rb b/spec/system_helper.rb index 2acb7f6534..1c782bb37b 100644 --- a/spec/system_helper.rb +++ b/spec/system_helper.rb @@ -1,6 +1,4 @@ # frozen_string_literal: true -require "base_spec_helper" - # system/support/ files contain system tests configurations and helpers Dir[File.join(__dir__, "system/support/**/*.rb")].each { |file| require file } diff --git a/spec/validators/date_time_string_validator_spec.rb b/spec/validators/date_time_string_validator_spec.rb index f69301d252..25d1695453 100644 --- a/spec/validators/date_time_string_validator_spec.rb +++ b/spec/validators/date_time_string_validator_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe DateTimeStringValidator do describe "internationalization" do it "has translation for NOT_STRING_ERROR" do diff --git a/spec/validators/integer_array_validator_spec.rb b/spec/validators/integer_array_validator_spec.rb index d2775a41f2..fb822e8c51 100644 --- a/spec/validators/integer_array_validator_spec.rb +++ b/spec/validators/integer_array_validator_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe IntegerArrayValidator do describe "internationalization" do it "has translation for NOT_ARRAY_ERROR" do diff --git a/spec/views/admin/products_v3/_filters.html.haml_spec.rb b/spec/views/admin/products_v3/_filters.html.haml_spec.rb index 9c01add0ac..a6bcbfbca3 100644 --- a/spec/views/admin/products_v3/_filters.html.haml_spec.rb +++ b/spec/views/admin/products_v3/_filters.html.haml_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "admin/products_v3/_filters.html.haml" do helper Admin::ProductsHelper diff --git a/spec/views/admin/shared/_attachment_field.html.haml_spec.rb b/spec/views/admin/shared/_attachment_field.html.haml_spec.rb index ca7020823b..8451388710 100644 --- a/spec/views/admin/shared/_attachment_field.html.haml_spec.rb +++ b/spec/views/admin/shared/_attachment_field.html.haml_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "admin/shared/_attachment_field.html.haml" do include FileHelper diff --git a/spec/views/checkout/_voucher_section.html.haml_spec.rb b/spec/views/checkout/_voucher_section.html.haml_spec.rb index f60d80d03b..d60c120bf7 100644 --- a/spec/views/checkout/_voucher_section.html.haml_spec.rb +++ b/spec/views/checkout/_voucher_section.html.haml_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "checkout/_voucher_section.html.haml" do let(:order) { create(:order_with_distributor, total: 10) } let(:flat_voucher) { diff --git a/spec/views/layouts/darkswarm.html.haml_spec.rb b/spec/views/layouts/darkswarm.html.haml_spec.rb index 286f301a94..5f0f363531 100644 --- a/spec/views/layouts/darkswarm.html.haml_spec.rb +++ b/spec/views/layouts/darkswarm.html.haml_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "layouts/darkswarm.html.haml" do helper InjectionHelper helper I18nHelper diff --git a/spec/views/layouts/registration.html.haml_spec.rb b/spec/views/layouts/registration.html.haml_spec.rb index 07eac91486..1b8965feef 100644 --- a/spec/views/layouts/registration.html.haml_spec.rb +++ b/spec/views/layouts/registration.html.haml_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "layouts/registration.html.haml" do helper InjectionHelper helper I18nHelper diff --git a/spec/views/registration/steps/_details.html.haml_spec.rb b/spec/views/registration/steps/_details.html.haml_spec.rb index b903b5d748..e1c5b4332d 100644 --- a/spec/views/registration/steps/_details.html.haml_spec.rb +++ b/spec/views/registration/steps/_details.html.haml_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "registration/steps/_details.html.haml" do subject { render } diff --git a/spec/views/spree/admin/orders/edit.html.haml_spec.rb b/spec/views/spree/admin/orders/edit.html.haml_spec.rb index d53fa5abb7..feafbd1248 100644 --- a/spec/views/spree/admin/orders/edit.html.haml_spec.rb +++ b/spec/views/spree/admin/orders/edit.html.haml_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "spree/admin/orders/edit.html.haml" do helper Spree::BaseHelper # required to make pretty_time work helper Spree::Admin::NavigationHelper diff --git a/spec/views/spree/admin/orders/index.html.haml_spec.rb b/spec/views/spree/admin/orders/index.html.haml_spec.rb index c28da03214..b942809a11 100644 --- a/spec/views/spree/admin/orders/index.html.haml_spec.rb +++ b/spec/views/spree/admin/orders/index.html.haml_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "spree/admin/orders/index.html.haml" do helper Spree::Admin::NavigationHelper helper EnterprisesHelper diff --git a/spec/views/spree/admin/orders/invoice.html.haml_spec.rb b/spec/views/spree/admin/orders/invoice.html.haml_spec.rb index a49b25d426..e15dcad4cc 100644 --- a/spec/views/spree/admin/orders/invoice.html.haml_spec.rb +++ b/spec/views/spree/admin/orders/invoice.html.haml_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "spree/admin/orders/invoice.html.haml" do let(:shop) { create(:distributor_enterprise) } let(:order) { create(:completed_order_with_totals, distributor: shop) } diff --git a/spec/views/spree/admin/payment_methods/index.html.haml_spec.rb b/spec/views/spree/admin/payment_methods/index.html.haml_spec.rb index 5b80c65b96..5aa8a2876f 100644 --- a/spec/views/spree/admin/payment_methods/index.html.haml_spec.rb +++ b/spec/views/spree/admin/payment_methods/index.html.haml_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "spree/admin/payment_methods/index.html.haml" do include AuthenticationHelper diff --git a/spec/views/spree/orders/edit.html.haml_spec.rb b/spec/views/spree/orders/edit.html.haml_spec.rb index f6b2988edb..caf79fae10 100644 --- a/spec/views/spree/orders/edit.html.haml_spec.rb +++ b/spec/views/spree/orders/edit.html.haml_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "spree/orders/edit.html.haml" do helper InjectionHelper helper ShopHelper diff --git a/spec/views/spree/orders/show.html.haml_spec.rb b/spec/views/spree/orders/show.html.haml_spec.rb index a1d238f472..0c4b180682 100644 --- a/spec/views/spree/orders/show.html.haml_spec.rb +++ b/spec/views/spree/orders/show.html.haml_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "spree/orders/show.html.haml" do helper InjectionHelper helper ShopHelper diff --git a/spec/views/spree/shared/_order_details.html.haml_spec.rb b/spec/views/spree/shared/_order_details.html.haml_spec.rb index fe2b49a19b..da1ffe3c94 100644 --- a/spec/views/spree/shared/_order_details.html.haml_spec.rb +++ b/spec/views/spree/shared/_order_details.html.haml_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "spec_helper" - RSpec.describe "spree/shared/_order_details.html.haml" do include AuthenticationHelper diff --git a/vendor/assets/stylesheets/select2.css.scss b/vendor/assets/stylesheets/select2.scss similarity index 100% rename from vendor/assets/stylesheets/select2.css.scss rename to vendor/assets/stylesheets/select2.scss diff --git a/yarn.lock b/yarn.lock index fafebed5fd..c9f68d100f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,14 +2,6 @@ # yarn lockfile v1 -"@ampproject/remapping@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== - dependencies: - "@jridgewell/gen-mapping" "^0.1.0" - "@jridgewell/trace-mapping" "^0.3.9" - "@asamuzakjp/css-color@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@asamuzakjp/css-color/-/css-color-3.2.0.tgz#cc42f5b85c593f79f1fa4f25d2b9b321e61d1794" @@ -21,89 +13,34 @@ "@csstools/css-tokenizer" "^3.0.3" lru-cache "^10.4.3" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" - integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.27.1", "@babel/code-frame@^7.28.6", "@babel/code-frame@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.0.tgz#7cd7a59f15b3cc0dcd803038f7792712a7d0b15c" + integrity sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw== dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" - integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== - dependencies: - "@babel/helper-validator-identifier" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" js-tokens "^4.0.0" picocolors "^1.1.1" -"@babel/code-frame@^7.22.13": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== +"@babel/compat-data@^7.28.6", "@babel/compat-data@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.29.0.tgz#00d03e8c0ac24dd9be942c5370990cbe1f17d88d" + integrity sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg== + +"@babel/core@^7.23.9", "@babel/core@^7.27.4", "@babel/core@^7.28.5": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.29.0.tgz#5286ad785df7f79d656e88ce86e650d16ca5f322" + integrity sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA== dependencies: - "@babel/highlight" "^7.22.13" - chalk "^2.4.2" - -"@babel/code-frame@^7.26.2": - version "7.26.2" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" - integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== - dependencies: - "@babel/helper-validator-identifier" "^7.25.9" - js-tokens "^4.0.0" - picocolors "^1.0.0" - -"@babel/compat-data@^7.13.11": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.4.tgz#457ffe647c480dff59c2be092fc3acf71195c87f" - integrity sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g== - -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.4", "@babel/compat-data@^7.21.5": - version "7.21.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.7.tgz#61caffb60776e49a57ba61a88f02bedd8714f6bc" - integrity sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA== - -"@babel/compat-data@^7.27.2": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.5.tgz#a8a4962e1567121ac0b3b487f52107443b455c7f" - integrity sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA== - -"@babel/core@^7.15.0": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.5.tgz#92f753e8b9f96e15d4b398dbe2f25d1408c9c426" - integrity sha512-9M398B/QH5DlfCOTKDZT1ozXr0x8uBEeFd+dJraGUZGiaNpGCDVGCc14hZexsMblw3XxltJ+6kSvogp9J+5a9g== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.5" - "@babel/helper-compilation-targets" "^7.21.5" - "@babel/helper-module-transforms" "^7.21.5" - "@babel/helpers" "^7.21.5" - "@babel/parser" "^7.21.5" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" - -"@babel/core@^7.23.9", "@babel/core@^7.27.4": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.5.tgz#4c81b35e51e1b734f510c99b07dfbc7bbbb48f7e" - integrity sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.28.5" - "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-module-transforms" "^7.28.3" - "@babel/helpers" "^7.28.4" - "@babel/parser" "^7.28.5" - "@babel/template" "^7.27.2" - "@babel/traverse" "^7.28.5" - "@babel/types" "^7.28.5" + "@babel/code-frame" "^7.29.0" + "@babel/generator" "^7.29.0" + "@babel/helper-compilation-targets" "^7.28.6" + "@babel/helper-module-transforms" "^7.28.6" + "@babel/helpers" "^7.28.6" + "@babel/parser" "^7.29.0" + "@babel/template" "^7.28.6" + "@babel/traverse" "^7.29.0" + "@babel/types" "^7.29.0" "@jridgewell/remapping" "^2.3.5" convert-source-map "^2.0.0" debug "^4.1.0" @@ -111,561 +48,229 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.5.tgz#c0c0e5449504c7b7de8236d99338c3e2a340745f" - integrity sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w== +"@babel/generator@^7.27.5", "@babel/generator@^7.29.0": + version "7.29.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.1.tgz#d09876290111abbb00ef962a7b83a5307fba0d50" + integrity sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw== dependencies: - "@babel/types" "^7.21.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/generator@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" - integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== - dependencies: - "@babel/types" "^7.23.0" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/generator@^7.27.5", "@babel/generator@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.5.tgz#712722d5e50f44d07bc7ac9fe84438742dd61298" - integrity sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ== - dependencies: - "@babel/parser" "^7.28.5" - "@babel/types" "^7.28.5" + "@babel/parser" "^7.29.0" + "@babel/types" "^7.29.0" "@jridgewell/gen-mapping" "^0.3.12" "@jridgewell/trace-mapping" "^0.3.28" jsesc "^3.0.2" -"@babel/helper-annotate-as-pure@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== +"@babel/helper-annotate-as-pure@^7.27.1", "@babel/helper-annotate-as-pure@^7.27.3": + version "7.27.3" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz#f31fd86b915fc4daf1f3ac6976c59be7084ed9c5" + integrity sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.27.3" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz#817f73b6c59726ab39f6ba18c234268a519e5abb" - integrity sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g== +"@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.27.2", "@babel/helper-compilation-targets@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz#32c4a3f41f12ed1532179b108a4d746e105c2b25" + integrity sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA== dependencies: - "@babel/types" "^7.21.5" - -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.4", "@babel/helper-compilation-targets@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz#631e6cc784c7b660417421349aac304c94115366" - integrity sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w== - dependencies: - "@babel/compat-data" "^7.21.5" - "@babel/helper-validator-option" "^7.21.0" - browserslist "^4.21.3" - lru-cache "^5.1.1" - semver "^6.3.0" - -"@babel/helper-compilation-targets@^7.27.2": - version "7.27.2" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d" - integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== - dependencies: - "@babel/compat-data" "^7.27.2" + "@babel/compat-data" "^7.28.6" "@babel/helper-validator-option" "^7.27.1" browserslist "^4.24.0" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": - version "7.21.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz#205b26330258625ef8869672ebca1e0dee5a0f02" - integrity sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw== +"@babel/helper-create-class-features-plugin@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz#611ff5482da9ef0db6291bcd24303400bca170fb" + integrity sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.21.5" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-member-expression-to-functions" "^7.21.5" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.21.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/helper-split-export-declaration" "^7.18.6" - semver "^6.3.0" + "@babel/helper-annotate-as-pure" "^7.27.3" + "@babel/helper-member-expression-to-functions" "^7.28.5" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/helper-replace-supers" "^7.28.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/traverse" "^7.28.6" + semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": - version "7.21.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz#a7886f61c2e29e21fd4aaeaf1e473deba6b571dc" - integrity sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.27.1", "@babel/helper-create-regexp-features-plugin@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz#7c1ddd64b2065c7f78034b25b43346a7e19ed997" + integrity sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.3.1" - semver "^6.3.0" + "@babel/helper-annotate-as-pure" "^7.27.3" + regexpu-core "^6.3.1" + semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.2.2": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" - integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== +"@babel/helper-define-polyfill-provider@^0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz#742ccf1cb003c07b48859fc9fa2c1bbe40e5f753" + integrity sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg== dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" - debug "^4.1.1" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-plugin-utils" "^7.27.1" + debug "^4.4.1" lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" + resolve "^1.22.10" -"@babel/helper-define-polyfill-provider@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" - integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== +"@babel/helper-define-polyfill-provider@^0.6.6": + version "0.6.6" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.6.tgz#714dfe33d8bd710f556df59953720f6eeb6c1a14" + integrity sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA== dependencies: - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - debug "^4.1.1" + "@babel/helper-compilation-targets" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" + debug "^4.4.3" lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz#c769afefd41d171836f7cb63e295bedf689d48ba" - integrity sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ== - -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== - -"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" - integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== - dependencies: - "@babel/template" "^7.20.7" - "@babel/types" "^7.21.0" - -"@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" + resolve "^1.22.11" "@babel/helper-globals@^7.28.0": version "7.28.0" resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674" integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== +"@babel/helper-member-expression-to-functions@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz#f3e07a10be37ed7a63461c63e6929575945a6150" + integrity sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg== dependencies: - "@babel/types" "^7.18.6" + "@babel/traverse" "^7.28.5" + "@babel/types" "^7.28.5" -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== +"@babel/helper-module-imports@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz#60632cbd6ffb70b22823187201116762a03e2d5c" + integrity sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw== dependencies: - "@babel/types" "^7.22.5" + "@babel/traverse" "^7.28.6" + "@babel/types" "^7.28.6" -"@babel/helper-member-expression-to-functions@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz#3b1a009af932e586af77c1030fba9ee0bde396c0" - integrity sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg== +"@babel/helper-module-transforms@^7.27.1", "@babel/helper-module-transforms@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz#9312d9d9e56edc35aeb6e95c25d4106b50b9eb1e" + integrity sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA== dependencies: - "@babel/types" "^7.21.5" + "@babel/helper-module-imports" "^7.28.6" + "@babel/helper-validator-identifier" "^7.28.5" + "@babel/traverse" "^7.28.6" -"@babel/helper-module-imports@^7.12.13": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" - integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-module-imports@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" - integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" - integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== - dependencies: - "@babel/types" "^7.21.4" - -"@babel/helper-module-imports@^7.27.1": +"@babel/helper-optimise-call-expression@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204" - integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz#c65221b61a643f3e62705e5dd2b5f115e35f9200" + integrity sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw== + dependencies: + "@babel/types" "^7.27.1" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.27.1", "@babel/helper-plugin-utils@^7.28.6", "@babel/helper-plugin-utils@^7.8.0": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz#6f13ea251b68c8532e985fd532f28741a8af9ac8" + integrity sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug== + +"@babel/helper-remap-async-to-generator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz#4601d5c7ce2eb2aea58328d43725523fcd362ce6" + integrity sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-wrap-function" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/helper-replace-supers@^7.27.1", "@babel/helper-replace-supers@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz#94aa9a1d7423a00aead3f204f78834ce7d53fe44" + integrity sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.28.5" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/traverse" "^7.28.6" + +"@babel/helper-skip-transparent-expression-wrappers@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz#62bb91b3abba8c7f1fec0252d9dbea11b3ee7a56" + integrity sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg== dependencies: "@babel/traverse" "^7.27.1" "@babel/types" "^7.27.1" -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz#d937c82e9af68d31ab49039136a222b17ac0b420" - integrity sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw== - dependencies: - "@babel/helper-environment-visitor" "^7.21.5" - "@babel/helper-module-imports" "^7.21.4" - "@babel/helper-simple-access" "^7.21.5" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" - -"@babel/helper-module-transforms@^7.28.3": - version "7.28.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz#a2b37d3da3b2344fe085dab234426f2b9a2fa5f6" - integrity sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw== - dependencies: - "@babel/helper-module-imports" "^7.27.1" - "@babel/helper-validator-identifier" "^7.27.1" - "@babel/traverse" "^7.28.3" - -"@babel/helper-optimise-call-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" - integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.21.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz#345f2377d05a720a4e5ecfa39cbf4474a4daed56" - integrity sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg== - -"@babel/helper-plugin-utils@^7.13.0": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" - integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== - -"@babel/helper-plugin-utils@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c" - integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== - -"@babel/helper-remap-async-to-generator@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" - integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-wrap-function" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7", "@babel/helper-replace-supers@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz#a6ad005ba1c7d9bc2973dfde05a1bba7065dde3c" - integrity sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg== - dependencies: - "@babel/helper-environment-visitor" "^7.21.5" - "@babel/helper-member-expression-to-functions" "^7.21.5" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" - -"@babel/helper-simple-access@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee" - integrity sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg== - dependencies: - "@babel/types" "^7.21.5" - -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" - integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== - dependencies: - "@babel/types" "^7.20.0" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" - integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== - -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== - -"@babel/helper-string-parser@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" - integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== - "@babel/helper-string-parser@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.27.1", "@babel/helper-validator-identifier@^7.28.5": +"@babel/helper-validator-identifier@^7.28.5": version "7.28.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== -"@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - -"@babel/helper-validator-identifier@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" - integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== - -"@babel/helper-validator-option@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" - integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== - "@babel/helper-validator-option@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== -"@babel/helper-wrap-function@^7.18.9": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" - integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== +"@babel/helper-wrap-function@^7.27.1": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz#4e349ff9222dab69a93a019cc296cdd8442e279a" + integrity sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ== dependencies: - "@babel/helper-function-name" "^7.19.0" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.5" - "@babel/types" "^7.20.5" + "@babel/template" "^7.28.6" + "@babel/traverse" "^7.28.6" + "@babel/types" "^7.28.6" -"@babel/helpers@^7.21.5": - version "7.26.10" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.10.tgz#6baea3cd62ec2d0c1068778d63cb1314f6637384" - integrity sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g== +"@babel/helpers@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.6.tgz#fca903a313ae675617936e8998b814c415cbf5d7" + integrity sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw== dependencies: - "@babel/template" "^7.26.9" - "@babel/types" "^7.26.10" + "@babel/template" "^7.28.6" + "@babel/types" "^7.28.6" -"@babel/helpers@^7.28.4": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.4.tgz#fe07274742e95bdf7cf1443593eeb8926ab63827" - integrity sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w== +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.28.6", "@babel/parser@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.0.tgz#669ef345add7d057e92b7ed15f0bac07611831b6" + integrity sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww== dependencies: - "@babel/template" "^7.27.2" - "@babel/types" "^7.28.4" + "@babel/types" "^7.29.0" -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/highlight@^7.22.13": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" - integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.21.5": - version "7.21.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.8.tgz#642af7d0333eab9c0ad70b14ac5e76dbde7bfdf8" - integrity sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA== - -"@babel/parser@^7.22.15", "@babel/parser@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" - integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== - -"@babel/parser@^7.23.9", "@babel/parser@^7.27.2", "@babel/parser@^7.28.5": +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.28.5": version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.5.tgz#0b0225ee90362f030efd644e8034c99468893b08" - integrity sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ== + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz#fbde57974707bbfa0376d34d425ff4fa6c732421" + integrity sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q== dependencies: - "@babel/types" "^7.28.5" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.28.5" -"@babel/parser@^7.26.9": - version "7.26.10" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.10.tgz#e9bdb82f14b97df6569b0b038edd436839c57749" - integrity sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA== +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz#43f70a6d7efd52370eefbdf55ae03d91b293856d" + integrity sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA== dependencies: - "@babel/types" "^7.26.10" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" - integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz#beb623bd573b8b6f3047bd04c32506adc3e58a72" + integrity sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" - integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz#e134a5479eb2ba9c02714e8c1ebf1ec9076124fd" + integrity sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.7" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/plugin-transform-optional-chaining" "^7.27.1" -"@babel/plugin-proposal-async-generator-functions@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" - integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz#0e8289cec28baaf05d54fd08d81ae3676065f69f" + integrity sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g== dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/traverse" "^7.28.6" -"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-class-static-block@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" - integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-dynamic-import@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" - integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" - integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" - integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" - integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" - integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.14.7", "@babel/plugin-proposal-object-rest-spread@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - -"@babel/plugin-proposal-optional-catch-binding@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" - integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" - integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" - integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-private-property-in-object@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" - integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" - integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -695,33 +300,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== +"@babel/plugin-syntax-import-assertions@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz#ae9bc1923a6ba527b70104dd2191b0cd872c8507" + integrity sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw== dependencies: - "@babel/helper-plugin-utils" "^7.8.0" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== +"@babel/plugin-syntax-import-attributes@^7.24.7", "@babel/plugin-syntax-import-attributes@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz#b71d5914665f60124e133696f17cd7669062c503" + integrity sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-import-assertions@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" - integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/plugin-syntax-import-attributes@^7.24.7": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz#34c017d54496f9b11b61474e7ea3dfd5563ffe07" - integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" @@ -807,474 +398,544 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-arrow-functions@^7.20.7": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz#9bb42a53de447936a57ba256fbf537fc312b6929" - integrity sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA== - dependencies: - "@babel/helper-plugin-utils" "^7.21.5" - -"@babel/plugin-transform-async-to-generator@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" - integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== - dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - -"@babel/plugin-transform-block-scoped-functions@^7.18.6": +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" - integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-block-scoping@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" - integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-classes@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" - integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-split-export-declaration" "^7.18.6" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.20.7": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz#3a2d8bb771cd2ef1cd736435f6552fe502e11b44" - integrity sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q== - dependencies: - "@babel/helper-plugin-utils" "^7.21.5" - "@babel/template" "^7.20.7" - -"@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.21.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" - integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" - integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-duplicate-keys@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" - integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== +"@babel/plugin-transform-arrow-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz#6e2061067ba3ab0266d834a9f94811196f2aba9a" + integrity sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-exponentiation-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" - integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== +"@babel/plugin-transform-async-generator-functions@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz#63ed829820298f0bf143d5a4a68fb8c06ffd742f" + integrity sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-remap-async-to-generator" "^7.27.1" + "@babel/traverse" "^7.29.0" -"@babel/plugin-transform-for-of@^7.21.0": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz#e890032b535f5a2e237a18535f56a9fdaa7b83fc" - integrity sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ== +"@babel/plugin-transform-async-to-generator@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz#bd97b42237b2d1bc90d74bcb486c39be5b4d7e77" + integrity sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g== dependencies: - "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-module-imports" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-remap-async-to-generator" "^7.27.1" -"@babel/plugin-transform-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" - integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== +"@babel/plugin-transform-block-scoped-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz#558a9d6e24cf72802dd3b62a4b51e0d62c0f57f9" + integrity sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg== dependencies: - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" - integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== +"@babel/plugin-transform-block-scoping@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz#e1ef5633448c24e76346125c2534eeb359699a99" + integrity sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-member-expression-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" - integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== +"@babel/plugin-transform-class-properties@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz#d274a4478b6e782d9ea987fda09bdb6d28d66b72" + integrity sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-modules-amd@^7.20.11": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" - integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== +"@babel/plugin-transform-class-static-block@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz#1257491e8259c6d125ac4d9a6f39f9d2bf3dba70" + integrity sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ== dependencies: - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-create-class-features-plugin" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-modules-commonjs@^7.21.2": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz#d69fb947eed51af91de82e4708f676864e5e47bc" - integrity sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ== +"@babel/plugin-transform-classes@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz#8f6fb79ba3703978e701ce2a97e373aae7dda4b7" + integrity sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q== dependencies: - "@babel/helper-module-transforms" "^7.21.5" - "@babel/helper-plugin-utils" "^7.21.5" - "@babel/helper-simple-access" "^7.21.5" + "@babel/helper-annotate-as-pure" "^7.27.3" + "@babel/helper-compilation-targets" "^7.28.6" + "@babel/helper-globals" "^7.28.0" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-replace-supers" "^7.28.6" + "@babel/traverse" "^7.28.6" -"@babel/plugin-transform-modules-systemjs@^7.20.11": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" - integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== +"@babel/plugin-transform-computed-properties@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz#936824fc71c26cb5c433485776d79c8e7b0202d2" + integrity sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ== dependencies: - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/template" "^7.28.6" -"@babel/plugin-transform-modules-umd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" - integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== +"@babel/plugin-transform-destructuring@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz#b8402764df96179a2070bb7b501a1586cf8ad7a7" + integrity sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw== dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.28.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.20.5": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" - integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== +"@babel/plugin-transform-dotall-regex@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz#def31ed84e0fb6e25c71e53c124e7b76a4ab8e61" + integrity sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.20.5" - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-create-regexp-features-plugin" "^7.28.5" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-new-target@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" - integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== +"@babel/plugin-transform-duplicate-keys@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz#f1fbf628ece18e12e7b32b175940e68358f546d1" + integrity sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-object-super@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" - integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.0.tgz#8014b8a6cfd0e7b92762724443bf0d2400f26df1" + integrity sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-create-regexp-features-plugin" "^7.28.5" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.21.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" - integrity sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ== +"@babel/plugin-transform-dynamic-import@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz#4c78f35552ac0e06aa1f6e3c573d67695e8af5a4" + integrity sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-property-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" - integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== +"@babel/plugin-transform-explicit-resource-management@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz#dd6788f982c8b77e86779d1d029591e39d9d8be7" + integrity sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/plugin-transform-destructuring" "^7.28.5" -"@babel/plugin-transform-regenerator@^7.14.5": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" - integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== +"@babel/plugin-transform-exponentiation-operator@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz#5e477eb7eafaf2ab5537a04aaafcf37e2d7f1091" + integrity sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - regenerator-transform "^0.15.1" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-regenerator@^7.20.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz#576c62f9923f94bcb1c855adc53561fd7913724e" - integrity sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w== +"@babel/plugin-transform-export-namespace-from@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz#71ca69d3471edd6daa711cf4dfc3400415df9c23" + integrity sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ== dependencies: - "@babel/helper-plugin-utils" "^7.21.5" - regenerator-transform "^0.15.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-reserved-words@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" - integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== +"@babel/plugin-transform-for-of@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz#bc24f7080e9ff721b63a70ac7b2564ca15b6c40a" + integrity sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" -"@babel/plugin-transform-runtime@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz#d3aa650d11678ca76ce294071fda53d7804183b3" - integrity sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw== +"@babel/plugin-transform-function-name@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz#4d0bf307720e4dce6d7c30fcb1fd6ca77bdeb3a7" + integrity sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ== dependencies: - "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - babel-plugin-polyfill-corejs2 "^0.2.2" - babel-plugin-polyfill-corejs3 "^0.2.2" - babel-plugin-polyfill-regenerator "^0.2.2" - semver "^6.3.0" + "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/plugin-transform-shorthand-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" - integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== +"@babel/plugin-transform-json-strings@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz#4c8c15b2dc49e285d110a4cf3dac52fd2dfc3038" + integrity sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-spread@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" - integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== +"@babel/plugin-transform-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz#baaefa4d10a1d4206f9dcdda50d7d5827bb70b24" + integrity sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-sticky-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" - integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== +"@babel/plugin-transform-logical-assignment-operators@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz#53028a3d77e33c50ef30a8fce5ca17065936e605" + integrity sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-template-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" - integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== +"@babel/plugin-transform-member-expression-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz#37b88ba594d852418e99536f5612f795f23aeaf9" + integrity sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-typeof-symbol@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" - integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== +"@babel/plugin-transform-modules-amd@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz#a4145f9d87c2291fe2d05f994b65dba4e3e7196f" + integrity sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-unicode-escapes@^7.18.10": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz#1e55ed6195259b0e9061d81f5ef45a9b009fb7f2" - integrity sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg== +"@babel/plugin-transform-modules-commonjs@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz#c0232e0dfe66a734cc4ad0d5e75fc3321b6fdef1" + integrity sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA== dependencies: - "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-module-transforms" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-unicode-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" - integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== +"@babel/plugin-transform-modules-systemjs@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz#e458a95a17807c415924106a3ff188a3b8dee964" + integrity sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-module-transforms" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-validator-identifier" "^7.28.5" + "@babel/traverse" "^7.29.0" -"@babel/preset-env@^7.15.0": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.21.4.tgz#a952482e634a8dd8271a3fe5459a16eb10739c58" - integrity sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw== +"@babel/plugin-transform-modules-umd@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz#63f2cf4f6dc15debc12f694e44714863d34cd334" + integrity sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w== dependencies: - "@babel/compat-data" "^7.21.4" - "@babel/helper-compilation-targets" "^7.21.4" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-option" "^7.21.0" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.20.7" - "@babel/plugin-proposal-async-generator-functions" "^7.20.7" - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.21.0" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.20.7" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.20.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.21.0" - "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.21.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.20.0" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.20.7" - "@babel/plugin-transform-async-to-generator" "^7.20.7" - "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.21.0" - "@babel/plugin-transform-classes" "^7.21.0" - "@babel/plugin-transform-computed-properties" "^7.20.7" - "@babel/plugin-transform-destructuring" "^7.21.3" - "@babel/plugin-transform-dotall-regex" "^7.18.6" - "@babel/plugin-transform-duplicate-keys" "^7.18.9" - "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.21.0" - "@babel/plugin-transform-function-name" "^7.18.9" - "@babel/plugin-transform-literals" "^7.18.9" - "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.20.11" - "@babel/plugin-transform-modules-commonjs" "^7.21.2" - "@babel/plugin-transform-modules-systemjs" "^7.20.11" - "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.20.5" - "@babel/plugin-transform-new-target" "^7.18.6" - "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.21.3" - "@babel/plugin-transform-property-literals" "^7.18.6" - "@babel/plugin-transform-regenerator" "^7.20.5" - "@babel/plugin-transform-reserved-words" "^7.18.6" - "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.20.7" - "@babel/plugin-transform-sticky-regex" "^7.18.6" - "@babel/plugin-transform-template-literals" "^7.18.9" - "@babel/plugin-transform-typeof-symbol" "^7.18.9" - "@babel/plugin-transform-unicode-escapes" "^7.18.10" - "@babel/plugin-transform-unicode-regex" "^7.18.6" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.21.4" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - core-js-compat "^3.25.1" - semver "^6.3.0" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.0.tgz#a26cd51e09c4718588fc4cce1c5d1c0152102d6a" + integrity sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.28.5" + "@babel/helper-plugin-utils" "^7.28.6" + +"@babel/plugin-transform-new-target@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz#259c43939728cad1706ac17351b7e6a7bea1abeb" + integrity sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz#9bc62096e90ab7a887f3ca9c469f6adec5679757" + integrity sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg== + dependencies: + "@babel/helper-plugin-utils" "^7.28.6" + +"@babel/plugin-transform-numeric-separator@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz#1310b0292762e7a4a335df5f580c3320ee7d9e9f" + integrity sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w== + dependencies: + "@babel/helper-plugin-utils" "^7.28.6" + +"@babel/plugin-transform-object-rest-spread@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz#fdd4bc2d72480db6ca42aed5c051f148d7b067f7" + integrity sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA== + dependencies: + "@babel/helper-compilation-targets" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/plugin-transform-destructuring" "^7.28.5" + "@babel/plugin-transform-parameters" "^7.27.7" + "@babel/traverse" "^7.28.6" + +"@babel/plugin-transform-object-super@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz#1c932cd27bf3874c43a5cac4f43ebf970c9871b5" + integrity sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + +"@babel/plugin-transform-optional-catch-binding@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz#75107be14c78385978201a49c86414a150a20b4c" + integrity sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ== + dependencies: + "@babel/helper-plugin-utils" "^7.28.6" + +"@babel/plugin-transform-optional-chaining@^7.27.1", "@babel/plugin-transform-optional-chaining@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz#926cf150bd421fc8362753e911b4a1b1ce4356cd" + integrity sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w== + dependencies: + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + +"@babel/plugin-transform-parameters@^7.27.7": + version "7.27.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz#1fd2febb7c74e7d21cf3b05f7aebc907940af53a" + integrity sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-private-methods@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz#c76fbfef3b86c775db7f7c106fff544610bdb411" + integrity sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" + +"@babel/plugin-transform-private-property-in-object@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz#4fafef1e13129d79f1d75ac180c52aafefdb2811" + integrity sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.3" + "@babel/helper-create-class-features-plugin" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" + +"@babel/plugin-transform-property-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz#07eafd618800591e88073a0af1b940d9a42c6424" + integrity sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-regenerator@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.0.tgz#dec237cec1b93330876d6da9992c4abd42c9d18b" + integrity sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog== + dependencies: + "@babel/helper-plugin-utils" "^7.28.6" + +"@babel/plugin-transform-regexp-modifiers@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz#7ef0163bd8b4a610481b2509c58cf217f065290b" + integrity sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.28.5" + "@babel/helper-plugin-utils" "^7.28.6" + +"@babel/plugin-transform-reserved-words@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz#40fba4878ccbd1c56605a4479a3a891ac0274bb4" + integrity sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-runtime@^7.28.5": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.0.tgz#a5fded13cc656700804bfd6e5ebd7fffd5266803" + integrity sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w== + dependencies: + "@babel/helper-module-imports" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" + babel-plugin-polyfill-corejs2 "^0.4.14" + babel-plugin-polyfill-corejs3 "^0.13.0" + babel-plugin-polyfill-regenerator "^0.6.5" + semver "^6.3.1" + +"@babel/plugin-transform-shorthand-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz#532abdacdec87bfee1e0ef8e2fcdee543fe32b90" + integrity sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-spread@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz#40a2b423f6db7b70f043ad027a58bcb44a9757b6" + integrity sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA== + dependencies: + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + +"@babel/plugin-transform-sticky-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz#18984935d9d2296843a491d78a014939f7dcd280" + integrity sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-template-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz#1a0eb35d8bb3e6efc06c9fd40eb0bcef548328b8" + integrity sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-typeof-symbol@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz#70e966bb492e03509cf37eafa6dcc3051f844369" + integrity sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-unicode-escapes@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz#3e3143f8438aef842de28816ece58780190cf806" + integrity sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-unicode-property-regex@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz#63a7a6c21a0e75dae9b1861454111ea5caa22821" + integrity sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.28.5" + "@babel/helper-plugin-utils" "^7.28.6" + +"@babel/plugin-transform-unicode-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz#25948f5c395db15f609028e370667ed8bae9af97" + integrity sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-unicode-sets-regex@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz#924912914e5df9fe615ec472f88ff4788ce04d4e" + integrity sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.28.5" + "@babel/helper-plugin-utils" "^7.28.6" + +"@babel/preset-env@^7.28.5": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.29.0.tgz#c55db400c515a303662faaefd2d87e796efa08d0" + integrity sha512-fNEdfc0yi16lt6IZo2Qxk3knHVdfMYX33czNb4v8yWhemoBhibCpQK/uYHtSKIiO+p/zd3+8fYVXhQdOVV608w== + dependencies: + "@babel/compat-data" "^7.29.0" + "@babel/helper-compilation-targets" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-validator-option" "^7.27.1" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.28.5" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.27.1" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.27.1" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.27.1" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.28.6" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-import-assertions" "^7.28.6" + "@babel/plugin-syntax-import-attributes" "^7.28.6" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.27.1" + "@babel/plugin-transform-async-generator-functions" "^7.29.0" + "@babel/plugin-transform-async-to-generator" "^7.28.6" + "@babel/plugin-transform-block-scoped-functions" "^7.27.1" + "@babel/plugin-transform-block-scoping" "^7.28.6" + "@babel/plugin-transform-class-properties" "^7.28.6" + "@babel/plugin-transform-class-static-block" "^7.28.6" + "@babel/plugin-transform-classes" "^7.28.6" + "@babel/plugin-transform-computed-properties" "^7.28.6" + "@babel/plugin-transform-destructuring" "^7.28.5" + "@babel/plugin-transform-dotall-regex" "^7.28.6" + "@babel/plugin-transform-duplicate-keys" "^7.27.1" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.29.0" + "@babel/plugin-transform-dynamic-import" "^7.27.1" + "@babel/plugin-transform-explicit-resource-management" "^7.28.6" + "@babel/plugin-transform-exponentiation-operator" "^7.28.6" + "@babel/plugin-transform-export-namespace-from" "^7.27.1" + "@babel/plugin-transform-for-of" "^7.27.1" + "@babel/plugin-transform-function-name" "^7.27.1" + "@babel/plugin-transform-json-strings" "^7.28.6" + "@babel/plugin-transform-literals" "^7.27.1" + "@babel/plugin-transform-logical-assignment-operators" "^7.28.6" + "@babel/plugin-transform-member-expression-literals" "^7.27.1" + "@babel/plugin-transform-modules-amd" "^7.27.1" + "@babel/plugin-transform-modules-commonjs" "^7.28.6" + "@babel/plugin-transform-modules-systemjs" "^7.29.0" + "@babel/plugin-transform-modules-umd" "^7.27.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.29.0" + "@babel/plugin-transform-new-target" "^7.27.1" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.28.6" + "@babel/plugin-transform-numeric-separator" "^7.28.6" + "@babel/plugin-transform-object-rest-spread" "^7.28.6" + "@babel/plugin-transform-object-super" "^7.27.1" + "@babel/plugin-transform-optional-catch-binding" "^7.28.6" + "@babel/plugin-transform-optional-chaining" "^7.28.6" + "@babel/plugin-transform-parameters" "^7.27.7" + "@babel/plugin-transform-private-methods" "^7.28.6" + "@babel/plugin-transform-private-property-in-object" "^7.28.6" + "@babel/plugin-transform-property-literals" "^7.27.1" + "@babel/plugin-transform-regenerator" "^7.29.0" + "@babel/plugin-transform-regexp-modifiers" "^7.28.6" + "@babel/plugin-transform-reserved-words" "^7.27.1" + "@babel/plugin-transform-shorthand-properties" "^7.27.1" + "@babel/plugin-transform-spread" "^7.28.6" + "@babel/plugin-transform-sticky-regex" "^7.27.1" + "@babel/plugin-transform-template-literals" "^7.27.1" + "@babel/plugin-transform-typeof-symbol" "^7.27.1" + "@babel/plugin-transform-unicode-escapes" "^7.27.1" + "@babel/plugin-transform-unicode-property-regex" "^7.28.6" + "@babel/plugin-transform-unicode-regex" "^7.27.1" + "@babel/plugin-transform-unicode-sets-regex" "^7.28.6" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.15" + babel-plugin-polyfill-corejs3 "^0.14.0" + babel-plugin-polyfill-regenerator "^0.6.6" + core-js-compat "^3.48.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/regjsgen@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" - integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== - -"@babel/runtime@^7.12.5", "@babel/runtime@^7.15.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.12.5", "@babel/runtime@^7.8.4": version "7.28.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== -"@babel/template@^7.18.10", "@babel/template@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" - integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" +"@babel/runtime@^7.28.4": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.6.tgz#d267a43cb1836dc4d182cce93ae75ba954ef6d2b" + integrity sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA== -"@babel/template@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" - integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== +"@babel/template@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.28.6.tgz#0e7e56ecedb78aeef66ce7972b082fce76a23e57" + integrity sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ== dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" + "@babel/code-frame" "^7.28.6" + "@babel/parser" "^7.28.6" + "@babel/types" "^7.28.6" -"@babel/template@^7.26.9": - version "7.26.9" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.26.9.tgz#4577ad3ddf43d194528cff4e1fa6b232fa609bb2" - integrity sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA== +"@babel/traverse@^7.27.1", "@babel/traverse@^7.28.5", "@babel/traverse@^7.28.6", "@babel/traverse@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.0.tgz#f323d05001440253eead3c9c858adbe00b90310a" + integrity sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA== dependencies: - "@babel/code-frame" "^7.26.2" - "@babel/parser" "^7.26.9" - "@babel/types" "^7.26.9" - -"@babel/template@^7.27.2": - version "7.27.2" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d" - integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/parser" "^7.27.2" - "@babel/types" "^7.27.1" - -"@babel/traverse@^7.13.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.21.5": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" - integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.0" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.0" - "@babel/types" "^7.23.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.27.1", "@babel/traverse@^7.28.3", "@babel/traverse@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.5.tgz#450cab9135d21a7a2ca9d2d35aa05c20e68c360b" - integrity sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.28.5" + "@babel/code-frame" "^7.29.0" + "@babel/generator" "^7.29.0" "@babel/helper-globals" "^7.28.0" - "@babel/parser" "^7.28.5" - "@babel/template" "^7.27.2" - "@babel/types" "^7.28.5" + "@babel/parser" "^7.29.0" + "@babel/template" "^7.28.6" + "@babel/types" "^7.29.0" debug "^4.3.1" -"@babel/types@^7.0.0", "@babel/types@^7.13.12", "@babel/types@^7.14.5", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.3.0", "@babel/types@^7.4.4": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.5.tgz#18dfbd47c39d3904d5db3d3dc2cc80bedb60e5b6" - integrity sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q== - dependencies: - "@babel/helper-string-parser" "^7.21.5" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - -"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" - integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.20" - to-fast-properties "^2.0.0" - -"@babel/types@^7.26.10", "@babel/types@^7.26.9": - version "7.26.10" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.10.tgz#396382f6335bd4feb65741eacfc808218f859259" - integrity sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ== - dependencies: - "@babel/helper-string-parser" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" - -"@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.4", "@babel/types@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.5.tgz#10fc405f60897c35f07e85493c932c7b5ca0592b" - integrity sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.2", "@babel/types@^7.28.5", "@babel/types@^7.28.6", "@babel/types@^7.29.0", "@babel/types@^7.4.4": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.0.tgz#9f5b1e838c446e72cf3cd4b918152b8c605e37c7" + integrity sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A== dependencies: "@babel/helper-string-parser" "^7.27.1" "@babel/helper-validator-identifier" "^7.28.5" @@ -1284,27 +945,32 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@bufbuild/protobuf@^2.5.0": + version "2.10.2" + resolved "https://registry.yarnpkg.com/@bufbuild/protobuf/-/protobuf-2.10.2.tgz#d7c063301f2a33095fc202f06bf3cce0c138dfcd" + integrity sha512-uFsRXwIGyu+r6AMdz+XijIIZJYpoWeYzILt5yZ2d3mCjQrWUTVpVD9WL/jZAbvp+Ed04rOhrsk7FiTcEDseB5A== + "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== +"@csstools/cascade-layer-name-parser@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.5.tgz#43f962bebead0052a9fed1a2deeb11f85efcbc72" + integrity sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A== + "@csstools/color-helpers@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.1.0.tgz#106c54c808cabfd1ab4c602d8505ee584c2996ef" integrity sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA== -"@csstools/convert-colors@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" - integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== - "@csstools/css-calc@^2.1.3", "@csstools/css-calc@^2.1.4": version "2.1.4" resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.1.4.tgz#8473f63e2fcd6e459838dd412401d5948f224c65" integrity sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ== -"@csstools/css-color-parser@^3.0.9": +"@csstools/css-color-parser@^3.0.9", "@csstools/css-color-parser@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz#4e386af3a99dd36c46fef013cfe4c1c341eed6f0" integrity sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA== @@ -1312,28 +978,394 @@ "@csstools/color-helpers" "^5.1.0" "@csstools/css-calc" "^2.1.4" -"@csstools/css-parser-algorithms@^3.0.4": +"@csstools/css-parser-algorithms@^3.0.4", "@csstools/css-parser-algorithms@^3.0.5": version "3.0.5" resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz#5755370a9a29abaec5515b43c8b3f2cf9c2e3076" integrity sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ== -"@csstools/css-tokenizer@^3.0.3": +"@csstools/css-tokenizer@^3.0.3", "@csstools/css-tokenizer@^3.0.4": version "3.0.4" resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz#333fedabc3fd1a8e5d0100013731cf19e6a8c5d3" integrity sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw== +"@csstools/media-query-list-parser@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz#7aec77bcb89c2da80ef207e73f474ef9e1b3cdf1" + integrity sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ== + +"@csstools/postcss-alpha-function@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-alpha-function/-/postcss-alpha-function-1.0.1.tgz#7989605711de7831bc7cd75b94c9b5bac9c3728e" + integrity sha512-isfLLwksH3yHkFXfCI2Gcaqg7wGGHZZwunoJzEZk0yKYIokgre6hYVFibKL3SYAoR1kBXova8LB+JoO5vZzi9w== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-cascade-layers@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.2.tgz#dd2c70db3867b88975f2922da3bfbae7d7a2cae7" + integrity sha512-nWBE08nhO8uWl6kSAeCx4im7QfVko3zLrtgWZY4/bP87zrSPpSyN/3W3TDqz1jJuH+kbKOHXg5rJnK+ZVYcFFg== + dependencies: + "@csstools/selector-specificity" "^5.0.0" + postcss-selector-parser "^7.0.0" + +"@csstools/postcss-color-function-display-p3-linear@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-1.0.1.tgz#3017ff5e1f65307d6083e58e93d76724fb1ebf9f" + integrity sha512-E5qusdzhlmO1TztYzDIi8XPdPoYOjoTY6HBYBCYSj+Gn4gQRBlvjgPQXzfzuPQqt8EhkC/SzPKObg4Mbn8/xMg== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-color-function@^4.0.12": + version "4.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-4.0.12.tgz#a7c85a98c77b522a194a1bbb00dd207f40c7a771" + integrity sha512-yx3cljQKRaSBc2hfh8rMZFZzChaFgwmO2JfFgFr1vMcF3C/uyy5I4RFIBOIWGq1D+XbKCG789CGkG6zzkLpagA== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-color-mix-function@^3.0.12": + version "3.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.12.tgz#2f1ee9f8208077af069545c9bd79bb9733382c2a" + integrity sha512-4STERZfCP5Jcs13P1U5pTvI9SkgLgfMUMhdXW8IlJWkzOOOqhZIjcNhWtNJZes2nkBDsIKJ0CJtFtuaZ00moag== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-color-mix-variadic-function-arguments@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.2.tgz#b4012b62a4eaa24d694172bb7137f9d2319cb8f2" + integrity sha512-rM67Gp9lRAkTo+X31DUqMEq+iK+EFqsidfecmhrteErxJZb6tUoJBVQca1Vn1GpDql1s1rD1pKcuYzMsg7Z1KQ== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-content-alt-text@^2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.8.tgz#1d52da1762893c32999ff76839e48d6ec7c7a4cb" + integrity sha512-9SfEW9QCxEpTlNMnpSqFaHyzsiRpZ5J5+KqCu1u5/eEJAWsMhzT40qf0FIbeeglEvrGRMdDzAxMIz3wqoGSb+Q== + dependencies: + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-contrast-color-function@^2.0.12": + version "2.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-2.0.12.tgz#ca46986d095c60f208d9e3f24704d199c9172637" + integrity sha512-YbwWckjK3qwKjeYz/CijgcS7WDUCtKTd8ShLztm3/i5dhh4NaqzsbYnhm4bjrpFpnLZ31jVcbK8YL77z3GBPzA== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-exponential-functions@^2.0.9": + version "2.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.9.tgz#fc03d1272888cb77e64cc1a7d8a33016e4f05c69" + integrity sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw== + dependencies: + "@csstools/css-calc" "^2.1.4" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-font-format-keywords@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz#6730836eb0153ff4f3840416cc2322f129c086e6" + integrity sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw== + dependencies: + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-gamut-mapping@^2.0.11": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.11.tgz#be0e34c9f0142852cccfc02b917511f0d677db8b" + integrity sha512-fCpCUgZNE2piVJKC76zFsgVW1apF6dpYsqGyH8SIeCcM4pTEsRTWTLCaJIMKFEundsCKwY1rwfhtrio04RJ4Dw== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-gradients-interpolation-method@^5.0.12": + version "5.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.12.tgz#0955cce4d97203b861bf66742bbec611b2f3661c" + integrity sha512-jugzjwkUY0wtNrZlFeyXzimUL3hN4xMvoPnIXxoZqxDvjZRiSh+itgHcVUWzJ2VwD/VAMEgCLvtaJHX+4Vj3Ow== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-hwb-function@^4.0.12": + version "4.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.12.tgz#07f7ecb08c50e094673bd20eaf7757db0162beee" + integrity sha512-mL/+88Z53KrE4JdePYFJAQWFrcADEqsLprExCM04GDNgHIztwFzj0Mbhd/yxMBngq0NIlz58VVxjt5abNs1VhA== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-ic-unit@^4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.4.tgz#2ee2da0690db7edfbc469279711b9e69495659d2" + integrity sha512-yQ4VmossuOAql65sCPppVO1yfb7hDscf4GseF0VCA/DTDaBc0Wtf8MTqVPfjGYlT5+2buokG0Gp7y0atYZpwjg== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-initial@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-initial/-/postcss-initial-2.0.1.tgz#c385bd9d8ad31ad159edd7992069e97ceea4d09a" + integrity sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg== + +"@csstools/postcss-is-pseudo-class@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.3.tgz#d34e850bcad4013c2ed7abe948bfa0448aa8eb74" + integrity sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ== + dependencies: + "@csstools/selector-specificity" "^5.0.0" + postcss-selector-parser "^7.0.0" + +"@csstools/postcss-light-dark-function@^2.0.11": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.11.tgz#0df448aab9a33cb9a085264ff1f396fb80c4437d" + integrity sha512-fNJcKXJdPM3Lyrbmgw2OBbaioU7yuKZtiXClf4sGdQttitijYlZMD5K7HrC/eF83VRWRrYq6OZ0Lx92leV2LFA== + dependencies: + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-logical-float-and-clear@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz#62617564182cf86ab5d4e7485433ad91e4c58571" + integrity sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ== + +"@csstools/postcss-logical-overflow@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz#c6de7c5f04e3d4233731a847f6c62819bcbcfa1d" + integrity sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA== + +"@csstools/postcss-logical-overscroll-behavior@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz#43c03eaecdf34055ef53bfab691db6dc97a53d37" + integrity sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w== + +"@csstools/postcss-logical-resize@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz#4df0eeb1a61d7bd85395e56a5cce350b5dbfdca6" + integrity sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-logical-viewport-units@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.4.tgz#016d98a8b7b5f969e58eb8413447eb801add16fc" + integrity sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ== + dependencies: + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-media-minmax@^2.0.9": + version "2.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.9.tgz#184252d5b93155ae526689328af6bdf3fc113987" + integrity sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig== + dependencies: + "@csstools/css-calc" "^2.1.4" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/media-query-list-parser" "^4.0.3" + +"@csstools/postcss-media-queries-aspect-ratio-number-values@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.5.tgz#f485c31ec13d6b0fb5c528a3474334a40eff5f11" + integrity sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg== + dependencies: + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/media-query-list-parser" "^4.0.3" + +"@csstools/postcss-nested-calc@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz#754e10edc6958d664c11cde917f44ba144141c62" + integrity sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A== + dependencies: + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-normalize-display-values@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz#3738ecadb38cd6521c9565635d61aa4bf5457d27" + integrity sha512-TQUGBuRvxdc7TgNSTevYqrL8oItxiwPDixk20qCB5me/W8uF7BPbhRrAvFuhEoywQp/woRsUZ6SJ+sU5idZAIA== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-oklab-function@^4.0.12": + version "4.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.12.tgz#416640ef10227eea1375b47b72d141495950971d" + integrity sha512-HhlSmnE1NKBhXsTnNGjxvhryKtO7tJd1w42DKOGFD6jSHtYOrsJTQDKPMwvOfrzUAk8t7GcpIfRyM7ssqHpFjg== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-position-area-property@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-position-area-property/-/postcss-position-area-property-1.0.0.tgz#41f0cbc737a81a42890d5ec035fa26a45f4f4ad4" + integrity sha512-fUP6KR8qV2NuUZV3Cw8itx0Ep90aRjAZxAEzC3vrl6yjFv+pFsQbR18UuQctEKmA72K9O27CoYiKEgXxkqjg8Q== + +"@csstools/postcss-progressive-custom-properties@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.2.1.tgz#c39780b9ff0d554efb842b6bd75276aa6f1705db" + integrity sha512-uPiiXf7IEKtUQXsxu6uWtOlRMXd2QWWy5fhxHDnPdXKCQckPP3E34ZgDoZ62r2iT+UOgWsSbM4NvHE5m3mAEdw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-property-rule-prelude-list@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-property-rule-prelude-list/-/postcss-property-rule-prelude-list-1.0.0.tgz#700b7aa41228c02281bda074ae778f36a09da188" + integrity sha512-IxuQjUXq19fobgmSSvUDO7fVwijDJaZMvWQugxfEUxmjBeDCVaDuMpsZ31MsTm5xbnhA+ElDi0+rQ7sQQGisFA== + dependencies: + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-random-function@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-random-function/-/postcss-random-function-2.0.1.tgz#3191f32fe72936e361dadf7dbfb55a0209e2691e" + integrity sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w== + dependencies: + "@csstools/css-calc" "^2.1.4" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-relative-color-syntax@^3.0.12": + version "3.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.12.tgz#ced792450102441f7c160e1d106f33e4b44181f8" + integrity sha512-0RLIeONxu/mtxRtf3o41Lq2ghLimw0w9ByLWnnEVuy89exmEEq8bynveBxNW3nyHqLAFEeNtVEmC1QK9MZ8Huw== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-scope-pseudo-class@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz#9fe60e9d6d91d58fb5fc6c768a40f6e47e89a235" + integrity sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q== + dependencies: + postcss-selector-parser "^7.0.0" + +"@csstools/postcss-sign-functions@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.4.tgz#a9ac56954014ae4c513475b3f1b3e3424a1e0c12" + integrity sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg== + dependencies: + "@csstools/css-calc" "^2.1.4" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-stepped-value-functions@^4.0.9": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.9.tgz#36036f1a0e5e5ee2308e72f3c9cb433567c387b9" + integrity sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA== + dependencies: + "@csstools/css-calc" "^2.1.4" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-syntax-descriptor-syntax-production@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-syntax-descriptor-syntax-production/-/postcss-syntax-descriptor-syntax-production-1.0.1.tgz#98590e372e547cdae60aef47cfee11f3881307dd" + integrity sha512-GneqQWefjM//f4hJ/Kbox0C6f2T7+pi4/fqTqOFGTL3EjnvOReTqO1qUQ30CaUjkwjYq9qZ41hzarrAxCc4gow== + dependencies: + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-system-ui-font-family@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-system-ui-font-family/-/postcss-system-ui-font-family-1.0.0.tgz#bd65b79078debf6f67b318dc9b71a8f9fa16f8c8" + integrity sha512-s3xdBvfWYfoPSBsikDXbuorcMG1nN1M6GdU0qBsGfcmNR0A/qhloQZpTxjA3Xsyrk1VJvwb2pOfiOT3at/DuIQ== + dependencies: + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-text-decoration-shorthand@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.3.tgz#fae1b70f07d1b7beb4c841c86d69e41ecc6f743c" + integrity sha512-KSkGgZfx0kQjRIYnpsD7X2Om9BUXX/Kii77VBifQW9Ih929hK0KNjVngHDH0bFB9GmfWcR9vJYJJRvw/NQjkrA== + dependencies: + "@csstools/color-helpers" "^5.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-trigonometric-functions@^4.0.9": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.9.tgz#3f94ed2e319b57f2c59720b64e4d0a8a6fb8c3b2" + integrity sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A== + dependencies: + "@csstools/css-calc" "^2.1.4" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-unset-value@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz#7caa981a34196d06a737754864baf77d64de4bba" + integrity sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA== + +"@csstools/selector-resolve-nested@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz#848c6f44cb65e3733e478319b9342b7aa436fac7" + integrity sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g== + +"@csstools/selector-specificity@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz#037817b574262134cabd68fc4ec1a454f168407b" + integrity sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw== + +"@csstools/utilities@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@csstools/utilities/-/utilities-2.0.0.tgz#f7ff0fee38c9ffb5646d47b6906e0bc8868bde60" + integrity sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ== + +"@discoveryjs/json-ext@^0.5.0": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + "@emnapi/core@^1.4.3": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.6.0.tgz#517f65d1c8270d5d5aa1aad660d5acb897430dca" - integrity sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg== + version "1.7.1" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.7.1.tgz#3a79a02dbc84f45884a1806ebb98e5746bdfaac4" + integrity sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg== dependencies: "@emnapi/wasi-threads" "1.1.0" tslib "^2.4.0" "@emnapi/runtime@^1.4.3": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.6.0.tgz#8fe297e0090f6e89a57a1f31f1c440bdbc3c01d8" - integrity sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA== + version "1.7.1" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.7.1.tgz#a73784e23f5d57287369c808197288b52276b791" + integrity sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA== dependencies: tslib "^2.4.0" @@ -1344,19 +1376,19 @@ dependencies: tslib "^2.4.0" -"@floating-ui/core@^1.7.3": - version "1.7.3" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.7.3.tgz#462d722f001e23e46d86fd2bd0d21b7693ccb8b7" - integrity sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w== +"@floating-ui/core@^1.7.4": + version "1.7.4" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.7.4.tgz#4a006a6e01565c0f87ba222c317b056a2cffd2f4" + integrity sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg== dependencies: "@floating-ui/utils" "^0.2.10" "@floating-ui/dom@*": - version "1.7.4" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.7.4.tgz#ee667549998745c9c3e3e84683b909c31d6c9a77" - integrity sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA== + version "1.7.5" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.7.5.tgz#60bfc83a4d1275b2a90db76bf42ca2a5f2c231c2" + integrity sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg== dependencies: - "@floating-ui/core" "^1.7.3" + "@floating-ui/core" "^1.7.4" "@floating-ui/utils" "^0.2.10" "@floating-ui/utils@^0.2.10": @@ -1365,11 +1397,9 @@ integrity sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ== "@googlemaps/js-api-loader@^1.16.6": - version "1.16.6" - resolved "https://registry.yarnpkg.com/@googlemaps/js-api-loader/-/js-api-loader-1.16.6.tgz#c89970c94b55796d51746c092f0e52953994a171" - integrity sha512-V8p5W9DbPQx74jWUmyYJOerhiB4C+MHekaO0ZRmc6lrOYrvY7+syLhzOWpp55kqSPeNb+qbC2h8i69aLIX6krQ== - dependencies: - fast-deep-equal "^3.1.3" + version "1.16.10" + resolved "https://registry.yarnpkg.com/@googlemaps/js-api-loader/-/js-api-loader-1.16.10.tgz#b61cf2b4a1b6ed77017b0dab131e6d51e814ec4e" + integrity sha512-c2erv2k7P2ilYzMmtYcMgAR21AULosQuUHJbStnrvRk2dG93k5cqptDrh9A8p+ZNlyhiqEOgHW7N9PAizdUM7Q== "@hotwired/stimulus-webpack-helpers@^1.0.0": version "1.0.1" @@ -1647,14 +1677,6 @@ "@types/yargs" "^17.0.33" chalk "^4.1.2" -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": version "0.3.13" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" @@ -1663,15 +1685,6 @@ "@jridgewell/sourcemap-codec" "^1.5.0" "@jridgewell/trace-mapping" "^0.3.24" -"@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - "@jridgewell/remapping@^2.3.5": version "2.3.5" resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" @@ -1680,35 +1693,18 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - "@jridgewell/resolve-uri@^3.1.0": version "3.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== -"@jridgewell/set-array@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" - integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/sourcemap-codec@1.4.14": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/source-map@^0.3.3": + version "0.3.11" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.11.tgz#b21835cbd36db656b857c2ad02ebd413cc13a9ba" + integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": version "1.5.5" @@ -1723,13 +1719,10 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.18" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" + integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== "@napi-rs/wasm-runtime@^0.2.11": version "0.2.12" @@ -1740,14 +1733,6 @@ "@emnapi/runtime" "^1.4.3" "@tybys/wasm-util" "^0.10.0" -"@npmcli/move-file@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" - integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== - dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" - "@orchidjs/sifter@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@orchidjs/sifter/-/sifter-1.1.0.tgz#b36154ad0cda4898305d1ac44f318b41048a0438" @@ -1760,6 +1745,95 @@ resolved "https://registry.yarnpkg.com/@orchidjs/unicode-variants/-/unicode-variants-1.1.2.tgz#1fd71791a67fdd1591ebe0dcaadd3964537a824e" integrity sha512-5DobW1CHgnBROOEpFlEXytED5OosEWESFvg/VYmH0143oXcijYTprRYJTs+55HzGM4IqxiLFSuqEzu9mPNwVsA== +"@parcel/watcher-android-arm64@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.4.tgz#88c67bde2c3efa997a0b1fea540080c6ade0322c" + integrity sha512-hoh0vx4v+b3BNI7Cjoy2/B0ARqcwVNrzN/n7DLq9ZB4I3lrsvhrkCViJyfTj/Qi5xM9YFiH4AmHGK6pgH1ss7g== + +"@parcel/watcher-darwin-arm64@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.4.tgz#d9dc037cff8a4ab7839a79c5287a6e6660f7ab27" + integrity sha512-kphKy377pZiWpAOyTgQYPE5/XEKVMaj6VUjKT5VkNyUJlr2qZAn8gIc7CPzx+kbhvqHDT9d7EqdOqRXT6vk0zw== + +"@parcel/watcher-darwin-x64@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.4.tgz#da0e13e16ee6d378242e2cfb469d72667624383a" + integrity sha512-UKaQFhCtNJW1A9YyVz3Ju7ydf6QgrpNQfRZ35wNKUhTQ3dxJ/3MULXN5JN/0Z80V/KUBDGa3RZaKq1EQT2a2gg== + +"@parcel/watcher-freebsd-x64@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.4.tgz#feb7cc9ec680bae3e91dddcdb4fe1c399ed52cc1" + integrity sha512-Dib0Wv3Ow/m2/ttvLdeI2DBXloO7t3Z0oCp4bAb2aqyqOjKPPGrg10pMJJAQ7tt8P4V2rwYwywkDhUia/FgS+Q== + +"@parcel/watcher-linux-arm-glibc@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.4.tgz#fa4e9cf8228c8c433e2f035e8b16aa299d892a78" + integrity sha512-I5Vb769pdf7Q7Sf4KNy8Pogl/URRCKu9ImMmnVKYayhynuyGYMzuI4UOWnegQNa2sGpsPSbzDsqbHNMyeyPCgw== + +"@parcel/watcher-linux-arm-musl@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.4.tgz#9ee6792e2d8810af9871ee5bbc2aa04e0b079d62" + integrity sha512-kGO8RPvVrcAotV4QcWh8kZuHr9bXi9a3bSZw7kFarYR0+fGliU7hd/zevhjw8fnvIKG3J9EO5G6sXNGCSNMYPQ== + +"@parcel/watcher-linux-arm64-glibc@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.4.tgz#624c6d874d99afa79305720f96a0c233d4ad7fde" + integrity sha512-KU75aooXhqGFY2W5/p8DYYHt4hrjHZod8AhcGAmhzPn/etTa+lYCDB2b1sJy3sWJ8ahFVTdy+EbqSBvMx3iFlw== + +"@parcel/watcher-linux-arm64-musl@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.4.tgz#5341e88b9e645d31c015ed40f384e60e49bd74d2" + integrity sha512-Qx8uNiIekVutnzbVdrgSanM+cbpDD3boB1f8vMtnuG5Zau4/bdDbXyKwIn0ToqFhIuob73bcxV9NwRm04/hzHQ== + +"@parcel/watcher-linux-x64-glibc@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.4.tgz#be5bcc49d3f6d21cc81bb531970a05d3721e385c" + integrity sha512-UYBQvhYmgAv61LNUn24qGQdjtycFBKSK3EXr72DbJqX9aaLbtCOO8+1SkKhD/GNiJ97ExgcHBrukcYhVjrnogA== + +"@parcel/watcher-linux-x64-musl@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.4.tgz#bffd3895b1f0cc8fd1436e409fd65d0a901281c0" + integrity sha512-YoRWCVgxv8akZrMhdyVi6/TyoeeMkQ0PGGOf2E4omODrvd1wxniXP+DBynKoHryStks7l+fDAMUBRzqNHrVOpg== + +"@parcel/watcher-win32-arm64@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.4.tgz#7fb8aedea5b34ba97a01e1555929d01f4eb72fe4" + integrity sha512-iby+D/YNXWkiQNYcIhg8P5hSjzXEHaQrk2SLrWOUD7VeC4Ohu0WQvmV+HDJokZVJ2UjJ4AGXW3bx7Lls9Ln4TQ== + +"@parcel/watcher-win32-ia32@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.4.tgz#f7f94ebdb21dedf37b12e030a82d4211798a1c26" + integrity sha512-vQN+KIReG0a2ZDpVv8cgddlf67J8hk1WfZMMP7sMeZmJRSmEax5xNDNWKdgqSe2brOKTQQAs3aCCUal2qBHAyg== + +"@parcel/watcher-win32-x64@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.4.tgz#8d895c9723f7fffdf4b360fd1becf1b6bcb571df" + integrity sha512-3A6efb6BOKwyw7yk9ro2vus2YTt2nvcd56AuzxdMiVOxL9umDyN5PKkKfZ/gZ9row41SjVmTVQNWQhaRRGpOKw== + +"@parcel/watcher@^2.4.1": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.5.4.tgz#a6575b0a018b4e263589c1e7bc2ceb73c1ee84de" + integrity sha512-WYa2tUVV5HiArWPB3ydlOc4R2ivq0IDrlqhMi3l7mVsFEXNcTfxYFPIHXHXIh/ca/y/V5N4E1zecyxdIBjYnkQ== + dependencies: + detect-libc "^2.0.3" + is-glob "^4.0.3" + node-addon-api "^7.0.0" + picomatch "^4.0.3" + optionalDependencies: + "@parcel/watcher-android-arm64" "2.5.4" + "@parcel/watcher-darwin-arm64" "2.5.4" + "@parcel/watcher-darwin-x64" "2.5.4" + "@parcel/watcher-freebsd-x64" "2.5.4" + "@parcel/watcher-linux-arm-glibc" "2.5.4" + "@parcel/watcher-linux-arm-musl" "2.5.4" + "@parcel/watcher-linux-arm64-glibc" "2.5.4" + "@parcel/watcher-linux-arm64-musl" "2.5.4" + "@parcel/watcher-linux-x64-glibc" "2.5.4" + "@parcel/watcher-linux-x64-musl" "2.5.4" + "@parcel/watcher-win32-arm64" "2.5.4" + "@parcel/watcher-win32-ia32" "2.5.4" + "@parcel/watcher-win32-x64" "2.5.4" + "@pkgjs/parseargs@^0.11.0": version "0.11.0" resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" @@ -1771,53 +1845,9 @@ integrity sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA== "@rails/actioncable@^6 || ^7 || ^8": - version "8.0.200" - resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-8.0.200.tgz#1d27d9d55e45266e061190db045925e0b4d53d6b" - integrity sha512-EDqWyxck22BHmv1e+mD8Kl6GmtNkhEPdRfGFT7kvsv1yoXd9iYrqHDVAaR8bKmU/syC5eEZ2I5aWWxtB73ukMw== - -"@rails/webpacker@5.4.4": - version "5.4.4" - resolved "https://registry.yarnpkg.com/@rails/webpacker/-/webpacker-5.4.4.tgz#971a41b987c096c908ce4088accd57c1a9a7e2f7" - integrity sha512-hp9myb2MChYFPfE5Fd/3gF4q2m4wpxC+WWCkxcg6My3HYCptWuqMVXRwrBZ5EJHYiL/WRyMLvVNWwlFV47xhUw== - dependencies: - "@babel/core" "^7.15.0" - "@babel/plugin-proposal-class-properties" "^7.14.5" - "@babel/plugin-proposal-object-rest-spread" "^7.14.7" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-destructuring" "^7.14.7" - "@babel/plugin-transform-regenerator" "^7.14.5" - "@babel/plugin-transform-runtime" "^7.15.0" - "@babel/preset-env" "^7.15.0" - "@babel/runtime" "^7.15.3" - babel-loader "^8.2.2" - babel-plugin-dynamic-import-node "^2.3.3" - babel-plugin-macros "^2.8.0" - case-sensitive-paths-webpack-plugin "^2.4.0" - compression-webpack-plugin "^4.0.1" - core-js "^3.16.2" - css-loader "^3.6.0" - file-loader "^6.2.0" - flatted "^3.2.2" - glob "^7.1.7" - js-yaml "^3.14.1" - mini-css-extract-plugin "^0.9.0" - optimize-css-assets-webpack-plugin "^5.0.8" - path-complete-extname "^1.0.0" - pnp-webpack-plugin "^1.7.0" - postcss-flexbugs-fixes "^4.2.1" - postcss-import "^12.0.1" - postcss-loader "^3.0.0" - postcss-preset-env "^6.7.0" - postcss-safe-parser "^4.0.2" - regenerator-runtime "^0.13.9" - sass "^1.38.0" - sass-loader "10.1.1" - style-loader "^1.3.0" - terser-webpack-plugin "^4.2.3" - webpack "^4.46.0" - webpack-assets-manifest "^3.1.1" - webpack-cli "^3.3.12" - webpack-sources "^1.4.3" + version "8.1.100" + resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-8.1.100.tgz#b1f85f3482425fb91e5eba1deb55152ee0bb2f85" + integrity sha512-j4vJQqz51CDVYv2UafKRu4jiZi5/gTnm7NkyL+VMIgEw3s8jtVtmzu9uItUaZccUg9NJ6o05yVyBAHxNfTuCRA== "@sinclair/typebox@^0.34.0": version "0.34.41" @@ -1839,9 +1869,9 @@ "@sinonjs/commons" "^3.0.1" "@socket.io/component-emitter@~3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" - integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== + version "3.1.2" + resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz#821f8442f4175d8f0467b9daf26e3a18e2d02af2" + integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA== "@stimulus-components/rails-nested-form@*": version "5.0.0" @@ -1886,59 +1916,145 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.3.tgz#f456b4b2ce79137f768aa130d2423d2f0ccfaba5" - integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== + version "7.27.0" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz#b5819294c51179957afaec341442f9341e4108a9" + integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" - integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== + version "7.28.0" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz#07d713d6cce0d265c9849db0cbe62d3f61f36f74" + integrity sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q== dependencies: - "@babel/types" "^7.3.0" + "@babel/types" "^7.28.2" -"@types/cookie@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" - integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== - -"@types/cors@^2.8.12": - version "2.8.12" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" - integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== - -"@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== +"@types/body-parser@*": + version "1.19.6" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.6.tgz#1859bebb8fd7dac9918a45d54c1971ab8b5af474" + integrity sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g== dependencies: - "@types/minimatch" "*" + "@types/connect" "*" "@types/node" "*" -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" - integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== +"@types/bonjour@^3.5.9": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" + integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== + dependencies: + "@types/node" "*" -"@types/istanbul-lib-coverage@^2.0.6": +"@types/connect-history-api-fallback@^1.3.5": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + dependencies: + "@types/node" "*" + +"@types/cors@^2.8.12": + version "2.8.19" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.19.tgz#d93ea2673fd8c9f697367f5eeefc2bbfa94f0342" + integrity sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg== + dependencies: + "@types/node" "*" + +"@types/eslint-scope@^3.7.7": + version "3.7.7" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" + integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.1.0.tgz#74f47555b3d804b54cb7030e6f9aa0c7485cfc5b" + integrity sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express-serve-static-core@^4.17.33": + version "4.19.7" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz#f1d306dcc03b1aafbfb6b4fe684cce8a31cffc10" + integrity sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@*": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.6.tgz#2d724b2c990dcb8c8444063f3580a903f6d500cc" + integrity sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^5.0.0" + "@types/serve-static" "^2" + +"@types/express@^4.17.13": + version "4.17.25" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.25.tgz#070c8c73a6fee6936d65c195dbbfb7da5026649b" + integrity sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "^1" + +"@types/http-errors@*": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.5.tgz#5b749ab2b16ba113423feb1a64a95dcd30398472" + integrity sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg== + +"@types/http-proxy@^1.17.8": + version "1.17.17" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.17.tgz#d9e2c4571fe3507343cb210cd41790375e59a533" + integrity sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.1", "@types/istanbul-lib-coverage@^2.0.6": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== "@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== dependencies: "@types/istanbul-lib-coverage" "*" @@ -1958,30 +2074,95 @@ "@types/tough-cookie" "*" parse5 "^7.0.0" -"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": - version "7.0.7" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" - integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== +"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/minimatch@*": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== +"@types/mime@^1": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== -"@types/node@*", "@types/node@>=10.0.0": +"@types/node-forge@^1.3.0": + version "1.3.14" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.14.tgz#006c2616ccd65550560c2757d8472eb6d3ecea0b" + integrity sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw== + dependencies: + "@types/node" "*" + +"@types/node@*": version "16.11.36" resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.36.tgz#9ab9f8276987132ed2b225cace2218ba794fc751" integrity sha512-FR5QJe+TaoZ2GsMHkjuwoNabr+UrJNRr2HNOo+r/7vhcuntM6Ee/pRPOnRhhL2XE9OOvX9VLEq+BcXl3VjNoWA== -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== +"@types/node@>=10.0.0": + version "25.0.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-25.0.2.tgz#411f9dd6cb2bf5ee46aed7199a9f85ca6b068b4e" + integrity sha512-gWEkeiyYE4vqjON/+Obqcoeffmk0NF15WSBwSs7zwVA2bAbTaE0SJ7P0WNGoJn8uE7fiaV5a7dKYIJriEqOrmA== + dependencies: + undici-types "~7.16.0" -"@types/q@^1.5.1": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" - integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== +"@types/qs@*": + version "6.14.0" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.14.0.tgz#d8b60cecf62f2db0fb68e5e006077b9178b85de5" + integrity sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ== + +"@types/range-parser@*": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== + +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + +"@types/send@*": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@types/send/-/send-1.2.1.tgz#6a784e45543c18c774c049bff6d3dbaf045c9c74" + integrity sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ== + dependencies: + "@types/node" "*" + +"@types/send@<1": + version "0.17.6" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.6.tgz#aeb5385be62ff58a52cd5459daa509ae91651d25" + integrity sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-index@^1.9.1": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" + integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== + dependencies: + "@types/express" "*" + +"@types/serve-static@^1", "@types/serve-static@^1.13.10": + version "1.15.10" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.10.tgz#768169145a778f8f5dfcb6360aead414a3994fee" + integrity sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + "@types/send" "<1" + +"@types/serve-static@^2": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-2.2.0.tgz#d4a447503ead0d1671132d1ab6bd58b805d8de6a" + integrity sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + +"@types/sockjs@^0.3.33": + version "0.3.36" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" + integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== + dependencies: + "@types/node" "*" "@types/stack-utils@^2.0.3": version "2.0.3" @@ -1998,15 +2179,22 @@ resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== +"@types/ws@^8.5.5": + version "8.18.1" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" + integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== + dependencies: + "@types/node" "*" + "@types/yargs-parser@*": - version "20.2.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" - integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== "@types/yargs@^17.0.33": - version "17.0.34" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.34.tgz#1c2f9635b71d5401827373a01ce2e8a7670ea839" - integrity sha512-KExbHVa92aJpw9WDQvzBaGVE2/Pz+pLZQloT2hjL8IqsZnV62rlPOYvNnLmf/L2dyllfVUOVBj64M0z/46eR2A== + version "17.0.35" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.35.tgz#07013e46aa4d7d7d50a49e15604c1c5340d4eb24" + integrity sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg== dependencies: "@types/yargs-parser" "*" @@ -2112,150 +2300,143 @@ resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz#538b1e103bf8d9864e7b85cc96fa8d6fb6c40777" integrity sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g== -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== +"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" + integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" + "@webassemblyjs/helper-numbers" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== +"@webassemblyjs/floating-point-hex-parser@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb" + integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== +"@webassemblyjs/helper-api-error@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7" + integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== +"@webassemblyjs/helper-buffer@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b" + integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== +"@webassemblyjs/helper-numbers@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d" + integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== dependencies: - "@webassemblyjs/wast-printer" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.13.2" + "@webassemblyjs/helper-api-error" "1.13.2" + "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== +"@webassemblyjs/helper-wasm-bytecode@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b" + integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== +"@webassemblyjs/helper-wasm-section@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348" + integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== dependencies: - "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/wasm-gen" "1.14.1" -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== +"@webassemblyjs/ieee754@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba" + integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== +"@webassemblyjs/leb128@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0" + integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== +"@webassemblyjs/utf8@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1" + integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== +"@webassemblyjs/wasm-edit@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597" + integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/helper-wasm-section" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-opt" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + "@webassemblyjs/wast-printer" "1.14.1" -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== +"@webassemblyjs/wasm-gen@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570" + integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== +"@webassemblyjs/wasm-opt@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b" + integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== +"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb" + integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-api-error" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== +"@webassemblyjs/wast-printer@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07" + integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" + "@webassemblyjs/ast" "1.14.1" "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== +"@webpack-cli/configtest@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" + integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== + +"@webpack-cli/info@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1" + integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" + envinfo "^7.7.3" + +"@webpack-cli/serve@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" + integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -2267,7 +2448,7 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: +accepts@~1.3.4, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== @@ -2275,53 +2456,59 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== +acorn-import-phases@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz#16eb850ba99a056cb7cbfe872ffb8972e18c8bd7" + integrity sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ== + +acorn@^8.15.0: + version "8.15.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== agent-base@^7.1.0, agent-base@^7.1.2: version "7.1.4" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.4.tgz#e3cd76d4c548ee895d3c3fd8dc1f6c5b9032e7a8" integrity sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ== -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" + ajv "^8.0.0" -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: +ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.12.4, ajv@^6.12.5: + version "6.14.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.14.0.tgz#fd067713e228210636ebb08c60bd3765d6dbe73a" + integrity sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== +ajv@^8.0.0, ajv@^8.9.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.18.0.tgz#8864186b6738d003eb3a933172bb3833e10cefbc" + integrity sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" ansi-escapes@^4.3.2: version "4.3.2" @@ -2330,21 +2517,11 @@ ansi-escapes@^4.3.2: dependencies: type-fest "^0.21.3" -ansi-html-community@0.0.8: +ansi-html-community@^0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== - -ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -2355,13 +2532,6 @@ ansi-regex@^6.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" @@ -2379,14 +2549,6 @@ ansi-styles@^6.1.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - anymatch@^3.1.3, anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -2395,11 +2557,6 @@ anymatch@^3.1.3, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -2407,6 +2564,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + aria-query@5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" @@ -2414,112 +2576,21 @@ aria-query@5.3.0: dependencies: dequal "^2.0.3" -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== +autoprefixer@^10.4.23: + version "10.4.23" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.23.tgz#c6aa6db8e7376fcd900f9fd79d143ceebad8c4e6" + integrity sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA== dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@^2.6.4: - version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" - integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== - dependencies: - lodash "^4.17.14" - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autoprefixer@^9.6.1: - version "9.8.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" - integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - colorette "^1.2.1" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" - -available-typed-arrays@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" - integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== - dependencies: - possible-typed-array-names "^1.0.0" + browserslist "^4.28.1" + caniuse-lite "^1.0.30001760" + fraction.js "^5.3.4" + picocolors "^1.1.1" + postcss-value-parser "^4.2.0" babel-jest@30.2.0: version "30.2.0" @@ -2535,22 +2606,15 @@ babel-jest@30.2.0: slash "^3.0.0" babel-loader@^8.2.2: - version "8.3.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" - integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q== + version "8.4.1" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.4.1.tgz#6ccb75c66e62c3b144e1c5f2eaec5b8f6c08c675" + integrity sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA== dependencies: find-cache-dir "^3.3.1" - loader-utils "^2.0.0" + loader-utils "^2.0.4" make-dir "^3.1.0" schema-utils "^2.6.5" -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - babel-plugin-istanbul@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz#d8b518c8ea199364cf84ccc82de89740236daf92" @@ -2569,62 +2633,37 @@ babel-plugin-jest-hoist@30.2.0: dependencies: "@types/babel__core" "^7.20.5" -babel-plugin-macros@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" - integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== +babel-plugin-polyfill-corejs2@^0.4.14, babel-plugin-polyfill-corejs2@^0.4.15: + version "0.4.15" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.15.tgz#808fa349686eea4741807cfaaa2aa3aa57ce120a" + integrity sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw== dependencies: - "@babel/runtime" "^7.7.2" - cosmiconfig "^6.0.0" - resolve "^1.12.0" + "@babel/compat-data" "^7.28.6" + "@babel/helper-define-polyfill-provider" "^0.6.6" + semver "^6.3.1" -babel-plugin-polyfill-corejs2@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" - integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== +babel-plugin-polyfill-corejs3@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz#bb7f6aeef7addff17f7602a08a6d19a128c30164" + integrity sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A== dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.2.2" - semver "^6.1.1" + "@babel/helper-define-polyfill-provider" "^0.6.5" + core-js-compat "^3.43.0" -babel-plugin-polyfill-corejs2@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" - integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== +babel-plugin-polyfill-corejs3@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.0.tgz#65b06cda48d6e447e1e926681f5a247c6ae2b9cf" + integrity sha512-AvDcMxJ34W4Wgy4KBIIePQTAOP1Ie2WFwkQp3dB7FQ/f0lI5+nM96zUnYEOE1P9sEg0es5VCP0HxiWu5fUHZAQ== dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.3" - semver "^6.1.1" + "@babel/helper-define-polyfill-provider" "^0.6.6" + core-js-compat "^3.48.0" -babel-plugin-polyfill-corejs3@^0.2.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz#72add68cf08a8bf139ba6e6dfc0b1d504098e57b" - integrity sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g== +babel-plugin-polyfill-regenerator@^0.6.5, babel-plugin-polyfill-regenerator@^0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.6.tgz#69f5dd263cab933c42fe5ea05e83443b374bd4bf" + integrity sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.2" - core-js-compat "^3.14.0" - -babel-plugin-polyfill-corejs3@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" - integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - core-js-compat "^3.25.1" - -babel-plugin-polyfill-regenerator@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" - integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.2" - -babel-plugin-polyfill-regenerator@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" - integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" + "@babel/helper-define-polyfill-provider" "^0.6.6" babel-preset-current-node-syntax@^1.2.0: version "1.2.0" @@ -2660,33 +2699,15 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.0.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - base64id@2.0.0, base64id@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -baseline-browser-mapping@^2.8.19: - version "2.8.23" - resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.8.23.tgz#cd43e17eff5cbfb67c92153e7fe856cf6d426421" - integrity sha512-616V5YX4bepJFzNyOfce5Fa8fDJMfoxzOIzDCZwaGL8MKVpFrXqfNUoIpRn9YMI5pXf/VKgzjB4htFMsFKKdiQ== +baseline-browser-mapping@^2.9.0: + version "2.9.15" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.15.tgz#6baaa0069883f50a99cdb31b56646491f47c05d7" + integrity sha512-kX8h7K2srmDyYnXRIppo4AH/wYgzWVCs+eKr3RusRSQ5PvRYoEFmR/I0PbdTjKFAoKqp5+kbxnNTFO9jOfSVJg== batch@0.6.1: version "0.6.1" @@ -2698,77 +2719,41 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== +body-parser@^1.19.0, body-parser@~1.20.3: + version "1.20.4" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.4.tgz#f8e20f4d06ca8a50a71ed329c15dccad1cdc547f" + integrity sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA== dependencies: - file-uri-to-path "1.0.0" - -bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== - -bn.js@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - -body-parser@1.20.3, body-parser@^1.19.0: - version "1.20.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" - integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== - dependencies: - bytes "3.1.2" + bytes "~3.1.2" content-type "~1.0.5" debug "2.6.9" depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.13.0" - raw-body "2.5.2" + destroy "~1.2.0" + http-errors "~2.0.1" + iconv-lite "~0.4.24" + on-finished "~2.4.1" + qs "~6.14.0" + raw-body "~2.5.3" type-is "~1.6.18" - unpipe "1.0.0" + unpipe "~1.0.0" -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg== +bonjour-service@^1.0.11: + version "1.3.0" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.3.0.tgz#80d867430b5a0da64e82a8047fc1e355bdb71722" + integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA== dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" -boolbase@^1.0.0, boolbase@~1.0.0: +boolbase@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== brace-expansion@^1.1.7: version "1.1.12" @@ -2778,140 +2763,30 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -brace-expansion@^2.0.1: +brace-expansion@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== dependencies: balanced-match "^1.0.0" -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -braces@^3.0.3: +braces@^3.0.2, braces@^3.0.3, braces@~3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: fill-range "^7.1.1" -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== +browserslist@^4.0.0, browserslist@^4.24.0, browserslist@^4.27.0, browserslist@^4.28.1: + version "4.28.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.1.tgz#7f534594628c53c63101079e27e40de490456a95" + integrity sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA== dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.2.tgz#e78d4b69816d6e3dd1c747e64e9947f9ad79bc7e" - integrity sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg== - dependencies: - bn.js "^5.2.1" - browserify-rsa "^4.1.0" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.4" - inherits "^2.0.4" - parse-asn1 "^5.1.6" - readable-stream "^3.6.2" - safe-buffer "^5.2.1" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.6.4: - version "4.19.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" - integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== - dependencies: - caniuse-lite "^1.0.30001286" - electron-to-chromium "^1.4.17" - escalade "^3.1.1" - node-releases "^2.0.1" - picocolors "^1.0.0" - -browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5: - version "4.21.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== - dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" - -browserslist@^4.24.0: - version "4.27.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.27.0.tgz#755654744feae978fbb123718b2f139bc0fa6697" - integrity sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw== - dependencies: - baseline-browser-mapping "^2.8.19" - caniuse-lite "^1.0.30001751" - electron-to-chromium "^1.5.238" - node-releases "^2.0.26" - update-browserslist-db "^1.1.4" + baseline-browser-mapping "^2.9.0" + caniuse-lite "^1.0.30001759" + electron-to-chromium "^1.5.263" + node-releases "^2.0.27" + update-browserslist-db "^1.2.0" bser@2.1.1: version "2.1.1" @@ -2925,36 +2800,7 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== - -bytes@3.1.2: +bytes@3.1.2, bytes@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== @@ -2966,66 +2812,7 @@ cable_ready@5.0.6, cable_ready@^5.0.6: dependencies: morphdom "2.6.1" -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cacache@^15.0.5: - version "15.0.6" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.6.tgz#65a8c580fda15b59150fb76bf3f3a8e45d583099" - integrity sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w== - dependencies: - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.1" - tar "^6.0.2" - unique-filename "^1.1.1" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: +call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== @@ -3033,36 +2820,7 @@ call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply- es-errors "^1.3.0" function-bind "^1.1.2" -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -call-bind@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" - integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - set-function-length "^1.2.1" - -call-bind@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" - integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== - dependencies: - call-bind-apply-helpers "^1.0.0" - es-define-property "^1.0.0" - get-intrinsic "^1.2.4" - set-function-length "^1.2.2" - -call-bound@^1.0.3, call-bound@^1.0.4: +call-bound@^1.0.2, call-bound@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== @@ -3070,31 +2828,12 @@ call-bound@^1.0.3, call-bound@^1.0.4: call-bind-apply-helpers "^1.0.2" get-intrinsic "^1.3.0" -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - callsites@^3.0.0, callsites@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^5.0.0, camelcase@^5.3.1: +camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== @@ -3114,29 +2853,15 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001286, caniuse-lite@^1.0.30001449: - version "1.0.30001750" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001750.tgz" - integrity sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ== +caniuse-lite@^1.0.0: + version "1.0.30001760" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001760.tgz#bdd1960fafedf8d5f04ff16e81460506ff9b798f" + integrity sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw== -caniuse-lite@^1.0.30001751: - version "1.0.30001753" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001753.tgz#419f8fc9bab6f1a1d10d9574d0b3374f823c5b00" - integrity sha512-Bj5H35MD/ebaOV4iDLqPEtiliTN29qkGtEHCwawWn4cYm+bPJM2NsaP30vtZcnERClMzp52J4+aw2UNbK4o+zw== - -case-sensitive-paths-webpack-plugin@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" - integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== - -chalk@^2.0, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" +caniuse-lite@^1.0.30001759, caniuse-lite@^1.0.30001760: + version "1.0.30001764" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001764.tgz#03206c56469f236103b90f9ae10bcb8b9e1f6005" + integrity sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g== chalk@^4.1.2: version "4.1.2" @@ -3151,10 +2876,10 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1, chokidar@^3.5.1: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== +chokidar@^3.5.1, chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -3166,83 +2891,27 @@ char-regex@^1.0.2: optionalDependencies: fsevents "~2.3.2" -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== +chokidar@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" + integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + readdirp "^4.0.1" chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" + version "1.0.4" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== ci-info@^4.2.0: version "4.3.1" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.3.1.tgz#355ad571920810b5623e11d40232f443f16f1daa" integrity sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA== -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.6.tgz#8fe672437d01cd6c4561af5334e0cc50ff1955f7" - integrity sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw== - dependencies: - inherits "^2.0.4" - safe-buffer "^5.2.1" - cjs-module-lexer@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-2.1.0.tgz#586e87d4341cb2661850ece5190232ccdebcff8b" - integrity sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" + version "2.1.1" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-2.1.1.tgz#bff23b0609cc9afa428bd35f1918f7d03b448562" + integrity sha512-+CmxIZ/L2vNcEfvNtLdU0ZQ6mbq3FZnwAP2PPTiKP+1QOoKwlKlPgb8UKV0Dds7QVaMnHm+FwSft2VB0s/SLjQ== cliui@^7.0.2: version "7.0.4" @@ -3262,19 +2931,19 @@ cliui@^8.0.1: strip-ansi "^6.0.1" wrap-ansi "^7.0.0" +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== coffee-script@~1: version "1.12.7" @@ -3286,21 +2955,6 @@ collect-v8-coverage@^1.0.2: resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz#cc1f01eb8d02298cbc9a437c74c70ab4e5210b80" integrity sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw== -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0, color-convert@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - color-convert@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" @@ -3308,81 +2962,72 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0, color-name@~1.1.4: +color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014" - integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" +colord@^2.9.3: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== -color@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" - integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.4" +colorette@^2.0.10, colorette@^2.0.14: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== -colorette@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" - integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== +colorjs.io@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/colorjs.io/-/colorjs.io-0.5.2.tgz#63b20139b007591ebc3359932bef84628eb3fcef" + integrity sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw== + +commander@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" + integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -compressible@~2.0.16: +compressible@~2.0.18: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== dependencies: mime-db ">= 1.43.0 < 2" -compression-webpack-plugin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-4.0.1.tgz#33eda97f1170dd38c5556771de10f34245aa0274" - integrity sha512-0mg6PgwTsUe5LEcUrOu3ob32vraDx2VdbMGAT1PARcOV+UJWDYZFdkSo6RbHoGQ061mmmkC7XpRKOlvwm/gzJQ== +compression-webpack-plugin@^9.0.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-9.2.0.tgz#57fd539d17c5907eebdeb4e83dcfe2d7eceb9ef6" + integrity sha512-R/Oi+2+UHotGfu72fJiRoVpuRifZT0tTC6UqFD/DUo+mv8dbOow9rVOuTvDv5nPPm3GZhHL/fKkwxwIHnJ8Nyw== dependencies: - cacache "^15.0.5" - find-cache-dir "^3.3.1" - schema-utils "^2.7.0" - serialize-javascript "^4.0.0" - webpack-sources "^1.4.3" + schema-utils "^4.0.0" + serialize-javascript "^6.0.0" compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + version "1.8.1" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.1.tgz#4a45d909ac16509195a9a28bd91094889c180d79" + integrity sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w== dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" + bytes "3.1.2" + compressible "~2.0.18" debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" + negotiator "~0.6.4" + on-headers "~1.1.0" + safe-buffer "5.2.1" vary "~1.1.2" concat-map@0.0.1: @@ -3390,20 +3035,10 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== connect@^3.7.0: version "3.7.0" @@ -3415,100 +3050,44 @@ connect@^3.7.0: parseurl "~1.3.3" utils-merge "1.0.1" -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -content-disposition@0.5.4: +content-disposition@~0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== dependencies: safe-buffer "5.2.1" -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -content-type@~1.0.5: +content-type@~1.0.4, content-type@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" - convert-source-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== +cookie-signature@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.7.tgz#ab5dd7ab757c54e60f37ef6550f481c426d10454" + integrity sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA== -cookie@0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" - integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== +cookie@~0.7.1, cookie@~0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" + integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== -cookie@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== +core-js-compat@^3.43.0, core-js-compat@^3.48.0: + version "3.48.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.48.0.tgz#7efbe1fc1cbad44008190462217cc5558adaeaa6" + integrity sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q== dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.14.0: - version "3.25.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.2.tgz#7875573586809909c69e03ef310810c1969ee138" - integrity sha512-TxfyECD4smdn3/CjWxczVtJqVLEEC2up7/82t7vC0AzNogr+4nQ8vyF7abxAuTXWvjTClSbvGhU0RgqA4ToQaQ== - dependencies: - browserslist "^4.21.4" - -core-js-compat@^3.25.1: - version "3.30.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.1.tgz#961541e22db9c27fc48bfc13a3cafa8734171dfe" - integrity sha512-d690npR7MC6P0gq4npTl5n2VQeNAmUrJ90n+MHiKS7W2+xno4o3F5GDEuylSdi6EJ3VssibSGXOa1r3YXD3Mhw== - dependencies: - browserslist "^4.21.5" - -core-js@^3.16.2: - version "3.16.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.16.2.tgz#3f485822889c7fc48ef463e35be5cc2a4a01a1f4" - integrity sha512-P0KPukO6OjMpjBtHSceAZEWlDD1M2Cpzpg6dBbrjFqFhBHe/BwhxaP820xKOjRn/lZRQirrCusIpLS/n2sgXLQ== + browserslist "^4.28.1" core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cors@~2.8.5: version "2.8.5" @@ -3518,89 +3097,17 @@ cors@~2.8.5: object-assign "^4" vary "^1" -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== +cosmiconfig@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" + integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" + env-paths "^2.2.1" + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" -cosmiconfig@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.7.2" - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hash@~1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" - integrity sha512-snRpch/kwQhcdlnZKYanNF1m0RDlrCdSKQaH87w1FCFPVPNCQ/Il9QJKAX2jVBZddRdaHBMC+zXa9Gw9tmkNUA== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - ripemd160 "^2.0.0" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cross-spawn@^7.0.6: +cross-spawn@^7.0.3, cross-spawn@^7.0.6: version "7.0.6" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== @@ -3609,202 +3116,155 @@ cross-spawn@^7.0.6: shebang-command "^2.0.0" which "^2.0.1" -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== +css-blank-pseudo@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz#32020bff20a209a53ad71b8675852b49e8d57e46" + integrity sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag== dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" + postcss-selector-parser "^7.0.0" -css-blank-pseudo@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" - integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== +css-declaration-sorter@^7.2.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.3.0.tgz#edc45c36bcdfea0788b1d4452829f142ef1c4a4a" + integrity sha512-LQF6N/3vkAMYF4xoHLJfG718HRJh34Z8BnNhd6bosOMIVjMlhuZK5++oZa3uYAgrI5+7x2o27gUqTR2U/KjUOQ== + +css-has-pseudo@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-7.0.3.tgz#a5ee2daf5f70a2032f3cefdf1e36e7f52a243873" + integrity sha512-oG+vKuGyqe/xvEMoxAQrhi7uY16deJR3i7wwhBerVrGQKSqUC5GiOVxTpM9F9B9hw0J+eKeOWLH7E9gZ1Dr5rA== dependencies: - postcss "^7.0.5" + "@csstools/selector-specificity" "^5.0.0" + postcss-selector-parser "^7.0.0" + postcss-value-parser "^4.2.0" -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== +css-loader@^7.1.2: + version "7.1.4" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-7.1.4.tgz#8f6bf9f8fc8cbef7d2ef6e80acc6545eaefa90b1" + integrity sha512-vv3J9tlOl04WjiMvHQI/9tmIrCxVrj6PFbHemBB1iihpeRbi/I4h033eoFIhwxBBqLhI0KYFS7yvynBFhIZfTw== dependencies: - postcss "^7.0.1" - timsort "^0.3.0" + icss-utils "^5.1.0" + postcss "^8.4.40" + postcss-modules-extract-imports "^3.1.0" + postcss-modules-local-by-default "^4.0.5" + postcss-modules-scope "^3.2.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.2.0" + semver "^7.6.3" -css-has-pseudo@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" - integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== +css-minimizer-webpack-plugin@^7.0.4: + version "7.0.4" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-7.0.4.tgz#92d2643e3658e3f484a70382a5dba18e51997f2e" + integrity sha512-2iACis+P8qdLj1tHcShtztkGhCNIRUajJj7iX0IM9a5FA0wXGwjV8Nf6+HsBjBfb4LO8TTAVoetBbM54V6f3+Q== dependencies: - postcss "^7.0.6" - postcss-selector-parser "^5.0.0-rc.4" + "@jridgewell/trace-mapping" "^0.3.25" + cssnano "^7.0.4" + jest-worker "^30.0.5" + postcss "^8.4.40" + schema-utils "^4.2.0" + serialize-javascript "^6.0.2" -css-loader@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" - integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== - dependencies: - camelcase "^5.3.1" - cssesc "^3.0.0" - icss-utils "^4.1.1" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.32" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.2" - postcss-modules-scope "^2.2.0" - postcss-modules-values "^3.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^2.7.0" - semver "^6.3.0" +css-prefers-color-scheme@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz#ba001b99b8105b8896ca26fc38309ddb2278bd3c" + integrity sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ== -css-prefers-color-scheme@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" - integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== - dependencies: - postcss "^7.0.5" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== +css-select@^5.1.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.2.2.tgz#01b6e8d163637bb2dd6c982ca4ed65863682786e" + integrity sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw== dependencies: boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== +css-tree@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-3.1.0.tgz#7aabc035f4e66b5c86f54570d55e05b1346eb0fd" + integrity sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w== dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" + mdn-data "2.12.2" + source-map-js "^1.0.1" -css-tree@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" + mdn-data "2.0.28" + source-map-js "^1.0.1" -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== +css-what@^6.1.0: + version "6.2.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.2.2.tgz#cdcc8f9b6977719fdfbd1de7aec24abf756b9dea" + integrity sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA== -cssdb@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" - integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== - -cssesc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" - integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== +cssdb@^8.6.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-8.7.0.tgz#5a0846fabf863a4d397d980d8d29eb3eb26dfde1" + integrity sha512-UxiWVpV953ENHqAKjKRPZHNDfRo3uOymvO5Ef7MFCWlenaohkYj7PTO7WCBdjZm8z/aDZd6rXyUIlwZ0AjyFSg== cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" - integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== +cssnano-preset-default@^7.0.10: + version "7.0.10" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-7.0.10.tgz#4fb6ee962c0852a03084e8c7a4b60fb0e2db45e0" + integrity sha512-6ZBjW0Lf1K1Z+0OKUAUpEN62tSXmYChXWi2NAA0afxEVsj9a+MbcB1l5qel6BHJHmULai2fCGRthCeKSFbScpA== dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.3" - postcss-unique-selectors "^4.0.1" + browserslist "^4.27.0" + css-declaration-sorter "^7.2.0" + cssnano-utils "^5.0.1" + postcss-calc "^10.1.1" + postcss-colormin "^7.0.5" + postcss-convert-values "^7.0.8" + postcss-discard-comments "^7.0.5" + postcss-discard-duplicates "^7.0.2" + postcss-discard-empty "^7.0.1" + postcss-discard-overridden "^7.0.1" + postcss-merge-longhand "^7.0.5" + postcss-merge-rules "^7.0.7" + postcss-minify-font-values "^7.0.1" + postcss-minify-gradients "^7.0.1" + postcss-minify-params "^7.0.5" + postcss-minify-selectors "^7.0.5" + postcss-normalize-charset "^7.0.1" + postcss-normalize-display-values "^7.0.1" + postcss-normalize-positions "^7.0.1" + postcss-normalize-repeat-style "^7.0.1" + postcss-normalize-string "^7.0.1" + postcss-normalize-timing-functions "^7.0.1" + postcss-normalize-unicode "^7.0.5" + postcss-normalize-url "^7.0.1" + postcss-normalize-whitespace "^7.0.1" + postcss-ordered-values "^7.0.2" + postcss-reduce-initial "^7.0.5" + postcss-reduce-transforms "^7.0.1" + postcss-svgo "^7.1.0" + postcss-unique-selectors "^7.0.4" -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= +cssnano-utils@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-5.0.1.tgz#f529e9aa0d7930512ca45b9e2ddb8d6b9092eb30" + integrity sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg== -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== +cssnano@^7.0.4: + version "7.1.2" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-7.1.2.tgz#a8a533a8f509d74b2d22e73d80ec1294f65fdc70" + integrity sha512-HYOPBsNvoiFeR1eghKD5C3ASm64v9YVyJB4Ivnl2gqKoQYvjjN/G0rztvKQq8OxocUtC6sjqY8jwYngIB4AByA== dependencies: - postcss "^7.0.0" + cssnano-preset-default "^7.0.10" + lilconfig "^3.1.3" -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.10: - version "4.1.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" - integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" + css-tree "~2.2.0" cssstyle@^4.2.1: version "4.6.0" @@ -3817,12 +3277,7 @@ cssstyle@^4.2.1: custom-event@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" - integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= - -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + integrity sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg== data-urls@^5.0.0: version "5.0.0" @@ -3832,144 +3287,60 @@ data-urls@^5.0.0: whatwg-mimetype "^4.0.0" whatwg-url "^14.0.0" -date-format@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.3.tgz#f63de5dc08dc02efd8ef32bf2a6918e486f35873" - integrity sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ== +date-format@^4.0.14: + version "4.0.14" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.14.tgz#7a8e584434fb169a521c8b7aa481f355810d9400" + integrity sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg== -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: +debug@2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4, debug@^4.3.1, debug@^4.3.4: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4, debug@^4.4.1, debug@^4.4.3: version "4.4.3" resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== dependencies: ms "^2.1.3" -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== +debug@~4.3.1, debug@~4.3.2, debug@~4.3.4: + version "4.3.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== dependencies: - ms "^2.1.1" - -debug@^4.1.0, debug@^4.1.1, debug@^4.3.3, debug@~4.3.1, debug@~4.3.2, debug@~4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + ms "^2.1.3" decimal.js@^10.5.0: version "10.6.0" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.6.0.tgz#e649a43e3ab953a72192ff5983865e509f37ed9a" integrity sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg== -decode-uri-component@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" - integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== - dedent@^1.6.0: version "1.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.7.0.tgz#c1f9445335f0175a96587be245a282ff451446ca" integrity sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ== -deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - deepmerge@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== +default-gateway@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" + execa "^5.0.0" -define-data-property@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" - integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - gopd "^1.0.1" +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-properties@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - -depd@2.0.0: +depd@2.0.0, depd@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== @@ -3984,23 +3355,15 @@ dequal@^2.0.3: resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@1.2.0: +destroy@1.2.0, destroy@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= +detect-libc@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad" + integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== detect-newline@^3.1.0: version "3.1.0" @@ -4015,36 +3378,14 @@ detect-node@^2.0.4: di@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" - integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= + integrity sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== +dns-packet@^5.2.2: + version "5.6.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== - -dns-packet@^1.3.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" - integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ== - dependencies: - buffer-indexof "^1.0.0" + "@leichtgewicht/ip-codec" "^2.0.1" dom-accessibility-api@^0.5.9: version "0.5.16" @@ -4054,57 +3395,49 @@ dom-accessibility-api@^0.5.9: dom-serialize@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" - integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= + integrity sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ== dependencies: custom-event "~1.0.0" ent "~2.2.0" extend "^3.0.0" void-elements "^2.0.0" -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== -domelementtype@1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" - integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" dompurify@^3.2.5: - version "3.2.5" - resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.2.5.tgz#11b108656a5fb72b24d916df17a1421663d7129c" - integrity sha512-mLPd29uoRe9HpvwP2TxClGQBzGXeEC/we/q+bFlmPPmj2p2Ugl3r6ATu/UU1v77DXNcehiBg9zsr1dREyA/dJQ== + version "3.3.1" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.3.1.tgz#c7e1ddebfe3301eacd6c0c12a4af284936dbbb86" + integrity sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q== optionalDependencies: "@types/trusted-types" "^2.0.7" -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== +domutils@^3.0.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.2.2.tgz#edbfe2b668b0c1d97c24baf0f1062b132221bc78" + integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" dunder-proto@^1.0.1: version "1.0.1" @@ -4115,16 +3448,6 @@ dunder-proto@^1.0.1: es-errors "^1.3.0" gopd "^1.2.0" -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - eastasianwidth@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" @@ -4135,44 +3458,16 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.17: - version "1.4.47" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.47.tgz#5d5535cdbca2b9264abee4d6ea121995e9554bbe" - integrity sha512-ZHc8i3/cgeCRK/vC7W2htAG6JqUmOUgDNn/f9yY9J8UjfLjwzwOVEt4MWmgJAdvmxyrsR5KIFA/6+kUHGY0eUA== - -electron-to-chromium@^1.4.284: - version "1.4.380" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.380.tgz#195dc59d930c6b74efbee6f0e6a267ce4af5ed91" - integrity sha512-XKGdI4pWM78eLH2cbXJHiBnWUwFSzZM7XujsB6stDiGu9AeSqziedP6amNLpJzE3i0rLTcfAwdCTs5ecP5yeSg== - -electron-to-chromium@^1.5.238: - version "1.5.244" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.244.tgz#b9b61e3d24ef4203489951468614f2a360763820" - integrity sha512-OszpBN7xZX4vWMPJwB9illkN/znA8M36GQqQxi6MNy9axWxhOfJyZZJtSLQCpEFLHP2xK33BiWx9aIuIEXVCcw== - -elliptic@^6.5.3, elliptic@^6.5.4: - version "6.6.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" - integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" +electron-to-chromium@^1.5.263: + version "1.5.267" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz#5d84f2df8cdb6bfe7e873706bb21bd4bfb574dc7" + integrity sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw== emittery@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -4198,101 +3493,71 @@ encodeurl@~2.0.0: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - engine.io-parser@~5.2.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.2.tgz#37b48e2d23116919a3453738c5720455e64e1c49" - integrity sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw== + version "5.2.3" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz#00dc5b97b1f233a23c9398d0209504cf5f94d92f" + integrity sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q== -engine.io@~6.5.2: - version "6.5.4" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.5.4.tgz#6822debf324e781add2254e912f8568508850cdc" - integrity sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg== +engine.io@~6.6.0: + version "6.6.4" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.6.4.tgz#0a89a3e6b6c1d4b0c2a2a637495e7c149ec8d8ee" + integrity sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g== dependencies: - "@types/cookie" "^0.4.1" "@types/cors" "^2.8.12" "@types/node" ">=10.0.0" accepts "~1.3.4" base64id "2.0.0" - cookie "~0.4.1" + cookie "~0.7.2" cors "~2.8.5" debug "~4.3.1" engine.io-parser "~5.2.1" - ws "~8.11.0" + ws "~8.17.1" -enhanced-resolve@^4.1.1, enhanced-resolve@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== +enhanced-resolve@^5.19.0: + version "5.19.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz#6687446a15e969eaa63c2fa2694510e17ae6d97c" + integrity sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg== dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" + graceful-fs "^4.2.4" + tapable "^2.3.0" ent@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= + version "2.2.2" + resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.2.tgz#22a5ed2fd7ce0cbcff1d1474cf4909a44bdb6e85" + integrity sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + punycode "^1.4.1" + safe-regex-test "^1.1.0" -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== +entities@^4.2.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== entities@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.1.tgz#c28c34a43379ca7f61d074130b2f5f7020a30694" integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g== -errno@^0.1.3, errno@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" +env-paths@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +envinfo@^7.7.3: + version "7.21.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.21.0.tgz#04a251be79f92548541f37d13c8b6f22940c3bae" + integrity sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow== error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + version "1.3.4" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414" + integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ== dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.2, es-abstract@^1.18.0-next.2: - version "1.18.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" - integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.2" - is-callable "^1.2.3" - is-negative-zero "^2.0.1" - is-regex "^1.1.2" - is-string "^1.0.5" - object-inspect "^1.9.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.0" - -es-define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" - integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== - dependencies: - get-intrinsic "^1.2.4" - es-define-property@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" @@ -4303,6 +3568,11 @@ es-errors@^1.3.0: resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== +es-module-lexer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.0.0.tgz#f657cd7a9448dcdda9c070a3cb75e5dc1e85f5b1" + integrity sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw== + es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" @@ -4310,15 +3580,6 @@ es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: dependencies: es-errors "^1.3.0" -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -4334,22 +3595,17 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - escape-string-regexp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== +eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: - esrecurse "^4.1.0" + esrecurse "^4.3.0" estraverse "^4.1.1" esprima@^4.0.0: @@ -4357,7 +3613,7 @@ esprima@^4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esrecurse@^4.1.0: +esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== @@ -4370,9 +3626,9 @@ estraverse@^4.1.1: integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" @@ -4389,38 +3645,12 @@ eventemitter3@^4.0.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@^3.0.0: +events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -eventsource@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-2.0.2.tgz#76dfcc02930fb2ff339520b6d290da573a9e8508" - integrity sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^5.1.1: +execa@^5.0.0, execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -4440,26 +3670,6 @@ exit-x@^0.2.2: resolved "https://registry.yarnpkg.com/exit-x/-/exit-x-0.2.2.tgz#1f9052de3b8d99a696b10dad5bced9bdd5c3aa64" integrity sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ== -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - expect@30.2.0: version "30.2.0" resolved "https://registry.yarnpkg.com/expect/-/expect-30.2.0.tgz#d4013bed267013c14bc1199cec8aa57cee9b5869" @@ -4472,77 +3682,48 @@ expect@30.2.0: jest-mock "30.2.0" jest-util "30.2.0" -express@^4.17.1: - version "4.21.0" - resolved "https://registry.yarnpkg.com/express/-/express-4.21.0.tgz#d57cb706d49623d4ac27833f1cbc466b668eb915" - integrity sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng== +express@^4.17.3: + version "4.22.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.22.1.tgz#1de23a09745a4fffdb39247b344bb5eaff382069" + integrity sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.3" - content-disposition "0.5.4" + body-parser "~1.20.3" + content-disposition "~0.5.4" content-type "~1.0.4" - cookie "0.6.0" - cookie-signature "1.0.6" + cookie "~0.7.1" + cookie-signature "~1.0.6" debug "2.6.9" depd "2.0.0" encodeurl "~2.0.0" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.3.1" - fresh "0.5.2" - http-errors "2.0.0" + finalhandler "~1.3.1" + fresh "~0.5.2" + http-errors "~2.0.0" merge-descriptors "1.0.3" methods "~1.1.2" - on-finished "2.4.1" + on-finished "~2.4.1" parseurl "~1.3.3" - path-to-regexp "0.1.10" + path-to-regexp "~0.1.12" proxy-addr "~2.0.7" - qs "6.13.0" + qs "~6.14.0" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.19.0" - serve-static "1.16.2" + send "~0.19.0" + serve-static "~1.16.2" setprototypeof "1.2.0" - statuses "2.0.1" + statuses "~2.0.1" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - extend@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -4553,7 +3734,17 @@ fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -faye-websocket@^0.11.3, faye-websocket@^0.11.4: +fast-uri@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa" + integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA== + +fastest-levenshtein@^1.0.12: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + +faye-websocket@^0.11.3: version "0.11.4" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== @@ -4567,41 +3758,6 @@ fb-watchman@^2.0.2: dependencies: bser "2.1.1" -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -file-loader@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" - integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - fill-range@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" @@ -4622,44 +3778,28 @@ finalhandler@1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -finalhandler@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" - integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== +finalhandler@~1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.2.tgz#1ebc2228fc7673aac4a472c310cc05b77d852b88" + integrity sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg== dependencies: debug "2.6.9" encodeurl "~2.0.0" escape-html "~1.0.3" - on-finished "2.4.1" + on-finished "~2.4.1" parseurl "~1.3.3" - statuses "2.0.1" + statuses "~2.0.2" unpipe "~1.0.0" -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - find-cache-dir@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== dependencies: commondir "^1.0.1" make-dir "^3.0.2" pkg-dir "^4.1.0" -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -4668,55 +3808,25 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -findup-sync@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== flatpickr@*: version "4.6.13" resolved "https://registry.yarnpkg.com/flatpickr/-/flatpickr-4.6.13.tgz#8a029548187fd6e0d670908471e43abe9ad18d94" integrity sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw== -flatted@^3.2.2, flatted@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" - integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== - -flatten@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" - integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" +flatted@^3.2.7: + version "3.3.3" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358" + integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== follow-redirects@^1.0.0: - version "1.15.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" - integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== - -for-each@^0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.5.tgz#d650688027826920feeb0af747ee7b9421a41d47" - integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg== - dependencies: - is-callable "^1.2.7" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + version "1.15.11" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" + integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== foreground-child@^3.1.0: version "3.3.1" @@ -4736,130 +3846,56 @@ foundation-sites@5.5.3: resolved "https://registry.yarnpkg.com/foundation-sites/-/foundation-sites-5.5.3.tgz#6556eb2b31cde3b226630116bd215d95d056c0a7" integrity sha512-z0NZl6Orkmeu0yhgjl3a8Ecd3frjEichn9IqocQX2jHMv9Ecd6UOPWS85f1YJXdCF6bHqnekGkrcWQ37ciR0Pw== -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" +fraction.js@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-5.3.4.tgz#8c0fcc6a9908262df4ed197427bdeef563e0699a" + integrity sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ== -fresh@0.5.2: +fresh@0.5.2, fresh@~0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-extra@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" - integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" + jsonfile "^4.0.0" + universalify "^0.1.0" -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" +fs-monkey@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.1.0.tgz#632aa15a20e71828ed56b24303363fb1414e5997" + integrity sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw== fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@^2.3.3: +fsevents@^2.3.3, fsevents@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - function-bind@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" - integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-intrinsic@^1.3.0: +get-intrinsic@^1.2.5, get-intrinsic@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== @@ -4888,31 +3924,11 @@ get-proto@^1.0.1: dunder-proto "^1.0.1" es-object-atoms "^1.0.0" -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -4920,10 +3936,15 @@ glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + glob@^10.3.10: - version "10.4.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" - integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + version "10.5.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" + integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== dependencies: foreground-child "^3.1.0" jackspeak "^3.1.2" @@ -4932,7 +3953,7 @@ glob@^10.3.10: package-json-from-dist "^1.0.0" path-scurry "^1.11.1" -glob@^7.0.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.7: +glob@^7.1.3, glob@^7.1.4, glob@^7.1.7: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -4944,76 +3965,12 @@ glob@^7.0.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - gopd@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6: - version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== - -graceful-fs@^4.2.11: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -5023,62 +3980,16 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-property-descriptors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" - integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== - dependencies: - es-define-property "^1.0.0" - -has-proto@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" - integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== - -has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - -has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-symbols@^1.1.0: +has-symbols@^1.0.3, has-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - has-tostringtag@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" @@ -5086,100 +3997,17 @@ has-tostringtag@^1.0.2: dependencies: has-symbols "^1.0.3" -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.0, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" - integrity sha512-0TROgQ1/SxE6KmxWSvXHvRj90/Xo1JvZShofnYF+f6ZsGtR4eES7WfrQzPalmyagfKZCXpVnitiRebZulWsbiw== - dependencies: - inherits "^2.0.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hasown@^2.0.0, hasown@^2.0.2: +hasown@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - hotkeys-js@*: - version "3.13.15" - resolved "https://registry.yarnpkg.com/hotkeys-js/-/hotkeys-js-3.13.15.tgz#2d394bd6bd78857d4b24dc86bdba2fa1cf7012fc" - integrity sha512-gHh8a/cPTCpanraePpjRxyIlxDFrIhYqjuh01UHWEwDpglJKCnvLW8kqSx5gQtOuSsJogNZXLhOdbSExpgUiqg== + version "4.0.0" + resolved "https://registry.yarnpkg.com/hotkeys-js/-/hotkeys-js-4.0.0.tgz#75336c0ac610ad384d286c61c519909dcd4bdf6b" + integrity sha512-gIoeqMWYqPIItc4HaseVbtTRpEpBbeufZMUcoWtN62JZdDq3KadS1ijN6wpaDjTzRK7PjT3QOPUcx+yNT0rrZQ== hpack.js@^2.1.6: version "2.1.6" @@ -5191,16 +4019,6 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - html-encoding-sniffer@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz#696df529a7cfd82446369dc5193e590a3735b448" @@ -5208,10 +4026,10 @@ html-encoding-sniffer@^4.0.0: dependencies: whatwg-encoding "^3.1.1" -html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== +html-entities@^2.3.2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.6.0.tgz#7c64f1ea3b36818ccae3d3fb48b6974208e984f8" + integrity sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ== html-escaper@^2.0.0: version "2.0.2" @@ -5244,10 +4062,21 @@ http-errors@~1.6.2: setprototypeof "1.1.0" statuses ">= 1.4.0 < 2" +http-errors@~2.0.0, http-errors@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b" + integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ== + dependencies: + depd "~2.0.0" + inherits "~2.0.4" + setprototypeof "~1.2.0" + statuses "~2.0.2" + toidentifier "~1.0.1" + http-parser-js@>=0.5.1: - version "0.5.8" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" - integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + version "0.5.10" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.10.tgz#b3277bd6d7ed5588e20ea73bf724fcbe44609075" + integrity sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA== http-proxy-agent@^7.0.2: version "7.0.2" @@ -5257,17 +4086,18 @@ http-proxy-agent@^7.0.2: agent-base "^7.1.0" debug "^4.3.4" -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== +http-proxy-middleware@^2.0.3: + version "2.0.9" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz#e9e63d68afaa4eee3d147f39149ab84c0c2815ef" + integrity sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q== dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" -http-proxy@^1.17.0, http-proxy@^1.18.1: +http-proxy@^1.18.1: version "1.18.1" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== @@ -5276,11 +4106,6 @@ http-proxy@^1.17.0, http-proxy@^1.18.1: follow-redirects "^1.0.0" requires-port "^1.0.0" -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - https-proxy-agent@^7.0.6: version "7.0.6" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz#da8dfeac7da130b05c2ba4b59c9b6cd66611a6b9" @@ -5294,13 +4119,6 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - iconv-lite@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" @@ -5308,62 +4126,32 @@ iconv-lite@0.6.3: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== +iconv-lite@~0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: - postcss "^7.0.14" + safer-buffer ">= 2.1.2 < 3" -ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= +immutable@^5.0.2: + version "5.1.4" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.4.tgz#e3f8c1fe7b567d56cf26698f31918c241dae8c1f" + integrity sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA== -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== +import-fresh@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" + integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.0.0" - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -import-local@^3.2.0: +import-local@^3.0.2, import-local@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== @@ -5374,22 +4162,7 @@ import-local@^3.2.0: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -infer-owner@^1.0.3, infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== inflight@^1.0.4: version "1.0.6" @@ -5399,107 +4172,35 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3, inherits@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -ini@^1.3.4, ini@^1.3.5: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +interpret@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - -interpret@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw== - -ip@^1.1.0, ip@^1.1.5: - version "1.1.9" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.9.tgz#8dfbcc99a754d07f425310b86a99546b1151e396" - integrity sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ== - -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: +ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" +ipaddr.js@^2.0.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.3.0.tgz#71dce70e1398122208996d1c22f2ba46a24b1abc" + integrity sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg== is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-bigint@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" - integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-binary-path@~2.1.0: version "2.1.0" @@ -5508,110 +4209,22 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" - integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== +is-core-module@^2.16.1: + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== dependencies: - call-bind "^1.0.0" + hasown "^2.0.2" -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-callable@^1.1.4, is-callable@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" - integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== - -is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-core-module@^2.11.0, is-core-module@^2.2.0: - version "2.12.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.0.tgz#36ad62f6f73c8253fd6472517a12483cf03e7ec4" - integrity sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ== - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: +is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -5623,72 +4236,24 @@ is-generator-fn@^2.1.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== +is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== - -is-number-object@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" - integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== -is-path-cwd@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: +is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== @@ -5700,107 +4265,52 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-regex@^1.0.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== +is-regex@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.1.tgz#76d70a3ed10ef9be48eb577887d74205bf0cad22" + integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-regex@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" - integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== - dependencies: - call-bind "^1.0.2" - has-symbols "^1.0.1" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + call-bound "^1.0.2" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + hasown "^2.0.2" is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-string@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" - integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: - has-symbols "^1.0.1" + is-docker "^2.0.0" -is-typed-array@^1.1.14: - version "1.1.15" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b" - integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== - dependencies: - which-typed-array "^1.1.16" - -is-windows@^1.0.1, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: +isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isbinaryfile@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz#5d34b94865bd4946633ecc78a026fc76c5b11fcf" - integrity sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w== + version "4.0.10" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" + integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: +isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -istanbul-lib-coverage@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" - integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== - -istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== istanbul-lib-instrument@^6.0.0, istanbul-lib-instrument@^6.0.2: version "6.0.3" @@ -5814,12 +4324,12 @@ istanbul-lib-instrument@^6.0.0, istanbul-lib-instrument@^6.0.2: semver "^7.5.4" istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== dependencies: istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" + make-dir "^4.0.0" supports-color "^7.1.0" istanbul-lib-source-maps@^5.0.0: @@ -5832,9 +4342,9 @@ istanbul-lib-source-maps@^5.0.0: istanbul-lib-coverage "^3.0.0" istanbul-reports@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.3.tgz#4bcae3103b94518117930d51283690960b50d3c2" - integrity sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.2.0.tgz#cb4535162b5784aa623cee21a7252cf2c807ac93" + integrity sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -6199,7 +4709,7 @@ jest-watcher@30.2.0: jest-util "30.2.0" string-length "^4.0.2" -jest-worker@30.2.0: +jest-worker@30.2.0, jest-worker@^30.0.5: version "30.2.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-30.2.0.tgz#fd5c2a36ff6058ec8f74366ec89538cc99539d26" integrity sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g== @@ -6210,14 +4720,14 @@ jest-worker@30.2.0: merge-stream "^2.0.0" supports-color "^8.1.1" -jest-worker@^26.5.0: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== dependencies: "@types/node" "*" merge-stream "^2.0.0" - supports-color "^7.0.0" + supports-color "^8.0.0" jest@*: version "30.2.0" @@ -6229,6 +4739,11 @@ jest@*: import-local "^3.2.0" jest-cli "30.2.0" +jiti@^2.5.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-2.6.1.tgz#178ef2fc9a1a594248c20627cd820187a4d78d92" + integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ== + jquery-ui@1.14.1: version "1.14.1" resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.14.1.tgz#ba342ea3ffff662b787595391f607d923313e040" @@ -6251,7 +4766,7 @@ js-tokens@^4.0.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1, js-yaml@^3.14.1: +js-yaml@^3.13.1: version "3.14.2" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.2.tgz#77485ce1dd7f33c061fd1b16ecea23b55fcb04b0" integrity sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg== @@ -6259,6 +4774,13 @@ js-yaml@^3.13.1, js-yaml@^3.14.1: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" + integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== + dependencies: + argparse "^2.0.1" + jsdom@^26.1.0: version "26.1.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-26.1.0.tgz#ab5f1c1cafc04bd878725490974ea5e8bf0c72b3" @@ -6285,27 +4807,12 @@ jsdom@^26.1.0: ws "^8.18.0" xml-name-validator "^5.0.0" -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@^3.0.2: +jsesc@^3.0.2, jsesc@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== - -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.0: +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== @@ -6315,24 +4822,20 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json5@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== -json5@^2.1.2, json5@^2.2.2, json5@^2.2.3: +json5@^2.1.2, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" @@ -6346,7 +4849,7 @@ karma-chrome-launcher@~3.2.0: karma-coffee-preprocessor@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/karma-coffee-preprocessor/-/karma-coffee-preprocessor-1.0.1.tgz#3b78872b17b3f42db53fd51591b5e051d7de81bf" - integrity sha1-O3iHKxez9C21P9UVkbXgUdfegb8= + integrity sha512-MDgLEhGlW0r972wUvktkuE5BNiEAcQ3DcApo9y40jYh0vF+6c2kkwqaunfN3VBp3/u9lgeiD07H32DtBR9ud1Q== dependencies: coffee-script "~1" object-assign "^4.1.0" @@ -6354,7 +4857,7 @@ karma-coffee-preprocessor@~1.0.1: karma-jasmine@~0.3.8: version "0.3.8" resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-0.3.8.tgz#5b6457791ad9b89aa173f079e3ebe1b8c805236c" - integrity sha1-W2RXeRrZuJqhc/B54+vhuMgFI2w= + integrity sha512-EDNIM4f9FV17XXoF+Rzfw+6uPajd7tOAfEFwe7PIyNVQrM3l1V5OJj2167JDY9KmLDIK/MQZX7tKkK1jVYlfmw== karma@~6.4.4: version "6.4.4" @@ -6386,47 +4889,18 @@ karma@~6.4.4: ua-parser-js "^0.7.30" yargs "^16.1.1" -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: +kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -klona@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" - integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== - -last-call-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" - integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== +launch-editor@^2.6.0: + version "2.12.0" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.12.0.tgz#cc740f4e0263a6b62ead2485f9896e545321f817" + integrity sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg== dependencies: - lodash "^4.17.5" - webpack-sources "^1.1.0" + picocolors "^1.1.1" + shell-quote "^1.8.3" leaflet-geosearch@4.2.2: version "4.2.2" @@ -6451,42 +4925,30 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +lilconfig@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.3.tgz#a1bcfd6257f9585bf5ae14ceeebb7b559025e4c4" + integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== + lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== +loader-runner@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.1.tgz#6c76ed29b0ccce9af379208299f07f876de737e3" + integrity sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q== -loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" - integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== +loader-utils@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" json5 "^2.1.2" -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -6494,51 +4956,53 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +lockfile@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz#07f819d25ae48f87e538e6578b6964a4981a5609" + integrity sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA== + dependencies: + signal-exit "^3.0.2" + lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== -lodash.get@^4.0: +lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== -lodash.has@^4.0: +lodash.has@^4.5.2: version "4.5.2" resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862" - integrity sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI= + integrity sha512-rnYUdIo6xRCJnQmbVFEwcxF144erlD+M3YcJUVesflU9paQaE8p+fJDcIQrlMYbxoANFL+AB9hZrzSBBk5PL+g== lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.21, lodash@^4.17.5: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +lodash@^4.17.21: + version "4.17.23" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a" + integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w== log4js@^6.4.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.4.1.tgz#9d3a8bf2c31c1e213fe3fc398a6053f7a2bc53e8" - integrity sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg== + version "6.9.1" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.9.1.tgz#aba5a3ff4e7872ae34f8b4c533706753709e38b6" + integrity sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g== dependencies: - date-format "^4.0.3" - debug "^4.3.3" - flatted "^3.2.4" + date-format "^4.0.14" + debug "^4.3.4" + flatted "^3.2.7" rfdc "^1.3.0" - streamroller "^3.0.2" - -loglevel@^1.6.8: - version "1.8.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.1.tgz#5c621f83d5b48c54ae93b6156353f555963377b4" - integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== + streamroller "^3.1.5" lru-cache@^10.2.0, lru-cache@^10.4.3: version "10.4.3" @@ -6552,33 +5016,25 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - lz-string@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: +make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + makeerror@1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" @@ -6586,62 +5042,32 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - math-intrinsics@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== +mdn-data@2.12.2: + version "2.12.2" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.12.2.tgz#9ae6c41a9e65adf61318b32bff7b64fbfb13f8cf" + integrity sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA== media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= +memfs@^3.4.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" + fs-monkey "^1.0.4" merge-descriptors@1.0.3: version "1.0.3" @@ -6658,26 +5084,7 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.8: +micromatch@^4.0.2, micromatch@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== @@ -6685,20 +5092,17 @@ micromatch@^4.0.8: braces "^3.0.3" picomatch "^2.3.1" -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": +mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: +"mime-db@>= 1.43.0 < 2": + version "1.54.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" + integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== + +mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -6710,7 +5114,7 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.4.4, mime@^2.5.2: +mime@^2.5.2: version "2.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== @@ -6720,153 +5124,64 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mini-css-extract-plugin@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" - integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A== +mini-css-extract-plugin@^2.9.4: + version "2.10.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.0.tgz#d801a1f388f8fac7333c01b7c15c9222c811def4" + integrity sha512-540P2c5dYnJlyJxTaSloliZexv8rji6rY8FhQN+WF/82iHQfA23j/xtJx97L+mXOML27EqksSek/g4eK7jaL3g== dependencies: - loader-utils "^1.1.0" - normalize-url "1.9.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" + schema-utils "^4.0.0" + tapable "^2.2.1" -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: +minimalistic-assert@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - minimatch@^3.0.4, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + version "3.1.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e" + integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w== dependencies: brace-expansion "^1.1.7" minimatch@^9.0.4: - version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + version "9.0.9" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.9.tgz#9b0cb9fcb78087f6fd7eababe2511c4d3d60574e" + integrity sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg== dependencies: - brace-expansion "^2.0.1" - -minimist@^1.2.0: - version "1.2.7" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + brace-expansion "^2.0.2" minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" - integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== - dependencies: - yallist "^4.0.0" - -minipass@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" - integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== - "minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@^0.5.6, mkdirp@~0.5.1: +mkdirp@^0.5.5: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: minimist "^1.2.6" -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - moment@*: version "2.30.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== -morphdom@2.6.1, "morphdom@>=2.6.0 <3.0.0": +morphdom@2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/morphdom/-/morphdom-2.6.1.tgz#e868e24f989fa3183004b159aed643e628b4306e" integrity sha512-Y8YRbAEP3eKykroIBWrjcfMw7mmwJfjhqdpSvoqinu8Y702nAwikpXcNFDiIkyvfCLxLM9Wu95RZqo4a9jFBaA== -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" +"morphdom@>=2.6.0 <3.0.0": + version "2.7.7" + resolved "https://registry.yarnpkg.com/morphdom/-/morphdom-2.7.7.tgz#72559af781357a4eb2169a0a578acb76ff7e8abf" + integrity sha512-04GmsiBcalrSCNmzfo+UjU8tt3PhZJKzcOy+r1FlGA7/zri8wre3I1WkYN9PT3sIeIKfW9bpyElA+VzOg2E24g== mrujs@*: version "1.0.2" @@ -6880,50 +5195,23 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3, ms@^2.1.1, ms@^2.1.3: +ms@2.1.3, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ== - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== dependencies: - dns-packet "^1.3.1" + dns-packet "^5.2.2" thunky "^1.0.2" -nan@^2.12.1: - version "2.14.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" - integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" +nanoid@^3.3.11: + version "3.3.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" + integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== napi-postinstall@^0.3.0: version "0.3.4" @@ -6933,116 +5221,48 @@ napi-postinstall@^0.3.0: natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== negotiator@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: +negotiator@~0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7" + integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== + +neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +node-addon-api@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558" + integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== -node-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" - integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== +node-forge@^1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.3.tgz#0ad80f6333b3a0045e827ac20b7f735f93716751" + integrity sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg== node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-releases@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" - integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== - -node-releases@^2.0.26: +node-releases@^2.0.27: version "2.0.27" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== -node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - -normalize-url@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== - dependencies: - path-key "^2.0.0" - npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -7050,109 +5270,34 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: - boolbase "~1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + boolbase "^1.0.0" nwsapi@^2.2.16: - version "2.2.22" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.22.tgz#109f9530cda6c156d6a713cdf5939e9f0de98b9d" - integrity sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ== + version "2.2.23" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.23.tgz#59712c3a88e6de2bb0b6ccc1070397267019cf6c" + integrity sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ== -object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.13.1: - version "1.13.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" - integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== - -object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -object-is@^1.0.1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.getownpropertydescriptors@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" - integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -object.values@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" - integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - has "^1.0.3" +object-inspect@^1.13.3: + version "1.13.4" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== -on-finished@2.4.1: +on-finished@2.4.1, on-finished@~2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== @@ -7162,16 +5307,16 @@ on-finished@2.4.1: on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== dependencies: ee-first "1.1.1" -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== +on-headers@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.1.0.tgz#59da4f91c45f5f989c6e4bcedc5a3b0aed70ff65" + integrity sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A== -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -7185,52 +5330,29 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== +open@^8.0.9: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== dependencies: - is-wsl "^1.1.0" + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" -optimize-css-assets-webpack-plugin@^5.0.8: - version "5.0.8" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.8.tgz#cbccdcf5a6ef61d4f8cc78cf083a67446e5f402a" - integrity sha512-mgFS1JdOtEGzD8l+EuISqL57cKO+We9GcoiQEmdCWRqqck+FGNmYJtx9qfAPzEz+lRrlThWMuGDaRkI/yWNx/Q== - dependencies: - cssnano "^4.1.10" - last-call-webpack-plugin "^3.0.0" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== - -p-limit@^2.0.0, p-limit@^2.2.0: +p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" -p-limit@^3.0.2, p-limit@^3.1.0: +p-limit@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -7238,24 +5360,13 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== +p-retry@^4.5.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== dependencies: - aggregate-error "^3.0.0" - -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== - dependencies: - retry "^0.12.0" + "@types/retry" "0.12.0" + retry "^0.13.1" p-try@^2.0.0: version "2.2.0" @@ -7267,20 +5378,6 @@ package-json-from-dist@^1.0.0: resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -7288,26 +5385,7 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0, parse-json@^5.2.0: +parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== @@ -7317,11 +5395,6 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - parse5@^7.0.0, parse5@^7.2.1: version "7.3.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz#d7e224fa72399c7a175099f45fc2ad024b05ec05" @@ -7334,31 +5407,11 @@ parseurl@~1.3.2, parseurl@~1.3.3: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - path-complete-extname@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/path-complete-extname/-/path-complete-extname-1.0.0.tgz#f889985dc91000c815515c0bfed06c5acda0752b" integrity sha512-CVjiWcMRdGU8ubs08YQVzhutOR5DEfO97ipRIlOGMK5Bek5nQySknBpuxVAVJ36hseTNs+vdIcv57ZrWxH7zvg== -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -7369,22 +5422,12 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6, path-parse@^1.0.7: +path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -7397,87 +5440,36 @@ path-scurry@^1.11.1: lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" -path-to-regexp@0.1.10: - version "0.1.10" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.10.tgz#67e9108c5c0551b9e5326064387de4763c4d5f8b" - integrity sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w== +path-to-regexp@~0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" + integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pbkdf2@^3.0.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.3.tgz#8be674d591d65658113424592a95d1517318dd4b" - integrity sha512-wfRLBZ0feWRhCIkoMB6ete7czJcnNnqRpcoWQBLqatqXXmelSRqfdDK4F3u9T2s2cXas/hQJcryI/4lAL+XTlA== - dependencies: - create-hash "~1.1.3" - create-hmac "^1.1.7" - ripemd160 "=2.0.1" - safe-buffer "^5.2.1" - sha.js "^2.4.11" - to-buffer "^1.2.0" - -picocolors@1.1.1, picocolors@^1.0.0, picocolors@^1.1.1: +picocolors@1.1.1, picocolors@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picocolors@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== - -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -picomatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" - integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== +picomatch@^4.0.2, picomatch@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" + integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== -pify@^2.0.0, pify@^2.3.0: +pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pirates@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22" integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" @@ -7492,676 +5484,549 @@ pnp-webpack-plugin@^1.7.0: dependencies: ts-pnp "^1.1.6" -portfinder@^1.0.26: - version "1.0.32" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" - integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== +postcss-attribute-case-insensitive@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz#0c4500e3bcb2141848e89382c05b5a31c23033a3" + integrity sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw== dependencies: - async "^2.6.4" - debug "^3.2.7" - mkdirp "^0.5.6" + postcss-selector-parser "^7.0.0" -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -possible-typed-array-names@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz#93e3582bc0e5426586d9d07b79ee40fc841de4ae" - integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== - -postcss-attribute-case-insensitive@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" - integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== +postcss-calc@^10.1.1: + version "10.1.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-10.1.1.tgz#52b385f2e628239686eb6e3a16207a43f36064ca" + integrity sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw== dependencies: - postcss "^7.0.2" - postcss-selector-parser "^6.0.2" + postcss-selector-parser "^7.0.0" + postcss-value-parser "^4.2.0" -postcss-calc@^7.0.1: +postcss-clamp@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363" + integrity sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-functional-notation@^7.0.12: + version "7.0.12" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.12.tgz#9a3df2296889e629fde18b873bb1f50a4ecf4b83" + integrity sha512-TLCW9fN5kvO/u38/uesdpbx3e8AkTYhMvDZYa9JpmImWuTE99bDQ7GU7hdOADIZsiI9/zuxfAJxny/khknp1Zw== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +postcss-color-hex-alpha@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz#5dd3eba1f8facb4ea306cba6e3f7712e876b0c76" + integrity sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w== + dependencies: + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +postcss-color-rebeccapurple@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz#5ada28406ac47e0796dff4056b0a9d5a6ecead98" + integrity sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ== + dependencies: + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +postcss-colormin@^7.0.5: version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-7.0.5.tgz#0c7526289ab3f0daf96a376fd7430fae7258d5cf" + integrity sha512-ekIBP/nwzRWhEMmIxHHbXHcMdzd1HIUzBECaj5KEdLz9DVP2HzT065sEhvOx1dkLjYW7jyD0CngThx6bpFi2fA== dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" + browserslist "^4.27.0" + caniuse-api "^3.0.0" + colord "^2.9.3" + postcss-value-parser "^4.2.0" -postcss-color-functional-notation@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" - integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-gray@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" - integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-color-hex-alpha@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" - integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== - dependencies: - postcss "^7.0.14" - postcss-values-parser "^2.0.1" - -postcss-color-mod-function@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" - integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-rebeccapurple@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" - integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-custom-media@^7.0.8: +postcss-convert-values@^7.0.8: version "7.0.8" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" - integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-7.0.8.tgz#0c599dc29891d47d7b4d6db399c402cf3ba8efc3" + integrity sha512-+XNKuPfkHTCEo499VzLMYn94TiL3r9YqRE3Ty+jP7UX4qjewUONey1t7CG21lrlTLN07GtGM8MqFVp86D4uKJg== dependencies: - postcss "^7.0.14" + browserslist "^4.27.0" + postcss-value-parser "^4.2.0" -postcss-custom-properties@^8.0.11: - version "8.0.11" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" - integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== +postcss-custom-media@^11.0.6: + version "11.0.6" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-11.0.6.tgz#6b450e5bfa209efb736830066682e6567bd04967" + integrity sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw== dependencies: - postcss "^7.0.17" - postcss-values-parser "^2.0.1" + "@csstools/cascade-layer-name-parser" "^2.0.5" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/media-query-list-parser" "^4.0.3" -postcss-custom-selectors@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" - integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== +postcss-custom-properties@^14.0.6: + version "14.0.6" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-14.0.6.tgz#1af73a650bf115ba052cf915287c9982825fc90e" + integrity sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ== dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" + "@csstools/cascade-layer-name-parser" "^2.0.5" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" -postcss-dir-pseudo-class@^5.0.0: +postcss-custom-selectors@^8.0.5: + version "8.0.5" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-8.0.5.tgz#9448ed37a12271d7ab6cb364b6f76a46a4a323e8" + integrity sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg== + dependencies: + "@csstools/cascade-layer-name-parser" "^2.0.5" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + postcss-selector-parser "^7.0.0" + +postcss-dir-pseudo-class@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz#80d9e842c9ae9d29f6bf5fd3cf9972891d6cc0ca" + integrity sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-discard-comments@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-7.0.5.tgz#0a95aa4d229a021bc441861d4773d57145ee15dd" + integrity sha512-IR2Eja8WfYgN5n32vEGSctVQ1+JARfu4UH8M7bgGh1bC+xI/obsPJXaBpQF7MAByvgwZinhpHpdrmXtvVVlKcQ== + dependencies: + postcss-selector-parser "^7.1.0" + +postcss-discard-duplicates@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.2.tgz#9cf3e659d4f94b046eef6f93679490c0250a8e4e" + integrity sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w== + +postcss-discard-empty@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-7.0.1.tgz#b6c57e8b5c69023169abea30dceb93f98a2ffd9f" + integrity sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg== + +postcss-discard-overridden@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-7.0.1.tgz#bd9c9bc5e4548d3b6e67e7f8d64f2c9d745ae2a0" + integrity sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg== + +postcss-double-position-gradients@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.4.tgz#b482d08b5ced092b393eb297d07976ab482d4cad" + integrity sha512-m6IKmxo7FxSP5nF2l63QbCC3r+bWpFUWmZXZf096WxG0m7Vl1Q1+ruFOhpdDRmKrRS+S3Jtk+TVk/7z0+BVK6g== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +postcss-flexbugs-fixes@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz#2028e145313074fc9abe276cb7ca14e5401eb49d" + integrity sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ== + +postcss-focus-visible@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz#1f7904904368a2d1180b220595d77b6f8a957868" + integrity sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-focus-within@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz#ac01ce80d3f2e8b2b3eac4ff84f8e15cd0057bc7" + integrity sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-font-variant@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" - integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66" + integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" +postcss-gap-properties@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz#d5ff0bdf923c06686499ed2b12e125fe64054fed" + integrity sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw== -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== +postcss-image-set-function@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz#538e94e16716be47f9df0573b56bbaca86e1da53" + integrity sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA== dependencies: - postcss "^7.0.0" + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== +postcss-import@^16.1.1: + version "16.1.1" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-16.1.1.tgz#cfbe79e6c9232b0dbbe1c18f35308825cfe8ff2a" + integrity sha512-2xVS1NCZAfjtVdvXiyegxzJ447GyqCeEI5V7ApgQVOWnros1p5lGNovJNapwPpMombyFBfqDwt7AD3n2l0KOfQ== dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-double-position-gradients@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" - integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== - dependencies: - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-env-function@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" - integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-flexbugs-fixes@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" - integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== - dependencies: - postcss "^7.0.26" - -postcss-focus-visible@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" - integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== - dependencies: - postcss "^7.0.2" - -postcss-focus-within@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" - integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== - dependencies: - postcss "^7.0.2" - -postcss-font-variant@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz#42d4c0ab30894f60f98b17561eb5c0321f502641" - integrity sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA== - dependencies: - postcss "^7.0.2" - -postcss-gap-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" - integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== - dependencies: - postcss "^7.0.2" - -postcss-image-set-function@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" - integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-import@^12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153" - integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw== - dependencies: - postcss "^7.0.1" - postcss-value-parser "^3.2.3" + postcss-value-parser "^4.0.0" read-cache "^1.0.0" resolve "^1.1.7" -postcss-initial@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.4.tgz#9d32069a10531fe2ecafa0b6ac750ee0bc7efc53" - integrity sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg== +postcss-lab-function@^7.0.12: + version "7.0.12" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-7.0.12.tgz#eb555ac542607730eb0a87555074e4a5c6eef6e4" + integrity sha512-tUcyRk1ZTPec3OuKFsqtRzW2Go5lehW29XA21lZ65XmzQkz43VY2tyWEC202F7W3mILOjw0voOiuxRGTsN+J9w== dependencies: - postcss "^7.0.2" + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" -postcss-lab-function@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" - integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== +postcss-loader@^8.2.0: + version "8.2.1" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-8.2.1.tgz#c3d9b35498af906fe6c25eb62583c06f619f92fc" + integrity sha512-k98jtRzthjj3f76MYTs9JTpRqV1RaaMhEU0Lpw9OTmQZQdppg4B30VZ74BojuBHt3F4KyubHJoXCMUeM8Bqeow== dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" + cosmiconfig "^9.0.0" + jiti "^2.5.1" + semver "^7.6.2" -postcss-load-config@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" - integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== +postcss-logical@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-8.1.0.tgz#4092b16b49e3ecda70c4d8945257da403d167228" + integrity sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA== dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" + postcss-value-parser "^4.2.0" -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== +postcss-merge-longhand@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-7.0.5.tgz#e1b126e92f583815482e8b1e82c47d2435a20421" + integrity sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw== dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" + postcss-value-parser "^4.2.0" + stylehacks "^7.0.5" -postcss-logical@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" - integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== +postcss-merge-rules@^7.0.7: + version "7.0.7" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-7.0.7.tgz#f49537e5029ce0e655c2f31fdb205f14575c7334" + integrity sha512-njWJrd/Ms6XViwowaaCc+/vqhPG3SmXn725AGrnl+BgTuRPEacjiLEaGq16J6XirMJbtKkTwnt67SS+e2WGoew== dependencies: - postcss "^7.0.2" - -postcss-media-minmax@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" - integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== - dependencies: - postcss "^7.0.2" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" + browserslist "^4.27.0" caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" + cssnano-utils "^5.0.1" + postcss-selector-parser "^7.1.0" -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - -postcss-modules-local-by-default@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" - integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== - dependencies: - icss-utils "^4.1.1" - postcss "^7.0.32" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== - dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" - -postcss-nesting@^7.0.0: +postcss-minify-font-values@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" - integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-7.0.1.tgz#6fb4770131b31fd5a2014bd84e32f386a3406664" + integrity sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ== dependencies: - postcss "^7.0.2" + postcss-value-parser "^4.2.0" -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== +postcss-minify-gradients@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-7.0.1.tgz#933cb642dd00df397237c17194f37dcbe4cad739" + integrity sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A== dependencies: - postcss "^7.0.0" + colord "^2.9.3" + cssnano-utils "^5.0.1" + postcss-value-parser "^4.2.0" -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== +postcss-minify-params@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-7.0.5.tgz#4a0d15e312252e41d0c8504227d43538e3f607a2" + integrity sha512-FGK9ky02h6Ighn3UihsyeAH5XmLEE2MSGH5Tc4tXMFtEDx7B+zTG6hD/+/cT+fbF7PbYojsmmWjyTwFwW1JKQQ== dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + browserslist "^4.27.0" + cssnano-utils "^5.0.1" + postcss-value-parser "^4.2.0" -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-overflow-shorthand@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" - integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== - dependencies: - postcss "^7.0.2" - -postcss-page-break@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" - integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== - dependencies: - postcss "^7.0.2" - -postcss-place@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" - integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-preset-env@^6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" - integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== - dependencies: - autoprefixer "^9.6.1" - browserslist "^4.6.4" - caniuse-lite "^1.0.30000981" - css-blank-pseudo "^0.1.4" - css-has-pseudo "^0.10.0" - css-prefers-color-scheme "^3.1.1" - cssdb "^4.4.0" - postcss "^7.0.17" - postcss-attribute-case-insensitive "^4.0.1" - postcss-color-functional-notation "^2.0.1" - postcss-color-gray "^5.0.0" - postcss-color-hex-alpha "^5.0.3" - postcss-color-mod-function "^3.0.3" - postcss-color-rebeccapurple "^4.0.1" - postcss-custom-media "^7.0.8" - postcss-custom-properties "^8.0.11" - postcss-custom-selectors "^5.1.2" - postcss-dir-pseudo-class "^5.0.0" - postcss-double-position-gradients "^1.0.0" - postcss-env-function "^2.0.2" - postcss-focus-visible "^4.0.0" - postcss-focus-within "^3.0.0" - postcss-font-variant "^4.0.0" - postcss-gap-properties "^2.0.0" - postcss-image-set-function "^3.0.1" - postcss-initial "^3.0.0" - postcss-lab-function "^2.0.1" - postcss-logical "^3.0.0" - postcss-media-minmax "^4.0.0" - postcss-nesting "^7.0.0" - postcss-overflow-shorthand "^2.0.0" - postcss-page-break "^2.0.0" - postcss-place "^4.0.1" - postcss-pseudo-class-any-link "^6.0.0" - postcss-replace-overflow-wrap "^3.0.0" - postcss-selector-matches "^4.0.0" - postcss-selector-not "^4.0.0" - -postcss-pseudo-class-any-link@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" - integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-replace-overflow-wrap@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" - integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== - dependencies: - postcss "^7.0.2" - -postcss-safe-parser@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96" - integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g== - dependencies: - postcss "^7.0.26" - -postcss-selector-matches@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" - integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-not@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz#263016eef1cf219e0ade9a913780fc1f48204cbf" - integrity sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" - integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== - dependencies: - cssesc "^2.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" - integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== +postcss-minify-selectors@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-7.0.5.tgz#d8c89eeeb208705ab4127a464d1f54a3bc22cae3" + integrity sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug== + dependencies: + cssesc "^3.0.0" + postcss-selector-parser "^7.1.0" + +postcss-modules-extract-imports@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz#b4497cb85a9c0c4b5aabeb759bb25e8d89f15002" + integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== + +postcss-modules-local-by-default@^4.0.5: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz#d150f43837831dae25e4085596e84f6f5d6ec368" + integrity sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^7.0.0" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz#1bbccddcb398f1d7a511e0a2d1d047718af4078c" + integrity sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-nesting@^13.0.2: + version "13.0.2" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-13.0.2.tgz#fde0d4df772b76d03b52eccc84372e8d1ca1402e" + integrity sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ== + dependencies: + "@csstools/selector-resolve-nested" "^3.1.0" + "@csstools/selector-specificity" "^5.0.0" + postcss-selector-parser "^7.0.0" + +postcss-normalize-charset@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-7.0.1.tgz#bccc3f7c5f4440883608eea8b444c8f41ce55ff6" + integrity sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ== + +postcss-normalize-display-values@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.1.tgz#feb40277d89a7f677b67a84cac999f0306e38235" + integrity sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-7.0.1.tgz#c771c0d33034455205f060b999d8557c2308d22c" + integrity sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.1.tgz#05fe4d838eedbd996436c5cab78feef9bb1ae57b" + integrity sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-7.0.1.tgz#0f111e7b5dfb6de6ab19f09d9e1c16fabeee232f" + integrity sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.1.tgz#7b645a36f113fec49d95d56386c9980316c71216" + integrity sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.5.tgz#d47a3cc40529d7eeb18d7f7a8a215c38c54455cd" + integrity sha512-X6BBwiRxVaFHrb2WyBMddIeB5HBjJcAaUHyhLrM2FsxSq5TFqcHSsK7Zu1otag+o0ZphQGJewGH1tAyrD0zX1Q== + dependencies: + browserslist "^4.27.0" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-7.0.1.tgz#d6471a22b6747ce93d7038c16eb9f1ba8b307e25" + integrity sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.1.tgz#ab8e9ff1f3213f3f3851c0a7d0e4ce4716777cea" + integrity sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-opacity-percentage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz#0b0db5ed5db5670e067044b8030b89c216e1eb0a" + integrity sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ== + +postcss-ordered-values@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-7.0.2.tgz#0e803fbb9601e254270481772252de9a8c905f48" + integrity sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw== + dependencies: + cssnano-utils "^5.0.1" + postcss-value-parser "^4.2.0" + +postcss-overflow-shorthand@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz#f5252b4a2ee16c68cd8a9029edb5370c4a9808af" + integrity sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-page-break@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f" + integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== + +postcss-place@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-10.0.0.tgz#ba36ee4786ca401377ced17a39d9050ed772e5a9" + integrity sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-preset-env@^10.5.0: + version "10.6.1" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-10.6.1.tgz#df30cfc54e90af2dcff5f94104e6f272359c9f65" + integrity sha512-yrk74d9EvY+W7+lO9Aj1QmjWY9q5NsKjK2V9drkOPZB/X6KZ0B3igKsHUYakb7oYVhnioWypQX3xGuePf89f3g== + dependencies: + "@csstools/postcss-alpha-function" "^1.0.1" + "@csstools/postcss-cascade-layers" "^5.0.2" + "@csstools/postcss-color-function" "^4.0.12" + "@csstools/postcss-color-function-display-p3-linear" "^1.0.1" + "@csstools/postcss-color-mix-function" "^3.0.12" + "@csstools/postcss-color-mix-variadic-function-arguments" "^1.0.2" + "@csstools/postcss-content-alt-text" "^2.0.8" + "@csstools/postcss-contrast-color-function" "^2.0.12" + "@csstools/postcss-exponential-functions" "^2.0.9" + "@csstools/postcss-font-format-keywords" "^4.0.0" + "@csstools/postcss-gamut-mapping" "^2.0.11" + "@csstools/postcss-gradients-interpolation-method" "^5.0.12" + "@csstools/postcss-hwb-function" "^4.0.12" + "@csstools/postcss-ic-unit" "^4.0.4" + "@csstools/postcss-initial" "^2.0.1" + "@csstools/postcss-is-pseudo-class" "^5.0.3" + "@csstools/postcss-light-dark-function" "^2.0.11" + "@csstools/postcss-logical-float-and-clear" "^3.0.0" + "@csstools/postcss-logical-overflow" "^2.0.0" + "@csstools/postcss-logical-overscroll-behavior" "^2.0.0" + "@csstools/postcss-logical-resize" "^3.0.0" + "@csstools/postcss-logical-viewport-units" "^3.0.4" + "@csstools/postcss-media-minmax" "^2.0.9" + "@csstools/postcss-media-queries-aspect-ratio-number-values" "^3.0.5" + "@csstools/postcss-nested-calc" "^4.0.0" + "@csstools/postcss-normalize-display-values" "^4.0.1" + "@csstools/postcss-oklab-function" "^4.0.12" + "@csstools/postcss-position-area-property" "^1.0.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/postcss-property-rule-prelude-list" "^1.0.0" + "@csstools/postcss-random-function" "^2.0.1" + "@csstools/postcss-relative-color-syntax" "^3.0.12" + "@csstools/postcss-scope-pseudo-class" "^4.0.1" + "@csstools/postcss-sign-functions" "^1.1.4" + "@csstools/postcss-stepped-value-functions" "^4.0.9" + "@csstools/postcss-syntax-descriptor-syntax-production" "^1.0.1" + "@csstools/postcss-system-ui-font-family" "^1.0.0" + "@csstools/postcss-text-decoration-shorthand" "^4.0.3" + "@csstools/postcss-trigonometric-functions" "^4.0.9" + "@csstools/postcss-unset-value" "^4.0.0" + autoprefixer "^10.4.23" + browserslist "^4.28.1" + css-blank-pseudo "^7.0.1" + css-has-pseudo "^7.0.3" + css-prefers-color-scheme "^10.0.0" + cssdb "^8.6.0" + postcss-attribute-case-insensitive "^7.0.1" + postcss-clamp "^4.1.0" + postcss-color-functional-notation "^7.0.12" + postcss-color-hex-alpha "^10.0.0" + postcss-color-rebeccapurple "^10.0.0" + postcss-custom-media "^11.0.6" + postcss-custom-properties "^14.0.6" + postcss-custom-selectors "^8.0.5" + postcss-dir-pseudo-class "^9.0.1" + postcss-double-position-gradients "^6.0.4" + postcss-focus-visible "^10.0.1" + postcss-focus-within "^9.0.1" + postcss-font-variant "^5.0.0" + postcss-gap-properties "^6.0.0" + postcss-image-set-function "^7.0.0" + postcss-lab-function "^7.0.12" + postcss-logical "^8.1.0" + postcss-nesting "^13.0.2" + postcss-opacity-percentage "^3.0.0" + postcss-overflow-shorthand "^6.0.0" + postcss-page-break "^3.0.4" + postcss-place "^10.0.0" + postcss-pseudo-class-any-link "^10.0.1" + postcss-replace-overflow-wrap "^4.0.0" + postcss-selector-not "^8.0.1" + +postcss-pseudo-class-any-link@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz#06455431171bf44b84d79ebaeee9fd1c05946544" + integrity sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-reduce-initial@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-7.0.5.tgz#cf74bb747dfa003cd3d5372081f6157e6d8e1545" + integrity sha512-RHagHLidG8hTZcnr4FpyMB2jtgd/OcyAazjMhoy5qmWJOx1uxKh4ntk0Pb46ajKM0rkf32lRH4C8c9qQiPR6IA== + dependencies: + browserslist "^4.27.0" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.1.tgz#f87111264b0dfa07e1f708d7e6401578707be5d6" + integrity sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-replace-overflow-wrap@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319" + integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== + +postcss-selector-not@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz#f2df9c6ac9f95e9fe4416ca41a957eda16130172" + integrity sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-selector-parser@^7.0.0, postcss-selector-parser@^7.1.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz#e75d2e0d843f620e5df69076166f4e16f891cb9f" + integrity sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg== dependencies: cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" util-deprecate "^1.0.2" -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" - integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== +postcss-svgo@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-7.1.0.tgz#7eb6764a643ac2699bf56eef6d2676d428ed4542" + integrity sha512-KnAlfmhtoLz6IuU3Sij2ycusNs4jPW+QoFE5kuuUOK8awR6tMxZQrs5Ey3BUz7nFCzT3eqyFgqkyrHiaU2xx3w== dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" + postcss-value-parser "^4.2.0" + svgo "^4.0.0" -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== +postcss-unique-selectors@^7.0.4: + version "7.0.4" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-7.0.4.tgz#625ad1c808bdf322fab6c027ae8d4f2637140995" + integrity sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ== dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" + postcss-selector-parser "^7.1.0" -postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== +postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== - -postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" - integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== +postcss@^8.4.40, postcss@^8.5.6: + version "8.5.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c" + integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" - integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== - dependencies: - picocolors "^0.2.1" - source-map "^0.6.1" - -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + nanoid "^3.3.11" + picocolors "^1.1.1" + source-map-js "^1.2.1" prettier@*: - version "3.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393" - integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== + version "3.7.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.4.tgz#d2f8335d4b1cec47e1c8098645411b0c9dff9c0f" + integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA== pretty-format@30.2.0: version "30.2.0" @@ -8186,16 +6051,6 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -8204,64 +6059,12 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: +punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -punycode@^2.3.1: +punycode@^2.1.0, punycode@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== @@ -8271,75 +6074,39 @@ pure-rand@^7.0.0: resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-7.0.1.tgz#6f53a5a9e3e4a47445822af96821ca509ed37566" integrity sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ== -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - qjobs@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== -qs@6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" - integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== +qs@~6.14.0: + version "6.14.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.2.tgz#b5634cf9d9ad9898e31fba3504e866e8efb6798c" + integrity sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q== dependencies: - side-channel "^1.0.6" + side-channel "^1.1.0" -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: +randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== +raw-body@~2.5.3: + version "2.5.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.3.tgz#11c6650ee770a7de1b494f197927de0c923822e2" + integrity sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA== dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" + bytes "~3.1.2" + http-errors "~2.0.1" + iconv-lite "~0.4.24" + unpipe "~1.0.0" react-is@^17.0.1: version "17.0.2" @@ -8354,14 +6121,14 @@ react-is@^18.3.1: read-cache@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== dependencies: pify "^2.3.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== +readable-stream@^2.0.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -8371,7 +6138,7 @@ read-cache@^1.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.6.2: +readable-stream@^3.0.6: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -8380,23 +6147,10 @@ readable-stream@^3.0.6, readable-stream@^3.6.2: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" +readdirp@^4.0.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" + integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== readdirp@~3.6.0: version "3.6.0" @@ -8405,10 +6159,17 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -regenerate-unicode-properties@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" - integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== +rechoir@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" + integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== + dependencies: + resolve "^1.9.0" + +regenerate-unicode-properties@^10.2.2: + version "10.2.2" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz#aa113812ba899b630658c7623466be71e1f86f66" + integrity sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g== dependencies: regenerate "^1.4.2" @@ -8417,90 +6178,51 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.13.9: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - -regenerator-transform@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" - integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== dependencies: "@babel/runtime" "^7.8.4" -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== +regexpu-core@^6.3.1: + version "6.4.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.4.0.tgz#3580ce0c4faedef599eccb146612436b62a176e5" + integrity sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA== dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp.prototype.flags@^1.2.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" - integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - functions-have-names "^1.2.3" - -regexpu-core@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" - integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== - dependencies: - "@babel/regjsgen" "^0.8.0" regenerate "^1.4.2" - regenerate-unicode-properties "^10.1.0" - regjsparser "^0.9.1" + regenerate-unicode-properties "^10.2.2" + regjsgen "^0.8.0" + regjsparser "^0.13.0" unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" + unicode-match-property-value-ecmascript "^2.2.1" -regjsparser@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" - integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== +regjsgen@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" + integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== + +regjsparser@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.13.0.tgz#01f8351335cf7898d43686bc74d2dd71c847ecc0" + integrity sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q== dependencies: - jsesc "~0.5.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + jsesc "~3.1.0" require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== resolve-cwd@^3.0.0: version "3.0.0" @@ -8509,19 +6231,6 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -8532,59 +6241,24 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.1.7, resolve@^1.12.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== +resolve@^1.1.7, resolve@^1.22.10, resolve@^1.22.11, resolve@^1.9.0: + version "1.22.11" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262" + integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ== dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -resolve@^1.14.2: - version "1.22.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== - dependencies: - is-core-module "^2.11.0" + is-core-module "^2.16.1" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - -rimraf@^2.5.4, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== rimraf@^3.0.2: version "3.0.2" @@ -8593,78 +6267,190 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -ripemd160@=2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" - integrity sha512-J7f4wutN8mdbV08MJnXibYpCOPHR+yzy+iQ/AsjMv2j8cLavQ8VGagDFUwwTAdF8FmRKVeNpbTTEwNHCW1g94w== - dependencies: - hash-base "^2.0.0" - inherits "^2.0.1" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - rrweb-cssom@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz#3021d1b4352fbf3b614aaeed0bc0d5739abe0bc2" integrity sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw== -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= +rxjs@^7.4.0: + version "7.8.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b" + integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== dependencies: - aproba "^1.1.1" + tslib "^2.1.0" -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0: +safe-regex-test@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz#7f87dfb67a3150782eaaf18583ff5d1711ac10c1" + integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + is-regex "^1.2.1" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass-loader@10.1.1: - version "10.1.1" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.1.tgz#4ddd5a3d7638e7949065dd6e9c7c04037f7e663d" - integrity sha512-W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw== +sass-embedded-all-unknown@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded-all-unknown/-/sass-embedded-all-unknown-1.97.3.tgz#a0cf18681cc0ec5f51101b8b89640df158fb8dc3" + integrity sha512-t6N46NlPuXiY3rlmG6/+1nwebOBOaLFOOVqNQOC2cJhghOD4hh2kHNQQTorCsbY9S1Kir2la1/XLBwOJfui0xg== + dependencies: + sass "1.97.3" + +sass-embedded-android-arm64@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.97.3.tgz#8093d124f0b671fd691a925805d8d6b0c9d08a44" + integrity sha512-aiZ6iqiHsUsaDx0EFbbmmA0QgxicSxVVN3lnJJ0f1RStY0DthUkquGT5RJ4TPdaZ6ebeJWkboV4bra+CP766eA== + +sass-embedded-android-arm@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded-android-arm/-/sass-embedded-android-arm-1.97.3.tgz#256236b9c857f83ece13229d8704a44587a0a660" + integrity sha512-cRTtf/KV/q0nzGZoUzVkeIVVFv3L/tS1w4WnlHapphsjTXF/duTxI8JOU1c/9GhRPiMdfeXH7vYNcMmtjwX7jg== + +sass-embedded-android-riscv64@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.97.3.tgz#c71cfef7a6a94cc043f74936ec62be89115c7a32" + integrity sha512-zVEDgl9JJodofGHobaM/q6pNETG69uuBIGQHRo789jloESxxZe82lI3AWJQuPmYCOG5ElfRthqgv89h3gTeLYA== + +sass-embedded-android-x64@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded-android-x64/-/sass-embedded-android-x64-1.97.3.tgz#07065245d9154d3353952bce5c30f87fbd7db59c" + integrity sha512-3ke0le7ZKepyXn/dKKspYkpBC0zUk/BMciyP5ajQUDy4qJwobd8zXdAq6kOkdiMB+d9UFJOmEkvgFJHl3lqwcw== + +sass-embedded-darwin-arm64@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.97.3.tgz#49887421ada0d00ba9e93012690e34d8aa132bc7" + integrity sha512-fuqMTqO4gbOmA/kC5b9y9xxNYw6zDEyfOtMgabS7Mz93wimSk2M1quQaTJnL98Mkcsl2j+7shNHxIS/qpcIDDA== + +sass-embedded-darwin-x64@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.97.3.tgz#5f9aef81f5337f5e8e67cf0bd2d8514a7529326e" + integrity sha512-b/2RBs/2bZpP8lMkyZ0Px0vkVkT8uBd0YXpOwK7iOwYkAT8SsO4+WdVwErsqC65vI5e1e5p1bb20tuwsoQBMVA== + +sass-embedded-linux-arm64@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.97.3.tgz#fd08cb53040c25c78a5e418914a47bc74a72d169" + integrity sha512-IP1+2otCT3DuV46ooxPaOKV1oL5rLjteRzf8ldZtfIEcwhSgSsHgA71CbjYgLEwMY9h4jeal8Jfv3QnedPvSjg== + +sass-embedded-linux-arm@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.97.3.tgz#1fdd2e4e8d8f4b6144fb8a24e8e8bbb704696184" + integrity sha512-2lPQ7HQQg4CKsH18FTsj2hbw5GJa6sBQgDsls+cV7buXlHjqF8iTKhAQViT6nrpLK/e8nFCoaRgSqEC8xMnXuA== + +sass-embedded-linux-musl-arm64@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.97.3.tgz#21cbc27b312ff2460d6c7c8ea093bce2a549fbc2" + integrity sha512-Lij0SdZCsr+mNRSyDZ7XtJpXEITrYsaGbOTz5e6uFLJ9bmzUbV7M8BXz2/cA7bhfpRPT7/lwRKPdV4+aR9Ozcw== + +sass-embedded-linux-musl-arm@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.97.3.tgz#f6d3905031e44313d3fb742c683ddbf45bf12c64" + integrity sha512-cBTMU68X2opBpoYsSZnI321gnoaiMBEtc+60CKCclN6PCL3W3uXm8g4TLoil1hDD6mqU9YYNlVG6sJ+ZNef6Lg== + +sass-embedded-linux-musl-riscv64@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.97.3.tgz#a42f9f4c51b42431e93287a6dc1df83e920bf658" + integrity sha512-sBeLFIzMGshR4WmHAD4oIM7WJVkSoCIEwutzptFtGlSlwfNiijULp+J5hA2KteGvI6Gji35apR5aWj66wEn/iA== + +sass-embedded-linux-musl-x64@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.97.3.tgz#55b5bd5e56b0ece474ed52a890131fae4e020675" + integrity sha512-/oWJ+OVrDg7ADDQxRLC/4g1+Nsz1g4mkYS2t6XmyMJKFTFK50FVI2t5sOdFH+zmMp+nXHKM036W94y9m4jjEcw== + +sass-embedded-linux-riscv64@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.97.3.tgz#d6367150d1c389a1310cbda539d4b503da7ff5a3" + integrity sha512-l3IfySApLVYdNx0Kjm7Zehte1CDPZVcldma3dZt+TfzvlAEerM6YDgsk5XEj3L8eHBCgHgF4A0MJspHEo2WNfA== + +sass-embedded-linux-x64@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.97.3.tgz#cebfe65b052cbaae76c8e02feac8f85e90942224" + integrity sha512-Kwqwc/jSSlcpRjULAOVbndqEy2GBzo6OBmmuBVINWUaJLJ8Kczz3vIsDUWLfWz/kTEw9FHBSiL0WCtYLVAXSLg== + +sass-embedded-unknown-all@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded-unknown-all/-/sass-embedded-unknown-all-1.97.3.tgz#a4f82e5133e28de65034e67faf1e137790ac5ac6" + integrity sha512-/GHajyYJmvb0IABUQHbVHf1nuHPtIDo/ClMZ81IDr59wT5CNcMe7/dMNujXwWugtQVGI5UGmqXWZQCeoGnct8Q== + dependencies: + sass "1.97.3" + +sass-embedded-win32-arm64@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.97.3.tgz#41c539cc8732a11b9b4c0da2309d1fc5564655c3" + integrity sha512-RDGtRS1GVvQfMGAmVXNxYiUOvPzn9oO1zYB/XUM9fudDRnieYTcUytpNTQZLs6Y1KfJxgt5Y+giRceC92fT8Uw== + +sass-embedded-win32-x64@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.97.3.tgz#e4e200e1e5a62ef075f962eb2d11d85dc58b762e" + integrity sha512-SFRa2lED9UEwV6vIGeBXeBOLKF+rowF3WmNfb/BzhxmdAsKofCXrJ8ePW7OcDVrvNEbTOGwhsReIsF5sH8fVaw== + +sass-embedded@^1.96.0: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass-embedded/-/sass-embedded-1.97.3.tgz#1cab95995787d7e310f6272d58f80c67b5ead4ba" + integrity sha512-eKzFy13Nk+IRHhlAwP3sfuv+PzOrvzUkwJK2hdoCKYcWGSdmwFpeGpWmyewdw8EgBnsKaSBtgf/0b2K635ecSA== + dependencies: + "@bufbuild/protobuf" "^2.5.0" + colorjs.io "^0.5.0" + immutable "^5.0.2" + rxjs "^7.4.0" + supports-color "^8.1.1" + sync-child-process "^1.0.2" + varint "^6.0.0" + optionalDependencies: + sass-embedded-all-unknown "1.97.3" + sass-embedded-android-arm "1.97.3" + sass-embedded-android-arm64 "1.97.3" + sass-embedded-android-riscv64 "1.97.3" + sass-embedded-android-x64 "1.97.3" + sass-embedded-darwin-arm64 "1.97.3" + sass-embedded-darwin-x64 "1.97.3" + sass-embedded-linux-arm "1.97.3" + sass-embedded-linux-arm64 "1.97.3" + sass-embedded-linux-musl-arm "1.97.3" + sass-embedded-linux-musl-arm64 "1.97.3" + sass-embedded-linux-musl-riscv64 "1.97.3" + sass-embedded-linux-musl-x64 "1.97.3" + sass-embedded-linux-riscv64 "1.97.3" + sass-embedded-linux-x64 "1.97.3" + sass-embedded-unknown-all "1.97.3" + sass-embedded-win32-arm64 "1.97.3" + sass-embedded-win32-x64 "1.97.3" + +sass-loader@^16.0.6: + version "16.0.7" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-16.0.7.tgz#d1f8723b795805831d41b5825e3d9cd72cb939e7" + integrity sha512-w6q+fRHourZ+e+xA1kcsF27iGM6jdB8teexYCfdUw0sYgcDNeZESnDNT9sUmmPm3ooziwUJXGwZJSTF3kOdBfA== dependencies: - klona "^2.0.4" - loader-utils "^2.0.0" neo-async "^2.6.2" - schema-utils "^3.0.0" - semver "^7.3.2" -sass@^1.38.0: - version "1.38.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.38.0.tgz#2f3e60a1efdcdc910586fa79dc89d3399a145b4f" - integrity sha512-WBccZeMigAGKoI+NgD7Adh0ab1HUq+6BmyBUEaGxtErbUtWUevEbdgo5EZiJQofLUGcKtlNaO2IdN73AHEua5g== +sass@1.97.3: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.97.3.tgz#9cb59339514fa7e2aec592b9700953ac6e331ab2" + integrity sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg== dependencies: - chokidar ">=3.0.0 <4.0.0" + chokidar "^4.0.0" + immutable "^5.0.2" + source-map-js ">=0.6.2 <2.0.0" + optionalDependencies: + "@parcel/watcher" "^2.4.1" -sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +sax@^1.4.1: + version "1.4.3" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.3.tgz#fcebae3b756cdc8428321805f4b70f16ec0ab5db" + integrity sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ== saxes@^6.0.0: version "6.0.0" @@ -8673,16 +6459,7 @@ saxes@^6.0.0: dependencies: xmlchars "^2.2.0" -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.6.5, schema-utils@^2.7.0: +schema-utils@^2.6.5: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== @@ -8691,15 +6468,25 @@ schema-utils@^2.6.5, schema-utils@^2.7.0: ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" - integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== +schema-utils@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== dependencies: - "@types/json-schema" "^7.0.6" + "@types/json-schema" "^7.0.8" ajv "^6.12.5" ajv-keywords "^3.5.2" +schema-utils@^4.0.0, schema-utils@^4.2.0, schema-utils@^4.3.0, schema-utils@^4.3.3: + version "4.3.3" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.3.tgz#5b1850912fa31df90716963d45d9121fdfc09f46" + integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" @@ -8710,31 +6497,20 @@ select2@*: resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.13.tgz#0dbe377df3f96167c4c1626033e924372d8ef44d" integrity sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw== -selfsigned@^1.10.8: - version "1.10.14" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.14.tgz#ee51d84d9dcecc61e07e4aba34f229ab525c1574" - integrity sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA== +selfsigned@^2.1.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== dependencies: - node-forge "^0.10.0" + "@types/node-forge" "^1.3.0" + node-forge "^1" -semver@^5.5.0, semver@^5.6.0: - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0, semver@^6.3.1: +semver@^6.0.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.2: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -semver@^7.5.4, semver@^7.7.2: +semver@^7.5.3, semver@^7.5.4, semver@^7.6.2, semver@^7.6.3, semver@^7.7.2: version "7.7.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== @@ -8758,17 +6534,29 @@ send@0.19.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== +send@~0.19.0: + version "0.19.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.19.1.tgz#1c2563b2ee4fe510b806b21ec46f355005a369f9" + integrity sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg== dependencies: - randombytes "^2.1.0" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~2.0.0" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" -serialize-javascript@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" - integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== +serialize-javascript@^6.0.0, serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" @@ -8785,7 +6573,7 @@ serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.16.2: +serve-static@~1.16.2: version "1.16.2" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== @@ -8795,63 +6583,30 @@ serve-static@1.16.2: parseurl "~1.3.3" send "0.19.0" -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-function-length@^1.2.1, set-function-length@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" - integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== -setprototypeof@1.2.0: +setprototypeof@1.2.0, setprototypeof@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: - version "2.4.12" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.12.tgz#eb8b568bf383dfd1867a32c3f2b74eb52bdbf23f" - integrity sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w== +shakapacker@8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/shakapacker/-/shakapacker-8.4.0.tgz#be37a2adba5a090f581811b8c0c1a00f2e227580" + integrity sha512-ZfuxfHxy5tdjv7tCdRZHJKJQLDFwvFXOVBVUj150zgNuRKUlOAyXzOBp9/G5hUhu4MLzuPAif/fuKOdjnZeVtw== dependencies: - inherits "^2.0.4" - safe-buffer "^5.2.1" - to-buffer "^1.2.0" + js-yaml "^4.1.0" + path-complete-extname "^1.0.0" -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== dependencies: - shebang-regex "^1.0.0" + kind-of "^6.0.2" shebang-command@^2.0.0: version "2.0.0" @@ -8860,95 +6615,83 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +shell-quote@^1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.3.tgz#55e40ef33cf5c689902353a3d8cd1a6725f08b4b" + integrity sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw== + shortcut-buttons-flatpickr@*: version "0.4.0" resolved "https://registry.yarnpkg.com/shortcut-buttons-flatpickr/-/shortcut-buttons-flatpickr-0.4.0.tgz#a36e0a88a670ed2637b7b1adb5bee0914c29a7e7" integrity sha512-JKmT4my3Hm1e18OvG4Q6RcFhN4WRqqpTMkHrvZ7fup/dp6aTIWGVCHdRYtASkp/FCzDlJh6iCLQ/VcwwNpAMoQ== -side-channel@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" - integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== +side-channel-list@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" + integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== dependencies: - call-bind "^1.0.7" es-errors "^1.3.0" - get-intrinsic "^1.2.4" - object-inspect "^1.13.1" + object-inspect "^1.13.3" -signal-exit@^3.0.0: +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + +side-channel@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" + integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + side-channel-list "^1.0.0" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" + +signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -signal-exit@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - signal-exit@^4.0.1: version "4.1.0" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - socket.io-adapter@~2.5.2: - version "2.5.4" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz#4fdb1358667f6d68f25343353bd99bd11ee41006" - integrity sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg== + version "2.5.5" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz#c7a1f9c703d7756844751b6ff9abfc1780664082" + integrity sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg== dependencies: debug "~4.3.4" - ws "~8.11.0" + ws "~8.17.1" socket.io-parser@~4.2.4: version "4.2.4" @@ -8959,30 +6702,19 @@ socket.io-parser@~4.2.4: debug "~4.3.1" socket.io@^4.7.2: - version "4.7.4" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.7.4.tgz#2401a2d7101e4bdc64da80b140d5d8b6a8c7738b" - integrity sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw== + version "4.8.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.8.1.tgz#fa0eaff965cc97fdf4245e8d4794618459f7558a" + integrity sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg== dependencies: accepts "~1.3.4" base64id "~2.0.0" cors "~2.8.5" debug "~4.3.2" - engine.io "~6.5.2" + engine.io "~6.6.0" socket.io-adapter "~2.5.2" socket.io-parser "~4.2.4" -sockjs-client@^1.5.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.6.1.tgz#350b8eda42d6d52ddc030c39943364c11dcad806" - integrity sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw== - dependencies: - debug "^3.2.7" - eventsource "^2.0.2" - faye-websocket "^0.11.4" - inherits "^2.0.4" - url-parse "^1.5.10" - -sockjs@^0.3.21: +sockjs@^0.3.24: version "0.3.24" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== @@ -8991,28 +6723,10 @@ sockjs@^0.3.21: uuid "^8.3.2" websocket-driver "^0.7.4" -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= - dependencies: - is-plain-obj "^1.0.0" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== source-map-support@0.5.13: version "0.5.13" @@ -9022,7 +6736,7 @@ source-map-support@0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@~0.5.12, source-map-support@~0.5.19: +source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -9030,26 +6744,11 @@ source-map-support@~0.5.12, source-map-support@~0.5.19: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@~0.7.2: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - spdy-transport@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" @@ -9073,36 +6772,10 @@ spdy@^4.0.2: select-hose "^2.0.0" spdy-transport "^3.0.0" -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== - dependencies: - figgy-pudding "^3.5.1" - -ssri@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== - dependencies: - minipass "^3.1.1" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== stack-utils@^2.0.6: version "2.0.6" @@ -9111,14 +6784,6 @@ stack-utils@^2.0.6: dependencies: escape-string-regexp "^2.0.0" -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" @@ -9127,7 +6792,12 @@ statuses@2.0.1: "statuses@>= 1.4.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +statuses@~2.0.1, statuses@~2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382" + integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw== stimulus-autocomplete@*: version "3.1.0" @@ -9156,51 +6826,14 @@ stimulus_reflex@3.5.5: "@rails/actioncable" "^6 || ^7 || ^8" cable_ready "^5.0.6" -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== +streamroller@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-3.1.5.tgz#1263182329a45def1ffaef58d31b15d13d2ee7ff" + integrity sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw== dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -streamroller@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-3.0.2.tgz#30418d0eee3d6c93ec897f892ed098e3a81e68b7" - integrity sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA== - dependencies: - date-format "^4.0.3" - debug "^4.1.1" - fs-extra "^10.0.0" - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + date-format "^4.0.14" + debug "^4.3.4" + fs-extra "^8.1.0" string-length@^4.0.2: version "4.0.2" @@ -9219,25 +6852,7 @@ string-length@^4.0.2: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string-width@^4.2.3: +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -9255,23 +6870,7 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string_decoder@^1.0.0, string_decoder@^1.1.1: +string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -9292,20 +6891,6 @@ string_decoder@~1.1.1: dependencies: ansi-regex "^5.0.1" -strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -9325,11 +6910,6 @@ strip-bom@^4.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== - strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" @@ -9340,45 +6920,27 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -style-loader@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.3.0.tgz#828b4a3b3b7e7aa5847ce7bae9e874512114249e" - integrity sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q== - dependencies: - loader-utils "^2.0.0" - schema-utils "^2.7.0" +style-loader@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-4.0.0.tgz#0ea96e468f43c69600011e0589cb05c44f3b17a5" + integrity sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA== -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== +stylehacks@^7.0.5: + version "7.0.7" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-7.0.7.tgz#12b0dd1eceee4d564aae6da0632804ef0004a5be" + integrity sha512-bJkD0JkEtbRrMFtwgpJyBbFIwfDDONQ1Ov3sDLZQP8HuJ73kBOyx66H4bOcAbVWmnfLdvQ0AJwXxOMkpujcO6g== dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" + browserslist "^4.27.0" + postcss-selector-parser "^7.1.0" -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -supports-color@^8.1.1: +supports-color@^8.0.0, supports-color@^8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -9390,30 +6952,36 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== +svgo@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-4.0.0.tgz#17e0fa2eaccf429e0ec0d2179169abde9ba8ad3d" + integrity sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw== dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" + commander "^11.1.0" + css-select "^5.1.0" + css-tree "^3.0.1" + css-what "^6.1.0" + csso "^5.0.5" + picocolors "^1.1.1" + sax "^1.4.1" symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +sync-child-process@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/sync-child-process/-/sync-child-process-1.0.2.tgz#45e7c72e756d1243e80b547ea2e17957ab9e367f" + integrity sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA== + dependencies: + sync-message-port "^1.0.0" + +sync-message-port@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/sync-message-port/-/sync-message-port-1.1.3.tgz#6055c565ee8c81d2f9ee5aae7db757e6d9088c0c" + integrity sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg== + synckit@^0.11.8: version "0.11.11" resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.11.tgz#c0b619cf258a97faa209155d9cd1699b5c998cb0" @@ -9421,70 +6989,31 @@ synckit@^0.11.8: dependencies: "@pkgr/core" "^0.2.9" -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tapable@^2.2.1, tapable@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.0.tgz#7e3ea6d5ca31ba8e078b560f0d83ce9a14aa8be6" + integrity sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg== -tar@^6.0.2: - version "6.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" - integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== +terser-webpack-plugin@^5.3.16: + version "5.3.16" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz#741e448cc3f93d8026ebe4f7ef9e4afacfd56330" + integrity sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q== dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^5.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" + "@jridgewell/trace-mapping" "^0.3.25" + jest-worker "^27.4.5" + schema-utils "^4.3.0" + serialize-javascript "^6.0.2" + terser "^5.31.1" -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser-webpack-plugin@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" - integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== - dependencies: - cacache "^15.0.5" - find-cache-dir "^3.3.1" - jest-worker "^26.5.0" - p-limit "^3.0.2" - schema-utils "^3.0.0" - serialize-javascript "^5.0.1" - source-map "^0.6.1" - terser "^5.3.4" - webpack-sources "^1.4.3" - -terser@^4.1.2: - version "4.8.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" - integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== +terser@^5.31.1: + version "5.44.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.44.1.tgz#e391e92175c299b8c284ad6ded609e37303b0a9c" + integrity sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw== dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.15.0" commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -terser@^5.3.4: - version "5.7.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" - integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== - dependencies: - commander "^2.20.0" - source-map "~0.7.2" - source-map-support "~0.5.19" + source-map-support "~0.5.20" test-exclude@^6.0.0: version "6.0.0" @@ -9495,31 +7024,11 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - thunky@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - tldts-core@^6.1.86: version "6.1.86" resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.86.tgz#a93e6ed9d505cb54c542ce43feb14c73913265d8" @@ -9533,49 +7042,15 @@ tldts@^6.1.32: tldts-core "^6.1.86" tmp@^0.2.1: - version "0.2.4" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.4.tgz#c6db987a2ccc97f812f17137b36af2b6521b0d13" - integrity sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ== + version "0.2.5" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.5.tgz#b06bcd23f0f3c8357b426891726d16015abfd8f8" + integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow== tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-buffer@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.2.1.tgz#2ce650cdb262e9112a18e65dc29dcb513c8155e0" - integrity sha512-tB82LpAIWjhLYbqjx3X4zEeHN6M8CiuOEy2JY8SEQVdYRe3CCHOFaqrBW1doLDrfpWhplcW7BL+bO3/6S3pcDQ== - dependencies: - isarray "^2.0.5" - safe-buffer "^5.2.1" - typed-array-buffer "^1.0.3" - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -9583,25 +7058,15 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.1: +toidentifier@1.0.1, toidentifier@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== tom-select@*: - version "2.4.3" - resolved "https://registry.yarnpkg.com/tom-select/-/tom-select-2.4.3.tgz#1daa4131cd317de691f39eb5bf41148265986c1f" - integrity sha512-MFFrMxP1bpnAMPbdvPCZk0KwYxLqhYZso39torcdoefeV/NThNyDu8dV96/INJ5XQVTL3O55+GqQ78Pkj5oCfw== + version "2.5.1" + resolved "https://registry.yarnpkg.com/tom-select/-/tom-select-2.5.1.tgz#8c8d3f11e5c1780b5f26c9e90f4e650842ff9596" + integrity sha512-63D5/Qf6bb6kLSgksEuas/60oawDcuUHrD90jZofeOpF6bkQFYriKrvtpJBQQ4xIA5dUGcjhBbk/yrlfOQsy3g== dependencies: "@orchidjs/sifter" "^1.1.0" "@orchidjs/unicode-variants" "^1.1.2" @@ -9621,9 +7086,9 @@ tr46@^5.1.0: punycode "^2.3.1" trix@*: - version "2.1.15" - resolved "https://registry.yarnpkg.com/trix/-/trix-2.1.15.tgz#fabad796ea779a8ae96522402fbc214cbfc4015f" - integrity sha512-LoaXWczdTUV8+3Box92B9b1iaDVbxD14dYemZRxi3PwY+AuDm97BUJV2aHLBUFPuDABhxp0wzcbf0CxHCVmXiw== + version "2.1.16" + resolved "https://registry.yarnpkg.com/trix/-/trix-2.1.16.tgz#601be839258b87cc83019915650c50eb7cbc161e" + integrity sha512-XtZgWI+oBvLzX7CWnkIf+ZWC+chL+YG/TkY43iMTV0Zl+CJjn18B1GJUCEWJ8qgfpcyMBuysnNAfPWiv2sV14A== dependencies: dompurify "^3.2.5" @@ -9632,21 +7097,11 @@ ts-pnp@^1.1.6: resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== -tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.4.0: +tslib@^2.1.0, tslib@^2.4.0: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - turbo_power@*: version "0.7.1" resolved "https://registry.yarnpkg.com/turbo_power/-/turbo_power-0.7.1.tgz#591769f37cca9b8149ea07682021081039c9f32c" @@ -9670,39 +7125,20 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -typed-array-buffer@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536" - integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== - dependencies: - call-bound "^1.0.3" - es-errors "^1.3.0" - is-typed-array "^1.1.14" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - ua-parser-js@^0.7.30: - version "0.7.33" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.33.tgz#1d04acb4ccef9293df6f70f2c3d22f3030d8b532" - integrity sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw== + version "0.7.41" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.41.tgz#9f6dee58c389e8afababa62a4a2dc22edb69a452" + integrity sha512-O3oYyCMPYgNNHuO7Jjk3uacJWZF8loBgwrfd/5LE/HyZ3lUIOdniQ7DNXJcIgZbwioZxk0fLfI4EVnetdiX5jg== -unbox-primitive@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== - dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" - which-boxed-primitive "^1.0.2" +undici-types@~7.16.0: + version "7.16.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" + integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" + integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== unicode-match-property-ecmascript@^2.0.0: version "2.0.0" @@ -9712,65 +7148,26 @@ unicode-match-property-ecmascript@^2.0.0: unicode-canonical-property-names-ecmascript "^2.0.0" unicode-property-aliases-ecmascript "^2.0.0" -unicode-match-property-value-ecmascript@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" - integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== +unicode-match-property-value-ecmascript@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz#65a7adfad8574c219890e219285ce4c64ed67eaa" + integrity sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg== unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + version "2.2.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz#301d4f8a43d2b75c97adfad87c9dd5350c9475d1" + integrity sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ== -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -unpipe@1.0.0, unpipe@~1.0.0: +unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - unrs-resolver@^1.7.11: version "1.11.1" resolved "https://registry.yarnpkg.com/unrs-resolver/-/unrs-resolver-1.11.1.tgz#be9cd8686c99ef53ecb96df2a473c64d304048a9" @@ -9798,31 +7195,10 @@ unrs-resolver@^1.7.11: "@unrs/resolver-binding-win32-ia32-msvc" "1.11.1" "@unrs/resolver-binding-win32-x64-msvc" "1.11.1" -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -update-browserslist-db@^1.0.10: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -update-browserslist-db@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz#7802aa2ae91477f255b86e0e46dbc787a206ad4a" - integrity sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A== +update-browserslist-db@^1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d" + integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w== dependencies: escalade "^3.2.0" picocolors "^1.1.1" @@ -9834,81 +7210,21 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-parse@^1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -v8-compile-cache@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - v8-to-istanbul@^9.0.1: version "9.3.0" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175" @@ -9918,25 +7234,20 @@ v8-to-istanbul@^9.0.1: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^2.0.0" +varint@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0" + integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== + vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - void-elements@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" - integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= + integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== w3c-xmlserializer@^5.0.0: version "5.0.0" @@ -9952,23 +7263,13 @@ walker@^1.0.8: dependencies: makeerror "1.0.12" -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== +watchpack@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.5.1.tgz#dd38b601f669e0cbf567cb802e75cead82cde102" + integrity sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg== dependencies: + glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" @@ -9982,130 +7283,128 @@ webidl-conversions@^7.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== -webpack-assets-manifest@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/webpack-assets-manifest/-/webpack-assets-manifest-3.1.1.tgz#39bbc3bf2ee57fcd8ba07cda51c9ba4a3c6ae1de" - integrity sha512-JV9V2QKc5wEWQptdIjvXDUL1ucbPLH2f27toAY3SNdGZp+xSaStAgpoMcvMZmqtFrBc9a5pTS1058vxyMPOzRQ== +webpack-assets-manifest@^5.0.6: + version "5.2.1" + resolved "https://registry.yarnpkg.com/webpack-assets-manifest/-/webpack-assets-manifest-5.2.1.tgz#7ebe4c882efdc343029ed2f54a6f7ce990406f08" + integrity sha512-MsEcXVio1GY6R+b4dVfTHIDMB0RB90KajQG8neRbH92vE2S1ClGw9mNa9NPlratYBvZOhExmN0qqMNFTaCTuIg== dependencies: - chalk "^2.0" - lodash.get "^4.0" - lodash.has "^4.0" - mkdirp "^0.5" - schema-utils "^1.0.0" - tapable "^1.0.0" - webpack-sources "^1.0.0" + chalk "^4.1.2" + deepmerge "^4.3.1" + lockfile "^1.0.4" + lodash.get "^4.4.2" + lodash.has "^4.5.2" + schema-utils "^3.3.0" + tapable "^2.2.1" -webpack-cli@^3.3.12: - version "3.3.12" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" - integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag== +webpack-cli@^4.9.2: + version "4.10.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" + integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w== dependencies: - chalk "^2.4.2" - cross-spawn "^6.0.5" - enhanced-resolve "^4.1.1" - findup-sync "^3.0.0" - global-modules "^2.0.0" - import-local "^2.0.0" - interpret "^1.4.0" - loader-utils "^1.4.0" - supports-color "^6.1.0" - v8-compile-cache "^2.1.1" - yargs "^13.3.2" + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^1.2.0" + "@webpack-cli/info" "^1.5.0" + "@webpack-cli/serve" "^1.7.0" + colorette "^2.0.14" + commander "^7.0.0" + cross-spawn "^7.0.3" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^2.2.0" + rechoir "^0.7.0" + webpack-merge "^5.7.3" -webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" - integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== +webpack-dev-middleware@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" + integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" + colorette "^2.0.10" + memfs "^3.4.3" + mime-types "^2.1.31" range-parser "^1.2.1" - webpack-log "^2.0.0" + schema-utils "^4.0.0" -webpack-dev-server@~3: - version "3.11.3" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#8c86b9d2812bf135d3c9bce6f07b718e30f7c3d3" - integrity sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA== +webpack-dev-server@^4.9.0: + version "4.15.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" + integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== dependencies: - ansi-html-community "0.0.8" - bonjour "^3.5.0" - chokidar "^2.1.8" + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.5" + ansi-html-community "^0.0.8" + bonjour-service "^1.0.11" + chokidar "^3.5.3" + colorette "^2.0.10" compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.8" - semver "^6.3.0" + connect-history-api-fallback "^2.0.0" + default-gateway "^6.0.3" + express "^4.17.3" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.3" + ipaddr.js "^2.0.1" + launch-editor "^2.6.0" + open "^8.0.9" + p-retry "^4.5.0" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.1.1" serve-index "^1.9.1" - sockjs "^0.3.21" - sockjs-client "^1.5.0" + sockjs "^0.3.24" spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" + webpack-dev-middleware "^5.3.4" + ws "^8.13.0" -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== +webpack-merge@^5.7.3, webpack-merge@^5.8.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" + integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" + clone-deep "^4.0.1" + flat "^5.0.2" + wildcard "^2.0.0" -webpack-sources@^1.0.0, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" +webpack-sources@^3.3.3: + version "3.3.4" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.4.tgz#a338b95eb484ecc75fbb196cbe8a2890618b4891" + integrity sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q== -webpack@^4.46.0, webpack@~4: - version "4.47.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.47.0.tgz#8b8a02152d7076aeb03b61b47dad2eeed9810ebc" - integrity sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ== +webpack@^5.104.0: + version "5.105.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.105.2.tgz#f3b76f9fc36f1152e156e63ffda3bbb82e6739ea" + integrity sha512-dRXm0a2qcHPUBEzVk8uph0xWSjV/xZxenQQbLwnwP7caQCYpqG1qddwlyEkIDkYn0K8tvmcrZ+bOrzoQ3HxCDw== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" + "@types/eslint-scope" "^3.7.7" + "@types/estree" "^1.0.8" + "@types/json-schema" "^7.0.15" + "@webassemblyjs/ast" "^1.14.1" + "@webassemblyjs/wasm-edit" "^1.14.1" + "@webassemblyjs/wasm-parser" "^1.14.1" + acorn "^8.15.0" + acorn-import-phases "^1.0.3" + browserslist "^4.28.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" + enhanced-resolve "^5.19.0" + es-module-lexer "^2.0.0" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.11" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.3.1" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^4.3.3" + tapable "^2.3.0" + terser-webpack-plugin "^5.3.16" + watchpack "^2.5.1" + webpack-sources "^3.3.3" websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" @@ -10141,36 +7440,7 @@ whatwg-url@^14.0.0, whatwg-url@^14.1.1: tr46 "^5.1.0" webidl-conversions "^7.0.0" -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which-typed-array@^1.1.16: - version "1.1.19" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.19.tgz#df03842e870b6b88e117524a4b364b6fc689f956" - integrity sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.8" - call-bound "^1.0.4" - for-each "^0.3.5" - get-proto "^1.0.1" - gopd "^1.2.0" - has-tostringtag "^1.0.2" - -which@^1.2.1, which@^1.2.14, which@^1.2.9, which@^1.3.1: +which@^1.2.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -10184,12 +7454,10 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" +wildcard@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" @@ -10200,15 +7468,6 @@ worker-farm@^1.7.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -10240,22 +7499,15 @@ write-file-atomic@^5.0.1: imurmurhash "^0.1.4" signal-exit "^4.0.1" -ws@^6.2.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.3.tgz#ccc96e4add5fd6fedbc491903075c85c5a11d9ee" - integrity sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA== - dependencies: - async-limiter "~1.0.0" - -ws@^8.18.0: +ws@^8.13.0, ws@^8.18.0: version "8.18.3" resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== -ws@~8.11.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" - integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== +ws@~8.17.1: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== xml-name-validator@^5.0.0: version "5.0.0" @@ -10267,70 +7519,26 @@ xmlchars@^2.2.0: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" - integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== - y18n@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" - integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^1.7.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^20.2.2: - version "20.2.7" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" - integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - yargs@^16.1.1: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"