diff --git a/backend-rails/.gitignore b/backend-rails/.gitignore index ee3ec294..14b13b1c 100644 --- a/backend-rails/.gitignore +++ b/backend-rails/.gitignore @@ -1,6 +1,7 @@ *.rbc *.swp capybara-*.html +/public /log /tmp /db/*.sqlite3 @@ -35,3 +36,6 @@ config/master.key /yarn-error.log yarn-debug.log* .yarn-integrity + +/app/assets/builds/* +!/app/assets/builds/.keep diff --git a/backend-rails/Gemfile b/backend-rails/Gemfile index c92e98fe..07935e17 100644 --- a/backend-rails/Gemfile +++ b/backend-rails/Gemfile @@ -26,6 +26,10 @@ gem 'sass-rails', '~> 6.0.0' gem 'sendgrid', '~> 1.2.4' gem 'sprockets', '~> 3.7.2' gem 'yaaf', '~> 2.2' +gem 'wicked_pdf' +# gem 'wkhtmltopdf-binary' +gem 'wkhtmltopdf-binary-edge' + # Use Redis adapter to run Action Cable in production # gem 'redis', '~> 4.0' # Use Active Model has_secure_password @@ -73,3 +77,5 @@ end # Windows does not include zoneinfo files, so bundle the tzinfo-data gem gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby] + +gem "cssbundling-rails", "~> 1.1" diff --git a/backend-rails/Gemfile.lock b/backend-rails/Gemfile.lock index 91622a71..b0f1a706 100644 --- a/backend-rails/Gemfile.lock +++ b/backend-rails/Gemfile.lock @@ -126,6 +126,8 @@ GEM crack (0.4.5) rexml crass (1.0.6) + cssbundling-rails (1.1.2) + railties (>= 6.0.0) date (3.3.3) debug_inspector (1.1.0) delayed_job (4.1.11) @@ -434,6 +436,9 @@ GEM websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) + wicked_pdf (2.6.3) + activesupport + wkhtmltopdf-binary-edge (0.12.6.0) yaaf (2.2.0) activemodel (>= 5.2) activerecord (>= 5.2) @@ -452,6 +457,7 @@ DEPENDENCIES bootsnap (~> 1.4, >= 1.4.5) brakeman (~> 5.1) bullet (~> 7.0.3) + cssbundling-rails (~> 1.1) delayed_job_active_record (~> 4.1, >= 4.1.5) devise (~> 4.7, >= 4.7.2) devise_token_auth (~> 1.2)! @@ -489,6 +495,8 @@ DEPENDENCIES tzinfo-data uglifier (~> 4.2) webmock (~> 3.7, >= 3.7.6) + wicked_pdf + wkhtmltopdf-binary-edge yaaf (~> 2.2) RUBY VERSION diff --git a/backend-rails/Procfile.dev b/backend-rails/Procfile.dev new file mode 100644 index 00000000..cb7c9aa8 --- /dev/null +++ b/backend-rails/Procfile.dev @@ -0,0 +1,2 @@ +web: unset PORT && bin/rails server +css: yarn build:css --watch diff --git a/backend-rails/app/assets/builds/.keep b/backend-rails/app/assets/builds/.keep new file mode 100644 index 00000000..e69de29b diff --git a/backend-rails/app/assets/config/manifest.js b/backend-rails/app/assets/config/manifest.js index 59181933..9a99757a 100644 --- a/backend-rails/app/assets/config/manifest.js +++ b/backend-rails/app/assets/config/manifest.js @@ -1,2 +1,2 @@ //= link_tree ../images -//= link_directory ../stylesheets .css +//= link_tree ../builds diff --git a/backend-rails/app/assets/stylesheets/application.bootstrap.scss b/backend-rails/app/assets/stylesheets/application.bootstrap.scss new file mode 100644 index 00000000..d5069579 --- /dev/null +++ b/backend-rails/app/assets/stylesheets/application.bootstrap.scss @@ -0,0 +1,15 @@ +@import 'bootstrap/scss/bootstrap'; +@import 'bootstrap-icons/font/bootstrap-icons'; + +.text_center { + text-align: center; + align-items: center; + display: flex; + +} +.flex-container { + justify-content: center; +} +.flex { + display: flex; +} diff --git a/backend-rails/app/assets/stylesheets/application.css b/backend-rails/app/assets/stylesheets/application.css deleted file mode 100644 index 3192ec89..00000000 --- a/backend-rails/app/assets/stylesheets/application.css +++ /dev/null @@ -1,13 +0,0 @@ -/* - * This is a manifest file that'll be compiled into application.css, which will include all the files - * listed below. - * - * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, - * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path. - * - * You're free to add application-wide styles to this file and they'll appear at the top of the - * compiled file, but it's generally better to create a new file per style scope. - * - *= require_self - *= require_tree . - */ diff --git a/backend-rails/app/controllers/api/v1/service_order_reports_controller.rb b/backend-rails/app/controllers/api/v1/service_order_reports_controller.rb new file mode 100644 index 00000000..81fd860f --- /dev/null +++ b/backend-rails/app/controllers/api/v1/service_order_reports_controller.rb @@ -0,0 +1,15 @@ +module Api + module V1 + class ServiceOrderReportsController < ApplicationController + def show + respond_to do |format| + format.html + format.pdf do + render pdf: "file_name", + page_size: 'A4' + end + end + end + end + end +end diff --git a/backend-rails/app/views/api/v1/service_order_reports/show.html.erb b/backend-rails/app/views/api/v1/service_order_reports/show.html.erb new file mode 100644 index 00000000..9b634dee --- /dev/null +++ b/backend-rails/app/views/api/v1/service_order_reports/show.html.erb @@ -0,0 +1,10 @@ +<%= stylesheet_link_tag :application %> + +
+ Ordem de Sevico +
+
1
+
2
+
3
+ + diff --git a/backend-rails/app/views/api/v1/service_order_reports/show.pdf.erb b/backend-rails/app/views/api/v1/service_order_reports/show.pdf.erb new file mode 100644 index 00000000..5e78ccc5 --- /dev/null +++ b/backend-rails/app/views/api/v1/service_order_reports/show.pdf.erb @@ -0,0 +1,13 @@ + + + PDF + <%= wicked_pdf_stylesheet_link_tag "application" -%> + +
+ Ordem de Sevico +
+
1
+
2
+
3
+ + diff --git a/backend-rails/app/views/layouts/pdf.html.erb b/backend-rails/app/views/layouts/pdf.html.erb new file mode 100644 index 00000000..6a7d41b0 --- /dev/null +++ b/backend-rails/app/views/layouts/pdf.html.erb @@ -0,0 +1,14 @@ + + + + Page title + + <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': + 'reload' %> + <%= wicked_pdf_stylesheet_link_tag "styles" %> + <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload'%> + + + <%= yield %> + + diff --git a/backend-rails/bin/dev b/backend-rails/bin/dev new file mode 100755 index 00000000..74ade166 --- /dev/null +++ b/backend-rails/bin/dev @@ -0,0 +1,8 @@ +#!/usr/bin/env sh + +if ! gem list foreman -i --silent; then + echo "Installing foreman..." + gem install foreman +fi + +exec foreman start -f Procfile.dev "$@" diff --git a/backend-rails/config/database.yml b/backend-rails/config/database.yml index a2f21899..ea76f067 100644 --- a/backend-rails/config/database.yml +++ b/backend-rails/config/database.yml @@ -2,8 +2,9 @@ default: &default adapter: postgresql encoding: unicode pool: 5 - username: postgres - password: postgres + username: edimo + # password: postgres + password: host: <%= ENV['DEV_DATABASE_HOST'] || 'db' %> port: 5432 diff --git a/backend-rails/config/initializers/assets.rb b/backend-rails/config/initializers/assets.rb index 5a98a7e0..ae718d71 100644 --- a/backend-rails/config/initializers/assets.rb +++ b/backend-rails/config/initializers/assets.rb @@ -5,8 +5,10 @@ # Add additional assets to the asset load path. # Rails.application.config.assets.paths << Emoji.images_path +Rails.application.config.assets.paths << Rails.root.join("node_modules/bootstrap-icons/font") # Add Yarn node_modules folder to the asset load path. Rails.application.config.assets.paths << Rails.root.join('node_modules') +Rails.application.config.assets.paths << Rails.root.join("node_modules/bootstrap-icons/font") # Precompile additional assets. # application.js, application.css, and all non-JS/CSS in the app/assets diff --git a/backend-rails/config/initializers/wicked_pdf.rb b/backend-rails/config/initializers/wicked_pdf.rb new file mode 100644 index 00000000..37c38793 --- /dev/null +++ b/backend-rails/config/initializers/wicked_pdf.rb @@ -0,0 +1,30 @@ +# WickedPDF Global Configuration +# +# Use this to set up shared configuration options for your entire application. +# Any of the configuration options shown here can also be applied to single +# models by passing arguments to the `render :pdf` call. +# +# To learn more, check out the README: +# +# https://github.com/mileszs/wicked_pdf/blob/master/README.md + +WickedPdf.config = { + # Path to the wkhtmltopdf executable: This usually isn't needed if using + # one of the wkhtmltopdf-binary family of gems. + # exe_path: '/usr/local/bin/wkhtmltopdf', + # or + # exe_path: Gem.bin_path('wkhtmltopdf-binary', 'wkhtmltopdf') + + # Needed for wkhtmltopdf 0.12.6+ to use many wicked_pdf asset helpers + # enable_local_file_access: true, + + # Layout file to be used for all PDFs + # (but can be overridden in `render :pdf` calls) + # layout: 'pdf.html', + + # Using wkhtmltopdf without an X server can be achieved by enabling the + # 'use_xvfb' flag. This will wrap all wkhtmltopdf commands around the + # 'xvfb-run' command, in order to simulate an X server. + # + # use_xvfb: true, +} diff --git a/backend-rails/config/routes.rb b/backend-rails/config/routes.rb index 57317882..0895643a 100644 --- a/backend-rails/config/routes.rb +++ b/backend-rails/config/routes.rb @@ -16,6 +16,7 @@ resources :customers, only: %i[index create destroy update] resources :sales_units, only: %i[index] resources :service_orders, only: %i[index create destroy update] + resources :service_order_reports, only: %i[show] get :status, to: 'api#status' diff --git a/backend-rails/package.json b/backend-rails/package.json new file mode 100644 index 00000000..01730789 --- /dev/null +++ b/backend-rails/package.json @@ -0,0 +1,13 @@ +{ + "name": "app", + "private": "true", + "dependencies": { + "@popperjs/core": "^2.11.6", + "bootstrap": "^5.2.3", + "bootstrap-icons": "^1.10.3", + "sass": "^1.59.2" + }, + "scripts": { + "build:css": "sass ./app/assets/stylesheets/application.bootstrap.scss:./app/assets/builds/application.css --no-source-map --load-path=node_modules" + } +} diff --git a/backend-rails/yarn.lock b/backend-rails/yarn.lock index 09fea574..d05625f4 100644 --- a/backend-rails/yarn.lock +++ b/backend-rails/yarn.lock @@ -2,62 +2,138 @@ # yarn lockfile v1 -"@activeadmin/activeadmin@^2.9.0": - version "2.9.0" - resolved "https://registry.yarnpkg.com/@activeadmin/activeadmin/-/activeadmin-2.9.0.tgz#ad277ef4a49b250377afd3df615f9acc3c84d577" - integrity sha512-KZqr1MrvpCXN/8SCF4MgqGscmuWPHivz5RPHKR9R8bKIB0InUHm7tzQoQOT9ZdYuHCBkf3cqlzBoKNNNV3x3ww== +"@popperjs/core@^2.11.6": + version "2.11.6" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45" + integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: - jquery "^3.4.1" - jquery-ui "^1.12.1" - jquery-ujs "^1.2.2" + normalize-path "^3.0.0" + picomatch "^2.0.4" + +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== + +bootstrap-icons@^1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/bootstrap-icons/-/bootstrap-icons-1.10.3.tgz#c587b078ca6743bef4653fe90434b4aebfba53b2" + integrity sha512-7Qvj0j0idEm/DdX9Q0CpxAnJYqBCFCiUI6qzSPYfERMcokVuV9Mdm/AJiVZI8+Gawe4h/l6zFcOzvV7oXCZArw== -"@rails/actioncable@^7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-7.0.3.tgz#71f08e958883af64f6a20489318b5e95d2c6dc5b" - integrity sha512-Iefl21FZD+ck1di6xSHMYzSzRiNJTHV4NrAzCfDfqc/wPz4xncrP8f2/fJ+2jzwKIaDn76UVMsALh7R5OzsF8Q== +bootstrap@^5.2.3: + version "5.2.3" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.2.3.tgz#54739f4414de121b9785c5da3c87b37ff008322b" + integrity sha512-cEKPM+fwb3cT8NzQZYEu4HilJ3anCrWqh3CHAok1p9jXqMPsPTBhU25fBckEJHJ/p+tTxTFTsFQGM+gaHpi3QQ== + +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" -"@rails/activestorage@^7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@rails/activestorage/-/activestorage-7.0.3.tgz#516770d49f702bb2b746a826779465a513804003" - integrity sha512-pdIoQUNcimjbSlhUgnRyFimVvsp/J9C1yTxV3P40oQrRU81f3uM9tT4IY/wMfe691Zj7tJBiqsbThUoPT88TAA== +"chokidar@>=3.0.0 <4.0.0": + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: - spark-md5 "^3.0.1" + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" -"@rails/ujs@^7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-7.0.3.tgz#3bb98db34460ad61ef3cd2684401a444a0347bbb" - integrity sha512-u/F5LOFD1255859xEmb+3dHEI9Gnh5zVsjp6Pc++GGoMUei8vfOEPE9pvWuK01PbarIFfZz5D658gFRhs3dVpw== +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" -arctic_admin@3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/arctic_admin/-/arctic_admin-3.2.2.tgz#241dddc987199e8f03dddbb54bef2b9d20b9932b" - integrity sha512-Itl/X92jfy9phYobZZlxDTROc5pgAt4CnlLcLj1T9zMcRb0M73RxXCNij6ZLLMzM2wcMG8eubvFum3fKdThZ/Q== +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== -jquery-ui@^1.12.1: - version "1.13.2" - resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.13.2.tgz#de03580ae6604773602f8d786ad1abfb75232034" - integrity sha512-wBZPnqWs5GaYJmo1Jj0k/mrSkzdQzKDwhXNtHKcBdAcKVxMM3KNYFq+iJ2i1rwiG53Z8M4mTn3Qxrm17uH1D4Q== +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: - jquery ">=1.8.0 <4.0.0" + is-glob "^4.0.1" + +immutable@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" + integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg== -jquery-ujs@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jquery-ujs/-/jquery-ujs-1.2.2.tgz#6a8ef1020e6b6dda385b90a4bddc128c21c56397" - integrity sha1-ao7xAg5rbdo4W5CkvdwSjCHFY5c= +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: - jquery ">=1.8.0" + binary-extensions "^2.0.0" -jquery@>=1.8.0, "jquery@>=1.8.0 <4.0.0", jquery@^3.4.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 sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.1, 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-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== + +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== + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" - integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" -spark-md5@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.2.tgz#7952c4a30784347abcee73268e473b9c0167e3fc" - integrity sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw== +sass@^1.59.2: + version "1.59.2" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.59.2.tgz#537f6d11614d4f20f97696f23ad358ee398b1937" + integrity sha512-jJyO6SmbzkJexF8MUorHx5tAilcgabioYxT/BHbY4+OvoqmbHxsYlrjZ8Adhqcgl6Zqwie0TgMXLCAmPFxXOuw== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" -turbolinks@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/turbolinks/-/turbolinks-5.2.0.tgz#e6877a55ea5c1cb3bb225f0a4ae303d6d32ff77c" - integrity sha512-pMiez3tyBo6uRHFNNZoYMmrES/IaGgMhQQM+VFF36keryjb5ms0XkVpmKHkfW/4Vy96qiGW3K9bz0tF5sK9bBw== +"source-map-js@>=0.6.2 <2.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +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" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0"