diff --git a/Gemfile b/Gemfile
index bb18c0b..d08985f 100644
--- a/Gemfile
+++ b/Gemfile
@@ -57,3 +57,4 @@ end
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
gem 'devise'
gem 'dotenv-rails', groups: [:development, :test]
+gem 'react-rails'
\ No newline at end of file
diff --git a/Gemfile.lock b/Gemfile.lock
index ad1e02a..e08a0ff 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -62,9 +62,13 @@ GEM
zeitwerk (~> 2.3)
addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0)
+ babel-source (5.8.35)
+ babel-transpiler (0.7.0)
+ babel-source (>= 4.0, < 6)
+ execjs (~> 2.0)
bcrypt (3.1.16)
bindex (0.8.1)
- bootsnap (1.9.1)
+ bootsnap (1.9.3)
msgpack (~> 1.0)
builder (3.2.4)
byebug (11.1.3)
@@ -79,6 +83,7 @@ GEM
xpath (~> 3.2)
childprocess (4.1.0)
concurrent-ruby (1.1.9)
+ connection_pool (2.2.5)
crass (1.0.6)
devise (4.8.0)
bcrypt (~> 3.0)
@@ -91,12 +96,13 @@ GEM
dotenv (= 2.7.6)
railties (>= 3.2)
erubi (1.10.0)
+ execjs (2.8.1)
ffi (1.15.4)
- globalid (0.5.2)
+ globalid (1.0.0)
activesupport (>= 5.0)
i18n (1.8.11)
concurrent-ruby (~> 1.0)
- jbuilder (2.11.2)
+ jbuilder (2.11.3)
activesupport (>= 5.0.0)
listen (3.7.0)
rb-fsevent (~> 0.10, >= 0.10.3)
@@ -110,12 +116,10 @@ GEM
matrix (0.4.2)
method_source (1.0.0)
mini_mime (1.1.2)
- mini_portile2 (2.6.1)
minitest (5.14.4)
msgpack (1.4.2)
nio4r (2.5.8)
nokogiri (1.12.5)
- mini_portile2 (~> 2.6.1)
racc (~> 1.4)
nokogiri (1.12.5-x86_64-linux)
racc (~> 1.4)
@@ -162,8 +166,14 @@ GEM
rb-fsevent (0.11.0)
rb-inotify (0.10.1)
ffi (~> 1.0)
+ react-rails (2.6.1)
+ babel-transpiler (>= 0.7.0)
+ connection_pool
+ execjs
+ railties (>= 3.2)
+ tilt
redis (4.5.1)
- regexp_parser (2.1.1)
+ regexp_parser (2.2.0)
responders (3.0.1)
actionpack (>= 5.0)
railties (>= 5.0)
@@ -179,16 +189,16 @@ GEM
sprockets (> 3.0)
sprockets-rails
tilt
- selenium-webdriver (4.0.3)
+ selenium-webdriver (4.1.0)
childprocess (>= 0.5, < 5.0)
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2)
semantic_range (3.0.0)
- spring (3.0.0)
+ spring (3.1.1)
sprockets (4.0.2)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
- sprockets-rails (3.3.0)
+ sprockets-rails (3.4.1)
actionpack (>= 5.2)
activesupport (>= 5.2)
sprockets (>= 3.0.0)
@@ -201,7 +211,7 @@ GEM
concurrent-ruby (~> 1.0)
warden (1.2.9)
rack (>= 2.0.9)
- web-console (4.1.0)
+ web-console (4.2.0)
actionview (>= 6.0.0)
activemodel (>= 6.0.0)
bindex (>= 0.4.0)
@@ -239,6 +249,7 @@ DEPENDENCIES
puma (~> 5.0)
rack-mini-profiler (~> 2.0)
rails (~> 6.1.4, >= 6.1.4.1)
+ react-rails
redis (~> 4.0)
sass-rails (>= 6)
selenium-webdriver
diff --git a/app/javascript/packs/menubar.jsx b/app/javascript/packs/menubar.jsx
new file mode 100644
index 0000000..772fc97
--- /dev/null
+++ b/app/javascript/packs/menubar.jsx
@@ -0,0 +1,26 @@
+// Run this example by adding <%= javascript_pack_tag 'hello_react' %> to the head of your layout file,
+// like app/views/layouts/application.html.erb. All it does is render
Hello React
at the bottom
+// of the page.
+
+import React from 'react'
+import ReactDOM from 'react-dom'
+import PropTypes from 'prop-types'
+
+const Hello = props => (
+ Hello {props.name}!
+)
+
+Hello.defaultProps = {
+ name: 'David'
+}
+
+Hello.propTypes = {
+ name: PropTypes.string
+}
+
+document.addEventListener('DOMContentLoaded', () => {
+ ReactDOM.render(
+ ,
+ document.body.appendChild(document.createElement('div')),
+ )
+})
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb
index a8112a4..a2507fd 100644
--- a/app/views/layouts/application.html.erb
+++ b/app/views/layouts/application.html.erb
@@ -11,6 +11,9 @@
+
+ <%= javascript_pack_tag 'menubar' %>
+
<%= notice %>
<%= alert %>
diff --git a/babel.config.js b/babel.config.js
index 19a07f3..ce41503 100644
--- a/babel.config.js
+++ b/babel.config.js
@@ -22,8 +22,10 @@ module.exports = function(api) {
{
targets: {
node: 'current'
- }
- }
+ },
+ modules: 'commonjs'
+ },
+ '@babel/preset-react'
],
(isProductionEnv || isDevelopmentEnv) && [
'@babel/preset-env',
@@ -34,6 +36,13 @@ module.exports = function(api) {
modules: false,
exclude: ['transform-typeof-symbol']
}
+ ],
+ [
+ '@babel/preset-react',
+ {
+ development: isDevelopmentEnv || isTestEnv,
+ useBuiltIns: true
+ }
]
].filter(Boolean),
plugins: [
@@ -68,7 +77,9 @@ module.exports = function(api) {
[
'@babel/plugin-transform-runtime',
{
- helpers: false
+ helpers: false,
+ regenerator: true,
+ corejs: false
}
],
[
@@ -76,6 +87,12 @@ module.exports = function(api) {
{
async: false
}
+ ],
+ isProductionEnv && [
+ 'babel-plugin-transform-react-remove-prop-types',
+ {
+ removeImport: true
+ }
]
].filter(Boolean)
}
diff --git a/config/webpacker.yml b/config/webpacker.yml
index a6b1465..ba8415e 100644
--- a/config/webpacker.yml
+++ b/config/webpacker.yml
@@ -33,6 +33,7 @@ default: &default
- .woff2
extensions:
+ - .jsx
- .mjs
- .js
- .sass
diff --git a/default.nix b/default.nix
index fea8900..402f610 100644
--- a/default.nix
+++ b/default.nix
@@ -1,16 +1,13 @@
-{pkgs ? import
{}}:
-with pkgs;
+{stdenv, bundlerEnv, ruby_3_0}:
let
- ruby = ruby_3_0;
- rubyEnv = bundlerEnv {
- name = "project-bundler-env";
- inherit ruby;
- gemdir = ./.;
- };
+ gems = bundlerEnv {
+ name = "env";
+ inherit ruby_3_0;
+ gemdir = ./.;
+ };
in
- mkShell {
- buildInputs = [
- rubyEnv
- rubyEnv.wrappedRuby
- ];
- }
+stdenv.mkDerivation {
+ name = "janus";
+ src = ./.;
+ buildInputs = [gems ruby_3_0];
+}
diff --git a/fuck.nix b/fuck.nix
new file mode 100644
index 0000000..954056f
--- /dev/null
+++ b/fuck.nix
@@ -0,0 +1,24 @@
+{pkgs ? import {}}:
+with pkgs;
+let
+ ruby = ruby_3_0;
+ rubyEnv = bundlerEnv {
+ name = "project-bundler-env";
+ inherit ruby;
+ gemdir = ./.;
+ gemfile = ./Gemfile;
+ lockfile = ./Gemfile.lock;
+ gemset = ./gemset.nix;
+ };
+in
+ mkShell {
+ nativeBuildInputs = [
+ #rubyPackages_3_0.nokogiri
+ ];
+ buildInputs = [
+ #rubyPackages_3_0.nokogiri
+ rubyEnv
+ rubyEnv.wrappedRuby
+ yarn
+ ];
+ }
diff --git a/gemset.nix b/gemset.nix
index 274d404..d0bb02a 100644
--- a/gemset.nix
+++ b/gemset.nix
@@ -131,6 +131,27 @@
};
version = "2.8.0";
};
+ babel-source = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ncq8h82k6hypzfb5dk7z95mmcdwnhsxmc53xz17m1nbklm25vvr";
+ type = "gem";
+ };
+ version = "5.8.35";
+ };
+ babel-transpiler = {
+ dependencies = ["babel-source" "execjs"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0w0minwxj56w96xps1msm6n75fs0y7r1vqcr9zlsn74fksnz81jc";
+ type = "gem";
+ };
+ version = "0.7.0";
+ };
bcrypt = {
groups = ["default"];
platforms = [];
@@ -157,10 +178,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1ndjra3h86dq28njm2swmaw6n3vsywrycrf7i5iy9l8hrhfhv4x2";
+ sha256 = "18prmylz53gsw651f0sibb2mvdxgd2zzdzh6a9a1idpqhyxcnbg7";
type = "gem";
};
- version = "1.9.1";
+ version = "1.9.3";
};
builder = {
groups = ["default" "development" "test"];
@@ -221,6 +242,16 @@
};
version = "1.1.9";
};
+ connection_pool = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ffdxhgirgc86qb42yvmfj6v1v0x4lvi0pxn9zhghkff44wzra0k";
+ type = "gem";
+ };
+ version = "2.2.5";
+ };
crass = {
groups = ["default" "development" "test"];
platforms = [];
@@ -273,6 +304,16 @@
};
version = "1.10.0";
};
+ execjs = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "121h6af4i6wr3wxvv84y53jcyw2sk71j5wsncm6wq6yqrwcrk4vd";
+ type = "gem";
+ };
+ version = "2.8.1";
+ };
ffi = {
groups = ["default" "development"];
platforms = [];
@@ -289,10 +330,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0k6ww3shk3mv119xvr9m99l6ql0czq91xhd66hm8hqssb18r2lvm";
+ sha256 = "1n5yc058i8xhi1fwcp1w7mfi6xaxfmrifdb4r4hjfff33ldn8lqj";
type = "gem";
};
- version = "0.5.2";
+ version = "1.0.0";
};
i18n = {
dependencies = ["concurrent-ruby"];
@@ -311,10 +352,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1vz0vp5lbp1bz2samyn8nk49vyh6zhvcqz35faq4i3kgsd4xlnhp";
+ sha256 = "1a8fhj01wqsjyr3cm6fzrv54p879v83xpm2vrh7if9q5zwvkqmfn";
type = "gem";
};
- version = "2.11.2";
+ version = "2.11.3";
};
listen = {
dependencies = ["rb-fsevent" "rb-inotify"];
@@ -389,16 +430,6 @@
};
version = "1.1.2";
};
- mini_portile2 = {
- groups = ["default" "development" "test"];
- platforms = [];
- source = {
- remotes = ["https://rubygems.org"];
- sha256 = "1lvxm91hi0pabnkkg47wh1siv56s6slm2mdq1idfm86dyfidfprq";
- type = "gem";
- };
- version = "2.6.1";
- };
minitest = {
groups = ["default" "development" "test"];
platforms = [];
@@ -430,7 +461,7 @@
version = "2.5.8";
};
nokogiri = {
- dependencies = ["mini_portile2" "racc"];
+ dependencies = ["racc"];
groups = ["default" "development" "test"];
platforms = [];
source = {
@@ -609,6 +640,17 @@
};
version = "0.10.1";
};
+ react-rails = {
+ dependencies = ["babel-transpiler" "connection_pool" "execjs" "railties" "tilt"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1m5n1k2bcl9z1pfmdm0xgy90hkjmvvk19hbxymx9yn4vvfmimw1y";
+ type = "gem";
+ };
+ version = "2.6.1";
+ };
redis = {
groups = ["default"];
platforms = [];
@@ -624,10 +666,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0vg7imjnfcqjx7kw94ccj5r78j4g190cqzi1i59sh4a0l940b9cr";
+ sha256 = "008yn8j44414qxhn1c0nxp4a70rq0bqhz70hnjpgx8cjh2g0makp";
type = "gem";
};
- version = "2.1.1";
+ version = "2.2.0";
};
responders = {
dependencies = ["actionpack" "railties"];
@@ -699,10 +741,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1kiz6afx2mdl9pad2ji5yv3bhfm474ns7cwry171di0lq78aa8na";
+ sha256 = "17hilxa40cj7q48k6wcx1cbdb1v3q9c4nx89fji7gyqpcfm16vq7";
type = "gem";
};
- version = "4.0.3";
+ version = "4.1.0";
};
semantic_range = {
groups = ["default"];
@@ -719,10 +761,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "12kyz3jdnaarhf2jbykmd9mqg085gxsx00c16la5q7czxvpb2x2r";
+ sha256 = "0w0v6fyic3a4vq1imzcp0x4b3cgbm1gi7jn7qma9768zaqmxv8gw";
type = "gem";
};
- version = "3.0.0";
+ version = "3.1.1";
};
sprockets = {
dependencies = ["concurrent-ruby" "rack"];
@@ -741,10 +783,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "18iic4rx82v0wq7criigfsj96dqw3dmdnpqpqwpqy32nn4yh1p2w";
+ sha256 = "0pjz4lbv2v0p9fa5nsrxy5lphsixb9a69gq2rxp0h5sr61m18mdq";
type = "gem";
};
- version = "3.3.0";
+ version = "3.4.1";
};
thor = {
groups = ["default" "development" "test"];
@@ -815,10 +857,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0d9hk929cmisix2l1w9kkh05b57ih9yvnh4wv52axxw41scnv2d9";
+ sha256 = "1hrkaj4131rh3kq519gkn2lrlpm22f6q5ys1b5fk0v9xm1bm1w78";
type = "gem";
};
- version = "4.1.0";
+ version = "4.2.0";
};
webdrivers = {
dependencies = ["nokogiri" "rubyzip" "selenium-webdriver"];
diff --git a/package.json b/package.json
index 7fcb8a0..8fee3f9 100644
--- a/package.json
+++ b/package.json
@@ -2,10 +2,15 @@
"name": "janus",
"private": true,
"dependencies": {
+ "@babel/preset-react": "^7.16.0",
"@rails/actioncable": "^6.0.0",
"@rails/activestorage": "^6.0.0",
"@rails/ujs": "^6.0.0",
"@rails/webpacker": "5.4.3",
+ "babel-plugin-transform-react-remove-prop-types": "^0.4.24",
+ "prop-types": "^15.7.2",
+ "react": "^17.0.2",
+ "react-dom": "^17.0.2",
"turbolinks": "^5.2.0",
"webpack": "^4.46.0",
"webpack-cli": "^3.3.12"
diff --git a/shell.nix b/shell.nix
index 601851e..9e9b203 100644
--- a/shell.nix
+++ b/shell.nix
@@ -1,28 +1,13 @@
-with (import {});
+with import {};
-let ruby = ruby_3_0;
-in
-ruby.withPackages (
-ps: with ps; [
- nokogiri
- rails
- pg
- puma
- sass-rails
- webpacker
- turbolinks
- jbuilder
- redis
- bootsnap
- web-console
- rack-mini-profiler
- listen
- spring
- capybara
- selenium-webdriver
- webdrivers
- tzinfo-data
- devise
- dotenv-rails
-]
-)
+stdenv.mkDerivation {
+ name = "env";
+ buildInputs = [
+ ruby_3_0.devEnv
+ libxml2
+ libxslt
+ zlib
+ bundix
+ gnumake
+ ];
+}
diff --git a/shell_broken.nix b/shell_broken.nix
deleted file mode 100644
index 80a11b0..0000000
--- a/shell_broken.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-with (import {});
-with builtins;
-
-let
- ruby = ruby_3_0;
- minitest = buildRubyGem {
- inherit ruby;
- gemName = "minitest";
- type = "gem";
- version = "5.10.1";
- source.sha256 = "1yk2m8sp0p5m1niawa3ncg157a4i0594cg7z91rzjxv963rzrwab";
- gemPath = [];
- };
-
- rake = buildRubyGem {
- inherit ruby;
- gemName = "rake";
- type = "gem";
- version = "12.0.0";
- source.sha256 = "01j8fc9bqjnrsxbppncai05h43315vmz9fwg28qdsgcjw9ck1d7n";
- gemPath = [];
- };
-
- srcWithout = rootPath: ignoredPaths:
- let
- ignoreStrings = map (path: toString path ) ignoredPaths;
- in
- filterSource (path: type: (all (i: i != path) ignoreStrings)) rootPath;
-in
- stdenv.mkDerivation {
- name = "bundix";
- src = builtins.fetchGit {
- url = "https://github.com/jdelStrother/bundix.git";
- ref = "multi-platform";
- };
- phases = "installPhase";
- installPhase = ''
- mkdir -p $out
- makeWrapper $src/bin/bundix $out/bin/bundix \
- --prefix PATH : "${nix.out}/bin" \
- --prefix PATH : "${nix-prefetch-git.out}/bin" \
- --set GEM_PATH "${bundler}/${bundler.ruby.gemPath}"
- '';
-
- nativeBuildInputs = [makeWrapper];
-
- buildInputs = [bundler ruby minitest rake nix-prefetch-scripts git sqlite libpcap postgresql libxml2 libxslt pkg-config gnumake];
-}
diff --git a/yarn.lock b/yarn.lock
index 313b14a..cbb5594 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -442,6 +442,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
+"@babel/plugin-syntax-jsx@^7.16.0":
+ version "7.16.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz#f9624394317365a9a88c82358d3f8471154698f1"
+ integrity sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
@@ -681,6 +688,39 @@
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
+"@babel/plugin-transform-react-display-name@^7.16.0":
+ version "7.16.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.0.tgz#9a0ad8aa8e8790883a7bd2736f66229a58125676"
+ integrity sha512-FJFdJAqaCpndL+pIf0aeD/qlQwT7QXOvR6Cc8JPvNhKJBi2zc/DPc4g05Y3fbD/0iWAMQFGij4+Xw+4L/BMpTg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-react-jsx-development@^7.16.0":
+ version "7.16.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.0.tgz#1cb52874678d23ab11d0d16488d54730807303ef"
+ integrity sha512-qq65iSqBRq0Hr3wq57YG2AmW0H6wgTnIzpffTphrUWUgLCOK+zf1f7G0vuOiXrp7dU1qq+fQBoqZ3wCDAkhFzw==
+ dependencies:
+ "@babel/plugin-transform-react-jsx" "^7.16.0"
+
+"@babel/plugin-transform-react-jsx@^7.16.0":
+ version "7.16.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.0.tgz#55b797d4960c3de04e07ad1c0476e2bc6a4889f1"
+ integrity sha512-rqDgIbukZ44pqq7NIRPGPGNklshPkvlmvqjdx3OZcGPk4zGIenYkxDTvl3LsSL8gqcc3ZzGmXPE6hR/u/voNOw==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.16.0"
+ "@babel/helper-module-imports" "^7.16.0"
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/plugin-syntax-jsx" "^7.16.0"
+ "@babel/types" "^7.16.0"
+
+"@babel/plugin-transform-react-pure-annotations@^7.16.0":
+ version "7.16.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.0.tgz#23db6ddf558d8abde41b8ad9d59f48ad5532ccab"
+ integrity sha512-NC/Bj2MG+t8Ef5Pdpo34Ay74X4Rt804h5y81PwOpfPtmAK3i6CizmQqwyBQzIepz1Yt8wNr2Z2L7Lu3qBMfZMA==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.16.0"
+ "@babel/helper-plugin-utils" "^7.14.5"
+
"@babel/plugin-transform-regenerator@^7.14.5", "@babel/plugin-transform-regenerator@^7.16.0":
version "7.16.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.0.tgz#eaee422c84b0232d03aea7db99c97deeaf6125a4"
@@ -849,6 +889,18 @@
"@babel/types" "^7.4.4"
esutils "^2.0.2"
+"@babel/preset-react@^7.16.0":
+ version "7.16.0"
+ resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.16.0.tgz#f71d3e8dff5218478011df037fad52660ee6d82a"
+ integrity sha512-d31IFW2bLRB28uL1WoElyro8RH5l6531XfxMtCeCmp6RVAF1uTfxxUA0LH1tXl+psZdwfmIbwoG4U5VwgbhtLw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/helper-validator-option" "^7.14.5"
+ "@babel/plugin-transform-react-display-name" "^7.16.0"
+ "@babel/plugin-transform-react-jsx" "^7.16.0"
+ "@babel/plugin-transform-react-jsx-development" "^7.16.0"
+ "@babel/plugin-transform-react-pure-annotations" "^7.16.0"
+
"@babel/runtime@^7.15.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4":
version "7.16.3"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5"
@@ -1414,6 +1466,11 @@ babel-plugin-polyfill-regenerator@^0.2.3:
dependencies:
"@babel/helper-define-polyfill-provider" "^0.2.4"
+babel-plugin-transform-react-remove-prop-types@^0.4.24:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a"
+ integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==
+
balanced-match@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
@@ -3800,7 +3857,7 @@ jest-worker@^26.5.0:
merge-stream "^2.0.0"
supports-color "^7.0.0"
-js-tokens@^4.0.0:
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
@@ -3977,6 +4034,13 @@ loglevel@^1.6.8:
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197"
integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==
+loose-envify@^1.1.0, loose-envify@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+ dependencies:
+ js-tokens "^3.0.0 || ^4.0.0"
+
lru-cache@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
@@ -5443,6 +5507,15 @@ promise-inflight@^1.0.1:
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
+prop-types@^15.7.2:
+ version "15.7.2"
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
+ integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
+ dependencies:
+ loose-envify "^1.4.0"
+ object-assign "^4.1.1"
+ react-is "^16.8.1"
+
proxy-addr@~2.0.5:
version "2.0.7"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
@@ -5571,6 +5644,28 @@ raw-body@2.4.0:
iconv-lite "0.4.24"
unpipe "1.0.0"
+react-dom@^17.0.2:
+ version "17.0.2"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"
+ integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+ scheduler "^0.20.2"
+
+react-is@^16.8.1:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+
+react@^17.0.2:
+ version "17.0.2"
+ resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
+ integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+
read-cache@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
@@ -5842,6 +5937,14 @@ sax@~1.2.4:
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
+scheduler@^0.20.2:
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
+ integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+
schema-utils@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"