├── log └── .keep ├── storage └── .keep ├── tmp └── .keep ├── vendor └── .keep ├── lib ├── assets │ └── .keep └── tasks │ └── .keep ├── public ├── favicon.ico ├── apple-touch-icon.png ├── apple-touch-icon-precomposed.png ├── robots.txt ├── 500.html ├── 422.html └── 404.html ├── .ruby-version ├── app ├── assets │ ├── builds │ │ └── .keep │ ├── images │ │ └── .keep │ ├── config │ │ └── manifest.js │ └── stylesheets │ │ ├── application.css │ │ └── scaffolds.scss ├── models │ ├── concerns │ │ └── .keep │ ├── article.rb │ └── application_record.rb ├── controllers │ ├── concerns │ │ └── .keep │ ├── application_controller.rb │ ├── welcome_controller.rb │ └── articles_controller.rb ├── views │ ├── layouts │ │ ├── mailer.text.erb │ │ ├── mailer.html.erb │ │ └── application.html.erb │ ├── articles │ │ ├── show.json.jbuilder │ │ ├── index.json.jbuilder │ │ ├── new.html.erb │ │ ├── _article.json.jbuilder │ │ ├── edit.html.erb │ │ ├── show.html.erb │ │ ├── index.html.erb │ │ └── _form.html.erb │ └── welcome │ │ └── index.html.erb ├── helpers │ ├── welcome_helper.rb │ ├── articles_helper.rb │ └── application_helper.rb ├── channels │ └── application_cable │ │ ├── channel.rb │ │ └── connection.rb ├── mailers │ └── application_mailer.rb ├── javascript │ ├── channels │ │ ├── index.js │ │ └── consumer.js │ └── application.js └── jobs │ └── application_job.rb ├── .browserslistrc ├── .rspec ├── .env.example ├── Procfile.dev ├── bin ├── rake ├── rails ├── dev ├── yarn └── setup ├── config ├── spring.rb ├── routes.rb ├── environment.rb ├── initializers │ ├── mime_types.rb │ ├── application_controller_renderer.rb │ ├── cookies_serializer.rb │ ├── filter_parameter_logging.rb │ ├── feature_policy.rb │ ├── wrap_parameters.rb │ ├── backtrace_silencers.rb │ ├── assets.rb │ ├── inflections.rb │ ├── content_security_policy.rb │ └── new_framework_defaults_6_1.rb ├── boot.rb ├── cable.yml ├── credentials.yml.enc ├── webpack │ └── webpack.config.js ├── locales │ └── en.yml ├── storage.yml ├── application.rb ├── puma.rb ├── environments │ ├── test.rb │ ├── development.rb │ └── production.rb └── database.yml ├── spec ├── models │ └── article_spec.rb ├── views │ ├── welcome │ │ └── index.html.erb_spec.rb │ └── articles │ │ ├── show.html.erb_spec.rb │ │ ├── new.html.erb_spec.rb │ │ ├── edit.html.erb_spec.rb │ │ └── index.html.erb_spec.rb ├── requests │ └── articles_spec.rb ├── controllers │ ├── welcome_controller_spec.rb │ └── articles_controller_spec.rb ├── helpers │ ├── welcome_helper_spec.rb │ └── articles_helper_spec.rb ├── routing │ └── articles_routing_spec.rb ├── rails_helper.rb └── spec_helper.rb ├── config.ru ├── .dockerignore ├── Rakefile ├── db ├── migrate │ └── 20190831060536_create_articles.rb ├── seeds.rb └── schema.rb ├── postcss.config.js ├── .dockerdev └── entrypoint.sh ├── .github ├── dependabot.yml └── workflows │ ├── javascript.yml │ └── ruby.yml ├── package.json ├── Dockerfile ├── docker-compose.yml ├── .gitignore ├── Gemfile ├── babel.config.js ├── README.md ├── .rubocop.yml ├── Gemfile.lock └── yarn.lock /log/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /storage/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tmp/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib/tasks/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 3.2.2 2 | -------------------------------------------------------------------------------- /app/assets/builds/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/assets/images/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.browserslistrc: -------------------------------------------------------------------------------- 1 | defaults 2 | -------------------------------------------------------------------------------- /app/models/concerns/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/apple-touch-icon.png: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.rspec: -------------------------------------------------------------------------------- 1 | --require spec_helper 2 | -------------------------------------------------------------------------------- /app/controllers/concerns/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/apple-touch-icon-precomposed.png: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/views/layouts/mailer.text.erb: -------------------------------------------------------------------------------- 1 | <%= yield %> 2 | -------------------------------------------------------------------------------- /app/helpers/welcome_helper.rb: -------------------------------------------------------------------------------- 1 | module WelcomeHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/articles_helper.rb: -------------------------------------------------------------------------------- 1 | module ArticlesHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/models/article.rb: -------------------------------------------------------------------------------- 1 | class Article < ApplicationRecord 2 | end 3 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | PGHOST=db 2 | PGUSER=postgres 3 | PGPASSWORD=changeme 4 | -------------------------------------------------------------------------------- /Procfile.dev: -------------------------------------------------------------------------------- 1 | web: bin/rails server -p 3000 2 | js: yarn build --watch 3 | -------------------------------------------------------------------------------- /app/helpers/application_helper.rb: -------------------------------------------------------------------------------- 1 | module ApplicationHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/views/articles/show.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.partial! "articles/article", article: @article 2 | -------------------------------------------------------------------------------- /app/views/welcome/index.html.erb: -------------------------------------------------------------------------------- 1 |

Welcome

2 | 3 | <%= link_to "Articles", articles_path %> 4 | -------------------------------------------------------------------------------- /app/controllers/application_controller.rb: -------------------------------------------------------------------------------- 1 | class ApplicationController < ActionController::Base 2 | end 3 | -------------------------------------------------------------------------------- /app/views/articles/index.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.array! @articles, partial: "articles/article", as: :article 2 | -------------------------------------------------------------------------------- /bin/rake: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require_relative "../config/boot" 3 | require "rake" 4 | Rake.application.run 5 | -------------------------------------------------------------------------------- /app/controllers/welcome_controller.rb: -------------------------------------------------------------------------------- 1 | class WelcomeController < ApplicationController 2 | def index 3 | end 4 | end 5 | -------------------------------------------------------------------------------- /app/models/application_record.rb: -------------------------------------------------------------------------------- 1 | class ApplicationRecord < ActiveRecord::Base 2 | self.abstract_class = true 3 | end 4 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # See https://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file 2 | -------------------------------------------------------------------------------- /app/assets/config/manifest.js: -------------------------------------------------------------------------------- 1 | //= link_tree ../images 2 | //= link_directory ../stylesheets .css 3 | //= link_tree ../builds 4 | -------------------------------------------------------------------------------- /app/channels/application_cable/channel.rb: -------------------------------------------------------------------------------- 1 | module ApplicationCable 2 | class Channel < ActionCable::Channel::Base 3 | end 4 | end 5 | -------------------------------------------------------------------------------- /config/spring.rb: -------------------------------------------------------------------------------- 1 | Spring.watch( 2 | ".ruby-version", 3 | ".rbenv-vars", 4 | "tmp/restart.txt", 5 | "tmp/caching-dev.txt" 6 | ) 7 | -------------------------------------------------------------------------------- /app/channels/application_cable/connection.rb: -------------------------------------------------------------------------------- 1 | module ApplicationCable 2 | class Connection < ActionCable::Connection::Base 3 | end 4 | end 5 | -------------------------------------------------------------------------------- /app/mailers/application_mailer.rb: -------------------------------------------------------------------------------- 1 | class ApplicationMailer < ActionMailer::Base 2 | default from: 'from@example.com' 3 | layout 'mailer' 4 | end 5 | -------------------------------------------------------------------------------- /app/views/articles/new.html.erb: -------------------------------------------------------------------------------- 1 |

New Article

2 | 3 | <%= render 'form', article: @article %> 4 | 5 | <%= link_to 'Back', articles_path %> 6 | -------------------------------------------------------------------------------- /config/routes.rb: -------------------------------------------------------------------------------- 1 | Rails.application.routes.draw do 2 | get 'welcome/index' 3 | 4 | resources :articles 5 | 6 | root 'welcome#index' 7 | end 8 | -------------------------------------------------------------------------------- /app/views/articles/_article.json.jbuilder: -------------------------------------------------------------------------------- 1 | json.extract! article, :id, :title, :text, :created_at, :updated_at 2 | json.url article_url(article, format: :json) 3 | -------------------------------------------------------------------------------- /bin/rails: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | APP_PATH = File.expand_path('../config/application', __dir__) 3 | require_relative "../config/boot" 4 | require "rails/commands" 5 | -------------------------------------------------------------------------------- /config/environment.rb: -------------------------------------------------------------------------------- 1 | # Load the Rails application. 2 | require_relative "application" 3 | 4 | # Initialize the Rails application. 5 | Rails.application.initialize! 6 | -------------------------------------------------------------------------------- /spec/models/article_spec.rb: -------------------------------------------------------------------------------- 1 | require 'rails_helper' 2 | 3 | RSpec.describe Article, type: :model do 4 | pending "add some examples to (or delete) #{__FILE__}" 5 | end 6 | -------------------------------------------------------------------------------- /config.ru: -------------------------------------------------------------------------------- 1 | # This file is used by Rack-based servers to start the application. 2 | 3 | require_relative "config/environment" 4 | 5 | run Rails.application 6 | Rails.application.load_server 7 | -------------------------------------------------------------------------------- /app/views/articles/edit.html.erb: -------------------------------------------------------------------------------- 1 |

Editing Article

2 | 3 | <%= render 'form', article: @article %> 4 | 5 | <%= link_to 'Show', @article %> | 6 | <%= link_to 'Back', articles_path %> 7 | -------------------------------------------------------------------------------- /bin/dev: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if ! command -v foreman &> /dev/null 4 | then 5 | echo "Installing foreman..." 6 | gem install foreman 7 | fi 8 | 9 | foreman start -f Procfile.dev 10 | -------------------------------------------------------------------------------- /spec/views/welcome/index.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require 'rails_helper' 2 | 3 | RSpec.describe "welcome/index.html.erb", type: :view do 4 | pending "add some examples to (or delete) #{__FILE__}" 5 | end 6 | -------------------------------------------------------------------------------- /config/initializers/mime_types.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new mime types for use in respond_to blocks: 4 | # Mime::Type.register "text/richtext", :rtf 5 | -------------------------------------------------------------------------------- /config/boot.rb: -------------------------------------------------------------------------------- 1 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) 2 | 3 | require "bundler/setup" # Set up gems listed in the Gemfile. 4 | require "bootsnap/setup" # Speed up boot time by caching expensive operations. 5 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | # Git 2 | .git 3 | .gitignore 4 | 5 | # Logs 6 | log/* 7 | 8 | # Temp files 9 | tmp/* 10 | 11 | # Ignore node_modules 12 | node_modules 13 | 14 | # Ignore locally installed gems 15 | vendor/bundle/**/* 16 | vendor/bundle -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | # Add your own tasks in files placed in lib/tasks ending in .rake, 2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 3 | 4 | require_relative 'config/application' 5 | 6 | Rails.application.load_tasks 7 | -------------------------------------------------------------------------------- /config/cable.yml: -------------------------------------------------------------------------------- 1 | development: 2 | adapter: async 3 | 4 | test: 5 | adapter: test 6 | 7 | production: 8 | adapter: redis 9 | url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %> 10 | channel_prefix: railsondocker_production 11 | -------------------------------------------------------------------------------- /app/javascript/channels/index.js: -------------------------------------------------------------------------------- 1 | // Load all the channels within this directory and all subdirectories. 2 | // Channel files must be named *_channel.js. 3 | 4 | const channels = require.context('.', true, /_channel\.js$/) 5 | channels.keys().forEach(channels) 6 | -------------------------------------------------------------------------------- /db/migrate/20190831060536_create_articles.rb: -------------------------------------------------------------------------------- 1 | class CreateArticles < ActiveRecord::Migration[6.0] 2 | def change 3 | create_table :articles do |t| 4 | t.string :title 5 | t.text :text 6 | 7 | t.timestamps 8 | end 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /config/initializers/application_controller_renderer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # ActiveSupport::Reloader.to_prepare do 4 | # ApplicationController.renderer.defaults.merge!( 5 | # http_host: 'example.org', 6 | # https: false 7 | # ) 8 | # end 9 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: [ 3 | require('postcss-import'), 4 | require('postcss-flexbugs-fixes'), 5 | require('postcss-preset-env')({ 6 | autoprefixer: { 7 | flexbox: 'no-2009' 8 | }, 9 | stage: 3 10 | }) 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /config/initializers/cookies_serializer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Specify a serializer for the signed and encrypted cookie jars. 4 | # Valid options are :json, :marshal, and :hybrid. 5 | Rails.application.config.action_dispatch.cookies_serializer = :json 6 | -------------------------------------------------------------------------------- /spec/requests/articles_spec.rb: -------------------------------------------------------------------------------- 1 | require 'rails_helper' 2 | 3 | RSpec.describe "Articles", type: :request do 4 | describe "GET /articles" do 5 | it "works! (now write some real specs)" do 6 | get articles_path 7 | expect(response).to have_http_status(200) 8 | end 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /app/javascript/channels/consumer.js: -------------------------------------------------------------------------------- 1 | // Action Cable provides the framework to deal with WebSockets in Rails. 2 | // You can generate new channels where WebSocket features live using the `rails generate channel` command. 3 | 4 | import { createConsumer } from "@rails/actioncable" 5 | 6 | export default createConsumer() 7 | -------------------------------------------------------------------------------- /app/jobs/application_job.rb: -------------------------------------------------------------------------------- 1 | class ApplicationJob < ActiveJob::Base 2 | # Automatically retry jobs that encountered a deadlock 3 | # retry_on ActiveRecord::Deadlocked 4 | 5 | # Most jobs are safe to ignore if the underlying records are no longer available 6 | # discard_on ActiveJob::DeserializationError 7 | end 8 | -------------------------------------------------------------------------------- /app/views/layouts/mailer.html.erb: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 11 | <%= yield %> 12 | 13 | 14 | -------------------------------------------------------------------------------- /bin/yarn: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | APP_ROOT = File.expand_path('..', __dir__) 3 | Dir.chdir(APP_ROOT) do 4 | exec "yarn", *ARGV 5 | rescue Errno::ENOENT 6 | $stderr.puts "Yarn executable was not detected in the system." 7 | $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install" 8 | exit 1 9 | end 10 | -------------------------------------------------------------------------------- /config/initializers/filter_parameter_logging.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Configure sensitive parameters which will be filtered from the log file. 4 | Rails.application.config.filter_parameters += [ 5 | :passw, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn 6 | ] 7 | -------------------------------------------------------------------------------- /spec/controllers/welcome_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'rails_helper' 2 | 3 | RSpec.describe WelcomeController, type: :controller do 4 | 5 | describe "GET #index" do 6 | it "returns http success" do 7 | get :index 8 | expect(response).to have_http_status(:success) 9 | end 10 | end 11 | 12 | end 13 | -------------------------------------------------------------------------------- /app/views/articles/show.html.erb: -------------------------------------------------------------------------------- 1 |

<%= notice %>

2 | 3 |

4 | Title: 5 | <%= @article.title %> 6 |

7 | 8 |

9 | Text: 10 | <%= @article.text %> 11 |

12 | 13 | <%= link_to 'Edit', edit_article_path(@article) %> | 14 | <%= link_to 'Back', articles_path %> 15 | -------------------------------------------------------------------------------- /.dockerdev/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | # Remove a potentially pre-existing server.pid for Rails. 5 | rm -f /usr/src/app/tmp/pids/server.pid 6 | 7 | echo "bundle install..." 8 | bundle check || bundle install --jobs 4 9 | 10 | echo "yarn install..." 11 | yarn install 12 | 13 | # Then exec the container's main process (what's set as CMD in the Dockerfile). 14 | exec "$@" 15 | -------------------------------------------------------------------------------- /app/javascript/application.js: -------------------------------------------------------------------------------- 1 | // Entry point for the build script in your package.json 2 | 3 | import Rails from "@rails/ujs" 4 | import Turbolinks from "turbolinks" 5 | import * as ActiveStorage from "@rails/activestorage" 6 | import "./channels" 7 | 8 | Rails.start() 9 | Turbolinks.start() 10 | ActiveStorage.start() 11 | 12 | console.log('Hello World from jsbundling-rails with webpack'); 13 | -------------------------------------------------------------------------------- /db/seeds.rb: -------------------------------------------------------------------------------- 1 | # This file should contain all the record creation needed to seed the database with its default values. 2 | # The data can then be loaded with the rails db:seed command (or created alongside the database with db:setup). 3 | # 4 | # Examples: 5 | # 6 | # movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }]) 7 | # Character.create(name: 'Luke', movie: movies.first) 8 | -------------------------------------------------------------------------------- /spec/views/articles/show.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require 'rails_helper' 2 | 3 | RSpec.describe "articles/show", type: :view do 4 | before(:each) do 5 | @article = assign(:article, Article.create!( 6 | :title => "Title", 7 | :text => "MyText" 8 | )) 9 | end 10 | 11 | it "renders attributes in

" do 12 | render 13 | expect(rendered).to match(/Title/) 14 | expect(rendered).to match(/MyText/) 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /config/initializers/feature_policy.rb: -------------------------------------------------------------------------------- 1 | # Define an application-wide HTTP feature policy. For further 2 | # information see https://developers.google.com/web/updates/2018/06/feature-policy 3 | # 4 | # Rails.application.config.feature_policy do |f| 5 | # f.camera :none 6 | # f.gyroscope :none 7 | # f.microphone :none 8 | # f.usb :none 9 | # f.fullscreen :self 10 | # f.payment :self, "https://secure.example.com" 11 | # end 12 | -------------------------------------------------------------------------------- /config/credentials.yml.enc: -------------------------------------------------------------------------------- 1 | SnclMtwJe3Gq9MfM+Ua+BF6vN726Vl72i2n8ona/FNc+p36bTm/8QPIsTQLQuabG0STCS4nZznWlG/10qO3HOp1TSipLtQPdAsr6U4X0A58fhNXX8qWrdfjX6K2BZC+rHuQElXrqkoCCCypUgb/L9TDc84LPVcHzoRC2CLI5wQT3mOfnpdpz3wewJX/nvcnXqQa0JQ1TOlTsAGKPG7siO4v1x/jQ5TpnxUiswg4XmyXyqQIZsgfBniN6alu7EaNtlJ23LJQKP12hNslYcAS4gackHq8hi+pxirR/Go9ieR3HJyCEGiPDIkJV7PskOiQZqYDXrYR6NFlG18KUYGsjEKzvwRDnxgO6HHq/6QHvSVGGsF7+PRvEUiUUe60kKg3sbs6ohoAhblINY0gT/1pvkA+J0FWg1GnCW9bX--MGvxyBCkkZBlnmla--XvoRQdspWzkRUn6DHUDObw== -------------------------------------------------------------------------------- /spec/helpers/welcome_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require 'rails_helper' 2 | 3 | # Specs in this file have access to a helper object that includes 4 | # the WelcomeHelper. For example: 5 | # 6 | # describe WelcomeHelper do 7 | # describe "string concat" do 8 | # it "concats two strings with spaces" do 9 | # expect(helper.concat_strings("this","that")).to eq("this that") 10 | # end 11 | # end 12 | # end 13 | RSpec.describe WelcomeHelper, type: :helper do 14 | pending "add some examples to (or delete) #{__FILE__}" 15 | end 16 | -------------------------------------------------------------------------------- /spec/helpers/articles_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require 'rails_helper' 2 | 3 | # Specs in this file have access to a helper object that includes 4 | # the ArticlesHelper. For example: 5 | # 6 | # describe ArticlesHelper do 7 | # describe "string concat" do 8 | # it "concats two strings with spaces" do 9 | # expect(helper.concat_strings("this","that")).to eq("this that") 10 | # end 11 | # end 12 | # end 13 | RSpec.describe ArticlesHelper, type: :helper do 14 | pending "add some examples to (or delete) #{__FILE__}" 15 | end 16 | -------------------------------------------------------------------------------- /config/webpack/webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require("path") 2 | const webpack = require("webpack") 3 | 4 | module.exports = { 5 | mode: "production", 6 | devtool: "source-map", 7 | entry: { 8 | application: "./app/javascript/application.js" 9 | }, 10 | output: { 11 | filename: "[name].js", 12 | sourceMapFilename: "[name].js.map", 13 | path: path.resolve(__dirname, '..', '..', 'app/assets/builds'), 14 | }, 15 | plugins: [ 16 | new webpack.optimize.LimitChunkCountPlugin({ 17 | maxChunks: 1 18 | }) 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /spec/views/articles/new.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require 'rails_helper' 2 | 3 | RSpec.describe "articles/new", type: :view do 4 | before(:each) do 5 | assign(:article, Article.new( 6 | :title => "MyString", 7 | :text => "MyText" 8 | )) 9 | end 10 | 11 | it "renders new article form" do 12 | render 13 | 14 | assert_select "form[action=?][method=?]", articles_path, "post" do 15 | 16 | assert_select "input[name=?]", "article[title]" 17 | 18 | assert_select "textarea[name=?]", "article[text]" 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /config/initializers/wrap_parameters.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # This file contains settings for ActionController::ParamsWrapper which 4 | # is enabled by default. 5 | 6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. 7 | ActiveSupport.on_load(:action_controller) do 8 | wrap_parameters format: [:json] 9 | end 10 | 11 | # To enable root element in JSON for ActiveRecord objects. 12 | # ActiveSupport.on_load(:active_record) do 13 | # self.include_root_in_json = true 14 | # end 15 | -------------------------------------------------------------------------------- /config/initializers/backtrace_silencers.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. 4 | # Rails.backtrace_cleaner.add_silencer { |line| /my_noisy_library/.match?(line) } 5 | 6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code 7 | # by setting BACKTRACE=1 before calling your invocation, like "BACKTRACE=1 ./bin/rails runner 'MyClass.perform'". 8 | Rails.backtrace_cleaner.remove_silencers! if ENV["BACKTRACE"] 9 | -------------------------------------------------------------------------------- /spec/views/articles/edit.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require 'rails_helper' 2 | 3 | RSpec.describe "articles/edit", type: :view do 4 | before(:each) do 5 | @article = assign(:article, Article.create!( 6 | :title => "MyString", 7 | :text => "MyText" 8 | )) 9 | end 10 | 11 | it "renders the edit article form" do 12 | render 13 | 14 | assert_select "form[action=?][method=?]", article_path(@article), "post" do 15 | 16 | assert_select "input[name=?]", "article[title]" 17 | 18 | assert_select "textarea[name=?]", "article[text]" 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /app/views/layouts/application.html.erb: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Railsondocker 8 | <%= csrf_meta_tags %> 9 | <%= csp_meta_tag %> 10 | 11 | <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> 12 | <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload', defer: true %> 13 | 14 | 15 | 16 | <%= yield %> 17 | 18 | 19 | -------------------------------------------------------------------------------- /spec/views/articles/index.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require 'rails_helper' 2 | 3 | RSpec.describe "articles/index", type: :view do 4 | before(:each) do 5 | assign(:articles, [ 6 | Article.create!( 7 | :title => "Title", 8 | :text => "MyText" 9 | ), 10 | Article.create!( 11 | :title => "Title", 12 | :text => "MyText" 13 | ) 14 | ]) 15 | end 16 | 17 | it "renders a list of articles" do 18 | render 19 | assert_select "tr>td", :text => "Title".to_s, :count => 2 20 | assert_select "tr>td", :text => "MyText".to_s, :count => 2 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: docker 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | - package-ecosystem: bundler 8 | directory: "/" 9 | schedule: 10 | interval: daily 11 | ignore: 12 | - dependency-name: "rails" 13 | update-types: ["version-update:semver-major", "version-update:semver-minor"] 14 | - package-ecosystem: npm 15 | directory: "/" 16 | schedule: 17 | interval: daily 18 | pull-request-branch-name: 19 | separator: "-" 20 | - package-ecosystem: github-actions 21 | directory: "/" 22 | schedule: 23 | interval: daily 24 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "railsondocker", 3 | "private": true, 4 | "dependencies": { 5 | "@babel/core": "^7.24.0", 6 | "@babel/preset-env": "^7.24.0", 7 | "@rails/actioncable": "^7.1.3", 8 | "@rails/activestorage": "^7.1.2", 9 | "@rails/ujs": "^7.1.2", 10 | "semver": "^7.6.0", 11 | "turbolinks": "^5.2.0", 12 | "webpack": "^5.90.3", 13 | "webpack-cli": "^5.1.1" 14 | }, 15 | "version": "0.1.0", 16 | "scripts": { 17 | "build": "webpack --config ./config/webpack/webpack.config.js" 18 | }, 19 | "resolutions": { 20 | "semver": "^7.5.2" 21 | }, 22 | "babel": { 23 | "presets": [ 24 | "@babel/env" 25 | ] 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /config/initializers/assets.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Version of your assets, change this if you want to expire all your assets. 4 | Rails.application.config.assets.version = '1.0' 5 | 6 | # Add additional assets to the asset load path. 7 | # Rails.application.config.assets.paths << Emoji.images_path 8 | # Add Yarn node_modules folder to the asset load path. 9 | Rails.application.config.assets.paths << Rails.root.join('node_modules') 10 | 11 | # Precompile additional assets. 12 | # application.js, application.css, and all non-JS/CSS in the app/assets 13 | # folder are already added. 14 | # Rails.application.config.assets.precompile += %w( admin.js admin.css ) 15 | -------------------------------------------------------------------------------- /config/initializers/inflections.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new inflection rules using the following format. Inflections 4 | # are locale specific, and you may define rules for as many different 5 | # locales as you wish. All of these examples are active by default: 6 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 7 | # inflect.plural /^(ox)$/i, '\1en' 8 | # inflect.singular /^(ox)en/i, '\1' 9 | # inflect.irregular 'person', 'people' 10 | # inflect.uncountable %w( fish sheep ) 11 | # end 12 | 13 | # These inflection rules are supported but not enabled by default: 14 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 15 | # inflect.acronym 'RESTful' 16 | # end 17 | -------------------------------------------------------------------------------- /app/views/articles/index.html.erb: -------------------------------------------------------------------------------- 1 |

<%= notice %>

2 | 3 |

Articles

4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | <% @articles.each do |article| %> 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | <% end %> 24 | 25 |
TitleText
<%= article.title %><%= article.text %><%= link_to 'Show', article %><%= link_to 'Edit', edit_article_path(article) %><%= link_to 'Destroy', article, method: :delete, data: { confirm: 'Are you sure?' } %>
26 | 27 |
28 | 29 | <%= link_to 'New Article', new_article_path %> 30 | -------------------------------------------------------------------------------- /app/views/articles/_form.html.erb: -------------------------------------------------------------------------------- 1 | <%= form_with(model: article, local: true) do |form| %> 2 | <% if article.errors.any? %> 3 |
4 |

<%= pluralize(article.errors.count, "error") %> prohibited this article from being saved:

5 | 6 | 11 |
12 | <% end %> 13 | 14 |
15 | <%= form.label :title %> 16 | <%= form.text_field :title %> 17 |
18 | 19 |
20 | <%= form.label :text %> 21 | <%= form.text_area :text %> 22 |
23 | 24 |
25 | <%= form.submit %> 26 |
27 | <% end %> 28 | -------------------------------------------------------------------------------- /app/assets/stylesheets/application.css: -------------------------------------------------------------------------------- 1 | /* 2 | * This is a manifest file that'll be compiled into application.css, which will include all the files 3 | * listed below. 4 | * 5 | * Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's 6 | * vendor/assets/stylesheets directory can be referenced here using a relative path. 7 | * 8 | * You're free to add application-wide styles to this file and they'll appear at the bottom of the 9 | * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS 10 | * files in this directory. Styles in this file should be added after the last require_* statement. 11 | * It is generally better to create a new file per style scope. 12 | * 13 | *= require_tree . 14 | *= require_self 15 | */ 16 | -------------------------------------------------------------------------------- /config/locales/en.yml: -------------------------------------------------------------------------------- 1 | # Files in the config/locales directory are used for internationalization 2 | # and are automatically loaded by Rails. If you want to use locales other 3 | # than English, add the necessary files in this directory. 4 | # 5 | # To use the locales, use `I18n.t`: 6 | # 7 | # I18n.t 'hello' 8 | # 9 | # In views, this is aliased to just `t`: 10 | # 11 | # <%= t('hello') %> 12 | # 13 | # To use a different locale, set it with `I18n.locale`: 14 | # 15 | # I18n.locale = :es 16 | # 17 | # This would use the information in config/locales/es.yml. 18 | # 19 | # The following keys must be escaped otherwise they will not be retrieved by 20 | # the default I18n backend: 21 | # 22 | # true, false, on, off, yes, no 23 | # 24 | # Instead, surround them with single quotes. 25 | # 26 | # en: 27 | # 'true': 'foo' 28 | # 29 | # To learn more, please read the Rails Internationalization guide 30 | # available at https://guides.rubyonrails.org/i18n.html. 31 | 32 | en: 33 | hello: "Hello world" 34 | -------------------------------------------------------------------------------- /.github/workflows/javascript.yml: -------------------------------------------------------------------------------- 1 | name: JavaScript 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | pull_request: 7 | branches: [ main ] 8 | 9 | jobs: 10 | linters: 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - uses: actions/checkout@v4 15 | 16 | - name: Setup Node 17 | uses: actions/setup-node@v4.0.2 18 | with: 19 | node-version: '14' 20 | 21 | - name: Find yarn cache location 22 | id: yarn-cache 23 | run: echo "::set-output name=dir::$(yarn cache dir)" 24 | 25 | - name: JS package cache 26 | uses: actions/cache@v4 27 | with: 28 | path: ${{ steps.yarn-cache.outputs.dir }} 29 | key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} 30 | restore-keys: | 31 | ${{ runner.os }}-yarn- 32 | 33 | - name: Install packages 34 | run: yarn install --pure-lockfile 35 | 36 | # - name: yarn linting 37 | # run: yarn lint:check 38 | 39 | - name: yarn audit 40 | run: yarn audit 41 | -------------------------------------------------------------------------------- /db/schema.rb: -------------------------------------------------------------------------------- 1 | # This file is auto-generated from the current state of the database. Instead 2 | # of editing this file, please use the migrations feature of Active Record to 3 | # incrementally modify your database, and then regenerate this schema definition. 4 | # 5 | # This file is the source Rails uses to define your schema when running `rails 6 | # db:schema:load`. When creating a new database, `rails db:schema:load` tends to 7 | # be faster and is potentially less error prone than running all of your 8 | # migrations from scratch. Old migrations may fail to apply correctly if those 9 | # migrations use external dependencies or application code. 10 | # 11 | # It's strongly recommended that you check this file into your version control system. 12 | 13 | ActiveRecord::Schema.define(version: 2019_08_31_060536) do 14 | 15 | # These are extensions that must be enabled in order to support this database 16 | enable_extension "plpgsql" 17 | 18 | create_table "articles", force: :cascade do |t| 19 | t.string "title" 20 | t.text "text" 21 | t.datetime "created_at", precision: 6, null: false 22 | t.datetime "updated_at", precision: 6, null: false 23 | end 24 | 25 | end 26 | -------------------------------------------------------------------------------- /bin/setup: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require "fileutils" 3 | 4 | # path to your application root. 5 | APP_ROOT = File.expand_path('..', __dir__) 6 | 7 | def system!(*args) 8 | system(*args) || abort("\n== Command #{args} failed ==") 9 | end 10 | 11 | FileUtils.chdir APP_ROOT do 12 | # This script is a way to set up or update your development environment automatically. 13 | # This script is idempotent, so that you can run it at any time and get an expectable outcome. 14 | # Add necessary setup steps to this file. 15 | 16 | puts '== Installing dependencies ==' 17 | system! 'gem install bundler --conservative' 18 | system('bundle check') || system!('bundle install') 19 | 20 | # Install JavaScript dependencies 21 | system! 'bin/yarn' 22 | 23 | # puts "\n== Copying sample files ==" 24 | # unless File.exist?('config/database.yml') 25 | # FileUtils.cp 'config/database.yml.sample', 'config/database.yml' 26 | # end 27 | 28 | puts "\n== Preparing database ==" 29 | system! 'bin/rails db:prepare' 30 | 31 | puts "\n== Removing old logs and tempfiles ==" 32 | system! 'bin/rails log:clear tmp:clear' 33 | 34 | puts "\n== Restarting application server ==" 35 | system! 'bin/rails restart' 36 | end 37 | -------------------------------------------------------------------------------- /spec/routing/articles_routing_spec.rb: -------------------------------------------------------------------------------- 1 | require "rails_helper" 2 | 3 | RSpec.describe ArticlesController, type: :routing do 4 | describe "routing" do 5 | it "routes to #index" do 6 | expect(:get => "/articles").to route_to("articles#index") 7 | end 8 | 9 | it "routes to #new" do 10 | expect(:get => "/articles/new").to route_to("articles#new") 11 | end 12 | 13 | it "routes to #show" do 14 | expect(:get => "/articles/1").to route_to("articles#show", :id => "1") 15 | end 16 | 17 | it "routes to #edit" do 18 | expect(:get => "/articles/1/edit").to route_to("articles#edit", :id => "1") 19 | end 20 | 21 | 22 | it "routes to #create" do 23 | expect(:post => "/articles").to route_to("articles#create") 24 | end 25 | 26 | it "routes to #update via PUT" do 27 | expect(:put => "/articles/1").to route_to("articles#update", :id => "1") 28 | end 29 | 30 | it "routes to #update via PATCH" do 31 | expect(:patch => "/articles/1").to route_to("articles#update", :id => "1") 32 | end 33 | 34 | it "routes to #destroy" do 35 | expect(:delete => "/articles/1").to route_to("articles#destroy", :id => "1") 36 | end 37 | end 38 | end 39 | -------------------------------------------------------------------------------- /config/storage.yml: -------------------------------------------------------------------------------- 1 | test: 2 | service: Disk 3 | root: <%= Rails.root.join("tmp/storage") %> 4 | 5 | local: 6 | service: Disk 7 | root: <%= Rails.root.join("storage") %> 8 | 9 | # Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key) 10 | # amazon: 11 | # service: S3 12 | # access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %> 13 | # secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %> 14 | # region: us-east-1 15 | # bucket: your_own_bucket 16 | 17 | # Remember not to checkin your GCS keyfile to a repository 18 | # google: 19 | # service: GCS 20 | # project: your_project 21 | # credentials: <%= Rails.root.join("path/to/gcs.keyfile") %> 22 | # bucket: your_own_bucket 23 | 24 | # Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key) 25 | # microsoft: 26 | # service: AzureStorage 27 | # storage_account_name: your_account_name 28 | # storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %> 29 | # container: your_container_name 30 | 31 | # mirror: 32 | # service: Mirror 33 | # primary: local 34 | # mirrors: [ amazon, google, microsoft ] 35 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # syntax=docker/dockerfile:1 2 | 3 | ARG RUBY_VERSION=3.2.2 4 | 5 | FROM ruby:${RUBY_VERSION}-slim 6 | 7 | RUN apt-get update -qq && apt-get install -yq --no-install-recommends \ 8 | build-essential \ 9 | gnupg2 \ 10 | curl \ 11 | less \ 12 | git \ 13 | libvips \ 14 | libpq-dev \ 15 | postgresql-client \ 16 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 17 | 18 | # Install Node.js and Yarn 19 | ARG NODE_VERSION=20.7.0 20 | ARG YARN_VERSION=latest 21 | ENV PATH=/usr/local/node/bin:$PATH 22 | RUN curl -sL https://github.com/nodenv/node-build/archive/master.tar.gz | tar xz -C /tmp/ && \ 23 | /tmp/node-build-master/bin/node-build "${NODE_VERSION}" /usr/local/node && \ 24 | npm install -g yarn@$YARN_VERSION && \ 25 | rm -rf /tmp/node-build-master 26 | 27 | # Update RubyGems 28 | RUN gem update --system && gem install bundler 29 | 30 | # Use what the base image provides rather than create our own app directory 31 | WORKDIR /usr/src/app/ 32 | 33 | # Add a script to be executed every time the container starts. 34 | COPY .dockerdev/entrypoint.sh /usr/bin/ 35 | RUN chmod +x /usr/bin/entrypoint.sh 36 | ENTRYPOINT ["entrypoint.sh"] 37 | 38 | EXPOSE 3000 39 | 40 | CMD ["bundle", "exec", "rails", "s", "-b", "0.0.0.0"] 41 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: postgres:15 4 | ports: 5 | - "5432:5432" 6 | environment: 7 | - POSTGRES_PASSWORD=changeme 8 | volumes: 9 | - db_data:/var/lib/postgresql/data 10 | web: 11 | build: . 12 | image: rails-on-docker:1.5.0 13 | command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" 14 | ports: 15 | - "3000:3000" 16 | stdin_open: true 17 | tty: true 18 | environment: 19 | - DATABASE_URL=postgres://postgres:changeme@db 20 | - BOOTSNAP_CACHE_DIR=/usr/local/bundle/_bootsnap 21 | - WEB_CONCURRENCY=1 22 | - HISTFILE=/usr/src/app/.dockerdev/.bash_history 23 | - MALLOC_ARENA_MAX=2 24 | volumes: 25 | - .:/usr/src/app/:cached 26 | - bundle:/usr/local/bundle 27 | - rails_cache:/usr/src/app/tmp/cache 28 | - node_modules:/usr/src/app/node_modules 29 | depends_on: 30 | - db 31 | 32 | webpack: 33 | build: . 34 | image: rails-on-docker:1.5.0 35 | command: yarn build --watch 36 | volumes: 37 | - .:/usr/src/app:cached 38 | - bundle:/usr/local/bundle 39 | - node_modules:/usr/src/app/node_modules 40 | 41 | volumes: 42 | bundle: 43 | db_data: 44 | node_modules: 45 | rails_cache: 46 | -------------------------------------------------------------------------------- /config/application.rb: -------------------------------------------------------------------------------- 1 | require_relative "boot" 2 | 3 | require "rails" 4 | # Pick the frameworks you want: 5 | require "active_model/railtie" 6 | require "active_job/railtie" 7 | require "active_record/railtie" 8 | require "active_storage/engine" 9 | require "action_controller/railtie" 10 | require "action_mailer/railtie" 11 | require "action_mailbox/engine" 12 | require "action_text/engine" 13 | require "action_view/railtie" 14 | require "action_cable/engine" 15 | require "sprockets/railtie" 16 | # require "rails/test_unit/railtie" 17 | 18 | # Require the gems listed in Gemfile, including any gems 19 | # you've limited to :test, :development, or :production. 20 | Bundler.require(*Rails.groups) 21 | 22 | module Railsondocker 23 | class Application < Rails::Application 24 | # Initialize configuration defaults for originally generated Rails version. 25 | config.load_defaults 6.0 26 | 27 | # Settings in config/environments/* take precedence over those specified here. 28 | # Application configuration can go into files in config/initializers 29 | # -- all .rb files in that directory are automatically loaded after loading 30 | # the framework and any gems in your application. 31 | 32 | # Don't generate system test files. 33 | config.generators.system_tests = nil 34 | end 35 | end 36 | -------------------------------------------------------------------------------- /app/assets/stylesheets/scaffolds.scss: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: #fff; 3 | color: #333; 4 | margin: 33px; } 5 | 6 | body, p, ol, ul, td { 7 | font-family: verdana, arial, helvetica, sans-serif; 8 | font-size: 13px; 9 | line-height: 18px; } 10 | 11 | pre { 12 | background-color: #eee; 13 | padding: 10px; 14 | font-size: 11px; } 15 | 16 | a { 17 | color: #000; } 18 | 19 | a:visited { 20 | color: #666; } 21 | 22 | a:hover { 23 | color: #fff; 24 | background-color: #000; } 25 | 26 | th { 27 | padding-bottom: 5px; } 28 | 29 | td { 30 | padding: 0 5px 7px; } 31 | 32 | div.field, 33 | div.actions { 34 | margin-bottom: 10px; } 35 | 36 | #notice { 37 | color: green; } 38 | 39 | .field_with_errors { 40 | padding: 2px; 41 | background-color: red; 42 | display: table; } 43 | 44 | #error_explanation { 45 | width: 450px; 46 | border: 2px solid red; 47 | padding: 7px 7px 0; 48 | margin-bottom: 20px; 49 | background-color: #f0f0f0; } 50 | 51 | #error_explanation h2 { 52 | text-align: left; 53 | font-weight: bold; 54 | padding: 5px 5px 5px 15px; 55 | font-size: 12px; 56 | margin: -7px -7px 0; 57 | background-color: #c00; 58 | color: #fff; } 59 | 60 | #error_explanation ul li { 61 | font-size: 12px; 62 | list-style: square; } 63 | 64 | label { 65 | display: block; } 66 | -------------------------------------------------------------------------------- /config/initializers/content_security_policy.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Define an application-wide content security policy 4 | # For further information see the following documentation 5 | # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy 6 | 7 | # Rails.application.config.content_security_policy do |policy| 8 | # policy.default_src :self, :https 9 | # policy.font_src :self, :https, :data 10 | # policy.img_src :self, :https, :data 11 | # policy.object_src :none 12 | # policy.script_src :self, :https 13 | # policy.style_src :self, :https 14 | # # If you are using webpack-dev-server then specify webpack-dev-server host 15 | # policy.connect_src :self, :https, "http://localhost:3035", "ws://localhost:3035" if Rails.env.development? 16 | 17 | # # Specify URI for violation reports 18 | # # policy.report_uri "/csp-violation-report-endpoint" 19 | # end 20 | 21 | # If you are using UJS then enable automatic nonce generation 22 | # Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) } 23 | 24 | # Set the nonce only to specific directives 25 | # Rails.application.config.content_security_policy_nonce_directives = %w(script-src) 26 | 27 | # Report CSP violations to a specified URI 28 | # For further information see the following documentation: 29 | # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only 30 | # Rails.application.config.content_security_policy_report_only = true 31 | -------------------------------------------------------------------------------- /config/puma.rb: -------------------------------------------------------------------------------- 1 | # Puma can serve each request in a thread from an internal thread pool. 2 | # The `threads` method setting takes two numbers: a minimum and maximum. 3 | # Any libraries that use thread pools should be configured to match 4 | # the maximum value specified for Puma. Default is set to 5 threads for minimum 5 | # and maximum; this matches the default thread size of Active Record. 6 | # 7 | max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } 8 | min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count } 9 | threads min_threads_count, max_threads_count 10 | 11 | # Specifies the `port` that Puma will listen on to receive requests; default is 3000. 12 | # 13 | port ENV.fetch("PORT") { 3000 } 14 | 15 | # Specifies the `environment` that Puma will run in. 16 | # 17 | environment ENV.fetch("RAILS_ENV") { "development" } 18 | 19 | # Specifies the `pidfile` that Puma will use. 20 | pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" } 21 | 22 | # Specifies the number of `workers` to boot in clustered mode. 23 | # Workers are forked web server processes. If using threads and workers together 24 | # the concurrency of the application would be max `threads` * `workers`. 25 | # Workers do not work on JRuby or Windows (both of which do not support 26 | # processes). 27 | # 28 | # workers ENV.fetch("WEB_CONCURRENCY") { 2 } 29 | 30 | # Use the `preload_app!` method when specifying a `workers` number. 31 | # This directive tells Puma to first boot the application and load code 32 | # before forking the application. This takes advantage of Copy On Write 33 | # process behavior so workers use less memory. 34 | # 35 | # preload_app! 36 | 37 | # Allow puma to be restarted by `rails restart` command. 38 | plugin :tmp_restart 39 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.rbc 2 | capybara-*.html 3 | .rspec 4 | /db/*.sqlite3 5 | /db/*.sqlite3-journal 6 | /public/system 7 | /coverage/ 8 | /spec/tmp 9 | *.orig 10 | rerun.txt 11 | pickle-email-*.html 12 | 13 | # Ignore all logfiles and tempfiles. 14 | /log/* 15 | /tmp/* 16 | !/log/.keep 17 | !/tmp/.keep 18 | 19 | # TODO Comment out this rule if you are OK with secrets being uploaded to the repo 20 | config/initializers/secret_token.rb 21 | config/master.key 22 | 23 | # Only include if you have production secrets in this file, which is no longer a Rails default 24 | # config/secrets.yml 25 | 26 | # dotenv 27 | # TODO Comment out this rule if environment variables can be committed 28 | .env 29 | 30 | ## Environment normalization: 31 | /.bundle 32 | /vendor/bundle 33 | 34 | # these should all be checked in to normalize the environment: 35 | # Gemfile.lock, .ruby-version, .ruby-gemset 36 | 37 | # unless supporting rvm < 1.11.0 or doing something fancy, ignore this: 38 | .rvmrc 39 | 40 | # if using bower-rails ignore default bower_components path bower.json files 41 | /vendor/assets/bower_components 42 | *.bowerrc 43 | bower.json 44 | 45 | # Ignore pow environment settings 46 | .powenv 47 | 48 | # Ignore Byebug command history file. 49 | .byebug_history 50 | 51 | # Ignore node_modules 52 | node_modules/ 53 | 54 | # Ignore precompiled javascript packs 55 | /public/packs 56 | /public/packs-test 57 | /public/assets 58 | 59 | # Ignore yarn files 60 | /yarn-error.log 61 | yarn-debug.log* 62 | .yarn-integrity 63 | 64 | # Ignore uploaded files in development 65 | /storage/* 66 | !/storage/.keep 67 | 68 | /config/master.key 69 | .DS_Store 70 | 71 | /public/packs 72 | /public/packs-test 73 | /node_modules 74 | /yarn-error.log 75 | yarn-debug.log* 76 | .yarn-integrity 77 | 78 | /app/assets/builds/* 79 | !/app/assets/builds/.keep 80 | -------------------------------------------------------------------------------- /public/500.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | We're sorry, but something went wrong (500) 5 | 6 | 55 | 56 | 57 | 58 | 59 |
60 |
61 |

We're sorry, but something went wrong.

62 |
63 |

If you are the application owner check the logs for more information.

64 |
65 | 66 | 67 | -------------------------------------------------------------------------------- /public/422.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | The change you wanted was rejected (422) 5 | 6 | 55 | 56 | 57 | 58 | 59 |
60 |
61 |

The change you wanted was rejected.

62 |

Maybe you tried to change something you didn't have access to.

63 |
64 |

If you are the application owner check the logs for more information.

65 |
66 | 67 | 68 | -------------------------------------------------------------------------------- /public/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | The page you were looking for doesn't exist (404) 5 | 6 | 55 | 56 | 57 | 58 | 59 |
60 |
61 |

The page you were looking for doesn't exist.

62 |

You may have mistyped the address or the page may have moved.

63 |
64 |

If you are the application owner check the logs for more information.

65 |
66 | 67 | 68 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | git_source(:github) { |repo| "https://github.com/#{repo}.git" } 3 | 4 | ruby '3.2.2' 5 | 6 | # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 7 | gem 'rails', '~> 6.1.7' 8 | # Use postgresql as the database for Active Record 9 | gem 'pg', '>= 0.18', '< 2.0' 10 | # Use Puma as the app server 11 | gem 'puma', '~> 6.4' 12 | # Use SCSS for stylesheets 13 | gem 'sass-rails', '~> 6' 14 | # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks 15 | gem 'turbolinks', '~> 5' 16 | # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder 17 | gem 'jbuilder', '~> 2.11' 18 | # Use Redis adapter to run Action Cable in production 19 | # gem 'redis', '~> 4.0' 20 | # Use Active Model has_secure_password 21 | # gem 'bcrypt', '~> 3.1.7' 22 | 23 | # Use Active Storage variant 24 | # gem 'image_processing', '~> 1.2' 25 | 26 | # Reduces boot times through caching; required in config/boot.rb 27 | gem 'bootsnap', '>= 1.4.2', require: false 28 | 29 | group :development, :test do 30 | gem 'bundle-audit' 31 | gem 'brakeman' 32 | # Call 'byebug' anywhere in the code to stop execution and get a debugger console 33 | gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] 34 | gem 'pry-rails' 35 | gem 'rspec-rails', '~> 6.1.1' 36 | gem "rubocop", require: false 37 | gem "rubocop-rails", require: false 38 | end 39 | 40 | group :development do 41 | # Access an interactive console on exception pages or by calling 'console' anywhere in the code. 42 | gem 'web-console', '>= 3.3.0' 43 | gem 'listen', '>= 3.0.5', '< 3.10' 44 | # Display performance information such as SQL time and flame graphs for each request in your browser. 45 | # Can be configured to work on production as well see: https://github.com/MiniProfiler/rack-mini-profiler/blob/master/README.md 46 | gem 'rack-mini-profiler', '~> 3.3' 47 | end 48 | 49 | # Windows does not include zoneinfo files, so bundle the tzinfo-data gem 50 | gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] 51 | 52 | # Ruby 3.1 no longer includes these 53 | gem 'net-imap' 54 | gem 'net-pop' 55 | gem 'net-smtp' 56 | 57 | gem 'jsbundling-rails' 58 | -------------------------------------------------------------------------------- /app/controllers/articles_controller.rb: -------------------------------------------------------------------------------- 1 | class ArticlesController < ApplicationController 2 | before_action :set_article, only: [:show, :edit, :update, :destroy] 3 | 4 | # GET /articles 5 | # GET /articles.json 6 | def index 7 | @articles = Article.all 8 | end 9 | 10 | # GET /articles/1 11 | # GET /articles/1.json 12 | def show 13 | end 14 | 15 | # GET /articles/new 16 | def new 17 | @article = Article.new 18 | end 19 | 20 | # GET /articles/1/edit 21 | def edit 22 | end 23 | 24 | # POST /articles 25 | # POST /articles.json 26 | def create 27 | @article = Article.new(article_params) 28 | 29 | respond_to do |format| 30 | if @article.save 31 | format.html { redirect_to @article, notice: 'Article was successfully created.' } 32 | format.json { render :show, status: :created, location: @article } 33 | else 34 | format.html { render :new } 35 | format.json { render json: @article.errors, status: :unprocessable_entity } 36 | end 37 | end 38 | end 39 | 40 | # PATCH/PUT /articles/1 41 | # PATCH/PUT /articles/1.json 42 | def update 43 | respond_to do |format| 44 | if @article.update(article_params) 45 | format.html { redirect_to @article, notice: 'Article was successfully updated.' } 46 | format.json { render :show, status: :ok, location: @article } 47 | else 48 | format.html { render :edit } 49 | format.json { render json: @article.errors, status: :unprocessable_entity } 50 | end 51 | end 52 | end 53 | 54 | # DELETE /articles/1 55 | # DELETE /articles/1.json 56 | def destroy 57 | @article.destroy 58 | respond_to do |format| 59 | format.html { redirect_to articles_url, notice: 'Article was successfully destroyed.' } 60 | format.json { head :no_content } 61 | end 62 | end 63 | 64 | private 65 | # Use callbacks to share common setup or constraints between actions. 66 | def set_article 67 | @article = Article.find(params[:id]) 68 | end 69 | 70 | # Never trust parameters from the scary internet, only allow the white list through. 71 | def article_params 72 | params.require(:article).permit(:title, :text) 73 | end 74 | end 75 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | var validEnv = ['development', 'test', 'production'] 3 | var currentEnv = api.env() 4 | var isDevelopmentEnv = api.env('development') 5 | var isProductionEnv = api.env('production') 6 | var isTestEnv = api.env('test') 7 | 8 | if (!validEnv.includes(currentEnv)) { 9 | throw new Error( 10 | 'Please specify a valid `NODE_ENV` or ' + 11 | '`BABEL_ENV` environment variables. Valid values are "development", ' + 12 | '"test", and "production". Instead, received: ' + 13 | JSON.stringify(currentEnv) + 14 | '.' 15 | ) 16 | } 17 | 18 | return { 19 | presets: [ 20 | isTestEnv && [ 21 | '@babel/preset-env', 22 | { 23 | targets: { 24 | node: 'current' 25 | } 26 | } 27 | ], 28 | (isProductionEnv || isDevelopmentEnv) && [ 29 | '@babel/preset-env', 30 | { 31 | forceAllTransforms: true, 32 | useBuiltIns: 'entry', 33 | corejs: 3, 34 | modules: false, 35 | exclude: ['transform-typeof-symbol'] 36 | } 37 | ] 38 | ].filter(Boolean), 39 | plugins: [ 40 | 'babel-plugin-macros', 41 | '@babel/plugin-syntax-dynamic-import', 42 | isTestEnv && 'babel-plugin-dynamic-import-node', 43 | '@babel/plugin-transform-destructuring', 44 | [ 45 | '@babel/plugin-proposal-class-properties', 46 | { 47 | loose: true 48 | } 49 | ], 50 | [ 51 | '@babel/plugin-proposal-object-rest-spread', 52 | { 53 | useBuiltIns: true 54 | } 55 | ], 56 | [ 57 | '@babel/plugin-proposal-private-methods', 58 | { 59 | loose: true 60 | } 61 | ], 62 | [ 63 | '@babel/plugin-proposal-private-property-in-object', 64 | { 65 | loose: true 66 | } 67 | ], 68 | [ 69 | '@babel/plugin-transform-runtime', 70 | { 71 | helpers: false 72 | } 73 | ], 74 | [ 75 | '@babel/plugin-transform-regenerator', 76 | { 77 | async: false 78 | } 79 | ] 80 | ].filter(Boolean) 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /.github/workflows/ruby.yml: -------------------------------------------------------------------------------- 1 | name: Ruby 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | pull_request: 7 | branches: [ main ] 8 | 9 | jobs: 10 | linters: 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - uses: actions/checkout@v4 15 | - name: Set up Ruby 16 | uses: ruby/setup-ruby@v1 17 | with: 18 | bundler-cache: true 19 | - name: Run linters 20 | run: bundle exec rubocop --parallel 21 | - name: Ruby security checks 22 | run: | 23 | bundle exec bundler-audit --update 24 | bundle exec brakeman -q -w2 25 | 26 | test: 27 | runs-on: ubuntu-latest 28 | 29 | env: 30 | RAILS_ENV: test 31 | NODE_ENV: test 32 | DATABASE_URL: postgres://postgres:postgres@localhost:5432 33 | 34 | services: 35 | postgres: 36 | image: postgres:12 37 | env: 38 | POSTGRES_PASSWORD: postgres 39 | options: >- 40 | --health-cmd pg_isready 41 | --health-interval 10s 42 | --health-timeout 5s 43 | --health-retries 5 44 | ports: 45 | - 5432:5432 46 | 47 | steps: 48 | - uses: actions/checkout@v4 49 | 50 | - name: Set up Ruby 51 | uses: ruby/setup-ruby@v1 52 | with: 53 | bundler-cache: true 54 | 55 | - name: Setup Node 56 | uses: actions/setup-node@v4.0.2 57 | with: 58 | node-version: '14' 59 | 60 | - name: Find yarn cache location 61 | id: yarn-cache 62 | run: echo "::set-output name=dir::$(yarn cache dir)" 63 | 64 | - name: JS package cache 65 | uses: actions/cache@v4 66 | with: 67 | path: ${{ steps.yarn-cache.outputs.dir }} 68 | key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} 69 | restore-keys: | 70 | ${{ runner.os }}-yarn- 71 | 72 | - name: Install packages 73 | run: | 74 | yarn install --pure-lockfile 75 | 76 | - name: Create database 77 | run: | 78 | bundle exec rails db:create 79 | bundle exec rails db:schema:load 80 | 81 | - name: Compile assets 82 | run: yarn build 83 | 84 | - name: Run tests 85 | run: bundle exec rake 86 | -------------------------------------------------------------------------------- /config/initializers/new_framework_defaults_6_1.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | # 3 | # This file contains migration options to ease your Rails 6.1 upgrade. 4 | # 5 | # Once upgraded flip defaults one by one to migrate to the new default. 6 | # 7 | # Read the Guide for Upgrading Ruby on Rails for more info on each option. 8 | 9 | # Support for inversing belongs_to -> has_many Active Record associations. 10 | # Rails.application.config.active_record.has_many_inversing = true 11 | 12 | # Track Active Storage variants in the database. 13 | # Rails.application.config.active_storage.track_variants = true 14 | 15 | # Apply random variation to the delay when retrying failed jobs. 16 | # Rails.application.config.active_job.retry_jitter = 0.15 17 | 18 | # Stop executing `after_enqueue`/`after_perform` callbacks if 19 | # `before_enqueue`/`before_perform` respectively halts with `throw :abort`. 20 | # Rails.application.config.active_job.skip_after_callbacks_if_terminated = true 21 | 22 | # Specify cookies SameSite protection level: either :none, :lax, or :strict. 23 | # 24 | # This change is not backwards compatible with earlier Rails versions. 25 | # It's best enabled when your entire app is migrated and stable on 6.1. 26 | # Rails.application.config.action_dispatch.cookies_same_site_protection = :lax 27 | 28 | # Generate CSRF tokens that are encoded in URL-safe Base64. 29 | # 30 | # This change is not backwards compatible with earlier Rails versions. 31 | # It's best enabled when your entire app is migrated and stable on 6.1. 32 | # Rails.application.config.action_controller.urlsafe_csrf_tokens = true 33 | 34 | # Specify whether `ActiveSupport::TimeZone.utc_to_local` returns a time with an 35 | # UTC offset or a UTC time. 36 | # ActiveSupport.utc_to_local_returns_utc_offset_times = true 37 | 38 | # Change the default HTTP status code to `308` when redirecting non-GET/HEAD 39 | # requests to HTTPS in `ActionDispatch::SSL` middleware. 40 | # Rails.application.config.action_dispatch.ssl_default_redirect_status = 308 41 | 42 | # Use new connection handling API. For most applications this won't have any 43 | # effect. For applications using multiple databases, this new API provides 44 | # support for granular connection swapping. 45 | # Rails.application.config.active_record.legacy_connection_handling = false 46 | -------------------------------------------------------------------------------- /config/environments/test.rb: -------------------------------------------------------------------------------- 1 | require "active_support/core_ext/integer/time" 2 | 3 | # The test environment is used exclusively to run your application's 4 | # test suite. You never need to work with it otherwise. Remember that 5 | # your test database is "scratch space" for the test suite and is wiped 6 | # and recreated between test runs. Don't rely on the data there! 7 | 8 | Rails.application.configure do 9 | # Settings specified here will take precedence over those in config/application.rb. 10 | 11 | config.cache_classes = false 12 | config.action_view.cache_template_loading = true 13 | 14 | # Do not eager load code on boot. This avoids loading your whole application 15 | # just for the purpose of running a single test. If you are using a tool that 16 | # preloads Rails for running tests, you may have to set it to true. 17 | config.eager_load = false 18 | 19 | # Configure public file server for tests with Cache-Control for performance. 20 | config.public_file_server.enabled = true 21 | config.public_file_server.headers = { 22 | 'Cache-Control' => "public, max-age=#{1.hour.to_i}" 23 | } 24 | 25 | # Show full error reports and disable caching. 26 | config.consider_all_requests_local = true 27 | config.action_controller.perform_caching = false 28 | config.cache_store = :null_store 29 | 30 | # Raise exceptions instead of rendering exception templates. 31 | config.action_dispatch.show_exceptions = false 32 | 33 | # Disable request forgery protection in test environment. 34 | config.action_controller.allow_forgery_protection = false 35 | 36 | # Store uploaded files on the local file system in a temporary directory. 37 | config.active_storage.service = :test 38 | 39 | config.action_mailer.perform_caching = false 40 | 41 | # Tell Action Mailer not to deliver emails to the real world. 42 | # The :test delivery method accumulates sent emails in the 43 | # ActionMailer::Base.deliveries array. 44 | config.action_mailer.delivery_method = :test 45 | 46 | # Print deprecation notices to the stderr. 47 | config.active_support.deprecation = :stderr 48 | 49 | # Raise exceptions for disallowed deprecations. 50 | config.active_support.disallowed_deprecation = :raise 51 | 52 | # Tell Active Support which deprecation messages to disallow. 53 | config.active_support.disallowed_deprecation_warnings = [] 54 | 55 | # Raises error for missing translations. 56 | # config.i18n.raise_on_missing_translations = true 57 | 58 | # Annotate rendered view with file names. 59 | # config.action_view.annotate_rendered_view_with_filenames = true 60 | end 61 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Rails 6 on Docker demo application 2 | 3 | ![Ruby](https://github.com/ryanwi/rails-on-docker/workflows/Ruby/badge.svg) 4 | 5 | This app demonstrates Rails 6 with PostgreSQL and Webpack (with jsbundling-rails), all running in Docker. 6 | 7 | **NOTE:** [There is also an example Rails 7 application working in Docker without Webpack or node.js](https://github.com/ryanwi/rails7-on-docker) 8 | 9 | ## Requirements 10 | 11 | Please ensure you are using Docker Compose V2. This project relies on the `docker compose` command, not the previous `docker-compose` standalone program. 12 | 13 | https://docs.docker.com/compose/#compose-v2-and-the-new-docker-compose-command 14 | 15 | Check your docker compose version with: 16 | ``` 17 | % docker compose version 18 | Docker Compose version v2.10.2 19 | ``` 20 | 21 | ## Initial setup 22 | ``` 23 | cp .env.example .env 24 | docker compose build 25 | docker compose run --rm web bin/rails db:setup 26 | ``` 27 | 28 | ## Running the Rails app 29 | ``` 30 | docker compose up 31 | ``` 32 | 33 | ## Running the Rails console 34 | When the app is already running with `docker-compose` up, attach to the container: 35 | ``` 36 | docker compose exec web bin/rails c 37 | ``` 38 | 39 | When no container running yet, start up a new one: 40 | ``` 41 | docker compose run --rm web bin/rails c 42 | ``` 43 | 44 | ## Running tests 45 | ``` 46 | docker compose run --rm web bundle exec rspec 47 | ``` 48 | 49 | ## Updating gems 50 | ``` 51 | docker compose run --rm web bundle update 52 | docker compose up --build 53 | ``` 54 | 55 | ## Updating Yarn packages 56 | ``` 57 | docker compose run --rm web yarn upgrade 58 | docker compose up --build 59 | ``` 60 | 61 | ## Webpacker retirement 62 | 63 | Many Rails 6 apps will be or were created with the Webpacker gem. On January 19, 2022, [Webpacker announed its retirement](https://github.com/rails/webpacker#webpacker-has-been-retired-). As a result, it has been replaced in this repo with jsbundling-rails based on the recommendation in the announcement. 64 | 65 | ## Credits/References 66 | 67 | * https://docs.docker.com/compose/rails/ 68 | * https://rubyinrails.com/2019/03/29/dockerify-rails-6-application-setup/ 69 | * https://pragprog.com/book/ridocker/docker-for-rails-developers 70 | * https://evilmartians.com/chronicles/ruby-on-whales-docker-for-ruby-rails-development 71 | * https://medium.com/@cristian_rivera/cache-rails-bundle-w-docker-compose-45512d952c2d 72 | * https://github.com/rails/jsbundling-rails/blob/main/docs/switch_from_webpacker.md 73 | * https://dev.to/thomasvanholder/how-to-migrate-from-webpacker-to-jsbundling-rails-esbuild-5f2 74 | 75 | -------------------------------------------------------------------------------- /.rubocop.yml: -------------------------------------------------------------------------------- 1 | require: 2 | - rubocop-rails 3 | 4 | AllCops: 5 | TargetRubyVersion: 3.2.2 6 | TargetRailsVersion: 6.1.0 7 | DisabledByDefault: true 8 | Exclude: 9 | - "bin/**/*" 10 | - "vendor/**/*" 11 | - "public/**/*" 12 | - "node_modules/**/*" 13 | 14 | Layout/EmptyLineAfterMagicComment: 15 | Enabled: true 16 | Layout/TrailingEmptyLines: 17 | Enabled: true 18 | Layout/TrailingWhitespace: 19 | Enabled: true 20 | 21 | Lint/BinaryOperatorWithIdenticalOperands: 22 | Enabled: true 23 | Lint/CircularArgumentReference: 24 | Enabled: true 25 | Lint/Debugger: 26 | Enabled: true 27 | Lint/DeprecatedClassMethods: 28 | Enabled: true 29 | Lint/DuplicateMethods: 30 | Enabled: false 31 | Lint/DuplicateHashKey: 32 | Enabled: true 33 | Lint/EachWithObjectArgument: 34 | Enabled: true 35 | Lint/ElseLayout: 36 | Enabled: true 37 | Lint/EmptyEnsure: 38 | Enabled: true 39 | Lint/EmptyInterpolation: 40 | Enabled: true 41 | Lint/EnsureReturn: 42 | Enabled: true 43 | Lint/FloatOutOfRange: 44 | Enabled: true 45 | Lint/FormatParameterMismatch: 46 | Enabled: true 47 | Lint/LiteralAsCondition: 48 | Enabled: true 49 | Lint/LiteralInInterpolation: 50 | Enabled: true 51 | Lint/Loop: 52 | Enabled: true 53 | Lint/NextWithoutAccumulator: 54 | Enabled: true 55 | Lint/RandOne: 56 | Enabled: true 57 | Lint/RequireParentheses: 58 | Enabled: true 59 | Lint/RescueException: 60 | Enabled: true 61 | Lint/RedundantStringCoercion: 62 | Enabled: false 63 | Lint/RedundantCopDisableDirective: 64 | Enabled: true 65 | Lint/RedundantSplatExpansion: 66 | Enabled: false 67 | Lint/UnreachableCode: 68 | Enabled: true 69 | Lint/UselessSetterCall: 70 | Enabled: true 71 | Lint/Void: 72 | Enabled: true 73 | 74 | Naming/ClassAndModuleCamelCase: 75 | Enabled: true 76 | 77 | # Security/Eval: 78 | # Enabled: false 79 | # Security/JSONLoad: 80 | # Enabled: true 81 | # Security/MarshalLoad: 82 | # Enabled: true 83 | # Security/Open: 84 | # Enabled: false 85 | # Security/YAMLLoad: 86 | # Enabled: false 87 | 88 | # Style/EndBlock: 89 | # Enabled: true 90 | # Style/HashSyntax: 91 | # Enabled: true 92 | # Style/StringLiterals: 93 | # Enabled: true 94 | # EnforcedStyle: "double_quotes" 95 | # Exclude: 96 | # - "config/**/*.rb" 97 | # - Rakefile 98 | # Style/CaseEquality: 99 | # Enabled: true 100 | # Style/ClassMethods: 101 | # Enabled: true 102 | # Style/ClassVars: 103 | # Enabled: true 104 | # Style/CollectionMethods: 105 | # Enabled: true 106 | # PreferredMethods: 107 | # collect: "map" 108 | # collect!: "map!" 109 | # inject: "reduce" 110 | # detect: "find" 111 | # find_all: "select" 112 | -------------------------------------------------------------------------------- /spec/rails_helper.rb: -------------------------------------------------------------------------------- 1 | # This file is copied to spec/ when you run 'rails generate rspec:install' 2 | require 'spec_helper' 3 | ENV['RAILS_ENV'] ||= 'test' 4 | require File.expand_path('../../config/environment', __FILE__) 5 | # Prevent database truncation if the environment is production 6 | abort("The Rails environment is running in production mode!") if Rails.env.production? 7 | require 'rspec/rails' 8 | # Add additional requires below this line. Rails is not loaded until this point! 9 | 10 | # Requires supporting ruby files with custom matchers and macros, etc, in 11 | # spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are 12 | # run as spec files by default. This means that files in spec/support that end 13 | # in _spec.rb will both be required and run as specs, causing the specs to be 14 | # run twice. It is recommended that you do not name files matching this glob to 15 | # end with _spec.rb. You can configure this pattern with the --pattern 16 | # option on the command line or in ~/.rspec, .rspec or `.rspec-local`. 17 | # 18 | # The following line is provided for convenience purposes. It has the downside 19 | # of increasing the boot-up time by auto-requiring all files in the support 20 | # directory. Alternatively, in the individual `*_spec.rb` files, manually 21 | # require only the support files necessary. 22 | # 23 | # Dir[Rails.root.join('spec', 'support', '**', '*.rb')].each { |f| require f } 24 | 25 | # Checks for pending migrations and applies them before tests are run. 26 | # If you are not using ActiveRecord, you can remove these lines. 27 | begin 28 | ActiveRecord::Migration.maintain_test_schema! 29 | rescue ActiveRecord::PendingMigrationError => e 30 | puts e.to_s.strip 31 | exit 1 32 | end 33 | RSpec.configure do |config| 34 | # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures 35 | config.fixture_path = "#{::Rails.root}/spec/fixtures" 36 | 37 | # If you're not using ActiveRecord, or you'd prefer not to run each of your 38 | # examples within a transaction, remove the following line or assign false 39 | # instead of true. 40 | config.use_transactional_fixtures = true 41 | 42 | # RSpec Rails can automatically mix in different behaviours to your tests 43 | # based on their file location, for example enabling you to call `get` and 44 | # `post` in specs under `spec/controllers`. 45 | # 46 | # You can disable this behaviour by removing the line below, and instead 47 | # explicitly tag your specs with their type, e.g.: 48 | # 49 | # RSpec.describe UsersController, :type => :controller do 50 | # # ... 51 | # end 52 | # 53 | # The different available types are documented in the features, such as in 54 | # https://relishapp.com/rspec/rspec-rails/docs 55 | config.infer_spec_type_from_file_location! 56 | 57 | # Filter lines from Rails gems in backtraces. 58 | config.filter_rails_from_backtrace! 59 | # arbitrary gems may also be filtered via: 60 | # config.filter_gems_from_backtrace("gem name") 61 | end 62 | -------------------------------------------------------------------------------- /config/environments/development.rb: -------------------------------------------------------------------------------- 1 | require "active_support/core_ext/integer/time" 2 | 3 | Rails.application.configure do 4 | # Settings specified here will take precedence over those in config/application.rb. 5 | 6 | # In the development environment your application's code is reloaded any time 7 | # it changes. This slows down response time but is perfect for development 8 | # since you don't have to restart the web server when you make code changes. 9 | config.cache_classes = false 10 | 11 | # Do not eager load code on boot. 12 | config.eager_load = false 13 | 14 | # Show full error reports. 15 | config.consider_all_requests_local = true 16 | 17 | # Allow access when running in docker 18 | config.web_console.allowed_ips = ["172.16.0.0/12", "192.168.0.0/16"] 19 | 20 | # Enable/disable caching. By default caching is disabled. 21 | # Run rails dev:cache to toggle caching. 22 | if Rails.root.join('tmp', 'caching-dev.txt').exist? 23 | config.action_controller.perform_caching = true 24 | config.action_controller.enable_fragment_cache_logging = true 25 | 26 | config.cache_store = :memory_store 27 | config.public_file_server.headers = { 28 | 'Cache-Control' => "public, max-age=#{2.days.to_i}" 29 | } 30 | else 31 | config.action_controller.perform_caching = false 32 | 33 | config.cache_store = :null_store 34 | end 35 | 36 | # Store uploaded files on the local file system (see config/storage.yml for options). 37 | config.active_storage.service = :local 38 | 39 | # Don't care if the mailer can't send. 40 | config.action_mailer.raise_delivery_errors = false 41 | 42 | config.action_mailer.perform_caching = false 43 | 44 | # Print deprecation notices to the Rails logger. 45 | config.active_support.deprecation = :log 46 | 47 | # Raise exceptions for disallowed deprecations. 48 | config.active_support.disallowed_deprecation = :raise 49 | 50 | # Tell Active Support which deprecation messages to disallow. 51 | config.active_support.disallowed_deprecation_warnings = [] 52 | 53 | # Raise an error on page load if there are pending migrations. 54 | config.active_record.migration_error = :page_load 55 | 56 | # Highlight code that triggered database queries in logs. 57 | config.active_record.verbose_query_logs = true 58 | 59 | # Debug mode disables concatenation and preprocessing of assets. 60 | # This option may cause significant delays in view rendering with a large 61 | # number of complex assets. 62 | config.assets.debug = true 63 | 64 | # Suppress logger output for asset requests. 65 | config.assets.quiet = true 66 | 67 | # Raises error for missing translations. 68 | # config.i18n.raise_on_missing_translations = true 69 | 70 | # Annotate rendered view with file names. 71 | # config.action_view.annotate_rendered_view_with_filenames = true 72 | 73 | # Use an evented file watcher to asynchronously detect changes in source code, 74 | # routes, locales, etc. This feature depends on the listen gem. 75 | config.file_watcher = ActiveSupport::EventedFileUpdateChecker 76 | 77 | # Uncomment if you wish to allow Action Cable access from any origin. 78 | # config.action_cable.disable_request_forgery_protection = true 79 | end 80 | -------------------------------------------------------------------------------- /config/database.yml: -------------------------------------------------------------------------------- 1 | # PostgreSQL. Versions 9.3 and up are supported. 2 | # 3 | # Install the pg driver: 4 | # gem install pg 5 | # On macOS with Homebrew: 6 | # gem install pg -- --with-pg-config=/usr/local/bin/pg_config 7 | # On macOS with MacPorts: 8 | # gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config 9 | # On Windows: 10 | # gem install pg 11 | # Choose the win32 build. 12 | # Install PostgreSQL and put its /bin directory on your path. 13 | # 14 | # Configure Using Gemfile 15 | # gem 'pg' 16 | # 17 | default: &default 18 | adapter: postgresql 19 | encoding: unicode 20 | # For details on connection pooling, see Rails configuration guide 21 | # https://guides.rubyonrails.org/configuring.html#database-pooling 22 | pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 23 | url: <%= ENV['DATABASE_URL'] %> 24 | 25 | development: 26 | <<: *default 27 | database: railsondocker_development 28 | host: localhost 29 | 30 | # The specified database role being used to connect to postgres. 31 | # To create additional roles in postgres see `$ createuser --help`. 32 | # When left blank, postgres will use the default role. This is 33 | # the same name as the operating system user that initialized the database. 34 | #username: railsondocker 35 | 36 | # The password associated with the postgres role (username). 37 | #password: 38 | 39 | # Connect on a TCP socket. Omitted by default since the client uses a 40 | # domain socket that doesn't need configuration. Windows does not have 41 | # domain sockets, so uncomment these lines. 42 | #host: localhost 43 | 44 | # The TCP port the server listens on. Defaults to 5432. 45 | # If your server runs on a different port number, change accordingly. 46 | #port: 5432 47 | 48 | # Schema search path. The server defaults to $user,public 49 | #schema_search_path: myapp,sharedapp,public 50 | 51 | # Minimum log levels, in increasing order: 52 | # debug5, debug4, debug3, debug2, debug1, 53 | # log, notice, warning, error, fatal, and panic 54 | # Defaults to warning. 55 | #min_messages: notice 56 | 57 | # Warning: The database defined as "test" will be erased and 58 | # re-generated from your development database when you run "rake". 59 | # Do not set this db to the same as development or production. 60 | test: 61 | <<: *default 62 | database: railsondocker_test 63 | host: localhost 64 | 65 | # As with config/credentials.yml, you never want to store sensitive information, 66 | # like your database password, in your source code. If your source code is 67 | # ever seen by anyone, they now have access to your database. 68 | # 69 | # Instead, provide the password as a unix environment variable when you boot 70 | # the app. Read https://guides.rubyonrails.org/configuring.html#configuring-a-database 71 | # for a full rundown on how to provide these environment variables in a 72 | # production deployment. 73 | # 74 | # On Heroku and other platform providers, you may have a full connection URL 75 | # available as an environment variable. For example: 76 | # 77 | # DATABASE_URL="postgres://myuser:mypass@localhost/somedatabase" 78 | # 79 | # You can use this database configuration with: 80 | # 81 | # production: 82 | # url: <%= ENV['DATABASE_URL'] %> 83 | # 84 | # production: 85 | # <<: *default 86 | # database: railsondocker_production 87 | # username: railsondocker 88 | # password: <%= ENV['RAILSONDOCKER_DATABASE_PASSWORD'] %> 89 | -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- 1 | # This file was generated by the `rails generate rspec:install` command. Conventionally, all 2 | # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`. 3 | # The generated `.rspec` file contains `--require spec_helper` which will cause 4 | # this file to always be loaded, without a need to explicitly require it in any 5 | # files. 6 | # 7 | # Given that it is always loaded, you are encouraged to keep this file as 8 | # light-weight as possible. Requiring heavyweight dependencies from this file 9 | # will add to the boot time of your test suite on EVERY test run, even for an 10 | # individual file that may not need all of that loaded. Instead, consider making 11 | # a separate helper file that requires the additional dependencies and performs 12 | # the additional setup, and require it from the spec files that actually need 13 | # it. 14 | # 15 | # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration 16 | RSpec.configure do |config| 17 | # rspec-expectations config goes here. You can use an alternate 18 | # assertion/expectation library such as wrong or the stdlib/minitest 19 | # assertions if you prefer. 20 | config.expect_with :rspec do |expectations| 21 | # This option will default to `true` in RSpec 4. It makes the `description` 22 | # and `failure_message` of custom matchers include text for helper methods 23 | # defined using `chain`, e.g.: 24 | # be_bigger_than(2).and_smaller_than(4).description 25 | # # => "be bigger than 2 and smaller than 4" 26 | # ...rather than: 27 | # # => "be bigger than 2" 28 | expectations.include_chain_clauses_in_custom_matcher_descriptions = true 29 | end 30 | 31 | # rspec-mocks config goes here. You can use an alternate test double 32 | # library (such as bogus or mocha) by changing the `mock_with` option here. 33 | config.mock_with :rspec do |mocks| 34 | # Prevents you from mocking or stubbing a method that does not exist on 35 | # a real object. This is generally recommended, and will default to 36 | # `true` in RSpec 4. 37 | mocks.verify_partial_doubles = true 38 | end 39 | 40 | # This option will default to `:apply_to_host_groups` in RSpec 4 (and will 41 | # have no way to turn it off -- the option exists only for backwards 42 | # compatibility in RSpec 3). It causes shared context metadata to be 43 | # inherited by the metadata hash of host groups and examples, rather than 44 | # triggering implicit auto-inclusion in groups with matching metadata. 45 | config.shared_context_metadata_behavior = :apply_to_host_groups 46 | 47 | # The settings below are suggested to provide a good initial experience 48 | # with RSpec, but feel free to customize to your heart's content. 49 | =begin 50 | # This allows you to limit a spec run to individual examples or groups 51 | # you care about by tagging them with `:focus` metadata. When nothing 52 | # is tagged with `:focus`, all examples get run. RSpec also provides 53 | # aliases for `it`, `describe`, and `context` that include `:focus` 54 | # metadata: `fit`, `fdescribe` and `fcontext`, respectively. 55 | config.filter_run_when_matching :focus 56 | 57 | # Allows RSpec to persist some state between runs in order to support 58 | # the `--only-failures` and `--next-failure` CLI options. We recommend 59 | # you configure your source control system to ignore this file. 60 | config.example_status_persistence_file_path = "spec/examples.txt" 61 | 62 | # Limits the available syntax to the non-monkey patched syntax that is 63 | # recommended. For more details, see: 64 | # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/ 65 | # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/ 66 | # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode 67 | config.disable_monkey_patching! 68 | 69 | # Many RSpec users commonly either run the entire suite or an individual 70 | # file, and it's useful to allow more verbose output when running an 71 | # individual spec file. 72 | if config.files_to_run.one? 73 | # Use the documentation formatter for detailed output, 74 | # unless a formatter has already been configured 75 | # (e.g. via a command-line flag). 76 | config.default_formatter = "doc" 77 | end 78 | 79 | # Print the 10 slowest examples and example groups at the 80 | # end of the spec run, to help surface which specs are running 81 | # particularly slow. 82 | config.profile_examples = 10 83 | 84 | # Run specs in random order to surface order dependencies. If you find an 85 | # order dependency and want to debug it, you can fix the order by providing 86 | # the seed, which is printed after each run. 87 | # --seed 1234 88 | config.order = :random 89 | 90 | # Seed global randomization in this process using the `--seed` CLI option. 91 | # Setting this allows you to use `--seed` to deterministically reproduce 92 | # test failures related to randomization by passing the same `--seed` value 93 | # as the one that triggered the failure. 94 | Kernel.srand config.seed 95 | =end 96 | end 97 | -------------------------------------------------------------------------------- /spec/controllers/articles_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'rails_helper' 2 | 3 | # This spec was generated by rspec-rails when you ran the scaffold generator. 4 | # It demonstrates how one might use RSpec to specify the controller code that 5 | # was generated by Rails when you ran the scaffold generator. 6 | # 7 | # It assumes that the implementation code is generated by the rails scaffold 8 | # generator. If you are using any extension libraries to generate different 9 | # controller code, this generated spec may or may not pass. 10 | # 11 | # It only uses APIs available in rails and/or rspec-rails. There are a number 12 | # of tools you can use to make these specs even more expressive, but we're 13 | # sticking to rails and rspec-rails APIs to keep things simple and stable. 14 | # 15 | # Compared to earlier versions of this generator, there is very limited use of 16 | # stubs and message expectations in this spec. Stubs are only used when there 17 | # is no simpler way to get a handle on the object needed for the example. 18 | # Message expectations are only used when there is no simpler way to specify 19 | # that an instance is receiving a specific message. 20 | # 21 | # Also compared to earlier versions of this generator, there are no longer any 22 | # expectations of assigns and templates rendered. These features have been 23 | # removed from Rails core in Rails 5, but can be added back in via the 24 | # `rails-controller-testing` gem. 25 | 26 | RSpec.describe ArticlesController, type: :controller do 27 | 28 | # This should return the minimal set of attributes required to create a valid 29 | # Article. As you add validations to Article, be sure to 30 | # adjust the attributes here as well. 31 | let(:valid_attributes) { 32 | skip("Add a hash of attributes valid for your model") 33 | } 34 | 35 | let(:invalid_attributes) { 36 | skip("Add a hash of attributes invalid for your model") 37 | } 38 | 39 | # This should return the minimal set of values that should be in the session 40 | # in order to pass any filters (e.g. authentication) defined in 41 | # ArticlesController. Be sure to keep this updated too. 42 | let(:valid_session) { {} } 43 | 44 | describe "GET #index" do 45 | it "returns a success response" do 46 | Article.create! valid_attributes 47 | get :index, params: {}, session: valid_session 48 | expect(response).to be_successful 49 | end 50 | end 51 | 52 | describe "GET #show" do 53 | it "returns a success response" do 54 | article = Article.create! valid_attributes 55 | get :show, params: {id: article.to_param}, session: valid_session 56 | expect(response).to be_successful 57 | end 58 | end 59 | 60 | describe "GET #new" do 61 | it "returns a success response" do 62 | get :new, params: {}, session: valid_session 63 | expect(response).to be_successful 64 | end 65 | end 66 | 67 | describe "GET #edit" do 68 | it "returns a success response" do 69 | article = Article.create! valid_attributes 70 | get :edit, params: {id: article.to_param}, session: valid_session 71 | expect(response).to be_successful 72 | end 73 | end 74 | 75 | describe "POST #create" do 76 | context "with valid params" do 77 | it "creates a new Article" do 78 | expect { 79 | post :create, params: {article: valid_attributes}, session: valid_session 80 | }.to change(Article, :count).by(1) 81 | end 82 | 83 | it "redirects to the created article" do 84 | post :create, params: {article: valid_attributes}, session: valid_session 85 | expect(response).to redirect_to(Article.last) 86 | end 87 | end 88 | 89 | context "with invalid params" do 90 | it "returns a success response (i.e. to display the 'new' template)" do 91 | post :create, params: {article: invalid_attributes}, session: valid_session 92 | expect(response).to be_successful 93 | end 94 | end 95 | end 96 | 97 | describe "PUT #update" do 98 | context "with valid params" do 99 | let(:new_attributes) { 100 | skip("Add a hash of attributes valid for your model") 101 | } 102 | 103 | it "updates the requested article" do 104 | article = Article.create! valid_attributes 105 | put :update, params: {id: article.to_param, article: new_attributes}, session: valid_session 106 | article.reload 107 | skip("Add assertions for updated state") 108 | end 109 | 110 | it "redirects to the article" do 111 | article = Article.create! valid_attributes 112 | put :update, params: {id: article.to_param, article: valid_attributes}, session: valid_session 113 | expect(response).to redirect_to(article) 114 | end 115 | end 116 | 117 | context "with invalid params" do 118 | it "returns a success response (i.e. to display the 'edit' template)" do 119 | article = Article.create! valid_attributes 120 | put :update, params: {id: article.to_param, article: invalid_attributes}, session: valid_session 121 | expect(response).to be_successful 122 | end 123 | end 124 | end 125 | 126 | describe "DELETE #destroy" do 127 | it "destroys the requested article" do 128 | article = Article.create! valid_attributes 129 | expect { 130 | delete :destroy, params: {id: article.to_param}, session: valid_session 131 | }.to change(Article, :count).by(-1) 132 | end 133 | 134 | it "redirects to the articles list" do 135 | article = Article.create! valid_attributes 136 | delete :destroy, params: {id: article.to_param}, session: valid_session 137 | expect(response).to redirect_to(articles_url) 138 | end 139 | end 140 | 141 | end 142 | -------------------------------------------------------------------------------- /config/environments/production.rb: -------------------------------------------------------------------------------- 1 | require "active_support/core_ext/integer/time" 2 | 3 | Rails.application.configure do 4 | # Settings specified here will take precedence over those in config/application.rb. 5 | 6 | # Code is not reloaded between requests. 7 | config.cache_classes = true 8 | 9 | # Eager load code on boot. This eager loads most of Rails and 10 | # your application in memory, allowing both threaded web servers 11 | # and those relying on copy on write to perform better. 12 | # Rake tasks automatically ignore this option for performance. 13 | config.eager_load = true 14 | 15 | # Full error reports are disabled and caching is turned on. 16 | config.consider_all_requests_local = false 17 | config.action_controller.perform_caching = true 18 | 19 | # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] 20 | # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). 21 | # config.require_master_key = true 22 | 23 | # Disable serving static files from the `/public` folder by default since 24 | # Apache or NGINX already handles this. 25 | config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? 26 | 27 | # Compress CSS using a preprocessor. 28 | # config.assets.css_compressor = :sass 29 | 30 | # Do not fallback to assets pipeline if a precompiled asset is missed. 31 | config.assets.compile = false 32 | 33 | # Enable serving of images, stylesheets, and JavaScripts from an asset server. 34 | # config.action_controller.asset_host = 'http://assets.example.com' 35 | 36 | # Specifies the header that your server uses for sending files. 37 | # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache 38 | # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX 39 | 40 | # Store uploaded files on the local file system (see config/storage.yml for options). 41 | config.active_storage.service = :local 42 | 43 | # Mount Action Cable outside main process or domain. 44 | # config.action_cable.mount_path = nil 45 | # config.action_cable.url = 'wss://example.com/cable' 46 | # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ] 47 | 48 | # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. 49 | # config.force_ssl = true 50 | 51 | # Include generic and useful information about system operation, but avoid logging too much 52 | # information to avoid inadvertent exposure of personally identifiable information (PII). 53 | config.log_level = :info 54 | 55 | # Prepend all log lines with the following tags. 56 | config.log_tags = [ :request_id ] 57 | 58 | # Use a different cache store in production. 59 | # config.cache_store = :mem_cache_store 60 | 61 | # Use a real queuing backend for Active Job (and separate queues per environment). 62 | # config.active_job.queue_adapter = :resque 63 | # config.active_job.queue_name_prefix = "railsondocker_production" 64 | 65 | config.action_mailer.perform_caching = false 66 | 67 | # Ignore bad email addresses and do not raise email delivery errors. 68 | # Set this to true and configure the email server for immediate delivery to raise delivery errors. 69 | # config.action_mailer.raise_delivery_errors = false 70 | 71 | # Enable locale fallbacks for I18n (makes lookups for any locale fall back to 72 | # the I18n.default_locale when a translation cannot be found). 73 | config.i18n.fallbacks = true 74 | 75 | # Send deprecation notices to registered listeners. 76 | config.active_support.deprecation = :notify 77 | 78 | # Log disallowed deprecations. 79 | config.active_support.disallowed_deprecation = :log 80 | 81 | # Tell Active Support which deprecation messages to disallow. 82 | config.active_support.disallowed_deprecation_warnings = [] 83 | 84 | # Use default logging formatter so that PID and timestamp are not suppressed. 85 | config.log_formatter = ::Logger::Formatter.new 86 | 87 | # Use a different logger for distributed setups. 88 | # require "syslog/logger" 89 | # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name') 90 | 91 | if ENV["RAILS_LOG_TO_STDOUT"].present? 92 | logger = ActiveSupport::Logger.new(STDOUT) 93 | logger.formatter = config.log_formatter 94 | config.logger = ActiveSupport::TaggedLogging.new(logger) 95 | end 96 | 97 | # Do not dump schema after migrations. 98 | config.active_record.dump_schema_after_migration = false 99 | 100 | # Inserts middleware to perform automatic connection switching. 101 | # The `database_selector` hash is used to pass options to the DatabaseSelector 102 | # middleware. The `delay` is used to determine how long to wait after a write 103 | # to send a subsequent read to the primary. 104 | # 105 | # The `database_resolver` class is used by the middleware to determine which 106 | # database is appropriate to use based on the time delay. 107 | # 108 | # The `database_resolver_context` class is used by the middleware to set 109 | # timestamps for the last write to the primary. The resolver uses the context 110 | # class timestamps to determine how long to wait before reading from the 111 | # replica. 112 | # 113 | # By default Rails will store a last write timestamp in the session. The 114 | # DatabaseSelector middleware is designed as such you can define your own 115 | # strategy for connection switching and pass that into the middleware through 116 | # these configuration options. 117 | # config.active_record.database_selector = { delay: 2.seconds } 118 | # config.active_record.database_resolver = ActiveRecord::Middleware::DatabaseSelector::Resolver 119 | # config.active_record.database_resolver_context = ActiveRecord::Middleware::DatabaseSelector::Resolver::Session 120 | end 121 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | actioncable (6.1.7.7) 5 | actionpack (= 6.1.7.7) 6 | activesupport (= 6.1.7.7) 7 | nio4r (~> 2.0) 8 | websocket-driver (>= 0.6.1) 9 | actionmailbox (6.1.7.7) 10 | actionpack (= 6.1.7.7) 11 | activejob (= 6.1.7.7) 12 | activerecord (= 6.1.7.7) 13 | activestorage (= 6.1.7.7) 14 | activesupport (= 6.1.7.7) 15 | mail (>= 2.7.1) 16 | actionmailer (6.1.7.7) 17 | actionpack (= 6.1.7.7) 18 | actionview (= 6.1.7.7) 19 | activejob (= 6.1.7.7) 20 | activesupport (= 6.1.7.7) 21 | mail (~> 2.5, >= 2.5.4) 22 | rails-dom-testing (~> 2.0) 23 | actionpack (6.1.7.7) 24 | actionview (= 6.1.7.7) 25 | activesupport (= 6.1.7.7) 26 | rack (~> 2.0, >= 2.0.9) 27 | rack-test (>= 0.6.3) 28 | rails-dom-testing (~> 2.0) 29 | rails-html-sanitizer (~> 1.0, >= 1.2.0) 30 | actiontext (6.1.7.7) 31 | actionpack (= 6.1.7.7) 32 | activerecord (= 6.1.7.7) 33 | activestorage (= 6.1.7.7) 34 | activesupport (= 6.1.7.7) 35 | nokogiri (>= 1.8.5) 36 | actionview (6.1.7.7) 37 | activesupport (= 6.1.7.7) 38 | builder (~> 3.1) 39 | erubi (~> 1.4) 40 | rails-dom-testing (~> 2.0) 41 | rails-html-sanitizer (~> 1.1, >= 1.2.0) 42 | activejob (6.1.7.7) 43 | activesupport (= 6.1.7.7) 44 | globalid (>= 0.3.6) 45 | activemodel (6.1.7.7) 46 | activesupport (= 6.1.7.7) 47 | activerecord (6.1.7.7) 48 | activemodel (= 6.1.7.7) 49 | activesupport (= 6.1.7.7) 50 | activestorage (6.1.7.7) 51 | actionpack (= 6.1.7.7) 52 | activejob (= 6.1.7.7) 53 | activerecord (= 6.1.7.7) 54 | activesupport (= 6.1.7.7) 55 | marcel (~> 1.0) 56 | mini_mime (>= 1.1.0) 57 | activesupport (6.1.7.7) 58 | concurrent-ruby (~> 1.0, >= 1.0.2) 59 | i18n (>= 1.6, < 2) 60 | minitest (>= 5.1) 61 | tzinfo (~> 2.0) 62 | zeitwerk (~> 2.3) 63 | ast (2.4.2) 64 | bindex (0.8.1) 65 | bootsnap (1.18.3) 66 | msgpack (~> 1.2) 67 | brakeman (6.1.2) 68 | racc 69 | builder (3.2.4) 70 | bundle-audit (0.1.0) 71 | bundler-audit 72 | bundler-audit (0.9.1) 73 | bundler (>= 1.2.0, < 3) 74 | thor (~> 1.0) 75 | byebug (11.1.3) 76 | coderay (1.1.3) 77 | concurrent-ruby (1.2.3) 78 | crass (1.0.6) 79 | date (3.3.4) 80 | diff-lcs (1.5.0) 81 | erubi (1.12.0) 82 | ffi (1.16.3) 83 | globalid (1.2.1) 84 | activesupport (>= 6.1) 85 | i18n (1.14.1) 86 | concurrent-ruby (~> 1.0) 87 | jbuilder (2.11.5) 88 | actionview (>= 5.0.0) 89 | activesupport (>= 5.0.0) 90 | jsbundling-rails (1.3.0) 91 | railties (>= 6.0.0) 92 | json (2.7.1) 93 | language_server-protocol (3.17.0.3) 94 | listen (3.9.0) 95 | rb-fsevent (~> 0.10, >= 0.10.3) 96 | rb-inotify (~> 0.9, >= 0.9.10) 97 | loofah (2.22.0) 98 | crass (~> 1.0.2) 99 | nokogiri (>= 1.12.0) 100 | mail (2.8.1) 101 | mini_mime (>= 0.1.1) 102 | net-imap 103 | net-pop 104 | net-smtp 105 | marcel (1.0.3) 106 | method_source (1.0.0) 107 | mini_mime (1.1.5) 108 | mini_portile2 (2.8.5) 109 | minitest (5.22.2) 110 | msgpack (1.7.2) 111 | net-imap (0.4.10) 112 | date 113 | net-protocol 114 | net-pop (0.1.2) 115 | net-protocol 116 | net-protocol (0.2.2) 117 | timeout 118 | net-smtp (0.4.0.1) 119 | net-protocol 120 | nio4r (2.7.0) 121 | nokogiri (1.16.2) 122 | mini_portile2 (~> 2.8.2) 123 | racc (~> 1.4) 124 | nokogiri (1.16.2-aarch64-linux) 125 | racc (~> 1.4) 126 | nokogiri (1.16.2-arm64-darwin) 127 | racc (~> 1.4) 128 | nokogiri (1.16.2-x86_64-linux) 129 | racc (~> 1.4) 130 | parallel (1.24.0) 131 | parser (3.3.0.5) 132 | ast (~> 2.4.1) 133 | racc 134 | pg (1.5.5) 135 | prism (0.24.0) 136 | pry (0.14.2) 137 | coderay (~> 1.1) 138 | method_source (~> 1.0) 139 | pry-rails (0.3.9) 140 | pry (>= 0.10.4) 141 | puma (6.4.2) 142 | nio4r (~> 2.0) 143 | racc (1.7.3) 144 | rack (2.2.8.1) 145 | rack-mini-profiler (3.3.1) 146 | rack (>= 1.2.0) 147 | rack-test (2.1.0) 148 | rack (>= 1.3) 149 | rails (6.1.7.7) 150 | actioncable (= 6.1.7.7) 151 | actionmailbox (= 6.1.7.7) 152 | actionmailer (= 6.1.7.7) 153 | actionpack (= 6.1.7.7) 154 | actiontext (= 6.1.7.7) 155 | actionview (= 6.1.7.7) 156 | activejob (= 6.1.7.7) 157 | activemodel (= 6.1.7.7) 158 | activerecord (= 6.1.7.7) 159 | activestorage (= 6.1.7.7) 160 | activesupport (= 6.1.7.7) 161 | bundler (>= 1.15.0) 162 | railties (= 6.1.7.7) 163 | sprockets-rails (>= 2.0.0) 164 | rails-dom-testing (2.2.0) 165 | activesupport (>= 5.0.0) 166 | minitest 167 | nokogiri (>= 1.6) 168 | rails-html-sanitizer (1.6.0) 169 | loofah (~> 2.21) 170 | nokogiri (~> 1.14) 171 | railties (6.1.7.7) 172 | actionpack (= 6.1.7.7) 173 | activesupport (= 6.1.7.7) 174 | method_source 175 | rake (>= 12.2) 176 | thor (~> 1.0) 177 | rainbow (3.1.1) 178 | rake (13.1.0) 179 | rb-fsevent (0.11.2) 180 | rb-inotify (0.10.1) 181 | ffi (~> 1.0) 182 | regexp_parser (2.9.0) 183 | rexml (3.2.6) 184 | rspec-core (3.12.2) 185 | rspec-support (~> 3.12.0) 186 | rspec-expectations (3.12.3) 187 | diff-lcs (>= 1.2.0, < 2.0) 188 | rspec-support (~> 3.12.0) 189 | rspec-mocks (3.12.6) 190 | diff-lcs (>= 1.2.0, < 2.0) 191 | rspec-support (~> 3.12.0) 192 | rspec-rails (6.1.1) 193 | actionpack (>= 6.1) 194 | activesupport (>= 6.1) 195 | railties (>= 6.1) 196 | rspec-core (~> 3.12) 197 | rspec-expectations (~> 3.12) 198 | rspec-mocks (~> 3.12) 199 | rspec-support (~> 3.12) 200 | rspec-support (3.12.1) 201 | rubocop (1.61.0) 202 | json (~> 2.3) 203 | language_server-protocol (>= 3.17.0) 204 | parallel (~> 1.10) 205 | parser (>= 3.3.0.2) 206 | rainbow (>= 2.2.2, < 4.0) 207 | regexp_parser (>= 1.8, < 3.0) 208 | rexml (>= 3.2.5, < 4.0) 209 | rubocop-ast (>= 1.30.0, < 2.0) 210 | ruby-progressbar (~> 1.7) 211 | unicode-display_width (>= 2.4.0, < 3.0) 212 | rubocop-ast (1.31.0) 213 | parser (>= 3.3.0.4) 214 | prism (>= 0.24.0) 215 | rubocop-rails (2.23.1) 216 | activesupport (>= 4.2.0) 217 | rack (>= 1.1) 218 | rubocop (>= 1.33.0, < 2.0) 219 | rubocop-ast (>= 1.30.0, < 2.0) 220 | ruby-progressbar (1.13.0) 221 | sass-rails (6.0.0) 222 | sassc-rails (~> 2.1, >= 2.1.1) 223 | sassc (2.4.0) 224 | ffi (~> 1.9) 225 | sassc-rails (2.1.2) 226 | railties (>= 4.0.0) 227 | sassc (>= 2.0) 228 | sprockets (> 3.0) 229 | sprockets-rails 230 | tilt 231 | sprockets (4.2.1) 232 | concurrent-ruby (~> 1.0) 233 | rack (>= 2.2.4, < 4) 234 | sprockets-rails (3.4.2) 235 | actionpack (>= 5.2) 236 | activesupport (>= 5.2) 237 | sprockets (>= 3.0.0) 238 | thor (1.3.1) 239 | tilt (2.3.0) 240 | timeout (0.4.1) 241 | turbolinks (5.2.1) 242 | turbolinks-source (~> 5.2) 243 | turbolinks-source (5.2.0) 244 | tzinfo (2.0.6) 245 | concurrent-ruby (~> 1.0) 246 | unicode-display_width (2.5.0) 247 | web-console (4.2.1) 248 | actionview (>= 6.0.0) 249 | activemodel (>= 6.0.0) 250 | bindex (>= 0.4.0) 251 | railties (>= 6.0.0) 252 | websocket-driver (0.7.6) 253 | websocket-extensions (>= 0.1.0) 254 | websocket-extensions (0.1.5) 255 | zeitwerk (2.6.13) 256 | 257 | PLATFORMS 258 | aarch64-linux 259 | arm64-darwin-20 260 | arm64-darwin-21 261 | ruby 262 | x86_64-linux 263 | 264 | DEPENDENCIES 265 | bootsnap (>= 1.4.2) 266 | brakeman 267 | bundle-audit 268 | byebug 269 | jbuilder (~> 2.11) 270 | jsbundling-rails 271 | listen (>= 3.0.5, < 3.10) 272 | net-imap 273 | net-pop 274 | net-smtp 275 | pg (>= 0.18, < 2.0) 276 | pry-rails 277 | puma (~> 6.4) 278 | rack-mini-profiler (~> 3.3) 279 | rails (~> 6.1.7) 280 | rspec-rails (~> 6.1.1) 281 | rubocop 282 | rubocop-rails 283 | sass-rails (~> 6) 284 | turbolinks (~> 5) 285 | tzinfo-data 286 | web-console (>= 3.3.0) 287 | 288 | RUBY VERSION 289 | ruby 3.2.2p53 290 | 291 | BUNDLED WITH 292 | 2.4.14 293 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ampproject/remapping@^2.2.0": 6 | version "2.2.1" 7 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" 8 | integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== 9 | dependencies: 10 | "@jridgewell/gen-mapping" "^0.3.0" 11 | "@jridgewell/trace-mapping" "^0.3.9" 12 | 13 | "@babel/code-frame@^7.23.5": 14 | version "7.23.5" 15 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" 16 | integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== 17 | dependencies: 18 | "@babel/highlight" "^7.23.4" 19 | chalk "^2.4.2" 20 | 21 | "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5": 22 | version "7.23.5" 23 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" 24 | integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== 25 | 26 | "@babel/core@^7.24.0": 27 | version "7.24.0" 28 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.0.tgz#56cbda6b185ae9d9bed369816a8f4423c5f2ff1b" 29 | integrity sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw== 30 | dependencies: 31 | "@ampproject/remapping" "^2.2.0" 32 | "@babel/code-frame" "^7.23.5" 33 | "@babel/generator" "^7.23.6" 34 | "@babel/helper-compilation-targets" "^7.23.6" 35 | "@babel/helper-module-transforms" "^7.23.3" 36 | "@babel/helpers" "^7.24.0" 37 | "@babel/parser" "^7.24.0" 38 | "@babel/template" "^7.24.0" 39 | "@babel/traverse" "^7.24.0" 40 | "@babel/types" "^7.24.0" 41 | convert-source-map "^2.0.0" 42 | debug "^4.1.0" 43 | gensync "^1.0.0-beta.2" 44 | json5 "^2.2.3" 45 | semver "^6.3.1" 46 | 47 | "@babel/generator@^7.23.6": 48 | version "7.23.6" 49 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" 50 | integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== 51 | dependencies: 52 | "@babel/types" "^7.23.6" 53 | "@jridgewell/gen-mapping" "^0.3.2" 54 | "@jridgewell/trace-mapping" "^0.3.17" 55 | jsesc "^2.5.1" 56 | 57 | "@babel/helper-annotate-as-pure@^7.22.5": 58 | version "7.22.5" 59 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" 60 | integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== 61 | dependencies: 62 | "@babel/types" "^7.22.5" 63 | 64 | "@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": 65 | version "7.22.15" 66 | resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" 67 | integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== 68 | dependencies: 69 | "@babel/types" "^7.22.15" 70 | 71 | "@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": 72 | version "7.23.6" 73 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" 74 | integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== 75 | dependencies: 76 | "@babel/compat-data" "^7.23.5" 77 | "@babel/helper-validator-option" "^7.23.5" 78 | browserslist "^4.22.2" 79 | lru-cache "^5.1.1" 80 | semver "^6.3.1" 81 | 82 | "@babel/helper-create-class-features-plugin@^7.22.15": 83 | version "7.24.0" 84 | resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz#fc7554141bdbfa2d17f7b4b80153b9b090e5d158" 85 | integrity sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g== 86 | dependencies: 87 | "@babel/helper-annotate-as-pure" "^7.22.5" 88 | "@babel/helper-environment-visitor" "^7.22.20" 89 | "@babel/helper-function-name" "^7.23.0" 90 | "@babel/helper-member-expression-to-functions" "^7.23.0" 91 | "@babel/helper-optimise-call-expression" "^7.22.5" 92 | "@babel/helper-replace-supers" "^7.22.20" 93 | "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" 94 | "@babel/helper-split-export-declaration" "^7.22.6" 95 | semver "^6.3.1" 96 | 97 | "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": 98 | version "7.22.15" 99 | resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" 100 | integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== 101 | dependencies: 102 | "@babel/helper-annotate-as-pure" "^7.22.5" 103 | regexpu-core "^5.3.1" 104 | semver "^6.3.1" 105 | 106 | "@babel/helper-define-polyfill-provider@^0.5.0": 107 | version "0.5.0" 108 | resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz#465805b7361f461e86c680f1de21eaf88c25901b" 109 | integrity sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q== 110 | dependencies: 111 | "@babel/helper-compilation-targets" "^7.22.6" 112 | "@babel/helper-plugin-utils" "^7.22.5" 113 | debug "^4.1.1" 114 | lodash.debounce "^4.0.8" 115 | resolve "^1.14.2" 116 | 117 | "@babel/helper-environment-visitor@^7.22.20": 118 | version "7.22.20" 119 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" 120 | integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== 121 | 122 | "@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": 123 | version "7.23.0" 124 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" 125 | integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== 126 | dependencies: 127 | "@babel/template" "^7.22.15" 128 | "@babel/types" "^7.23.0" 129 | 130 | "@babel/helper-hoist-variables@^7.22.5": 131 | version "7.22.5" 132 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" 133 | integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== 134 | dependencies: 135 | "@babel/types" "^7.22.5" 136 | 137 | "@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": 138 | version "7.23.0" 139 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" 140 | integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== 141 | dependencies: 142 | "@babel/types" "^7.23.0" 143 | 144 | "@babel/helper-module-imports@^7.22.15": 145 | version "7.22.15" 146 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" 147 | integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== 148 | dependencies: 149 | "@babel/types" "^7.22.15" 150 | 151 | "@babel/helper-module-transforms@^7.23.3": 152 | version "7.23.3" 153 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" 154 | integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== 155 | dependencies: 156 | "@babel/helper-environment-visitor" "^7.22.20" 157 | "@babel/helper-module-imports" "^7.22.15" 158 | "@babel/helper-simple-access" "^7.22.5" 159 | "@babel/helper-split-export-declaration" "^7.22.6" 160 | "@babel/helper-validator-identifier" "^7.22.20" 161 | 162 | "@babel/helper-optimise-call-expression@^7.22.5": 163 | version "7.22.5" 164 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" 165 | integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== 166 | dependencies: 167 | "@babel/types" "^7.22.5" 168 | 169 | "@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.22.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": 170 | version "7.24.0" 171 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz#945681931a52f15ce879fd5b86ce2dae6d3d7f2a" 172 | integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w== 173 | 174 | "@babel/helper-remap-async-to-generator@^7.22.20": 175 | version "7.22.20" 176 | resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" 177 | integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== 178 | dependencies: 179 | "@babel/helper-annotate-as-pure" "^7.22.5" 180 | "@babel/helper-environment-visitor" "^7.22.20" 181 | "@babel/helper-wrap-function" "^7.22.20" 182 | 183 | "@babel/helper-replace-supers@^7.22.20": 184 | version "7.22.20" 185 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" 186 | integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== 187 | dependencies: 188 | "@babel/helper-environment-visitor" "^7.22.20" 189 | "@babel/helper-member-expression-to-functions" "^7.22.15" 190 | "@babel/helper-optimise-call-expression" "^7.22.5" 191 | 192 | "@babel/helper-simple-access@^7.22.5": 193 | version "7.22.5" 194 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" 195 | integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== 196 | dependencies: 197 | "@babel/types" "^7.22.5" 198 | 199 | "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": 200 | version "7.22.5" 201 | resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" 202 | integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== 203 | dependencies: 204 | "@babel/types" "^7.22.5" 205 | 206 | "@babel/helper-split-export-declaration@^7.22.6": 207 | version "7.22.6" 208 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" 209 | integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== 210 | dependencies: 211 | "@babel/types" "^7.22.5" 212 | 213 | "@babel/helper-string-parser@^7.23.4": 214 | version "7.23.4" 215 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" 216 | integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== 217 | 218 | "@babel/helper-validator-identifier@^7.22.20": 219 | version "7.22.20" 220 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" 221 | integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== 222 | 223 | "@babel/helper-validator-option@^7.23.5": 224 | version "7.23.5" 225 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" 226 | integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== 227 | 228 | "@babel/helper-wrap-function@^7.22.20": 229 | version "7.22.20" 230 | resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" 231 | integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== 232 | dependencies: 233 | "@babel/helper-function-name" "^7.22.5" 234 | "@babel/template" "^7.22.15" 235 | "@babel/types" "^7.22.19" 236 | 237 | "@babel/helpers@^7.24.0": 238 | version "7.24.0" 239 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.0.tgz#a3dd462b41769c95db8091e49cfe019389a9409b" 240 | integrity sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA== 241 | dependencies: 242 | "@babel/template" "^7.24.0" 243 | "@babel/traverse" "^7.24.0" 244 | "@babel/types" "^7.24.0" 245 | 246 | "@babel/highlight@^7.23.4": 247 | version "7.23.4" 248 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" 249 | integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== 250 | dependencies: 251 | "@babel/helper-validator-identifier" "^7.22.20" 252 | chalk "^2.4.2" 253 | js-tokens "^4.0.0" 254 | 255 | "@babel/parser@^7.24.0": 256 | version "7.24.0" 257 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.0.tgz#26a3d1ff49031c53a97d03b604375f028746a9ac" 258 | integrity sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg== 259 | 260 | "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": 261 | version "7.23.3" 262 | 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.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" 263 | integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ== 264 | dependencies: 265 | "@babel/helper-plugin-utils" "^7.22.5" 266 | 267 | "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": 268 | version "7.23.3" 269 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d" 270 | integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ== 271 | dependencies: 272 | "@babel/helper-plugin-utils" "^7.22.5" 273 | "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" 274 | "@babel/plugin-transform-optional-chaining" "^7.23.3" 275 | 276 | "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": 277 | version "7.23.7" 278 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b" 279 | integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw== 280 | dependencies: 281 | "@babel/helper-environment-visitor" "^7.22.20" 282 | "@babel/helper-plugin-utils" "^7.22.5" 283 | 284 | "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": 285 | version "7.21.0-placeholder-for-preset-env.2" 286 | 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" 287 | integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== 288 | 289 | "@babel/plugin-syntax-async-generators@^7.8.4": 290 | version "7.8.4" 291 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" 292 | integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== 293 | dependencies: 294 | "@babel/helper-plugin-utils" "^7.8.0" 295 | 296 | "@babel/plugin-syntax-class-properties@^7.12.13": 297 | version "7.12.13" 298 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" 299 | integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== 300 | dependencies: 301 | "@babel/helper-plugin-utils" "^7.12.13" 302 | 303 | "@babel/plugin-syntax-class-static-block@^7.14.5": 304 | version "7.14.5" 305 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" 306 | integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== 307 | dependencies: 308 | "@babel/helper-plugin-utils" "^7.14.5" 309 | 310 | "@babel/plugin-syntax-dynamic-import@^7.8.3": 311 | version "7.8.3" 312 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" 313 | integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== 314 | dependencies: 315 | "@babel/helper-plugin-utils" "^7.8.0" 316 | 317 | "@babel/plugin-syntax-export-namespace-from@^7.8.3": 318 | version "7.8.3" 319 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" 320 | integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== 321 | dependencies: 322 | "@babel/helper-plugin-utils" "^7.8.3" 323 | 324 | "@babel/plugin-syntax-import-assertions@^7.23.3": 325 | version "7.23.3" 326 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" 327 | integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== 328 | dependencies: 329 | "@babel/helper-plugin-utils" "^7.22.5" 330 | 331 | "@babel/plugin-syntax-import-attributes@^7.23.3": 332 | version "7.23.3" 333 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" 334 | integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== 335 | dependencies: 336 | "@babel/helper-plugin-utils" "^7.22.5" 337 | 338 | "@babel/plugin-syntax-import-meta@^7.10.4": 339 | version "7.10.4" 340 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" 341 | integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== 342 | dependencies: 343 | "@babel/helper-plugin-utils" "^7.10.4" 344 | 345 | "@babel/plugin-syntax-json-strings@^7.8.3": 346 | version "7.8.3" 347 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" 348 | integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== 349 | dependencies: 350 | "@babel/helper-plugin-utils" "^7.8.0" 351 | 352 | "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": 353 | version "7.10.4" 354 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" 355 | integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== 356 | dependencies: 357 | "@babel/helper-plugin-utils" "^7.10.4" 358 | 359 | "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": 360 | version "7.8.3" 361 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" 362 | integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== 363 | dependencies: 364 | "@babel/helper-plugin-utils" "^7.8.0" 365 | 366 | "@babel/plugin-syntax-numeric-separator@^7.10.4": 367 | version "7.10.4" 368 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" 369 | integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== 370 | dependencies: 371 | "@babel/helper-plugin-utils" "^7.10.4" 372 | 373 | "@babel/plugin-syntax-object-rest-spread@^7.8.3": 374 | version "7.8.3" 375 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" 376 | integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== 377 | dependencies: 378 | "@babel/helper-plugin-utils" "^7.8.0" 379 | 380 | "@babel/plugin-syntax-optional-catch-binding@^7.8.3": 381 | version "7.8.3" 382 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" 383 | integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== 384 | dependencies: 385 | "@babel/helper-plugin-utils" "^7.8.0" 386 | 387 | "@babel/plugin-syntax-optional-chaining@^7.8.3": 388 | version "7.8.3" 389 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" 390 | integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== 391 | dependencies: 392 | "@babel/helper-plugin-utils" "^7.8.0" 393 | 394 | "@babel/plugin-syntax-private-property-in-object@^7.14.5": 395 | version "7.14.5" 396 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" 397 | integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== 398 | dependencies: 399 | "@babel/helper-plugin-utils" "^7.14.5" 400 | 401 | "@babel/plugin-syntax-top-level-await@^7.14.5": 402 | version "7.14.5" 403 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" 404 | integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== 405 | dependencies: 406 | "@babel/helper-plugin-utils" "^7.14.5" 407 | 408 | "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": 409 | version "7.18.6" 410 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" 411 | integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== 412 | dependencies: 413 | "@babel/helper-create-regexp-features-plugin" "^7.18.6" 414 | "@babel/helper-plugin-utils" "^7.18.6" 415 | 416 | "@babel/plugin-transform-arrow-functions@^7.23.3": 417 | version "7.23.3" 418 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" 419 | integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== 420 | dependencies: 421 | "@babel/helper-plugin-utils" "^7.22.5" 422 | 423 | "@babel/plugin-transform-async-generator-functions@^7.23.9": 424 | version "7.23.9" 425 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz#9adaeb66fc9634a586c5df139c6240d41ed801ce" 426 | integrity sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ== 427 | dependencies: 428 | "@babel/helper-environment-visitor" "^7.22.20" 429 | "@babel/helper-plugin-utils" "^7.22.5" 430 | "@babel/helper-remap-async-to-generator" "^7.22.20" 431 | "@babel/plugin-syntax-async-generators" "^7.8.4" 432 | 433 | "@babel/plugin-transform-async-to-generator@^7.23.3": 434 | version "7.23.3" 435 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" 436 | integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== 437 | dependencies: 438 | "@babel/helper-module-imports" "^7.22.15" 439 | "@babel/helper-plugin-utils" "^7.22.5" 440 | "@babel/helper-remap-async-to-generator" "^7.22.20" 441 | 442 | "@babel/plugin-transform-block-scoped-functions@^7.23.3": 443 | version "7.23.3" 444 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" 445 | integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== 446 | dependencies: 447 | "@babel/helper-plugin-utils" "^7.22.5" 448 | 449 | "@babel/plugin-transform-block-scoping@^7.23.4": 450 | version "7.23.4" 451 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" 452 | integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== 453 | dependencies: 454 | "@babel/helper-plugin-utils" "^7.22.5" 455 | 456 | "@babel/plugin-transform-class-properties@^7.23.3": 457 | version "7.23.3" 458 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48" 459 | integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg== 460 | dependencies: 461 | "@babel/helper-create-class-features-plugin" "^7.22.15" 462 | "@babel/helper-plugin-utils" "^7.22.5" 463 | 464 | "@babel/plugin-transform-class-static-block@^7.23.4": 465 | version "7.23.4" 466 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" 467 | integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== 468 | dependencies: 469 | "@babel/helper-create-class-features-plugin" "^7.22.15" 470 | "@babel/helper-plugin-utils" "^7.22.5" 471 | "@babel/plugin-syntax-class-static-block" "^7.14.5" 472 | 473 | "@babel/plugin-transform-classes@^7.23.8": 474 | version "7.23.8" 475 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92" 476 | integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg== 477 | dependencies: 478 | "@babel/helper-annotate-as-pure" "^7.22.5" 479 | "@babel/helper-compilation-targets" "^7.23.6" 480 | "@babel/helper-environment-visitor" "^7.22.20" 481 | "@babel/helper-function-name" "^7.23.0" 482 | "@babel/helper-plugin-utils" "^7.22.5" 483 | "@babel/helper-replace-supers" "^7.22.20" 484 | "@babel/helper-split-export-declaration" "^7.22.6" 485 | globals "^11.1.0" 486 | 487 | "@babel/plugin-transform-computed-properties@^7.23.3": 488 | version "7.23.3" 489 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" 490 | integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== 491 | dependencies: 492 | "@babel/helper-plugin-utils" "^7.22.5" 493 | "@babel/template" "^7.22.15" 494 | 495 | "@babel/plugin-transform-destructuring@^7.23.3": 496 | version "7.23.3" 497 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" 498 | integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== 499 | dependencies: 500 | "@babel/helper-plugin-utils" "^7.22.5" 501 | 502 | "@babel/plugin-transform-dotall-regex@^7.23.3": 503 | version "7.23.3" 504 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50" 505 | integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ== 506 | dependencies: 507 | "@babel/helper-create-regexp-features-plugin" "^7.22.15" 508 | "@babel/helper-plugin-utils" "^7.22.5" 509 | 510 | "@babel/plugin-transform-duplicate-keys@^7.23.3": 511 | version "7.23.3" 512 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce" 513 | integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA== 514 | dependencies: 515 | "@babel/helper-plugin-utils" "^7.22.5" 516 | 517 | "@babel/plugin-transform-dynamic-import@^7.23.4": 518 | version "7.23.4" 519 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" 520 | integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== 521 | dependencies: 522 | "@babel/helper-plugin-utils" "^7.22.5" 523 | "@babel/plugin-syntax-dynamic-import" "^7.8.3" 524 | 525 | "@babel/plugin-transform-exponentiation-operator@^7.23.3": 526 | version "7.23.3" 527 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18" 528 | integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ== 529 | dependencies: 530 | "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" 531 | "@babel/helper-plugin-utils" "^7.22.5" 532 | 533 | "@babel/plugin-transform-export-namespace-from@^7.23.4": 534 | version "7.23.4" 535 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" 536 | integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== 537 | dependencies: 538 | "@babel/helper-plugin-utils" "^7.22.5" 539 | "@babel/plugin-syntax-export-namespace-from" "^7.8.3" 540 | 541 | "@babel/plugin-transform-for-of@^7.23.6": 542 | version "7.23.6" 543 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e" 544 | integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw== 545 | dependencies: 546 | "@babel/helper-plugin-utils" "^7.22.5" 547 | "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" 548 | 549 | "@babel/plugin-transform-function-name@^7.23.3": 550 | version "7.23.3" 551 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" 552 | integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== 553 | dependencies: 554 | "@babel/helper-compilation-targets" "^7.22.15" 555 | "@babel/helper-function-name" "^7.23.0" 556 | "@babel/helper-plugin-utils" "^7.22.5" 557 | 558 | "@babel/plugin-transform-json-strings@^7.23.4": 559 | version "7.23.4" 560 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" 561 | integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== 562 | dependencies: 563 | "@babel/helper-plugin-utils" "^7.22.5" 564 | "@babel/plugin-syntax-json-strings" "^7.8.3" 565 | 566 | "@babel/plugin-transform-literals@^7.23.3": 567 | version "7.23.3" 568 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" 569 | integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== 570 | dependencies: 571 | "@babel/helper-plugin-utils" "^7.22.5" 572 | 573 | "@babel/plugin-transform-logical-assignment-operators@^7.23.4": 574 | version "7.23.4" 575 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" 576 | integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== 577 | dependencies: 578 | "@babel/helper-plugin-utils" "^7.22.5" 579 | "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" 580 | 581 | "@babel/plugin-transform-member-expression-literals@^7.23.3": 582 | version "7.23.3" 583 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" 584 | integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== 585 | dependencies: 586 | "@babel/helper-plugin-utils" "^7.22.5" 587 | 588 | "@babel/plugin-transform-modules-amd@^7.23.3": 589 | version "7.23.3" 590 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d" 591 | integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw== 592 | dependencies: 593 | "@babel/helper-module-transforms" "^7.23.3" 594 | "@babel/helper-plugin-utils" "^7.22.5" 595 | 596 | "@babel/plugin-transform-modules-commonjs@^7.23.3": 597 | version "7.23.3" 598 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" 599 | integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== 600 | dependencies: 601 | "@babel/helper-module-transforms" "^7.23.3" 602 | "@babel/helper-plugin-utils" "^7.22.5" 603 | "@babel/helper-simple-access" "^7.22.5" 604 | 605 | "@babel/plugin-transform-modules-systemjs@^7.23.9": 606 | version "7.23.9" 607 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz#105d3ed46e4a21d257f83a2f9e2ee4203ceda6be" 608 | integrity sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw== 609 | dependencies: 610 | "@babel/helper-hoist-variables" "^7.22.5" 611 | "@babel/helper-module-transforms" "^7.23.3" 612 | "@babel/helper-plugin-utils" "^7.22.5" 613 | "@babel/helper-validator-identifier" "^7.22.20" 614 | 615 | "@babel/plugin-transform-modules-umd@^7.23.3": 616 | version "7.23.3" 617 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9" 618 | integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg== 619 | dependencies: 620 | "@babel/helper-module-transforms" "^7.23.3" 621 | "@babel/helper-plugin-utils" "^7.22.5" 622 | 623 | "@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": 624 | version "7.22.5" 625 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" 626 | integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== 627 | dependencies: 628 | "@babel/helper-create-regexp-features-plugin" "^7.22.5" 629 | "@babel/helper-plugin-utils" "^7.22.5" 630 | 631 | "@babel/plugin-transform-new-target@^7.23.3": 632 | version "7.23.3" 633 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980" 634 | integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ== 635 | dependencies: 636 | "@babel/helper-plugin-utils" "^7.22.5" 637 | 638 | "@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": 639 | version "7.23.4" 640 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" 641 | integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== 642 | dependencies: 643 | "@babel/helper-plugin-utils" "^7.22.5" 644 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" 645 | 646 | "@babel/plugin-transform-numeric-separator@^7.23.4": 647 | version "7.23.4" 648 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" 649 | integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== 650 | dependencies: 651 | "@babel/helper-plugin-utils" "^7.22.5" 652 | "@babel/plugin-syntax-numeric-separator" "^7.10.4" 653 | 654 | "@babel/plugin-transform-object-rest-spread@^7.24.0": 655 | version "7.24.0" 656 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz#7b836ad0088fdded2420ce96d4e1d3ed78b71df1" 657 | integrity sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w== 658 | dependencies: 659 | "@babel/compat-data" "^7.23.5" 660 | "@babel/helper-compilation-targets" "^7.23.6" 661 | "@babel/helper-plugin-utils" "^7.24.0" 662 | "@babel/plugin-syntax-object-rest-spread" "^7.8.3" 663 | "@babel/plugin-transform-parameters" "^7.23.3" 664 | 665 | "@babel/plugin-transform-object-super@^7.23.3": 666 | version "7.23.3" 667 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" 668 | integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== 669 | dependencies: 670 | "@babel/helper-plugin-utils" "^7.22.5" 671 | "@babel/helper-replace-supers" "^7.22.20" 672 | 673 | "@babel/plugin-transform-optional-catch-binding@^7.23.4": 674 | version "7.23.4" 675 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" 676 | integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== 677 | dependencies: 678 | "@babel/helper-plugin-utils" "^7.22.5" 679 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" 680 | 681 | "@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": 682 | version "7.23.4" 683 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" 684 | integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== 685 | dependencies: 686 | "@babel/helper-plugin-utils" "^7.22.5" 687 | "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" 688 | "@babel/plugin-syntax-optional-chaining" "^7.8.3" 689 | 690 | "@babel/plugin-transform-parameters@^7.23.3": 691 | version "7.23.3" 692 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" 693 | integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== 694 | dependencies: 695 | "@babel/helper-plugin-utils" "^7.22.5" 696 | 697 | "@babel/plugin-transform-private-methods@^7.23.3": 698 | version "7.23.3" 699 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4" 700 | integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g== 701 | dependencies: 702 | "@babel/helper-create-class-features-plugin" "^7.22.15" 703 | "@babel/helper-plugin-utils" "^7.22.5" 704 | 705 | "@babel/plugin-transform-private-property-in-object@^7.23.4": 706 | version "7.23.4" 707 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" 708 | integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== 709 | dependencies: 710 | "@babel/helper-annotate-as-pure" "^7.22.5" 711 | "@babel/helper-create-class-features-plugin" "^7.22.15" 712 | "@babel/helper-plugin-utils" "^7.22.5" 713 | "@babel/plugin-syntax-private-property-in-object" "^7.14.5" 714 | 715 | "@babel/plugin-transform-property-literals@^7.23.3": 716 | version "7.23.3" 717 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" 718 | integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== 719 | dependencies: 720 | "@babel/helper-plugin-utils" "^7.22.5" 721 | 722 | "@babel/plugin-transform-regenerator@^7.23.3": 723 | version "7.23.3" 724 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c" 725 | integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== 726 | dependencies: 727 | "@babel/helper-plugin-utils" "^7.22.5" 728 | regenerator-transform "^0.15.2" 729 | 730 | "@babel/plugin-transform-reserved-words@^7.23.3": 731 | version "7.23.3" 732 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8" 733 | integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg== 734 | dependencies: 735 | "@babel/helper-plugin-utils" "^7.22.5" 736 | 737 | "@babel/plugin-transform-shorthand-properties@^7.23.3": 738 | version "7.23.3" 739 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" 740 | integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== 741 | dependencies: 742 | "@babel/helper-plugin-utils" "^7.22.5" 743 | 744 | "@babel/plugin-transform-spread@^7.23.3": 745 | version "7.23.3" 746 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" 747 | integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== 748 | dependencies: 749 | "@babel/helper-plugin-utils" "^7.22.5" 750 | "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" 751 | 752 | "@babel/plugin-transform-sticky-regex@^7.23.3": 753 | version "7.23.3" 754 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04" 755 | integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg== 756 | dependencies: 757 | "@babel/helper-plugin-utils" "^7.22.5" 758 | 759 | "@babel/plugin-transform-template-literals@^7.23.3": 760 | version "7.23.3" 761 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" 762 | integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== 763 | dependencies: 764 | "@babel/helper-plugin-utils" "^7.22.5" 765 | 766 | "@babel/plugin-transform-typeof-symbol@^7.23.3": 767 | version "7.23.3" 768 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4" 769 | integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ== 770 | dependencies: 771 | "@babel/helper-plugin-utils" "^7.22.5" 772 | 773 | "@babel/plugin-transform-unicode-escapes@^7.23.3": 774 | version "7.23.3" 775 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925" 776 | integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q== 777 | dependencies: 778 | "@babel/helper-plugin-utils" "^7.22.5" 779 | 780 | "@babel/plugin-transform-unicode-property-regex@^7.23.3": 781 | version "7.23.3" 782 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad" 783 | integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA== 784 | dependencies: 785 | "@babel/helper-create-regexp-features-plugin" "^7.22.15" 786 | "@babel/helper-plugin-utils" "^7.22.5" 787 | 788 | "@babel/plugin-transform-unicode-regex@^7.23.3": 789 | version "7.23.3" 790 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc" 791 | integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw== 792 | dependencies: 793 | "@babel/helper-create-regexp-features-plugin" "^7.22.15" 794 | "@babel/helper-plugin-utils" "^7.22.5" 795 | 796 | "@babel/plugin-transform-unicode-sets-regex@^7.23.3": 797 | version "7.23.3" 798 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e" 799 | integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw== 800 | dependencies: 801 | "@babel/helper-create-regexp-features-plugin" "^7.22.15" 802 | "@babel/helper-plugin-utils" "^7.22.5" 803 | 804 | "@babel/preset-env@^7.24.0": 805 | version "7.24.0" 806 | resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.24.0.tgz#11536a7f4b977294f0bdfad780f01a8ac8e183fc" 807 | integrity sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA== 808 | dependencies: 809 | "@babel/compat-data" "^7.23.5" 810 | "@babel/helper-compilation-targets" "^7.23.6" 811 | "@babel/helper-plugin-utils" "^7.24.0" 812 | "@babel/helper-validator-option" "^7.23.5" 813 | "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" 814 | "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" 815 | "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7" 816 | "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" 817 | "@babel/plugin-syntax-async-generators" "^7.8.4" 818 | "@babel/plugin-syntax-class-properties" "^7.12.13" 819 | "@babel/plugin-syntax-class-static-block" "^7.14.5" 820 | "@babel/plugin-syntax-dynamic-import" "^7.8.3" 821 | "@babel/plugin-syntax-export-namespace-from" "^7.8.3" 822 | "@babel/plugin-syntax-import-assertions" "^7.23.3" 823 | "@babel/plugin-syntax-import-attributes" "^7.23.3" 824 | "@babel/plugin-syntax-import-meta" "^7.10.4" 825 | "@babel/plugin-syntax-json-strings" "^7.8.3" 826 | "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" 827 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" 828 | "@babel/plugin-syntax-numeric-separator" "^7.10.4" 829 | "@babel/plugin-syntax-object-rest-spread" "^7.8.3" 830 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" 831 | "@babel/plugin-syntax-optional-chaining" "^7.8.3" 832 | "@babel/plugin-syntax-private-property-in-object" "^7.14.5" 833 | "@babel/plugin-syntax-top-level-await" "^7.14.5" 834 | "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" 835 | "@babel/plugin-transform-arrow-functions" "^7.23.3" 836 | "@babel/plugin-transform-async-generator-functions" "^7.23.9" 837 | "@babel/plugin-transform-async-to-generator" "^7.23.3" 838 | "@babel/plugin-transform-block-scoped-functions" "^7.23.3" 839 | "@babel/plugin-transform-block-scoping" "^7.23.4" 840 | "@babel/plugin-transform-class-properties" "^7.23.3" 841 | "@babel/plugin-transform-class-static-block" "^7.23.4" 842 | "@babel/plugin-transform-classes" "^7.23.8" 843 | "@babel/plugin-transform-computed-properties" "^7.23.3" 844 | "@babel/plugin-transform-destructuring" "^7.23.3" 845 | "@babel/plugin-transform-dotall-regex" "^7.23.3" 846 | "@babel/plugin-transform-duplicate-keys" "^7.23.3" 847 | "@babel/plugin-transform-dynamic-import" "^7.23.4" 848 | "@babel/plugin-transform-exponentiation-operator" "^7.23.3" 849 | "@babel/plugin-transform-export-namespace-from" "^7.23.4" 850 | "@babel/plugin-transform-for-of" "^7.23.6" 851 | "@babel/plugin-transform-function-name" "^7.23.3" 852 | "@babel/plugin-transform-json-strings" "^7.23.4" 853 | "@babel/plugin-transform-literals" "^7.23.3" 854 | "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" 855 | "@babel/plugin-transform-member-expression-literals" "^7.23.3" 856 | "@babel/plugin-transform-modules-amd" "^7.23.3" 857 | "@babel/plugin-transform-modules-commonjs" "^7.23.3" 858 | "@babel/plugin-transform-modules-systemjs" "^7.23.9" 859 | "@babel/plugin-transform-modules-umd" "^7.23.3" 860 | "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" 861 | "@babel/plugin-transform-new-target" "^7.23.3" 862 | "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" 863 | "@babel/plugin-transform-numeric-separator" "^7.23.4" 864 | "@babel/plugin-transform-object-rest-spread" "^7.24.0" 865 | "@babel/plugin-transform-object-super" "^7.23.3" 866 | "@babel/plugin-transform-optional-catch-binding" "^7.23.4" 867 | "@babel/plugin-transform-optional-chaining" "^7.23.4" 868 | "@babel/plugin-transform-parameters" "^7.23.3" 869 | "@babel/plugin-transform-private-methods" "^7.23.3" 870 | "@babel/plugin-transform-private-property-in-object" "^7.23.4" 871 | "@babel/plugin-transform-property-literals" "^7.23.3" 872 | "@babel/plugin-transform-regenerator" "^7.23.3" 873 | "@babel/plugin-transform-reserved-words" "^7.23.3" 874 | "@babel/plugin-transform-shorthand-properties" "^7.23.3" 875 | "@babel/plugin-transform-spread" "^7.23.3" 876 | "@babel/plugin-transform-sticky-regex" "^7.23.3" 877 | "@babel/plugin-transform-template-literals" "^7.23.3" 878 | "@babel/plugin-transform-typeof-symbol" "^7.23.3" 879 | "@babel/plugin-transform-unicode-escapes" "^7.23.3" 880 | "@babel/plugin-transform-unicode-property-regex" "^7.23.3" 881 | "@babel/plugin-transform-unicode-regex" "^7.23.3" 882 | "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" 883 | "@babel/preset-modules" "0.1.6-no-external-plugins" 884 | babel-plugin-polyfill-corejs2 "^0.4.8" 885 | babel-plugin-polyfill-corejs3 "^0.9.0" 886 | babel-plugin-polyfill-regenerator "^0.5.5" 887 | core-js-compat "^3.31.0" 888 | semver "^6.3.1" 889 | 890 | "@babel/preset-modules@0.1.6-no-external-plugins": 891 | version "0.1.6-no-external-plugins" 892 | resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" 893 | integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== 894 | dependencies: 895 | "@babel/helper-plugin-utils" "^7.0.0" 896 | "@babel/types" "^7.4.4" 897 | esutils "^2.0.2" 898 | 899 | "@babel/regjsgen@^0.8.0": 900 | version "0.8.0" 901 | resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" 902 | integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== 903 | 904 | "@babel/runtime@^7.8.4": 905 | version "7.23.1" 906 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.1.tgz#72741dc4d413338a91dcb044a86f3c0bc402646d" 907 | integrity sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g== 908 | dependencies: 909 | regenerator-runtime "^0.14.0" 910 | 911 | "@babel/template@^7.22.15", "@babel/template@^7.24.0": 912 | version "7.24.0" 913 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" 914 | integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== 915 | dependencies: 916 | "@babel/code-frame" "^7.23.5" 917 | "@babel/parser" "^7.24.0" 918 | "@babel/types" "^7.24.0" 919 | 920 | "@babel/traverse@^7.24.0": 921 | version "7.24.0" 922 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.0.tgz#4a408fbf364ff73135c714a2ab46a5eab2831b1e" 923 | integrity sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw== 924 | dependencies: 925 | "@babel/code-frame" "^7.23.5" 926 | "@babel/generator" "^7.23.6" 927 | "@babel/helper-environment-visitor" "^7.22.20" 928 | "@babel/helper-function-name" "^7.23.0" 929 | "@babel/helper-hoist-variables" "^7.22.5" 930 | "@babel/helper-split-export-declaration" "^7.22.6" 931 | "@babel/parser" "^7.24.0" 932 | "@babel/types" "^7.24.0" 933 | debug "^4.3.1" 934 | globals "^11.1.0" 935 | 936 | "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.24.0", "@babel/types@^7.4.4": 937 | version "7.24.0" 938 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf" 939 | integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== 940 | dependencies: 941 | "@babel/helper-string-parser" "^7.23.4" 942 | "@babel/helper-validator-identifier" "^7.22.20" 943 | to-fast-properties "^2.0.0" 944 | 945 | "@discoveryjs/json-ext@^0.5.0": 946 | version "0.5.7" 947 | resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" 948 | integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== 949 | 950 | "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": 951 | version "0.3.3" 952 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" 953 | integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== 954 | dependencies: 955 | "@jridgewell/set-array" "^1.0.1" 956 | "@jridgewell/sourcemap-codec" "^1.4.10" 957 | "@jridgewell/trace-mapping" "^0.3.9" 958 | 959 | "@jridgewell/resolve-uri@^3.1.0": 960 | version "3.1.1" 961 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" 962 | integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== 963 | 964 | "@jridgewell/set-array@^1.0.1": 965 | version "1.1.2" 966 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" 967 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== 968 | 969 | "@jridgewell/source-map@^0.3.3": 970 | version "0.3.5" 971 | resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" 972 | integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== 973 | dependencies: 974 | "@jridgewell/gen-mapping" "^0.3.0" 975 | "@jridgewell/trace-mapping" "^0.3.9" 976 | 977 | "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": 978 | version "1.4.15" 979 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" 980 | integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== 981 | 982 | "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": 983 | version "0.3.19" 984 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" 985 | integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== 986 | dependencies: 987 | "@jridgewell/resolve-uri" "^3.1.0" 988 | "@jridgewell/sourcemap-codec" "^1.4.14" 989 | 990 | "@jridgewell/trace-mapping@^0.3.20": 991 | version "0.3.22" 992 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz#72a621e5de59f5f1ef792d0793a82ee20f645e4c" 993 | integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw== 994 | dependencies: 995 | "@jridgewell/resolve-uri" "^3.1.0" 996 | "@jridgewell/sourcemap-codec" "^1.4.14" 997 | 998 | "@rails/actioncable@^7.1.3": 999 | version "7.1.3" 1000 | resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-7.1.3.tgz#4db480347775aeecd4dde2405659eef74a458881" 1001 | integrity sha512-ojNvnoZtPN0pYvVFtlO7dyEN9Oml1B6IDM+whGKVak69MMYW99lC2NOWXWeE3bmwEydbP/nn6ERcpfjHVjYQjA== 1002 | 1003 | "@rails/activestorage@^7.1.2": 1004 | version "7.1.2" 1005 | resolved "https://registry.yarnpkg.com/@rails/activestorage/-/activestorage-7.1.2.tgz#088dce680fa1e0a4f8e0c5ac91073f729204ed06" 1006 | integrity sha512-evC/xGlpq5XGpcNJina3oNVVB8pUp1GpnN3a84SVA+UNuB6O91OdNRl9BGHNAOo6/jxmFtLb73PIjWqQyVE14w== 1007 | dependencies: 1008 | spark-md5 "^3.0.1" 1009 | 1010 | "@rails/ujs@^7.1.2": 1011 | version "7.1.2" 1012 | resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-7.1.2.tgz#ea903bcc0224e17156015d995b6f1b83e27d64b2" 1013 | integrity sha512-c5x02djEKEVVE4qfN4XgElJS4biM0xxtIVpcJ0ZHLK116U19rowTtmD0AJ/RCb3Xaewa4GPIWLlwgeC0dCQqzw== 1014 | 1015 | "@types/eslint-scope@^3.7.3": 1016 | version "3.7.5" 1017 | resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.5.tgz#e28b09dbb1d9d35fdfa8a884225f00440dfc5a3e" 1018 | integrity sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA== 1019 | dependencies: 1020 | "@types/eslint" "*" 1021 | "@types/estree" "*" 1022 | 1023 | "@types/eslint@*": 1024 | version "8.44.3" 1025 | resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.3.tgz#96614fae4875ea6328f56de38666f582d911d962" 1026 | integrity sha512-iM/WfkwAhwmPff3wZuPLYiHX18HI24jU8k1ZSH7P8FHwxTjZ2P6CoX2wnF43oprR+YXJM6UUxATkNvyv/JHd+g== 1027 | dependencies: 1028 | "@types/estree" "*" 1029 | "@types/json-schema" "*" 1030 | 1031 | "@types/estree@*", "@types/estree@^1.0.5": 1032 | version "1.0.5" 1033 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" 1034 | integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== 1035 | 1036 | "@types/json-schema@*", "@types/json-schema@^7.0.8": 1037 | version "7.0.13" 1038 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85" 1039 | integrity sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ== 1040 | 1041 | "@types/node@*": 1042 | version "20.7.0" 1043 | resolved "https://registry.yarnpkg.com/@types/node/-/node-20.7.0.tgz#c03de4572f114a940bc2ca909a33ddb2b925e470" 1044 | integrity sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg== 1045 | 1046 | "@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": 1047 | version "1.11.6" 1048 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" 1049 | integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== 1050 | dependencies: 1051 | "@webassemblyjs/helper-numbers" "1.11.6" 1052 | "@webassemblyjs/helper-wasm-bytecode" "1.11.6" 1053 | 1054 | "@webassemblyjs/floating-point-hex-parser@1.11.6": 1055 | version "1.11.6" 1056 | resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" 1057 | integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== 1058 | 1059 | "@webassemblyjs/helper-api-error@1.11.6": 1060 | version "1.11.6" 1061 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" 1062 | integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== 1063 | 1064 | "@webassemblyjs/helper-buffer@1.11.6": 1065 | version "1.11.6" 1066 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" 1067 | integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== 1068 | 1069 | "@webassemblyjs/helper-numbers@1.11.6": 1070 | version "1.11.6" 1071 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" 1072 | integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== 1073 | dependencies: 1074 | "@webassemblyjs/floating-point-hex-parser" "1.11.6" 1075 | "@webassemblyjs/helper-api-error" "1.11.6" 1076 | "@xtuc/long" "4.2.2" 1077 | 1078 | "@webassemblyjs/helper-wasm-bytecode@1.11.6": 1079 | version "1.11.6" 1080 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" 1081 | integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== 1082 | 1083 | "@webassemblyjs/helper-wasm-section@1.11.6": 1084 | version "1.11.6" 1085 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" 1086 | integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== 1087 | dependencies: 1088 | "@webassemblyjs/ast" "1.11.6" 1089 | "@webassemblyjs/helper-buffer" "1.11.6" 1090 | "@webassemblyjs/helper-wasm-bytecode" "1.11.6" 1091 | "@webassemblyjs/wasm-gen" "1.11.6" 1092 | 1093 | "@webassemblyjs/ieee754@1.11.6": 1094 | version "1.11.6" 1095 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" 1096 | integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== 1097 | dependencies: 1098 | "@xtuc/ieee754" "^1.2.0" 1099 | 1100 | "@webassemblyjs/leb128@1.11.6": 1101 | version "1.11.6" 1102 | resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" 1103 | integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== 1104 | dependencies: 1105 | "@xtuc/long" "4.2.2" 1106 | 1107 | "@webassemblyjs/utf8@1.11.6": 1108 | version "1.11.6" 1109 | resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" 1110 | integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== 1111 | 1112 | "@webassemblyjs/wasm-edit@^1.11.5": 1113 | version "1.11.6" 1114 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" 1115 | integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== 1116 | dependencies: 1117 | "@webassemblyjs/ast" "1.11.6" 1118 | "@webassemblyjs/helper-buffer" "1.11.6" 1119 | "@webassemblyjs/helper-wasm-bytecode" "1.11.6" 1120 | "@webassemblyjs/helper-wasm-section" "1.11.6" 1121 | "@webassemblyjs/wasm-gen" "1.11.6" 1122 | "@webassemblyjs/wasm-opt" "1.11.6" 1123 | "@webassemblyjs/wasm-parser" "1.11.6" 1124 | "@webassemblyjs/wast-printer" "1.11.6" 1125 | 1126 | "@webassemblyjs/wasm-gen@1.11.6": 1127 | version "1.11.6" 1128 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" 1129 | integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== 1130 | dependencies: 1131 | "@webassemblyjs/ast" "1.11.6" 1132 | "@webassemblyjs/helper-wasm-bytecode" "1.11.6" 1133 | "@webassemblyjs/ieee754" "1.11.6" 1134 | "@webassemblyjs/leb128" "1.11.6" 1135 | "@webassemblyjs/utf8" "1.11.6" 1136 | 1137 | "@webassemblyjs/wasm-opt@1.11.6": 1138 | version "1.11.6" 1139 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" 1140 | integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== 1141 | dependencies: 1142 | "@webassemblyjs/ast" "1.11.6" 1143 | "@webassemblyjs/helper-buffer" "1.11.6" 1144 | "@webassemblyjs/wasm-gen" "1.11.6" 1145 | "@webassemblyjs/wasm-parser" "1.11.6" 1146 | 1147 | "@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": 1148 | version "1.11.6" 1149 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" 1150 | integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== 1151 | dependencies: 1152 | "@webassemblyjs/ast" "1.11.6" 1153 | "@webassemblyjs/helper-api-error" "1.11.6" 1154 | "@webassemblyjs/helper-wasm-bytecode" "1.11.6" 1155 | "@webassemblyjs/ieee754" "1.11.6" 1156 | "@webassemblyjs/leb128" "1.11.6" 1157 | "@webassemblyjs/utf8" "1.11.6" 1158 | 1159 | "@webassemblyjs/wast-printer@1.11.6": 1160 | version "1.11.6" 1161 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" 1162 | integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== 1163 | dependencies: 1164 | "@webassemblyjs/ast" "1.11.6" 1165 | "@xtuc/long" "4.2.2" 1166 | 1167 | "@webpack-cli/configtest@^2.1.1": 1168 | version "2.1.1" 1169 | resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" 1170 | integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== 1171 | 1172 | "@webpack-cli/info@^2.0.2": 1173 | version "2.0.2" 1174 | resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" 1175 | integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== 1176 | 1177 | "@webpack-cli/serve@^2.0.5": 1178 | version "2.0.5" 1179 | resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" 1180 | integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== 1181 | 1182 | "@xtuc/ieee754@^1.2.0": 1183 | version "1.2.0" 1184 | resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" 1185 | integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== 1186 | 1187 | "@xtuc/long@4.2.2": 1188 | version "4.2.2" 1189 | resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" 1190 | integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== 1191 | 1192 | acorn-import-assertions@^1.9.0: 1193 | version "1.9.0" 1194 | resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" 1195 | integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== 1196 | 1197 | acorn@^8.7.1, acorn@^8.8.2: 1198 | version "8.10.0" 1199 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" 1200 | integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== 1201 | 1202 | ajv-keywords@^3.5.2: 1203 | version "3.5.2" 1204 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" 1205 | integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== 1206 | 1207 | ajv@^6.12.5: 1208 | version "6.12.6" 1209 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 1210 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 1211 | dependencies: 1212 | fast-deep-equal "^3.1.1" 1213 | fast-json-stable-stringify "^2.0.0" 1214 | json-schema-traverse "^0.4.1" 1215 | uri-js "^4.2.2" 1216 | 1217 | ansi-styles@^3.2.1: 1218 | version "3.2.1" 1219 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 1220 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 1221 | dependencies: 1222 | color-convert "^1.9.0" 1223 | 1224 | babel-plugin-polyfill-corejs2@^0.4.8: 1225 | version "0.4.8" 1226 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz#dbcc3c8ca758a290d47c3c6a490d59429b0d2269" 1227 | integrity sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg== 1228 | dependencies: 1229 | "@babel/compat-data" "^7.22.6" 1230 | "@babel/helper-define-polyfill-provider" "^0.5.0" 1231 | semver "^6.3.1" 1232 | 1233 | babel-plugin-polyfill-corejs3@^0.9.0: 1234 | version "0.9.0" 1235 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz#9eea32349d94556c2ad3ab9b82ebb27d4bf04a81" 1236 | integrity sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg== 1237 | dependencies: 1238 | "@babel/helper-define-polyfill-provider" "^0.5.0" 1239 | core-js-compat "^3.34.0" 1240 | 1241 | babel-plugin-polyfill-regenerator@^0.5.5: 1242 | version "0.5.5" 1243 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz#8b0c8fc6434239e5d7b8a9d1f832bb2b0310f06a" 1244 | integrity sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg== 1245 | dependencies: 1246 | "@babel/helper-define-polyfill-provider" "^0.5.0" 1247 | 1248 | browserslist@^4.21.10, browserslist@^4.22.2: 1249 | version "4.22.2" 1250 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" 1251 | integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== 1252 | dependencies: 1253 | caniuse-lite "^1.0.30001565" 1254 | electron-to-chromium "^1.4.601" 1255 | node-releases "^2.0.14" 1256 | update-browserslist-db "^1.0.13" 1257 | 1258 | browserslist@^4.22.3: 1259 | version "4.23.0" 1260 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" 1261 | integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== 1262 | dependencies: 1263 | caniuse-lite "^1.0.30001587" 1264 | electron-to-chromium "^1.4.668" 1265 | node-releases "^2.0.14" 1266 | update-browserslist-db "^1.0.13" 1267 | 1268 | buffer-from@^1.0.0: 1269 | version "1.1.2" 1270 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 1271 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 1272 | 1273 | caniuse-lite@^1.0.30001565: 1274 | version "1.0.30001576" 1275 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz#893be772cf8ee6056d6c1e2d07df365b9ec0a5c4" 1276 | integrity sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg== 1277 | 1278 | caniuse-lite@^1.0.30001587: 1279 | version "1.0.30001591" 1280 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz#16745e50263edc9f395895a7cd468b9f3767cf33" 1281 | integrity sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ== 1282 | 1283 | chalk@^2.4.2: 1284 | version "2.4.2" 1285 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 1286 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 1287 | dependencies: 1288 | ansi-styles "^3.2.1" 1289 | escape-string-regexp "^1.0.5" 1290 | supports-color "^5.3.0" 1291 | 1292 | chrome-trace-event@^1.0.2: 1293 | version "1.0.3" 1294 | resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" 1295 | integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== 1296 | 1297 | clone-deep@^4.0.1: 1298 | version "4.0.1" 1299 | resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" 1300 | integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== 1301 | dependencies: 1302 | is-plain-object "^2.0.4" 1303 | kind-of "^6.0.2" 1304 | shallow-clone "^3.0.0" 1305 | 1306 | color-convert@^1.9.0: 1307 | version "1.9.3" 1308 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 1309 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 1310 | dependencies: 1311 | color-name "1.1.3" 1312 | 1313 | color-name@1.1.3: 1314 | version "1.1.3" 1315 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 1316 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 1317 | 1318 | colorette@^2.0.14: 1319 | version "2.0.20" 1320 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" 1321 | integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== 1322 | 1323 | commander@^10.0.1: 1324 | version "10.0.1" 1325 | resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" 1326 | integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== 1327 | 1328 | commander@^2.20.0: 1329 | version "2.20.3" 1330 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 1331 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 1332 | 1333 | convert-source-map@^2.0.0: 1334 | version "2.0.0" 1335 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" 1336 | integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== 1337 | 1338 | core-js-compat@^3.31.0, core-js-compat@^3.34.0: 1339 | version "3.36.0" 1340 | resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.36.0.tgz#087679119bc2fdbdefad0d45d8e5d307d45ba190" 1341 | integrity sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw== 1342 | dependencies: 1343 | browserslist "^4.22.3" 1344 | 1345 | cross-spawn@^7.0.3: 1346 | version "7.0.3" 1347 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 1348 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 1349 | dependencies: 1350 | path-key "^3.1.0" 1351 | shebang-command "^2.0.0" 1352 | which "^2.0.1" 1353 | 1354 | debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: 1355 | version "4.3.4" 1356 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 1357 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 1358 | dependencies: 1359 | ms "2.1.2" 1360 | 1361 | electron-to-chromium@^1.4.601: 1362 | version "1.4.625" 1363 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.625.tgz#a9a1d18ee911f9074a9c42d9e84b1c79b29f4059" 1364 | integrity sha512-DENMhh3MFgaPDoXWrVIqSPInQoLImywfCwrSmVl3cf9QHzoZSiutHwGaB/Ql3VkqcQV30rzgdM+BjKqBAJxo5Q== 1365 | 1366 | electron-to-chromium@^1.4.668: 1367 | version "1.4.687" 1368 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.687.tgz#8b80da91848c13a90802f840c7de96c8558fef52" 1369 | integrity sha512-Ic85cOuXSP6h7KM0AIJ2hpJ98Bo4hyTUjc4yjMbkvD+8yTxEhfK9+8exT2KKYsSjnCn2tGsKVSZwE7ZgTORQCw== 1370 | 1371 | enhanced-resolve@^5.15.0: 1372 | version "5.15.0" 1373 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" 1374 | integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== 1375 | dependencies: 1376 | graceful-fs "^4.2.4" 1377 | tapable "^2.2.0" 1378 | 1379 | envinfo@^7.7.3: 1380 | version "7.10.0" 1381 | resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.10.0.tgz#55146e3909cc5fe63c22da63fb15b05aeac35b13" 1382 | integrity sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw== 1383 | 1384 | es-module-lexer@^1.2.1: 1385 | version "1.3.1" 1386 | resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.1.tgz#c1b0dd5ada807a3b3155315911f364dc4e909db1" 1387 | integrity sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q== 1388 | 1389 | escalade@^3.1.1: 1390 | version "3.1.1" 1391 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 1392 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 1393 | 1394 | escape-string-regexp@^1.0.5: 1395 | version "1.0.5" 1396 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 1397 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 1398 | 1399 | eslint-scope@5.1.1: 1400 | version "5.1.1" 1401 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" 1402 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 1403 | dependencies: 1404 | esrecurse "^4.3.0" 1405 | estraverse "^4.1.1" 1406 | 1407 | esrecurse@^4.3.0: 1408 | version "4.3.0" 1409 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 1410 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 1411 | dependencies: 1412 | estraverse "^5.2.0" 1413 | 1414 | estraverse@^4.1.1: 1415 | version "4.3.0" 1416 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 1417 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 1418 | 1419 | estraverse@^5.2.0: 1420 | version "5.3.0" 1421 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" 1422 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 1423 | 1424 | esutils@^2.0.2: 1425 | version "2.0.3" 1426 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 1427 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 1428 | 1429 | events@^3.2.0: 1430 | version "3.3.0" 1431 | resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" 1432 | integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== 1433 | 1434 | fast-deep-equal@^3.1.1: 1435 | version "3.1.3" 1436 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 1437 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 1438 | 1439 | fast-json-stable-stringify@^2.0.0: 1440 | version "2.1.0" 1441 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 1442 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 1443 | 1444 | fastest-levenshtein@^1.0.12: 1445 | version "1.0.16" 1446 | resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" 1447 | integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== 1448 | 1449 | find-up@^4.0.0: 1450 | version "4.1.0" 1451 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" 1452 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 1453 | dependencies: 1454 | locate-path "^5.0.0" 1455 | path-exists "^4.0.0" 1456 | 1457 | function-bind@^1.1.1: 1458 | version "1.1.1" 1459 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1460 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1461 | 1462 | gensync@^1.0.0-beta.2: 1463 | version "1.0.0-beta.2" 1464 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 1465 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 1466 | 1467 | glob-to-regexp@^0.4.1: 1468 | version "0.4.1" 1469 | resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" 1470 | integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== 1471 | 1472 | globals@^11.1.0: 1473 | version "11.12.0" 1474 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 1475 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 1476 | 1477 | graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9: 1478 | version "4.2.11" 1479 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" 1480 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== 1481 | 1482 | has-flag@^3.0.0: 1483 | version "3.0.0" 1484 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1485 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 1486 | 1487 | has-flag@^4.0.0: 1488 | version "4.0.0" 1489 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1490 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1491 | 1492 | has@^1.0.3: 1493 | version "1.0.3" 1494 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1495 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1496 | dependencies: 1497 | function-bind "^1.1.1" 1498 | 1499 | import-local@^3.0.2: 1500 | version "3.1.0" 1501 | resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" 1502 | integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== 1503 | dependencies: 1504 | pkg-dir "^4.2.0" 1505 | resolve-cwd "^3.0.0" 1506 | 1507 | interpret@^3.1.1: 1508 | version "3.1.1" 1509 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" 1510 | integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== 1511 | 1512 | is-core-module@^2.13.0: 1513 | version "2.13.0" 1514 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" 1515 | integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== 1516 | dependencies: 1517 | has "^1.0.3" 1518 | 1519 | is-plain-object@^2.0.4: 1520 | version "2.0.4" 1521 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" 1522 | integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== 1523 | dependencies: 1524 | isobject "^3.0.1" 1525 | 1526 | isexe@^2.0.0: 1527 | version "2.0.0" 1528 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1529 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 1530 | 1531 | isobject@^3.0.1: 1532 | version "3.0.1" 1533 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 1534 | integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== 1535 | 1536 | jest-worker@^27.4.5: 1537 | version "27.5.1" 1538 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" 1539 | integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== 1540 | dependencies: 1541 | "@types/node" "*" 1542 | merge-stream "^2.0.0" 1543 | supports-color "^8.0.0" 1544 | 1545 | js-tokens@^4.0.0: 1546 | version "4.0.0" 1547 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1548 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1549 | 1550 | jsesc@^2.5.1: 1551 | version "2.5.2" 1552 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 1553 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 1554 | 1555 | jsesc@~0.5.0: 1556 | version "0.5.0" 1557 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" 1558 | integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== 1559 | 1560 | json-parse-even-better-errors@^2.3.1: 1561 | version "2.3.1" 1562 | resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" 1563 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 1564 | 1565 | json-schema-traverse@^0.4.1: 1566 | version "0.4.1" 1567 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1568 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1569 | 1570 | json5@^2.2.3: 1571 | version "2.2.3" 1572 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" 1573 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== 1574 | 1575 | kind-of@^6.0.2: 1576 | version "6.0.3" 1577 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" 1578 | integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== 1579 | 1580 | loader-runner@^4.2.0: 1581 | version "4.3.0" 1582 | resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" 1583 | integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== 1584 | 1585 | locate-path@^5.0.0: 1586 | version "5.0.0" 1587 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" 1588 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 1589 | dependencies: 1590 | p-locate "^4.1.0" 1591 | 1592 | lodash.debounce@^4.0.8: 1593 | version "4.0.8" 1594 | resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" 1595 | integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== 1596 | 1597 | lru-cache@^5.1.1: 1598 | version "5.1.1" 1599 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" 1600 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== 1601 | dependencies: 1602 | yallist "^3.0.2" 1603 | 1604 | lru-cache@^6.0.0: 1605 | version "6.0.0" 1606 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1607 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1608 | dependencies: 1609 | yallist "^4.0.0" 1610 | 1611 | merge-stream@^2.0.0: 1612 | version "2.0.0" 1613 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" 1614 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 1615 | 1616 | mime-db@1.52.0: 1617 | version "1.52.0" 1618 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 1619 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 1620 | 1621 | mime-types@^2.1.27: 1622 | version "2.1.35" 1623 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 1624 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 1625 | dependencies: 1626 | mime-db "1.52.0" 1627 | 1628 | ms@2.1.2: 1629 | version "2.1.2" 1630 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1631 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1632 | 1633 | neo-async@^2.6.2: 1634 | version "2.6.2" 1635 | resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" 1636 | integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== 1637 | 1638 | node-releases@^2.0.14: 1639 | version "2.0.14" 1640 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" 1641 | integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== 1642 | 1643 | p-limit@^2.2.0: 1644 | version "2.3.0" 1645 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 1646 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 1647 | dependencies: 1648 | p-try "^2.0.0" 1649 | 1650 | p-locate@^4.1.0: 1651 | version "4.1.0" 1652 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" 1653 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 1654 | dependencies: 1655 | p-limit "^2.2.0" 1656 | 1657 | p-try@^2.0.0: 1658 | version "2.2.0" 1659 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 1660 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 1661 | 1662 | path-exists@^4.0.0: 1663 | version "4.0.0" 1664 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 1665 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 1666 | 1667 | path-key@^3.1.0: 1668 | version "3.1.1" 1669 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1670 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1671 | 1672 | path-parse@^1.0.7: 1673 | version "1.0.7" 1674 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1675 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1676 | 1677 | picocolors@^1.0.0: 1678 | version "1.0.0" 1679 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 1680 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 1681 | 1682 | pkg-dir@^4.2.0: 1683 | version "4.2.0" 1684 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" 1685 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 1686 | dependencies: 1687 | find-up "^4.0.0" 1688 | 1689 | punycode@^2.1.0: 1690 | version "2.3.0" 1691 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" 1692 | integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== 1693 | 1694 | randombytes@^2.1.0: 1695 | version "2.1.0" 1696 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 1697 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 1698 | dependencies: 1699 | safe-buffer "^5.1.0" 1700 | 1701 | rechoir@^0.8.0: 1702 | version "0.8.0" 1703 | resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" 1704 | integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== 1705 | dependencies: 1706 | resolve "^1.20.0" 1707 | 1708 | regenerate-unicode-properties@^10.1.0: 1709 | version "10.1.1" 1710 | resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" 1711 | integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== 1712 | dependencies: 1713 | regenerate "^1.4.2" 1714 | 1715 | regenerate@^1.4.2: 1716 | version "1.4.2" 1717 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" 1718 | integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== 1719 | 1720 | regenerator-runtime@^0.14.0: 1721 | version "0.14.0" 1722 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" 1723 | integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== 1724 | 1725 | regenerator-transform@^0.15.2: 1726 | version "0.15.2" 1727 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" 1728 | integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== 1729 | dependencies: 1730 | "@babel/runtime" "^7.8.4" 1731 | 1732 | regexpu-core@^5.3.1: 1733 | version "5.3.2" 1734 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" 1735 | integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== 1736 | dependencies: 1737 | "@babel/regjsgen" "^0.8.0" 1738 | regenerate "^1.4.2" 1739 | regenerate-unicode-properties "^10.1.0" 1740 | regjsparser "^0.9.1" 1741 | unicode-match-property-ecmascript "^2.0.0" 1742 | unicode-match-property-value-ecmascript "^2.1.0" 1743 | 1744 | regjsparser@^0.9.1: 1745 | version "0.9.1" 1746 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" 1747 | integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== 1748 | dependencies: 1749 | jsesc "~0.5.0" 1750 | 1751 | resolve-cwd@^3.0.0: 1752 | version "3.0.0" 1753 | resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" 1754 | integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== 1755 | dependencies: 1756 | resolve-from "^5.0.0" 1757 | 1758 | resolve-from@^5.0.0: 1759 | version "5.0.0" 1760 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" 1761 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 1762 | 1763 | resolve@^1.14.2, resolve@^1.20.0: 1764 | version "1.22.6" 1765 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.6.tgz#dd209739eca3aef739c626fea1b4f3c506195362" 1766 | integrity sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw== 1767 | dependencies: 1768 | is-core-module "^2.13.0" 1769 | path-parse "^1.0.7" 1770 | supports-preserve-symlinks-flag "^1.0.0" 1771 | 1772 | safe-buffer@^5.1.0: 1773 | version "5.2.1" 1774 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1775 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1776 | 1777 | schema-utils@^3.1.1, schema-utils@^3.2.0: 1778 | version "3.3.0" 1779 | resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" 1780 | integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== 1781 | dependencies: 1782 | "@types/json-schema" "^7.0.8" 1783 | ajv "^6.12.5" 1784 | ajv-keywords "^3.5.2" 1785 | 1786 | semver@^6.3.1, semver@^7.5.2, semver@^7.6.0: 1787 | version "7.6.0" 1788 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" 1789 | integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== 1790 | dependencies: 1791 | lru-cache "^6.0.0" 1792 | 1793 | serialize-javascript@^6.0.1: 1794 | version "6.0.1" 1795 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" 1796 | integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== 1797 | dependencies: 1798 | randombytes "^2.1.0" 1799 | 1800 | shallow-clone@^3.0.0: 1801 | version "3.0.1" 1802 | resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" 1803 | integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== 1804 | dependencies: 1805 | kind-of "^6.0.2" 1806 | 1807 | shebang-command@^2.0.0: 1808 | version "2.0.0" 1809 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1810 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1811 | dependencies: 1812 | shebang-regex "^3.0.0" 1813 | 1814 | shebang-regex@^3.0.0: 1815 | version "3.0.0" 1816 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1817 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1818 | 1819 | source-map-support@~0.5.20: 1820 | version "0.5.21" 1821 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" 1822 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 1823 | dependencies: 1824 | buffer-from "^1.0.0" 1825 | source-map "^0.6.0" 1826 | 1827 | source-map@^0.6.0: 1828 | version "0.6.1" 1829 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1830 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1831 | 1832 | spark-md5@^3.0.1: 1833 | version "3.0.2" 1834 | resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.2.tgz#7952c4a30784347abcee73268e473b9c0167e3fc" 1835 | integrity sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw== 1836 | 1837 | supports-color@^5.3.0: 1838 | version "5.5.0" 1839 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1840 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1841 | dependencies: 1842 | has-flag "^3.0.0" 1843 | 1844 | supports-color@^8.0.0: 1845 | version "8.1.1" 1846 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" 1847 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 1848 | dependencies: 1849 | has-flag "^4.0.0" 1850 | 1851 | supports-preserve-symlinks-flag@^1.0.0: 1852 | version "1.0.0" 1853 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 1854 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 1855 | 1856 | tapable@^2.1.1, tapable@^2.2.0: 1857 | version "2.2.1" 1858 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" 1859 | integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== 1860 | 1861 | terser-webpack-plugin@^5.3.10: 1862 | version "5.3.10" 1863 | resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" 1864 | integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== 1865 | dependencies: 1866 | "@jridgewell/trace-mapping" "^0.3.20" 1867 | jest-worker "^27.4.5" 1868 | schema-utils "^3.1.1" 1869 | serialize-javascript "^6.0.1" 1870 | terser "^5.26.0" 1871 | 1872 | terser@^5.26.0: 1873 | version "5.27.2" 1874 | resolved "https://registry.yarnpkg.com/terser/-/terser-5.27.2.tgz#577a362515ff5635f98ba149643793a3973ba77e" 1875 | integrity sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w== 1876 | dependencies: 1877 | "@jridgewell/source-map" "^0.3.3" 1878 | acorn "^8.8.2" 1879 | commander "^2.20.0" 1880 | source-map-support "~0.5.20" 1881 | 1882 | to-fast-properties@^2.0.0: 1883 | version "2.0.0" 1884 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 1885 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== 1886 | 1887 | turbolinks@^5.2.0: 1888 | version "5.2.0" 1889 | resolved "https://registry.yarnpkg.com/turbolinks/-/turbolinks-5.2.0.tgz#e6877a55ea5c1cb3bb225f0a4ae303d6d32ff77c" 1890 | integrity sha512-pMiez3tyBo6uRHFNNZoYMmrES/IaGgMhQQM+VFF36keryjb5ms0XkVpmKHkfW/4Vy96qiGW3K9bz0tF5sK9bBw== 1891 | 1892 | unicode-canonical-property-names-ecmascript@^2.0.0: 1893 | version "2.0.0" 1894 | resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" 1895 | integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== 1896 | 1897 | unicode-match-property-ecmascript@^2.0.0: 1898 | version "2.0.0" 1899 | resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" 1900 | integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== 1901 | dependencies: 1902 | unicode-canonical-property-names-ecmascript "^2.0.0" 1903 | unicode-property-aliases-ecmascript "^2.0.0" 1904 | 1905 | unicode-match-property-value-ecmascript@^2.1.0: 1906 | version "2.1.0" 1907 | resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" 1908 | integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== 1909 | 1910 | unicode-property-aliases-ecmascript@^2.0.0: 1911 | version "2.1.0" 1912 | resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" 1913 | integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== 1914 | 1915 | update-browserslist-db@^1.0.13: 1916 | version "1.0.13" 1917 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" 1918 | integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== 1919 | dependencies: 1920 | escalade "^3.1.1" 1921 | picocolors "^1.0.0" 1922 | 1923 | uri-js@^4.2.2: 1924 | version "4.4.1" 1925 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 1926 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 1927 | dependencies: 1928 | punycode "^2.1.0" 1929 | 1930 | watchpack@^2.4.0: 1931 | version "2.4.0" 1932 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" 1933 | integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== 1934 | dependencies: 1935 | glob-to-regexp "^0.4.1" 1936 | graceful-fs "^4.1.2" 1937 | 1938 | webpack-cli@^5.1.1: 1939 | version "5.1.4" 1940 | resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" 1941 | integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== 1942 | dependencies: 1943 | "@discoveryjs/json-ext" "^0.5.0" 1944 | "@webpack-cli/configtest" "^2.1.1" 1945 | "@webpack-cli/info" "^2.0.2" 1946 | "@webpack-cli/serve" "^2.0.5" 1947 | colorette "^2.0.14" 1948 | commander "^10.0.1" 1949 | cross-spawn "^7.0.3" 1950 | envinfo "^7.7.3" 1951 | fastest-levenshtein "^1.0.12" 1952 | import-local "^3.0.2" 1953 | interpret "^3.1.1" 1954 | rechoir "^0.8.0" 1955 | webpack-merge "^5.7.3" 1956 | 1957 | webpack-merge@^5.7.3: 1958 | version "5.9.0" 1959 | resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.9.0.tgz#dc160a1c4cf512ceca515cc231669e9ddb133826" 1960 | integrity sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg== 1961 | dependencies: 1962 | clone-deep "^4.0.1" 1963 | wildcard "^2.0.0" 1964 | 1965 | webpack-sources@^3.2.3: 1966 | version "3.2.3" 1967 | resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" 1968 | integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== 1969 | 1970 | webpack@^5.90.3: 1971 | version "5.90.3" 1972 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.90.3.tgz#37b8f74d3ded061ba789bb22b31e82eed75bd9ac" 1973 | integrity sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA== 1974 | dependencies: 1975 | "@types/eslint-scope" "^3.7.3" 1976 | "@types/estree" "^1.0.5" 1977 | "@webassemblyjs/ast" "^1.11.5" 1978 | "@webassemblyjs/wasm-edit" "^1.11.5" 1979 | "@webassemblyjs/wasm-parser" "^1.11.5" 1980 | acorn "^8.7.1" 1981 | acorn-import-assertions "^1.9.0" 1982 | browserslist "^4.21.10" 1983 | chrome-trace-event "^1.0.2" 1984 | enhanced-resolve "^5.15.0" 1985 | es-module-lexer "^1.2.1" 1986 | eslint-scope "5.1.1" 1987 | events "^3.2.0" 1988 | glob-to-regexp "^0.4.1" 1989 | graceful-fs "^4.2.9" 1990 | json-parse-even-better-errors "^2.3.1" 1991 | loader-runner "^4.2.0" 1992 | mime-types "^2.1.27" 1993 | neo-async "^2.6.2" 1994 | schema-utils "^3.2.0" 1995 | tapable "^2.1.1" 1996 | terser-webpack-plugin "^5.3.10" 1997 | watchpack "^2.4.0" 1998 | webpack-sources "^3.2.3" 1999 | 2000 | which@^2.0.1: 2001 | version "2.0.2" 2002 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 2003 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 2004 | dependencies: 2005 | isexe "^2.0.0" 2006 | 2007 | wildcard@^2.0.0: 2008 | version "2.0.1" 2009 | resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" 2010 | integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== 2011 | 2012 | yallist@^3.0.2: 2013 | version "3.1.1" 2014 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" 2015 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 2016 | 2017 | yallist@^4.0.0: 2018 | version "4.0.0" 2019 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 2020 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 2021 | --------------------------------------------------------------------------------