├── .drone.yml
├── .gitignore
├── LICENCE
├── README.md
├── examples
├── create-react-app
│ ├── .env
│ ├── .gitignore
│ ├── README.md
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ ├── index.html
│ │ └── manifest.json
│ ├── src
│ │ ├── App.js
│ │ ├── index.css
│ │ ├── index.js
│ │ └── serviceWorker.js
│ └── yarn.lock
└── next.js
│ ├── .env
│ ├── .gitignore
│ ├── Dockerfile
│ ├── README.md
│ ├── package.json
│ ├── pages
│ └── index.js
│ ├── public
│ └── env.js
│ └── yarn.lock
└── packages
└── node
├── .gitignore
├── babel.config.js
├── dist
├── cli-index.js
├── cli.js
├── index.js
└── types.d.ts
├── package.json
├── rollup.config.js
├── src
├── __tests__
│ ├── dotenv.spec.js
│ └── index.spec.js
├── cli-index.js
├── cli.js
└── index.js
├── testing
└── mockEnv.js
└── yarn.lock
/.drone.yml:
--------------------------------------------------------------------------------
1 | ---
2 | #--------------------------
3 | # Gateway service
4 | #--------------------------
5 | kind: pipeline
6 | type: docker
7 | name: default
8 | steps:
9 | - name: test
10 | image: node:13-alpine
11 | environment:
12 | COVERALLS_SERVICE_NAME: 'drone'
13 | COVERALLS_GIT_BRANCH: ${DRONE_BRANCH}
14 | COVERALLS_SERVICE_NUMBER: ${DRONE_TAG=${DRONE_COMMIT}}
15 | COVERALLS_REPO_TOKEN:
16 | from_secret: COVERALLS_REPO_TOKEN
17 | commands:
18 | - cd packages/node
19 | - yarn install
20 | - yarn test:ci
21 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 |
--------------------------------------------------------------------------------
/LICENCE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2013 John Barton
2 |
3 | MIT License
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining
6 | a copy of this software and associated documentation files (the
7 | "Software"), to deal in the Software without restriction, including
8 | without limitation the rights to use, copy, modify, merge, publish,
9 | distribute, sublicense, and/or sell copies of the Software, and to
10 | permit persons to whom the Software is furnished to do so, subject to
11 | the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be
14 | included in all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 |
24 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # React Env - Runtime Environment Configuration
2 |
3 | [](https://cloud.drone.io/andrewmclagan/react-env)
4 | [](https://badge.fury.io/js/%40beam-australia%2Freact-env)
5 | [](https://coveralls.io/github/beam-australia/react-env)
6 |
7 | Populates your environment from `.env` files at **run-time** rather than **build-time**.
8 |
9 | - Isomorphic - Server and browser compatible.
10 | - Supports static site generation.
11 | - Supports multiple `.env` files.
12 |
13 | ## README
14 |
15 | - [Examples](#examples)
16 | - [Getting started](#getting-started)
17 | - [File priority](#env-file-order-of-priority)
18 | - [Common use cases](#common-use-cases)
19 | - [Environment specific config](#environment-specific-config)
20 | - [Specifing an env file](#Specifing-an-env-file)
21 | - [Using with Docker entrypoint](#using-with-docker-entrypoint)
22 | - [Arguments and parameters](#arguments-and-parameters)
23 |
24 | ### Examples
25 |
26 | - Example using [Next.js](examples/next.js/README.md) (see README.md)
27 | - Example using [Create React APP](examples/create-react-app/README.md) (see README.md)
28 |
29 | ### Getting started
30 |
31 | This package generates a `__ENV.js` file from multiple `.env` files that contains white-listed environment variables that have a `REACT_APP_` prefix.
32 |
33 | ```html
34 |
35 | ```
36 |
37 | In the browser your variables will be available at `window.__ENV.REACT_APP_FOO` and on the server `process.env.REACT_APP_FOO`. We have included a helper function to make retrieving a value easier:
38 |
39 | ```bash
40 | # .env
41 | REACT_APP_NEXT="Next.js"
42 | REACT_APP_CRA="Create React App"
43 | REACT_APP_NOT_SECRET_CODE="1234"
44 | ```
45 |
46 | becomes...
47 |
48 | ```jsx
49 | import env from "@beam-australia/react-env";
50 |
51 | export default (props) => (
52 |
53 |
54 | Works in the browser: {env("CRA")} .
55 |
56 |
57 | Also works for server side rendering: {env("NEXT")} .
58 |
59 |
62 |
63 | Entire safe environment:
64 |
65 | {{JSON.stringify(env())}}
66 |
67 |
68 |
69 | );
70 | ```
71 |
72 | ### .env file order of priority
73 |
74 | We have implemented some sane defaults that have the following order of priority:
75 |
76 | 1. `{path-to-file} // from the --path, -p argument`
77 | 2. `.env.{key} // from the --env, -e argument`
78 | 3. `.env.local`
79 | 4. `.env`
80 |
81 | Your config is available in the browser and `process.env` on the server. We suggest you add `.env.local` to `.gitignore`.
82 |
83 | ### Common use cases
84 |
85 | #### Environment specific config
86 |
87 | Frameworks such as Next allow for some nice defaults such as `.env.local, .env.production, .env`. This has the limitation where you may want to run your app in different environments such as "staging, integration, qa" but still build a "production" app with `NODE_ENV=production`. With react-env this is possible:
88 |
89 | ```bash
90 | # .env.staging
91 | REACT_APP_API_HOST="api.staging.com"
92 | # .env.production
93 | REACT_APP_API_HOST="api.production.com"
94 | # .env.qa
95 | REACT_APP_API_HOST="api.qa.com"
96 | # .env.integration
97 | REACT_APP_API_HOST="api.integration.com"
98 | # .env.local
99 | REACT_APP_API_HOST="api.example.dev"
100 | # .env
101 | REACT_APP_API_HOST="localhost"
102 | ```
103 |
104 | for staging you would simply set `APP_ENV=staging` where you run your app:
105 |
106 | ```
107 | {
108 | ...
109 | "scripts": {
110 | "start": "react-env --env APP_ENV -- next start" // where .env.${APP_ENV}
111 | }
112 | ...
113 | }
114 | ```
115 |
116 | Thus `REACT_APP_API_HOST=api.staging.com` in your staging environment.
117 |
118 | > Please keep in mind that you have to pass the name of an environment variable to `--env`, not the value of it.
119 | > - ✔ valid usage (macOS): `APP_ENV=staging react-env --env APP_ENV -- next start`
120 | > - ❌ common mistake: `react-env --env staging -- next start`
121 |
122 | #### Specifing an env file
123 |
124 | You are also able to specify the path to a specific env file:
125 |
126 | ```
127 | {
128 | ...
129 | "scripts": {
130 | "start": "react-env --path config/.env.defaults -- next start"
131 | }
132 | ...
133 | }
134 | ```
135 |
136 | You can use any combination of these two arguments along with the default `.env, .env.local` to build your runtime config.
137 |
138 | #### Specifing an prefix for white-listed environment variables
139 |
140 | You are also able to specify the prefix of white-listed environment variables:
141 |
142 | ```
143 | {
144 | ...
145 | "scripts": {
146 | "start": "react-env --prefix NEXT_APP -- next start"
147 | }
148 | ...
149 | }
150 | ```
151 |
152 | ```bash
153 | # .env
154 | NEXT_APP_NEXT="Next.js"
155 | NEXT_APP_CRA="Create React App"
156 | NEXT_APP_NOT_SECRET_CODE="1234"
157 | ```
158 |
159 | ##### Using prefix with jest
160 |
161 | You need to add `REACT_ENV_PREFIX` env variable before jest command if you use `env()` during your tests:
162 |
163 | ```
164 | {
165 | ...
166 | "scripts": {
167 | "test": "REACT_ENV_PREFIX=NEXT_APP jest --maxWorkers=3"
168 | }
169 | ...
170 | }
171 | ```
172 |
173 | #### Using with Docker entrypoint
174 |
175 | It is possible to use this package as an `ENTRYPOINT` script inside a Dockerfile. This will generate your `__ENV.js` config file when the container boots and allow your `package.json` scripts to remain unchanged. Of course `node` binary must be present in your container.
176 |
177 | ```dockerfile
178 | FROM node:alpine
179 |
180 | ENTRYPOINT yarn react-env --env APP_ENV
181 |
182 | CMD yarn start
183 | ```
184 |
185 | ### Arguments and parameters
186 |
187 | ```bash
188 | $ react-env --
189 | ```
190 |
191 | - ``
192 |
193 | You may pass a command, such as a nodejs entry file to the `react-env` cli tool. For example `react-scripts`, `next dev`, `next start`
194 |
195 | - `--env`, `-e` **(default: null)**
196 |
197 | Specify the name of an existing environment variable, whose value is the name of an environment you want, to make react-env parse an environment specific env-file. For example, you may set `APP_ENV=staging` first and then apply `--env APP_ENV` flag. react-env would load `.env.staging, .env.local, .env` in that order with the latter taking priority.
198 |
199 | - `--path`, `-p` **(default: null)**
200 |
201 | Specify a specific env file to load e.g. `react-env --path .env.testing` would load `.env.testing, .env.local, .env` in that order with the latter taking priority. a Combination of `--env APP_ENV --path testing` where `APP_ENV=staging` loads `.env.testing, .env.staging, .env.local, .env` as the priority order.
202 |
203 | - `--dest`, `-d` **(default: ./public)**
204 |
205 | Change the default destination for generating the `__ENV.js` file.
206 |
207 | - `--prefix` **(default: REACT_APP)**
208 |
209 | Change the default prefix for white-listed env variables. For exemple `react-env --prefix CUSTOM_PREFIX` will white-list variables like: `CUSTOM_PREFIX_PUBLIC_KEY=my-public-key`
210 |
211 | - `--debug` **(default: false)**
212 |
213 | Enable debugging for react-env. This will log loaded browser environment variables into your console when running `react-env --debug`
214 |
215 | ### 3.x.x Breaking changes
216 |
217 | ---
218 |
219 | As a significant breaking change we have dropped the ability to specify specific files via the `--env` argument. This argument now specifies environment file to be parsed depending on the running environment. For example `--env APP_ENV` or `-e APP_ENV` where `APP_ENV=staging` reads in `.env.staging`. It is very common for platforms to have `staging, qa, integration` environments that are still built in "production" mode with `NODE_ENV=production`. This allows for that usecase and many others.
220 |
221 | --
222 | You are still able to specify files via the `--path, -p` argument.
223 |
224 | ---
225 |
226 | We have also dropped adding `NODE_ENV` by default as this was a security risk.
227 |
228 | ---
229 |
230 | File is now named `__ENV.js`
231 |
232 | ---
233 |
234 | Depandand command is now in the format `react-env -- `
235 |
--------------------------------------------------------------------------------
/examples/create-react-app/.env:
--------------------------------------------------------------------------------
1 | # Available to the browser and server
2 | REACT_APP_FRAMEWORK='Create React App'
3 | REACT_APP_VERSION='1.0.0'
4 | REACT_APP_SSR=false
5 | REACT_APP_FOO='bar'
6 | REACT_APP_BAR='foo'
7 | REACT_APP_API_HOST='https://jsonplaceholder.typicode.com'
8 |
9 | # Available to server only
10 | HIDDEN_SECRET=42
--------------------------------------------------------------------------------
/examples/create-react-app/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | node_modules
5 | .pnp
6 | .pnp.js
7 |
8 | # testing
9 | coverage
10 |
11 | # production
12 | build
13 |
14 | # env
15 | public/__ENV.js
16 |
17 | # misc
18 | .DS_Store
19 | .env.local
20 | .env.development.local
21 | .env.test.local
22 | .env.production.local
23 |
24 | package-lock.json
25 | yarn-lock.json
26 | npm-debug.log*
27 | yarn-debug.log*
28 | yarn-error.log*
29 |
--------------------------------------------------------------------------------
/examples/create-react-app/README.md:
--------------------------------------------------------------------------------
1 | ### Create React App
2 |
3 | This folder contains an example app using Create React App.
4 |
--------------------------------------------------------------------------------
/examples/create-react-app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-env-cra",
3 | "version": "1.0.0",
4 | "private": true,
5 | "dependencies": {
6 | "@beam-australia/react-env": "3.0.4",
7 | "isomorphic-fetch": "latest",
8 | "react": "latest",
9 | "react-dom": "latest",
10 | "react-env": "latest",
11 | "react-scripts": "3.0.1"
12 | },
13 | "scripts": {
14 | "start": "react-env -- react-scripts start",
15 | "build": "react-scripts build",
16 | "test": "react-scripts test",
17 | "eject": "react-scripts eject"
18 | },
19 | "eslintConfig": {
20 | "extends": "react-app"
21 | },
22 | "browserslist": {
23 | "production": [
24 | ">0.2%",
25 | "not dead",
26 | "not op_mini all"
27 | ],
28 | "development": [
29 | "last 1 chrome version",
30 | "last 1 firefox version",
31 | "last 1 safari version"
32 | ]
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/examples/create-react-app/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/andrewmclagan/react-env/82edfa9049d05b7a38433529d6eba5c389408301/examples/create-react-app/public/favicon.ico
--------------------------------------------------------------------------------
/examples/create-react-app/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
22 | React App
23 |
24 |
25 |
26 | You need to enable JavaScript to run this app.
27 |
28 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/examples/create-react-app/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | }
10 | ],
11 | "start_url": ".",
12 | "display": "standalone",
13 | "theme_color": "#000000",
14 | "background_color": "#ffffff"
15 | }
16 |
--------------------------------------------------------------------------------
/examples/create-react-app/src/App.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import env from "@beam-australia/react-env";
3 |
4 | const styles = {
5 | padding: 30,
6 | margin: 30,
7 | backgroundColor: "rgba(238, 238, 238, 0.39)",
8 | fontFamily: "monospace"
9 | };
10 |
11 | export default class extends React.Component {
12 | state = {
13 | todos: []
14 | };
15 |
16 | async componentDidMount() {
17 | const response = await fetch(`${env("API_HOST")}/todos`);
18 | const todos = await response.json();
19 | this.setState({ todos });
20 | }
21 |
22 | render() {
23 | return (
24 |
25 |
React Env - {env("FRAMEWORK")}
26 |
Runtime environment variables
27 |
28 |
Environment
29 |
30 |
{JSON.stringify(env(), null, 2)}
31 |
32 |
33 |
Todos
34 |
35 | {this.state.todos.slice(0, 5).map(todo => (
36 | {todo.title}
37 | ))}
38 |
39 |
40 | );
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/examples/create-react-app/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
4 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
5 | sans-serif;
6 | -webkit-font-smoothing: antialiased;
7 | -moz-osx-font-smoothing: grayscale;
8 | }
9 |
10 | code {
11 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New",
12 | monospace;
13 | }
14 |
--------------------------------------------------------------------------------
/examples/create-react-app/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import './index.css';
4 | import App from './App';
5 | import * as serviceWorker from './serviceWorker';
6 |
7 | ReactDOM.render( , document.getElementById('root'));
8 |
9 | // If you want your app to work offline and load faster, you can change
10 | // unregister() to register() below. Note this comes with some pitfalls.
11 | // Learn more about service workers: https://bit.ly/CRA-PWA
12 | serviceWorker.unregister();
13 |
--------------------------------------------------------------------------------
/examples/create-react-app/src/serviceWorker.js:
--------------------------------------------------------------------------------
1 | // This optional code is used to register a service worker.
2 | // register() is not called by default.
3 |
4 | // This lets the app load faster on subsequent visits in production, and gives
5 | // it offline capabilities. However, it also means that developers (and users)
6 | // will only see deployed updates on subsequent visits to a page, after all the
7 | // existing tabs open on the page have been closed, since previously cached
8 | // resources are updated in the background.
9 |
10 | // To learn more about the benefits of this model and instructions on how to
11 | // opt-in, read https://bit.ly/CRA-PWA
12 |
13 | const isLocalhost = Boolean(
14 | window.location.hostname === 'localhost' ||
15 | // [::1] is the IPv6 localhost address.
16 | window.location.hostname === '[::1]' ||
17 | // 127.0.0.1/8 is considered localhost for IPv4.
18 | window.location.hostname.match(
19 | /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
20 | )
21 | );
22 |
23 | export function register(config) {
24 | if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
25 | // The URL constructor is available in all browsers that support SW.
26 | const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);
27 | if (publicUrl.origin !== window.location.origin) {
28 | // Our service worker won't work if PUBLIC_URL is on a different origin
29 | // from what our page is served on. This might happen if a CDN is used to
30 | // serve assets; see https://github.com/facebook/create-react-app/issues/2374
31 | return;
32 | }
33 |
34 | window.addEventListener('load', () => {
35 | const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;
36 |
37 | if (isLocalhost) {
38 | // This is running on localhost. Let's check if a service worker still exists or not.
39 | checkValidServiceWorker(swUrl, config);
40 |
41 | // Add some additional logging to localhost, pointing developers to the
42 | // service worker/PWA documentation.
43 | navigator.serviceWorker.ready.then(() => {
44 | console.log(
45 | 'This web app is being served cache-first by a service ' +
46 | 'worker. To learn more, visit https://bit.ly/CRA-PWA'
47 | );
48 | });
49 | } else {
50 | // Is not localhost. Just register service worker
51 | registerValidSW(swUrl, config);
52 | }
53 | });
54 | }
55 | }
56 |
57 | function registerValidSW(swUrl, config) {
58 | navigator.serviceWorker
59 | .register(swUrl)
60 | .then(registration => {
61 | registration.onupdatefound = () => {
62 | const installingWorker = registration.installing;
63 | if (installingWorker == null) {
64 | return;
65 | }
66 | installingWorker.onstatechange = () => {
67 | if (installingWorker.state === 'installed') {
68 | if (navigator.serviceWorker.controller) {
69 | // At this point, the updated precached content has been fetched,
70 | // but the previous service worker will still serve the older
71 | // content until all client tabs are closed.
72 | console.log(
73 | 'New content is available and will be used when all ' +
74 | 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'
75 | );
76 |
77 | // Execute callback
78 | if (config && config.onUpdate) {
79 | config.onUpdate(registration);
80 | }
81 | } else {
82 | // At this point, everything has been precached.
83 | // It's the perfect time to display a
84 | // "Content is cached for offline use." message.
85 | console.log('Content is cached for offline use.');
86 |
87 | // Execute callback
88 | if (config && config.onSuccess) {
89 | config.onSuccess(registration);
90 | }
91 | }
92 | }
93 | };
94 | };
95 | })
96 | .catch(error => {
97 | console.error('Error during service worker registration:', error);
98 | });
99 | }
100 |
101 | function checkValidServiceWorker(swUrl, config) {
102 | // Check if the service worker can be found. If it can't reload the page.
103 | fetch(swUrl)
104 | .then(response => {
105 | // Ensure service worker exists, and that we really are getting a JS file.
106 | const contentType = response.headers.get('content-type');
107 | if (
108 | response.status === 404 ||
109 | (contentType != null && contentType.indexOf('javascript') === -1)
110 | ) {
111 | // No service worker found. Probably a different app. Reload the page.
112 | navigator.serviceWorker.ready.then(registration => {
113 | registration.unregister().then(() => {
114 | window.location.reload();
115 | });
116 | });
117 | } else {
118 | // Service worker found. Proceed as normal.
119 | registerValidSW(swUrl, config);
120 | }
121 | })
122 | .catch(() => {
123 | console.log(
124 | 'No internet connection found. App is running in offline mode.'
125 | );
126 | });
127 | }
128 |
129 | export function unregister() {
130 | if ('serviceWorker' in navigator) {
131 | navigator.serviceWorker.ready.then(registration => {
132 | registration.unregister();
133 | });
134 | }
135 | }
136 |
--------------------------------------------------------------------------------
/examples/next.js/.env:
--------------------------------------------------------------------------------
1 | # Available to the browser and server
2 | REACT_APP_FRAMEWORK='Next.js'
3 | REACT_APP_VERSION='1.0.0'
4 | REACT_APP_SSR=true
5 | REACT_APP_FOO='bar'
6 | REACT_APP_BAR='foo'
7 |
8 | # Available to server only
9 | API_HOST='https://jsonplaceholder.typicode.com'
10 | HIDDEN_SECRET=42
--------------------------------------------------------------------------------
/examples/next.js/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # next.js
12 | /.next/
13 | /out/
14 |
15 | # production
16 | /build
17 |
18 | # misc
19 | .DS_Store
20 | *.pem
21 |
22 | # debug
23 | npm-debug.log*
24 | yarn-debug.log*
25 | yarn-error.log*
26 |
27 | # local env files
28 | .env.local
29 | .env.development.local
30 | .env.test.local
31 | .env.production.local
32 |
33 | # vercel
34 | .vercel
35 |
36 | # env
37 | public/__ENV.js
--------------------------------------------------------------------------------
/examples/next.js/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM node:10-alpine AS build
2 |
3 | WORKDIR /var/app
4 |
5 | COPY package.json /var/app
6 |
7 | COPY yarn.lock /var/app
8 |
9 | ENV NODE_ENV=production
10 |
11 | RUN yarn install
12 |
13 | ADD . .
14 |
15 | RUN yarn build
16 |
17 | CMD ["yarn", "start"]
18 |
--------------------------------------------------------------------------------
/examples/next.js/README.md:
--------------------------------------------------------------------------------
1 | ## Next.js
2 |
3 | This folder contains an example app using Next.js server rendered framework.
4 |
--------------------------------------------------------------------------------
/examples/next.js/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-env-next.js",
3 | "license": "ISC",
4 | "version": "1.0.0",
5 | "scripts": {
6 | "dev": "react-env -- next",
7 | "build": "next build",
8 | "start": "react-env -- next start"
9 | },
10 | "dependencies": {
11 | "isomorphic-fetch": "latest",
12 | "@beam-australia/react-env": "3.0.4",
13 | "next": "latest",
14 | "react": "latest",
15 | "react-dom": "latest",
16 | "react-env": "latest"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/examples/next.js/pages/index.js:
--------------------------------------------------------------------------------
1 | import "isomorphic-fetch";
2 | import React from "react";
3 | import Head from "next/head";
4 | import env from "@beam-australia/react-env";
5 |
6 | const styles = {
7 | padding: 30,
8 | margin: 30,
9 | backgroundColor: "rgba(238, 238, 238, 0.39)",
10 | fontFamily: "monospace"
11 | };
12 |
13 | export default class extends React.Component {
14 | static async getInitialProps() {
15 | const response = await fetch(`${process.env.API_HOST}/todos`);
16 | const todos = await response.json();
17 | return { todos };
18 | }
19 |
20 | render() {
21 | return (
22 |
23 |
24 |
React Env
25 |
26 |
27 |
React Env - {env("FRAMEWORK")}
28 |
Runtime environment variables
29 |
30 |
Environment
31 |
32 |
{JSON.stringify(env(), null, 2)}
33 |
34 |
35 |
Todos
36 |
37 | {this.props.todos.slice(0, 5).map(todo => (
38 | {todo.title}
39 | ))}
40 |
41 |
42 | );
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/examples/next.js/public/env.js:
--------------------------------------------------------------------------------
1 | window.__env = {"REACT_APP_FRAMEWORK":"Next.js","REACT_APP_VERSION":"1.0.0","REACT_APP_SSR":"true","REACT_APP_FOO":"bar","REACT_APP_BAR":"foo"};
--------------------------------------------------------------------------------
/examples/next.js/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/code-frame@7.12.11":
6 | version "7.12.11"
7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
8 | integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
9 | dependencies:
10 | "@babel/highlight" "^7.10.4"
11 |
12 | "@babel/helper-plugin-utils@^7.14.5":
13 | version "7.14.5"
14 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9"
15 | integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==
16 |
17 | "@babel/helper-validator-identifier@^7.12.11":
18 | version "7.12.11"
19 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
20 | integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
21 |
22 | "@babel/helper-validator-identifier@^7.14.9":
23 | version "7.14.9"
24 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48"
25 | integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==
26 |
27 | "@babel/highlight@^7.10.4":
28 | version "7.13.8"
29 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.8.tgz#10b2dac78526424dfc1f47650d0e415dfd9dc481"
30 | integrity sha512-4vrIhfJyfNf+lCtXC2ck1rKSzDwciqF7IWFhXXrSOUC2O5DrVp+w4c6ed4AllTxhTkUP5x2tYj41VaxdVMMRDw==
31 | dependencies:
32 | "@babel/helper-validator-identifier" "^7.12.11"
33 | chalk "^2.0.0"
34 | js-tokens "^4.0.0"
35 |
36 | "@babel/plugin-syntax-jsx@7.14.5":
37 | version "7.14.5"
38 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201"
39 | integrity sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==
40 | dependencies:
41 | "@babel/helper-plugin-utils" "^7.14.5"
42 |
43 | "@babel/runtime@7.12.5":
44 | version "7.12.5"
45 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e"
46 | integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==
47 | dependencies:
48 | regenerator-runtime "^0.13.4"
49 |
50 | "@babel/types@7.15.0":
51 | version "7.15.0"
52 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd"
53 | integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==
54 | dependencies:
55 | "@babel/helper-validator-identifier" "^7.14.9"
56 | to-fast-properties "^2.0.0"
57 |
58 | "@beam-australia/react-env@3.0.4":
59 | version "3.0.4"
60 | resolved "https://registry.yarnpkg.com/@beam-australia/react-env/-/react-env-3.0.4.tgz#cd232e2de32f7b05e8fd05777613bd2b68324d08"
61 | integrity sha512-n2/JNBNnebuDLRoCdVCVAFcoAlITrxFdvrKLQNsPvyE/wxJjLdQiODiZvWWzo2LsglBwp//CtcAw/kFpjIzMaQ==
62 | dependencies:
63 | cross-spawn "^6.0.5"
64 | dotenv "^8.0.0"
65 | dotenv-expand "^5.1.0"
66 | minimist "^1.2.0"
67 |
68 | "@hapi/accept@5.0.2":
69 | version "5.0.2"
70 | resolved "https://registry.yarnpkg.com/@hapi/accept/-/accept-5.0.2.tgz#ab7043b037e68b722f93f376afb05e85c0699523"
71 | integrity sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==
72 | dependencies:
73 | "@hapi/boom" "9.x.x"
74 | "@hapi/hoek" "9.x.x"
75 |
76 | "@hapi/boom@9.x.x":
77 | version "9.1.1"
78 | resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.1.tgz#89e6f0e01637c2a4228da0d113e8157c93677b04"
79 | integrity sha512-VNR8eDbBrOxBgbkddRYIe7+8DZ+vSbV6qlmaN2x7eWjsUjy2VmQgChkOKcVZIeupEZYj+I0dqNg430OhwzagjA==
80 | dependencies:
81 | "@hapi/hoek" "9.x.x"
82 |
83 | "@hapi/hoek@9.x.x":
84 | version "9.1.1"
85 | resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.1.1.tgz#9daf5745156fd84b8e9889a2dc721f0c58e894aa"
86 | integrity sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==
87 |
88 | "@napi-rs/triples@^1.0.3":
89 | version "1.0.3"
90 | resolved "https://registry.yarnpkg.com/@napi-rs/triples/-/triples-1.0.3.tgz#76d6d0c3f4d16013c61e45dfca5ff1e6c31ae53c"
91 | integrity sha512-jDJTpta+P4p1NZTFVLHJ/TLFVYVcOqv6l8xwOeBKNPMgY/zDYH/YH7SJbvrr/h1RcS9GzbPcLKGzpuK9cV56UA==
92 |
93 | "@next/env@11.1.0":
94 | version "11.1.0"
95 | resolved "https://registry.yarnpkg.com/@next/env/-/env-11.1.0.tgz#cae83d8e0a65aa9f2af3368f8269ffd9d911746a"
96 | integrity sha512-zPJkMFRenSf7BLlVee8987G0qQXAhxy7k+Lb/5hLAGkPVHAHm+oFFeL+2ipbI2KTEFlazdmGY0M+AlLQn7pWaw==
97 |
98 | "@next/polyfill-module@11.1.0":
99 | version "11.1.0"
100 | resolved "https://registry.yarnpkg.com/@next/polyfill-module/-/polyfill-module-11.1.0.tgz#ee6b9117a1f9bb137479dfa51d5a9e38e066a62f"
101 | integrity sha512-64EgW8SzJRQls2yJ5DkuljRxgE24o2kYtX/ghTkPUJYsfidHMWzQGwg26IgRbb/uHqTd1G0W5UkKag+Nt8TWaQ==
102 |
103 | "@next/react-dev-overlay@11.1.0":
104 | version "11.1.0"
105 | resolved "https://registry.yarnpkg.com/@next/react-dev-overlay/-/react-dev-overlay-11.1.0.tgz#8d4e8020a4cbdacbca431a0bf40c4d28187083af"
106 | integrity sha512-h+ry0sTk1W3mJw+TwEf91aqLbBJ5oqAsxfx+QryqEItNtfW6zLSSjxkyTYTqX8DkgSssQQutQfATkzBVgOR+qQ==
107 | dependencies:
108 | "@babel/code-frame" "7.12.11"
109 | anser "1.4.9"
110 | chalk "4.0.0"
111 | classnames "2.2.6"
112 | css.escape "1.5.1"
113 | data-uri-to-buffer "3.0.1"
114 | platform "1.3.6"
115 | shell-quote "1.7.2"
116 | source-map "0.8.0-beta.0"
117 | stacktrace-parser "0.1.10"
118 | strip-ansi "6.0.0"
119 |
120 | "@next/react-refresh-utils@11.1.0":
121 | version "11.1.0"
122 | resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-11.1.0.tgz#60c3c7b127a5dab8b0a2889a7dcf8a90d2c4e592"
123 | integrity sha512-g5DtFTpLTGa36iy9DuZawtJeitI11gysFGKPQQqy+mNbSFazguArcJ10gAYFlbqpIi4boUamWNI5mAoSPx3kog==
124 |
125 | "@node-rs/helper@1.2.1":
126 | version "1.2.1"
127 | resolved "https://registry.yarnpkg.com/@node-rs/helper/-/helper-1.2.1.tgz#e079b05f21ff4329d82c4e1f71c0290e4ecdc70c"
128 | integrity sha512-R5wEmm8nbuQU0YGGmYVjEc0OHtYsuXdpRG+Ut/3wZ9XAvQWyThN08bTh2cBJgoZxHQUPtvRfeQuxcAgLuiBISg==
129 | dependencies:
130 | "@napi-rs/triples" "^1.0.3"
131 |
132 | "@types/node@*":
133 | version "16.6.0"
134 | resolved "https://registry.yarnpkg.com/@types/node/-/node-16.6.0.tgz#0d5685f85066f94e97f19e8a67fe003c5fadacc4"
135 | integrity sha512-OyiZPohMMjZEYqcVo/UJ04GyAxXOJEZO/FpzyXxcH4r/ArrVoXHf4MbUrkLp0Tz7/p1mMKpo5zJ6ZHl8XBNthQ==
136 |
137 | anser@1.4.9:
138 | version "1.4.9"
139 | resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.9.tgz#1f85423a5dcf8da4631a341665ff675b96845760"
140 | integrity sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA==
141 |
142 | ansi-regex@^5.0.0:
143 | version "5.0.0"
144 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
145 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
146 |
147 | ansi-styles@^3.2.1:
148 | version "3.2.1"
149 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
150 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
151 | dependencies:
152 | color-convert "^1.9.0"
153 |
154 | ansi-styles@^4.1.0:
155 | version "4.3.0"
156 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
157 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
158 | dependencies:
159 | color-convert "^2.0.1"
160 |
161 | anymatch@~3.1.1:
162 | version "3.1.1"
163 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
164 | integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
165 | dependencies:
166 | normalize-path "^3.0.0"
167 | picomatch "^2.0.4"
168 |
169 | asn1.js@^5.2.0:
170 | version "5.4.1"
171 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
172 | integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
173 | dependencies:
174 | bn.js "^4.0.0"
175 | inherits "^2.0.1"
176 | minimalistic-assert "^1.0.0"
177 | safer-buffer "^2.1.0"
178 |
179 | assert@2.0.0:
180 | version "2.0.0"
181 | resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32"
182 | integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==
183 | dependencies:
184 | es6-object-assign "^1.1.0"
185 | is-nan "^1.2.1"
186 | object-is "^1.0.1"
187 | util "^0.12.0"
188 |
189 | assert@^1.1.1:
190 | version "1.5.0"
191 | resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb"
192 | integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==
193 | dependencies:
194 | object-assign "^4.1.1"
195 | util "0.10.3"
196 |
197 | ast-types@0.13.2:
198 | version "0.13.2"
199 | resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.2.tgz#df39b677a911a83f3a049644fb74fdded23cea48"
200 | integrity sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==
201 |
202 | available-typed-arrays@^1.0.4:
203 | version "1.0.4"
204 | resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9"
205 | integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==
206 |
207 | base64-js@^1.0.2:
208 | version "1.5.1"
209 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
210 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
211 |
212 | big.js@^5.2.2:
213 | version "5.2.2"
214 | resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
215 | integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
216 |
217 | binary-extensions@^2.0.0:
218 | version "2.2.0"
219 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
220 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
221 |
222 | bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
223 | version "4.12.0"
224 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
225 | integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
226 |
227 | bn.js@^5.0.0, bn.js@^5.1.1:
228 | version "5.2.0"
229 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002"
230 | integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==
231 |
232 | braces@~3.0.2:
233 | version "3.0.2"
234 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
235 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
236 | dependencies:
237 | fill-range "^7.0.1"
238 |
239 | brorand@^1.0.1, brorand@^1.1.0:
240 | version "1.1.0"
241 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
242 | integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
243 |
244 | browserify-aes@^1.0.0, browserify-aes@^1.0.4:
245 | version "1.2.0"
246 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
247 | integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
248 | dependencies:
249 | buffer-xor "^1.0.3"
250 | cipher-base "^1.0.0"
251 | create-hash "^1.1.0"
252 | evp_bytestokey "^1.0.3"
253 | inherits "^2.0.1"
254 | safe-buffer "^5.0.1"
255 |
256 | browserify-cipher@^1.0.0:
257 | version "1.0.1"
258 | resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
259 | integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
260 | dependencies:
261 | browserify-aes "^1.0.4"
262 | browserify-des "^1.0.0"
263 | evp_bytestokey "^1.0.0"
264 |
265 | browserify-des@^1.0.0:
266 | version "1.0.2"
267 | resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
268 | integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
269 | dependencies:
270 | cipher-base "^1.0.1"
271 | des.js "^1.0.0"
272 | inherits "^2.0.1"
273 | safe-buffer "^5.1.2"
274 |
275 | browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
276 | version "4.1.0"
277 | resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d"
278 | integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==
279 | dependencies:
280 | bn.js "^5.0.0"
281 | randombytes "^2.0.1"
282 |
283 | browserify-sign@^4.0.0:
284 | version "4.2.1"
285 | resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3"
286 | integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==
287 | dependencies:
288 | bn.js "^5.1.1"
289 | browserify-rsa "^4.0.1"
290 | create-hash "^1.2.0"
291 | create-hmac "^1.1.7"
292 | elliptic "^6.5.3"
293 | inherits "^2.0.4"
294 | parse-asn1 "^5.1.5"
295 | readable-stream "^3.6.0"
296 | safe-buffer "^5.2.0"
297 |
298 | browserify-zlib@0.2.0, browserify-zlib@^0.2.0:
299 | version "0.2.0"
300 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
301 | integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
302 | dependencies:
303 | pako "~1.0.5"
304 |
305 | browserslist@4.16.6:
306 | version "4.16.6"
307 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
308 | integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
309 | dependencies:
310 | caniuse-lite "^1.0.30001219"
311 | colorette "^1.2.2"
312 | electron-to-chromium "^1.3.723"
313 | escalade "^3.1.1"
314 | node-releases "^1.1.71"
315 |
316 | buffer-xor@^1.0.3:
317 | version "1.0.3"
318 | resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
319 | integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
320 |
321 | buffer@5.6.0:
322 | version "5.6.0"
323 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786"
324 | integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==
325 | dependencies:
326 | base64-js "^1.0.2"
327 | ieee754 "^1.1.4"
328 |
329 | buffer@^4.3.0:
330 | version "4.9.2"
331 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8"
332 | integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==
333 | dependencies:
334 | base64-js "^1.0.2"
335 | ieee754 "^1.1.4"
336 | isarray "^1.0.0"
337 |
338 | builtin-status-codes@^3.0.0:
339 | version "3.0.0"
340 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
341 | integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
342 |
343 | bytes@3.1.0:
344 | version "3.1.0"
345 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
346 | integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
347 |
348 | call-bind@^1.0.0, call-bind@^1.0.2:
349 | version "1.0.2"
350 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
351 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
352 | dependencies:
353 | function-bind "^1.1.1"
354 | get-intrinsic "^1.0.2"
355 |
356 | caniuse-lite@^1.0.30001202, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001228:
357 | version "1.0.30001251"
358 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz#6853a606ec50893115db660f82c094d18f096d85"
359 | integrity sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A==
360 |
361 | chalk@2.4.2, chalk@^2.0.0:
362 | version "2.4.2"
363 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
364 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
365 | dependencies:
366 | ansi-styles "^3.2.1"
367 | escape-string-regexp "^1.0.5"
368 | supports-color "^5.3.0"
369 |
370 | chalk@4.0.0:
371 | version "4.0.0"
372 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72"
373 | integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==
374 | dependencies:
375 | ansi-styles "^4.1.0"
376 | supports-color "^7.1.0"
377 |
378 | chokidar@3.5.1:
379 | version "3.5.1"
380 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"
381 | integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==
382 | dependencies:
383 | anymatch "~3.1.1"
384 | braces "~3.0.2"
385 | glob-parent "~5.1.0"
386 | is-binary-path "~2.1.0"
387 | is-glob "~4.0.1"
388 | normalize-path "~3.0.0"
389 | readdirp "~3.5.0"
390 | optionalDependencies:
391 | fsevents "~2.3.1"
392 |
393 | cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
394 | version "1.0.4"
395 | resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
396 | integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
397 | dependencies:
398 | inherits "^2.0.1"
399 | safe-buffer "^5.0.1"
400 |
401 | classnames@2.2.6:
402 | version "2.2.6"
403 | resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce"
404 | integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==
405 |
406 | color-convert@^1.9.0:
407 | version "1.9.3"
408 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
409 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
410 | dependencies:
411 | color-name "1.1.3"
412 |
413 | color-convert@^2.0.1:
414 | version "2.0.1"
415 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
416 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
417 | dependencies:
418 | color-name "~1.1.4"
419 |
420 | color-name@1.1.3:
421 | version "1.1.3"
422 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
423 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
424 |
425 | color-name@~1.1.4:
426 | version "1.1.4"
427 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
428 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
429 |
430 | colorette@^1.2.2:
431 | version "1.3.0"
432 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af"
433 | integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==
434 |
435 | commondir@^1.0.1:
436 | version "1.0.1"
437 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
438 | integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
439 |
440 | console-browserify@^1.1.0:
441 | version "1.2.0"
442 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
443 | integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
444 |
445 | constants-browserify@1.0.0, constants-browserify@^1.0.0:
446 | version "1.0.0"
447 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
448 | integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
449 |
450 | convert-source-map@1.7.0:
451 | version "1.7.0"
452 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
453 | integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
454 | dependencies:
455 | safe-buffer "~5.1.1"
456 |
457 | core-util-is@~1.0.0:
458 | version "1.0.2"
459 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
460 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
461 |
462 | create-ecdh@^4.0.0:
463 | version "4.0.4"
464 | resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
465 | integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==
466 | dependencies:
467 | bn.js "^4.1.0"
468 | elliptic "^6.5.3"
469 |
470 | create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
471 | version "1.2.0"
472 | resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
473 | integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
474 | dependencies:
475 | cipher-base "^1.0.1"
476 | inherits "^2.0.1"
477 | md5.js "^1.3.4"
478 | ripemd160 "^2.0.1"
479 | sha.js "^2.4.0"
480 |
481 | create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
482 | version "1.1.7"
483 | resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
484 | integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
485 | dependencies:
486 | cipher-base "^1.0.3"
487 | create-hash "^1.1.0"
488 | inherits "^2.0.1"
489 | ripemd160 "^2.0.0"
490 | safe-buffer "^5.0.1"
491 | sha.js "^2.4.8"
492 |
493 | cross-spawn@^6.0.5:
494 | version "6.0.5"
495 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
496 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
497 | dependencies:
498 | nice-try "^1.0.4"
499 | path-key "^2.0.1"
500 | semver "^5.5.0"
501 | shebang-command "^1.2.0"
502 | which "^1.2.9"
503 |
504 | crypto-browserify@3.12.0, crypto-browserify@^3.11.0:
505 | version "3.12.0"
506 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
507 | integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
508 | dependencies:
509 | browserify-cipher "^1.0.0"
510 | browserify-sign "^4.0.0"
511 | create-ecdh "^4.0.0"
512 | create-hash "^1.1.0"
513 | create-hmac "^1.1.0"
514 | diffie-hellman "^5.0.0"
515 | inherits "^2.0.1"
516 | pbkdf2 "^3.0.3"
517 | public-encrypt "^4.0.0"
518 | randombytes "^2.0.0"
519 | randomfill "^1.0.3"
520 |
521 | css.escape@1.5.1:
522 | version "1.5.1"
523 | resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb"
524 | integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=
525 |
526 | cssnano-preset-simple@^3.0.0:
527 | version "3.0.0"
528 | resolved "https://registry.yarnpkg.com/cssnano-preset-simple/-/cssnano-preset-simple-3.0.0.tgz#e95d0012699ca2c741306e9a3b8eeb495a348dbe"
529 | integrity sha512-vxQPeoMRqUT3c/9f0vWeVa2nKQIHFpogtoBvFdW4GQ3IvEJ6uauCP6p3Y5zQDLFcI7/+40FTgX12o7XUL0Ko+w==
530 | dependencies:
531 | caniuse-lite "^1.0.30001202"
532 |
533 | cssnano-simple@3.0.0:
534 | version "3.0.0"
535 | resolved "https://registry.yarnpkg.com/cssnano-simple/-/cssnano-simple-3.0.0.tgz#a4b8ccdef4c7084af97e19bc5b93b4ecf211e90f"
536 | integrity sha512-oU3ueli5Dtwgh0DyeohcIEE00QVfbPR3HzyXdAl89SfnQG3y0/qcpfLVW+jPIh3/rgMZGwuW96rejZGaYE9eUg==
537 | dependencies:
538 | cssnano-preset-simple "^3.0.0"
539 |
540 | data-uri-to-buffer@3.0.1:
541 | version "3.0.1"
542 | resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636"
543 | integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==
544 |
545 | debug@2:
546 | version "2.6.9"
547 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
548 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
549 | dependencies:
550 | ms "2.0.0"
551 |
552 | define-properties@^1.1.3:
553 | version "1.1.3"
554 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
555 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
556 | dependencies:
557 | object-keys "^1.0.12"
558 |
559 | depd@~1.1.2:
560 | version "1.1.2"
561 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
562 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
563 |
564 | des.js@^1.0.0:
565 | version "1.0.1"
566 | resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"
567 | integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==
568 | dependencies:
569 | inherits "^2.0.1"
570 | minimalistic-assert "^1.0.0"
571 |
572 | diffie-hellman@^5.0.0:
573 | version "5.0.3"
574 | resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
575 | integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
576 | dependencies:
577 | bn.js "^4.1.0"
578 | miller-rabin "^4.0.0"
579 | randombytes "^2.0.0"
580 |
581 | domain-browser@4.19.0:
582 | version "4.19.0"
583 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-4.19.0.tgz#1093e17c0a17dbd521182fe90d49ac1370054af1"
584 | integrity sha512-fRA+BaAWOR/yr/t7T9E9GJztHPeFjj8U35ajyAjCDtAAnTn1Rc1f6W6VGPJrO1tkQv9zWu+JRof7z6oQtiYVFQ==
585 |
586 | domain-browser@^1.1.1:
587 | version "1.2.0"
588 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
589 | integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
590 |
591 | dotenv-expand@^5.1.0:
592 | version "5.1.0"
593 | resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0"
594 | integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==
595 |
596 | dotenv@^8.0.0:
597 | version "8.2.0"
598 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a"
599 | integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==
600 |
601 | electron-to-chromium@^1.3.723:
602 | version "1.3.803"
603 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.803.tgz#78993a991d096500f21a77e91cd2a44295fe3cbe"
604 | integrity sha512-tmRK9qB8Zs8eLMtTBp+w2zVS9MUe62gQQQHjYdAc5Zljam3ZIokNb+vZLPRz9RCREp6EFRwyhOFwbt1fEriQ2Q==
605 |
606 | elliptic@^6.5.3:
607 | version "6.5.4"
608 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
609 | integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
610 | dependencies:
611 | bn.js "^4.11.9"
612 | brorand "^1.1.0"
613 | hash.js "^1.0.0"
614 | hmac-drbg "^1.0.1"
615 | inherits "^2.0.4"
616 | minimalistic-assert "^1.0.1"
617 | minimalistic-crypto-utils "^1.0.1"
618 |
619 | emojis-list@^2.0.0:
620 | version "2.1.0"
621 | resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
622 | integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
623 |
624 | encoding@0.1.13:
625 | version "0.1.13"
626 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
627 | integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
628 | dependencies:
629 | iconv-lite "^0.6.2"
630 |
631 | es-abstract@^1.18.5:
632 | version "1.18.5"
633 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19"
634 | integrity sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==
635 | dependencies:
636 | call-bind "^1.0.2"
637 | es-to-primitive "^1.2.1"
638 | function-bind "^1.1.1"
639 | get-intrinsic "^1.1.1"
640 | has "^1.0.3"
641 | has-symbols "^1.0.2"
642 | internal-slot "^1.0.3"
643 | is-callable "^1.2.3"
644 | is-negative-zero "^2.0.1"
645 | is-regex "^1.1.3"
646 | is-string "^1.0.6"
647 | object-inspect "^1.11.0"
648 | object-keys "^1.1.1"
649 | object.assign "^4.1.2"
650 | string.prototype.trimend "^1.0.4"
651 | string.prototype.trimstart "^1.0.4"
652 | unbox-primitive "^1.0.1"
653 |
654 | es-to-primitive@^1.2.1:
655 | version "1.2.1"
656 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
657 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
658 | dependencies:
659 | is-callable "^1.1.4"
660 | is-date-object "^1.0.1"
661 | is-symbol "^1.0.2"
662 |
663 | es6-object-assign@^1.1.0:
664 | version "1.1.0"
665 | resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c"
666 | integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=
667 |
668 | escalade@^3.1.1:
669 | version "3.1.1"
670 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
671 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
672 |
673 | escape-string-regexp@^1.0.5:
674 | version "1.0.5"
675 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
676 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
677 |
678 | etag@1.8.1:
679 | version "1.8.1"
680 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
681 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
682 |
683 | events@^3.0.0:
684 | version "3.3.0"
685 | resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
686 | integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
687 |
688 | evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
689 | version "1.0.3"
690 | resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
691 | integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
692 | dependencies:
693 | md5.js "^1.3.4"
694 | safe-buffer "^5.1.1"
695 |
696 | fill-range@^7.0.1:
697 | version "7.0.1"
698 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
699 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
700 | dependencies:
701 | to-regex-range "^5.0.1"
702 |
703 | find-cache-dir@3.3.1:
704 | version "3.3.1"
705 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880"
706 | integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==
707 | dependencies:
708 | commondir "^1.0.1"
709 | make-dir "^3.0.2"
710 | pkg-dir "^4.1.0"
711 |
712 | find-up@^4.0.0:
713 | version "4.1.0"
714 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
715 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
716 | dependencies:
717 | locate-path "^5.0.0"
718 | path-exists "^4.0.0"
719 |
720 | foreach@^2.0.5:
721 | version "2.0.5"
722 | resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
723 | integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k=
724 |
725 | fsevents@~2.3.1:
726 | version "2.3.2"
727 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
728 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
729 |
730 | function-bind@^1.1.1:
731 | version "1.1.1"
732 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
733 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
734 |
735 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
736 | version "1.1.1"
737 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
738 | integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
739 | dependencies:
740 | function-bind "^1.1.1"
741 | has "^1.0.3"
742 | has-symbols "^1.0.1"
743 |
744 | get-orientation@1.1.2:
745 | version "1.1.2"
746 | resolved "https://registry.yarnpkg.com/get-orientation/-/get-orientation-1.1.2.tgz#20507928951814f8a91ded0a0e67b29dfab98947"
747 | integrity sha512-/pViTfifW+gBbh/RnlFYHINvELT9Znt+SYyDKAUL6uV6By019AK/s+i9XP4jSwq7lwP38Fd8HVeTxym3+hkwmQ==
748 | dependencies:
749 | stream-parser "^0.3.1"
750 |
751 | glob-parent@~5.1.0:
752 | version "5.1.1"
753 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
754 | integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
755 | dependencies:
756 | is-glob "^4.0.1"
757 |
758 | glob-to-regexp@^0.4.1:
759 | version "0.4.1"
760 | resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
761 | integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
762 |
763 | graceful-fs@^4.1.2:
764 | version "4.2.6"
765 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
766 | integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
767 |
768 | has-bigints@^1.0.1:
769 | version "1.0.1"
770 | resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
771 | integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
772 |
773 | has-flag@^3.0.0:
774 | version "3.0.0"
775 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
776 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
777 |
778 | has-flag@^4.0.0:
779 | version "4.0.0"
780 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
781 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
782 |
783 | has-symbols@^1.0.1, has-symbols@^1.0.2:
784 | version "1.0.2"
785 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
786 | integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
787 |
788 | has-tostringtag@^1.0.0:
789 | version "1.0.0"
790 | resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
791 | integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
792 | dependencies:
793 | has-symbols "^1.0.2"
794 |
795 | has@^1.0.3:
796 | version "1.0.3"
797 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
798 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
799 | dependencies:
800 | function-bind "^1.1.1"
801 |
802 | hash-base@^3.0.0:
803 | version "3.1.0"
804 | resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"
805 | integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==
806 | dependencies:
807 | inherits "^2.0.4"
808 | readable-stream "^3.6.0"
809 | safe-buffer "^5.2.0"
810 |
811 | hash.js@^1.0.0, hash.js@^1.0.3:
812 | version "1.1.7"
813 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
814 | integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
815 | dependencies:
816 | inherits "^2.0.3"
817 | minimalistic-assert "^1.0.1"
818 |
819 | he@1.2.0:
820 | version "1.2.0"
821 | resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
822 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
823 |
824 | hmac-drbg@^1.0.1:
825 | version "1.0.1"
826 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
827 | integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
828 | dependencies:
829 | hash.js "^1.0.3"
830 | minimalistic-assert "^1.0.0"
831 | minimalistic-crypto-utils "^1.0.1"
832 |
833 | http-errors@1.7.3:
834 | version "1.7.3"
835 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
836 | integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
837 | dependencies:
838 | depd "~1.1.2"
839 | inherits "2.0.4"
840 | setprototypeof "1.1.1"
841 | statuses ">= 1.5.0 < 2"
842 | toidentifier "1.0.0"
843 |
844 | https-browserify@1.0.0, https-browserify@^1.0.0:
845 | version "1.0.0"
846 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
847 | integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
848 |
849 | iconv-lite@0.4.24:
850 | version "0.4.24"
851 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
852 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
853 | dependencies:
854 | safer-buffer ">= 2.1.2 < 3"
855 |
856 | iconv-lite@^0.6.2:
857 | version "0.6.3"
858 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
859 | integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
860 | dependencies:
861 | safer-buffer ">= 2.1.2 < 3.0.0"
862 |
863 | ieee754@^1.1.4:
864 | version "1.2.1"
865 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
866 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
867 |
868 | image-size@1.0.0:
869 | version "1.0.0"
870 | resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.0.tgz#58b31fe4743b1cec0a0ac26f5c914d3c5b2f0750"
871 | integrity sha512-JLJ6OwBfO1KcA+TvJT+v8gbE6iWbj24LyDNFgFEN0lzegn6cC6a/p3NIDaepMsJjQjlUWqIC7wJv8lBFxPNjcw==
872 | dependencies:
873 | queue "6.0.2"
874 |
875 | inherits@2.0.1:
876 | version "2.0.1"
877 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
878 | integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
879 |
880 | inherits@2.0.3:
881 | version "2.0.3"
882 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
883 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
884 |
885 | inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4:
886 | version "2.0.4"
887 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
888 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
889 |
890 | internal-slot@^1.0.3:
891 | version "1.0.3"
892 | resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c"
893 | integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==
894 | dependencies:
895 | get-intrinsic "^1.1.0"
896 | has "^1.0.3"
897 | side-channel "^1.0.4"
898 |
899 | is-arguments@^1.0.4:
900 | version "1.1.1"
901 | resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
902 | integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
903 | dependencies:
904 | call-bind "^1.0.2"
905 | has-tostringtag "^1.0.0"
906 |
907 | is-bigint@^1.0.1:
908 | version "1.0.4"
909 | resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
910 | integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==
911 | dependencies:
912 | has-bigints "^1.0.1"
913 |
914 | is-binary-path@~2.1.0:
915 | version "2.1.0"
916 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
917 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
918 | dependencies:
919 | binary-extensions "^2.0.0"
920 |
921 | is-boolean-object@^1.1.0:
922 | version "1.1.2"
923 | resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
924 | integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
925 | dependencies:
926 | call-bind "^1.0.2"
927 | has-tostringtag "^1.0.0"
928 |
929 | is-callable@^1.1.4, is-callable@^1.2.3:
930 | version "1.2.4"
931 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945"
932 | integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==
933 |
934 | is-date-object@^1.0.1:
935 | version "1.0.5"
936 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
937 | integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
938 | dependencies:
939 | has-tostringtag "^1.0.0"
940 |
941 | is-extglob@^2.1.1:
942 | version "2.1.1"
943 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
944 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
945 |
946 | is-generator-function@^1.0.7:
947 | version "1.0.10"
948 | resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72"
949 | integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==
950 | dependencies:
951 | has-tostringtag "^1.0.0"
952 |
953 | is-glob@^4.0.1, is-glob@~4.0.1:
954 | version "4.0.1"
955 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
956 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
957 | dependencies:
958 | is-extglob "^2.1.1"
959 |
960 | is-nan@^1.2.1:
961 | version "1.3.2"
962 | resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d"
963 | integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==
964 | dependencies:
965 | call-bind "^1.0.0"
966 | define-properties "^1.1.3"
967 |
968 | is-negative-zero@^2.0.1:
969 | version "2.0.1"
970 | resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24"
971 | integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==
972 |
973 | is-number-object@^1.0.4:
974 | version "1.0.6"
975 | resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0"
976 | integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==
977 | dependencies:
978 | has-tostringtag "^1.0.0"
979 |
980 | is-number@^7.0.0:
981 | version "7.0.0"
982 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
983 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
984 |
985 | is-regex@^1.1.3:
986 | version "1.1.4"
987 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
988 | integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
989 | dependencies:
990 | call-bind "^1.0.2"
991 | has-tostringtag "^1.0.0"
992 |
993 | is-string@^1.0.5, is-string@^1.0.6:
994 | version "1.0.7"
995 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
996 | integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==
997 | dependencies:
998 | has-tostringtag "^1.0.0"
999 |
1000 | is-symbol@^1.0.2, is-symbol@^1.0.3:
1001 | version "1.0.4"
1002 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
1003 | integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
1004 | dependencies:
1005 | has-symbols "^1.0.2"
1006 |
1007 | is-typed-array@^1.1.3, is-typed-array@^1.1.6:
1008 | version "1.1.7"
1009 | resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.7.tgz#881ddc660b13cb8423b2090fa88c0fe37a83eb2f"
1010 | integrity sha512-VxlpTBGknhQ3o7YiVjIhdLU6+oD8dPz/79vvvH4F+S/c8608UCVa9fgDpa1kZgFoUST2DCgacc70UszKgzKuvA==
1011 | dependencies:
1012 | available-typed-arrays "^1.0.4"
1013 | call-bind "^1.0.2"
1014 | es-abstract "^1.18.5"
1015 | foreach "^2.0.5"
1016 | has-tostringtag "^1.0.0"
1017 |
1018 | isarray@^1.0.0, isarray@~1.0.0:
1019 | version "1.0.0"
1020 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
1021 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
1022 |
1023 | isexe@^2.0.0:
1024 | version "2.0.0"
1025 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1026 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
1027 |
1028 | isomorphic-fetch@latest:
1029 | version "3.0.0"
1030 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#0267b005049046d2421207215d45d6a262b8b8b4"
1031 | integrity sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==
1032 | dependencies:
1033 | node-fetch "^2.6.1"
1034 | whatwg-fetch "^3.4.1"
1035 |
1036 | jest-worker@27.0.0-next.5:
1037 | version "27.0.0-next.5"
1038 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.0-next.5.tgz#5985ee29b12a4e191f4aae4bb73b97971d86ec28"
1039 | integrity sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==
1040 | dependencies:
1041 | "@types/node" "*"
1042 | merge-stream "^2.0.0"
1043 | supports-color "^8.0.0"
1044 |
1045 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
1046 | version "4.0.0"
1047 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1048 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1049 |
1050 | json5@^1.0.1:
1051 | version "1.0.1"
1052 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
1053 | integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
1054 | dependencies:
1055 | minimist "^1.2.0"
1056 |
1057 | loader-utils@1.2.3:
1058 | version "1.2.3"
1059 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
1060 | integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==
1061 | dependencies:
1062 | big.js "^5.2.2"
1063 | emojis-list "^2.0.0"
1064 | json5 "^1.0.1"
1065 |
1066 | locate-path@^5.0.0:
1067 | version "5.0.0"
1068 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
1069 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
1070 | dependencies:
1071 | p-locate "^4.1.0"
1072 |
1073 | lodash.sortby@^4.7.0:
1074 | version "4.7.0"
1075 | resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
1076 | integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
1077 |
1078 | loose-envify@^1.1.0:
1079 | version "1.4.0"
1080 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
1081 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
1082 | dependencies:
1083 | js-tokens "^3.0.0 || ^4.0.0"
1084 |
1085 | make-dir@^3.0.2:
1086 | version "3.1.0"
1087 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
1088 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
1089 | dependencies:
1090 | semver "^6.0.0"
1091 |
1092 | md5.js@^1.3.4:
1093 | version "1.3.5"
1094 | resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
1095 | integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
1096 | dependencies:
1097 | hash-base "^3.0.0"
1098 | inherits "^2.0.1"
1099 | safe-buffer "^5.1.2"
1100 |
1101 | merge-stream@^2.0.0:
1102 | version "2.0.0"
1103 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
1104 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
1105 |
1106 | miller-rabin@^4.0.0:
1107 | version "4.0.1"
1108 | resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
1109 | integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
1110 | dependencies:
1111 | bn.js "^4.0.0"
1112 | brorand "^1.0.1"
1113 |
1114 | minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
1115 | version "1.0.1"
1116 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
1117 | integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
1118 |
1119 | minimalistic-crypto-utils@^1.0.1:
1120 | version "1.0.1"
1121 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
1122 | integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
1123 |
1124 | minimist@^1.2.0:
1125 | version "1.2.5"
1126 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
1127 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
1128 |
1129 | ms@2.0.0:
1130 | version "2.0.0"
1131 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
1132 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
1133 |
1134 | nanoid@^3.1.23:
1135 | version "3.1.25"
1136 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152"
1137 | integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==
1138 |
1139 | native-url@0.3.4:
1140 | version "0.3.4"
1141 | resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.3.4.tgz#29c943172aed86c63cee62c8c04db7f5756661f8"
1142 | integrity sha512-6iM8R99ze45ivyH8vybJ7X0yekIcPf5GgLV5K0ENCbmRcaRIDoj37BC8iLEmaaBfqqb8enuZ5p0uhY+lVAbAcA==
1143 | dependencies:
1144 | querystring "^0.2.0"
1145 |
1146 | next@latest:
1147 | version "11.1.0"
1148 | resolved "https://registry.yarnpkg.com/next/-/next-11.1.0.tgz#767d4c4fa0b9b0c768cdbd6c9f03dd86b5d701c0"
1149 | integrity sha512-GHBk/c7Wyr6YbFRFZF37I0X7HKzkHHI8pur/loyXo5AIE8wdkbGPGO0ds3vNAO6f8AxZAKGCRYtAzoGlVLoifA==
1150 | dependencies:
1151 | "@babel/runtime" "7.12.5"
1152 | "@hapi/accept" "5.0.2"
1153 | "@next/env" "11.1.0"
1154 | "@next/polyfill-module" "11.1.0"
1155 | "@next/react-dev-overlay" "11.1.0"
1156 | "@next/react-refresh-utils" "11.1.0"
1157 | "@node-rs/helper" "1.2.1"
1158 | assert "2.0.0"
1159 | ast-types "0.13.2"
1160 | browserify-zlib "0.2.0"
1161 | browserslist "4.16.6"
1162 | buffer "5.6.0"
1163 | caniuse-lite "^1.0.30001228"
1164 | chalk "2.4.2"
1165 | chokidar "3.5.1"
1166 | constants-browserify "1.0.0"
1167 | crypto-browserify "3.12.0"
1168 | cssnano-simple "3.0.0"
1169 | domain-browser "4.19.0"
1170 | encoding "0.1.13"
1171 | etag "1.8.1"
1172 | find-cache-dir "3.3.1"
1173 | get-orientation "1.1.2"
1174 | https-browserify "1.0.0"
1175 | image-size "1.0.0"
1176 | jest-worker "27.0.0-next.5"
1177 | native-url "0.3.4"
1178 | node-fetch "2.6.1"
1179 | node-html-parser "1.4.9"
1180 | node-libs-browser "^2.2.1"
1181 | os-browserify "0.3.0"
1182 | p-limit "3.1.0"
1183 | path-browserify "1.0.1"
1184 | pnp-webpack-plugin "1.6.4"
1185 | postcss "8.2.15"
1186 | process "0.11.10"
1187 | querystring-es3 "0.2.1"
1188 | raw-body "2.4.1"
1189 | react-is "17.0.2"
1190 | react-refresh "0.8.3"
1191 | stream-browserify "3.0.0"
1192 | stream-http "3.1.1"
1193 | string_decoder "1.3.0"
1194 | styled-jsx "4.0.0"
1195 | timers-browserify "2.0.12"
1196 | tty-browserify "0.0.1"
1197 | use-subscription "1.5.1"
1198 | util "0.12.3"
1199 | vm-browserify "1.1.2"
1200 | watchpack "2.1.1"
1201 |
1202 | nice-try@^1.0.4:
1203 | version "1.0.5"
1204 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
1205 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
1206 |
1207 | node-fetch@2.6.1, node-fetch@^2.6.1:
1208 | version "2.6.1"
1209 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
1210 | integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
1211 |
1212 | node-html-parser@1.4.9:
1213 | version "1.4.9"
1214 | resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-1.4.9.tgz#3c8f6cac46479fae5800725edb532e9ae8fd816c"
1215 | integrity sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw==
1216 | dependencies:
1217 | he "1.2.0"
1218 |
1219 | node-libs-browser@^2.2.1:
1220 | version "2.2.1"
1221 | resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
1222 | integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==
1223 | dependencies:
1224 | assert "^1.1.1"
1225 | browserify-zlib "^0.2.0"
1226 | buffer "^4.3.0"
1227 | console-browserify "^1.1.0"
1228 | constants-browserify "^1.0.0"
1229 | crypto-browserify "^3.11.0"
1230 | domain-browser "^1.1.1"
1231 | events "^3.0.0"
1232 | https-browserify "^1.0.0"
1233 | os-browserify "^0.3.0"
1234 | path-browserify "0.0.1"
1235 | process "^0.11.10"
1236 | punycode "^1.2.4"
1237 | querystring-es3 "^0.2.0"
1238 | readable-stream "^2.3.3"
1239 | stream-browserify "^2.0.1"
1240 | stream-http "^2.7.2"
1241 | string_decoder "^1.0.0"
1242 | timers-browserify "^2.0.4"
1243 | tty-browserify "0.0.0"
1244 | url "^0.11.0"
1245 | util "^0.11.0"
1246 | vm-browserify "^1.0.1"
1247 |
1248 | node-releases@^1.1.71:
1249 | version "1.1.74"
1250 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.74.tgz#e5866488080ebaa70a93b91144ccde06f3c3463e"
1251 | integrity sha512-caJBVempXZPepZoZAPCWRTNxYQ+xtG/KAi4ozTA5A+nJ7IU+kLQCbqaUjb5Rwy14M9upBWiQ4NutcmW04LJSRw==
1252 |
1253 | normalize-path@^3.0.0, normalize-path@~3.0.0:
1254 | version "3.0.0"
1255 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
1256 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
1257 |
1258 | object-assign@^4.1.1:
1259 | version "4.1.1"
1260 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1261 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
1262 |
1263 | object-inspect@^1.11.0, object-inspect@^1.9.0:
1264 | version "1.11.0"
1265 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1"
1266 | integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==
1267 |
1268 | object-is@^1.0.1:
1269 | version "1.1.5"
1270 | resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
1271 | integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
1272 | dependencies:
1273 | call-bind "^1.0.2"
1274 | define-properties "^1.1.3"
1275 |
1276 | object-keys@^1.0.12, object-keys@^1.1.1:
1277 | version "1.1.1"
1278 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
1279 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
1280 |
1281 | object.assign@^4.1.2:
1282 | version "4.1.2"
1283 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
1284 | integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
1285 | dependencies:
1286 | call-bind "^1.0.0"
1287 | define-properties "^1.1.3"
1288 | has-symbols "^1.0.1"
1289 | object-keys "^1.1.1"
1290 |
1291 | os-browserify@0.3.0, os-browserify@^0.3.0:
1292 | version "0.3.0"
1293 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
1294 | integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
1295 |
1296 | p-limit@3.1.0:
1297 | version "3.1.0"
1298 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
1299 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
1300 | dependencies:
1301 | yocto-queue "^0.1.0"
1302 |
1303 | p-limit@^2.2.0:
1304 | version "2.3.0"
1305 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
1306 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
1307 | dependencies:
1308 | p-try "^2.0.0"
1309 |
1310 | p-locate@^4.1.0:
1311 | version "4.1.0"
1312 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
1313 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
1314 | dependencies:
1315 | p-limit "^2.2.0"
1316 |
1317 | p-try@^2.0.0:
1318 | version "2.2.0"
1319 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
1320 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
1321 |
1322 | pako@~1.0.5:
1323 | version "1.0.11"
1324 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
1325 | integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
1326 |
1327 | parse-asn1@^5.0.0, parse-asn1@^5.1.5:
1328 | version "5.1.6"
1329 | resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"
1330 | integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
1331 | dependencies:
1332 | asn1.js "^5.2.0"
1333 | browserify-aes "^1.0.0"
1334 | evp_bytestokey "^1.0.0"
1335 | pbkdf2 "^3.0.3"
1336 | safe-buffer "^5.1.1"
1337 |
1338 | path-browserify@0.0.1:
1339 | version "0.0.1"
1340 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
1341 | integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==
1342 |
1343 | path-browserify@1.0.1:
1344 | version "1.0.1"
1345 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd"
1346 | integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
1347 |
1348 | path-exists@^4.0.0:
1349 | version "4.0.0"
1350 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
1351 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
1352 |
1353 | path-key@^2.0.1:
1354 | version "2.0.1"
1355 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
1356 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
1357 |
1358 | pbkdf2@^3.0.3:
1359 | version "3.1.1"
1360 | resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94"
1361 | integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==
1362 | dependencies:
1363 | create-hash "^1.1.2"
1364 | create-hmac "^1.1.4"
1365 | ripemd160 "^2.0.1"
1366 | safe-buffer "^5.0.1"
1367 | sha.js "^2.4.8"
1368 |
1369 | picomatch@^2.0.4, picomatch@^2.2.1:
1370 | version "2.2.2"
1371 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
1372 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
1373 |
1374 | pkg-dir@^4.1.0:
1375 | version "4.2.0"
1376 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
1377 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
1378 | dependencies:
1379 | find-up "^4.0.0"
1380 |
1381 | platform@1.3.6:
1382 | version "1.3.6"
1383 | resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7"
1384 | integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==
1385 |
1386 | pnp-webpack-plugin@1.6.4:
1387 | version "1.6.4"
1388 | resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149"
1389 | integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==
1390 | dependencies:
1391 | ts-pnp "^1.1.6"
1392 |
1393 | postcss@8.2.15:
1394 | version "8.2.15"
1395 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.15.tgz#9e66ccf07292817d226fc315cbbf9bc148fbca65"
1396 | integrity sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==
1397 | dependencies:
1398 | colorette "^1.2.2"
1399 | nanoid "^3.1.23"
1400 | source-map "^0.6.1"
1401 |
1402 | process-nextick-args@~2.0.0:
1403 | version "2.0.1"
1404 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
1405 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
1406 |
1407 | process@0.11.10, process@^0.11.10:
1408 | version "0.11.10"
1409 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
1410 | integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
1411 |
1412 | public-encrypt@^4.0.0:
1413 | version "4.0.3"
1414 | resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
1415 | integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
1416 | dependencies:
1417 | bn.js "^4.1.0"
1418 | browserify-rsa "^4.0.0"
1419 | create-hash "^1.1.0"
1420 | parse-asn1 "^5.0.0"
1421 | randombytes "^2.0.1"
1422 | safe-buffer "^5.1.2"
1423 |
1424 | punycode@1.3.2:
1425 | version "1.3.2"
1426 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
1427 | integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
1428 |
1429 | punycode@^1.2.4:
1430 | version "1.4.1"
1431 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
1432 | integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
1433 |
1434 | punycode@^2.1.0:
1435 | version "2.1.1"
1436 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
1437 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1438 |
1439 | querystring-es3@0.2.1, querystring-es3@^0.2.0:
1440 | version "0.2.1"
1441 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
1442 | integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=
1443 |
1444 | querystring@0.2.0:
1445 | version "0.2.0"
1446 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
1447 | integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
1448 |
1449 | querystring@^0.2.0:
1450 | version "0.2.1"
1451 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd"
1452 | integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==
1453 |
1454 | queue@6.0.2:
1455 | version "6.0.2"
1456 | resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65"
1457 | integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==
1458 | dependencies:
1459 | inherits "~2.0.3"
1460 |
1461 | randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
1462 | version "2.1.0"
1463 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
1464 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
1465 | dependencies:
1466 | safe-buffer "^5.1.0"
1467 |
1468 | randomfill@^1.0.3:
1469 | version "1.0.4"
1470 | resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
1471 | integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
1472 | dependencies:
1473 | randombytes "^2.0.5"
1474 | safe-buffer "^5.1.0"
1475 |
1476 | raw-body@2.4.1:
1477 | version "2.4.1"
1478 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c"
1479 | integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==
1480 | dependencies:
1481 | bytes "3.1.0"
1482 | http-errors "1.7.3"
1483 | iconv-lite "0.4.24"
1484 | unpipe "1.0.0"
1485 |
1486 | react-dom@latest:
1487 | version "17.0.1"
1488 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.1.tgz#1de2560474ec9f0e334285662ede52dbc5426fc6"
1489 | integrity sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==
1490 | dependencies:
1491 | loose-envify "^1.1.0"
1492 | object-assign "^4.1.1"
1493 | scheduler "^0.20.1"
1494 |
1495 | react-env@latest:
1496 | version "0.0.0"
1497 | resolved "https://registry.yarnpkg.com/react-env/-/react-env-0.0.0.tgz#fa9f0af98d555b0b0f60edccae0d63ba3ebbad51"
1498 | integrity sha1-+p8K+Y1VWwsPYO3Mrg1juj67rVE=
1499 |
1500 | react-is@17.0.2:
1501 | version "17.0.2"
1502 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
1503 | integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
1504 |
1505 | react-refresh@0.8.3:
1506 | version "0.8.3"
1507 | resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f"
1508 | integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==
1509 |
1510 | react@latest:
1511 | version "17.0.1"
1512 | resolved "https://registry.yarnpkg.com/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127"
1513 | integrity sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==
1514 | dependencies:
1515 | loose-envify "^1.1.0"
1516 | object-assign "^4.1.1"
1517 |
1518 | readable-stream@^2.0.2, readable-stream@^2.3.3, readable-stream@^2.3.6:
1519 | version "2.3.7"
1520 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
1521 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
1522 | dependencies:
1523 | core-util-is "~1.0.0"
1524 | inherits "~2.0.3"
1525 | isarray "~1.0.0"
1526 | process-nextick-args "~2.0.0"
1527 | safe-buffer "~5.1.1"
1528 | string_decoder "~1.1.1"
1529 | util-deprecate "~1.0.1"
1530 |
1531 | readable-stream@^3.5.0, readable-stream@^3.6.0:
1532 | version "3.6.0"
1533 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
1534 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
1535 | dependencies:
1536 | inherits "^2.0.3"
1537 | string_decoder "^1.1.1"
1538 | util-deprecate "^1.0.1"
1539 |
1540 | readdirp@~3.5.0:
1541 | version "3.5.0"
1542 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e"
1543 | integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==
1544 | dependencies:
1545 | picomatch "^2.2.1"
1546 |
1547 | regenerator-runtime@^0.13.4:
1548 | version "0.13.7"
1549 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
1550 | integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==
1551 |
1552 | ripemd160@^2.0.0, ripemd160@^2.0.1:
1553 | version "2.0.2"
1554 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
1555 | integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
1556 | dependencies:
1557 | hash-base "^3.0.0"
1558 | inherits "^2.0.1"
1559 |
1560 | safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
1561 | version "5.2.1"
1562 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
1563 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
1564 |
1565 | safe-buffer@~5.1.0, safe-buffer@~5.1.1:
1566 | version "5.1.2"
1567 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
1568 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1569 |
1570 | "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0:
1571 | version "2.1.2"
1572 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
1573 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
1574 |
1575 | scheduler@^0.20.1:
1576 | version "0.20.1"
1577 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.1.tgz#da0b907e24026b01181ecbc75efdc7f27b5a000c"
1578 | integrity sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==
1579 | dependencies:
1580 | loose-envify "^1.1.0"
1581 | object-assign "^4.1.1"
1582 |
1583 | semver@^5.5.0:
1584 | version "5.7.1"
1585 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
1586 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
1587 |
1588 | semver@^6.0.0:
1589 | version "6.3.0"
1590 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
1591 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
1592 |
1593 | setimmediate@^1.0.4:
1594 | version "1.0.5"
1595 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
1596 | integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
1597 |
1598 | setprototypeof@1.1.1:
1599 | version "1.1.1"
1600 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
1601 | integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
1602 |
1603 | sha.js@^2.4.0, sha.js@^2.4.8:
1604 | version "2.4.11"
1605 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
1606 | integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
1607 | dependencies:
1608 | inherits "^2.0.1"
1609 | safe-buffer "^5.0.1"
1610 |
1611 | shebang-command@^1.2.0:
1612 | version "1.2.0"
1613 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
1614 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
1615 | dependencies:
1616 | shebang-regex "^1.0.0"
1617 |
1618 | shebang-regex@^1.0.0:
1619 | version "1.0.0"
1620 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
1621 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
1622 |
1623 | shell-quote@1.7.2:
1624 | version "1.7.2"
1625 | resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
1626 | integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
1627 |
1628 | side-channel@^1.0.4:
1629 | version "1.0.4"
1630 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
1631 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
1632 | dependencies:
1633 | call-bind "^1.0.0"
1634 | get-intrinsic "^1.0.2"
1635 | object-inspect "^1.9.0"
1636 |
1637 | source-map@0.7.3:
1638 | version "0.7.3"
1639 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
1640 | integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
1641 |
1642 | source-map@0.8.0-beta.0:
1643 | version "0.8.0-beta.0"
1644 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11"
1645 | integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==
1646 | dependencies:
1647 | whatwg-url "^7.0.0"
1648 |
1649 | source-map@^0.6.1:
1650 | version "0.6.1"
1651 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
1652 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
1653 |
1654 | stacktrace-parser@0.1.10:
1655 | version "0.1.10"
1656 | resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a"
1657 | integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==
1658 | dependencies:
1659 | type-fest "^0.7.1"
1660 |
1661 | "statuses@>= 1.5.0 < 2":
1662 | version "1.5.0"
1663 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
1664 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
1665 |
1666 | stream-browserify@3.0.0:
1667 | version "3.0.0"
1668 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f"
1669 | integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==
1670 | dependencies:
1671 | inherits "~2.0.4"
1672 | readable-stream "^3.5.0"
1673 |
1674 | stream-browserify@^2.0.1:
1675 | version "2.0.2"
1676 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
1677 | integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==
1678 | dependencies:
1679 | inherits "~2.0.1"
1680 | readable-stream "^2.0.2"
1681 |
1682 | stream-http@3.1.1:
1683 | version "3.1.1"
1684 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.1.1.tgz#0370a8017cf8d050b9a8554afe608f043eaff564"
1685 | integrity sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==
1686 | dependencies:
1687 | builtin-status-codes "^3.0.0"
1688 | inherits "^2.0.4"
1689 | readable-stream "^3.6.0"
1690 | xtend "^4.0.2"
1691 |
1692 | stream-http@^2.7.2:
1693 | version "2.8.3"
1694 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
1695 | integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==
1696 | dependencies:
1697 | builtin-status-codes "^3.0.0"
1698 | inherits "^2.0.1"
1699 | readable-stream "^2.3.6"
1700 | to-arraybuffer "^1.0.0"
1701 | xtend "^4.0.0"
1702 |
1703 | stream-parser@^0.3.1:
1704 | version "0.3.1"
1705 | resolved "https://registry.yarnpkg.com/stream-parser/-/stream-parser-0.3.1.tgz#1618548694420021a1182ff0af1911c129761773"
1706 | integrity sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=
1707 | dependencies:
1708 | debug "2"
1709 |
1710 | string-hash@1.1.3:
1711 | version "1.1.3"
1712 | resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b"
1713 | integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=
1714 |
1715 | string.prototype.trimend@^1.0.4:
1716 | version "1.0.4"
1717 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"
1718 | integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==
1719 | dependencies:
1720 | call-bind "^1.0.2"
1721 | define-properties "^1.1.3"
1722 |
1723 | string.prototype.trimstart@^1.0.4:
1724 | version "1.0.4"
1725 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed"
1726 | integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==
1727 | dependencies:
1728 | call-bind "^1.0.2"
1729 | define-properties "^1.1.3"
1730 |
1731 | string_decoder@1.3.0, string_decoder@^1.0.0, string_decoder@^1.1.1:
1732 | version "1.3.0"
1733 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
1734 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
1735 | dependencies:
1736 | safe-buffer "~5.2.0"
1737 |
1738 | string_decoder@~1.1.1:
1739 | version "1.1.1"
1740 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
1741 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
1742 | dependencies:
1743 | safe-buffer "~5.1.0"
1744 |
1745 | strip-ansi@6.0.0:
1746 | version "6.0.0"
1747 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
1748 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
1749 | dependencies:
1750 | ansi-regex "^5.0.0"
1751 |
1752 | styled-jsx@4.0.0:
1753 | version "4.0.0"
1754 | resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-4.0.0.tgz#f7b90e7889d0a4f4635f8d1ae9ac32f3acaedc57"
1755 | integrity sha512-2USeoWMoJ/Lx5s2y1PxuvLy/cz2Yrr8cTySV3ILHU1Vmaw1bnV7suKdblLPjnyhMD+qzN7B1SWyh4UZTARn/WA==
1756 | dependencies:
1757 | "@babel/plugin-syntax-jsx" "7.14.5"
1758 | "@babel/types" "7.15.0"
1759 | convert-source-map "1.7.0"
1760 | loader-utils "1.2.3"
1761 | source-map "0.7.3"
1762 | string-hash "1.1.3"
1763 | stylis "3.5.4"
1764 | stylis-rule-sheet "0.0.10"
1765 |
1766 | stylis-rule-sheet@0.0.10:
1767 | version "0.0.10"
1768 | resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz#44e64a2b076643f4b52e5ff71efc04d8c3c4a430"
1769 | integrity sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==
1770 |
1771 | stylis@3.5.4:
1772 | version "3.5.4"
1773 | resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe"
1774 | integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==
1775 |
1776 | supports-color@^5.3.0:
1777 | version "5.5.0"
1778 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1779 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1780 | dependencies:
1781 | has-flag "^3.0.0"
1782 |
1783 | supports-color@^7.1.0:
1784 | version "7.2.0"
1785 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
1786 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1787 | dependencies:
1788 | has-flag "^4.0.0"
1789 |
1790 | supports-color@^8.0.0:
1791 | version "8.1.1"
1792 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
1793 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
1794 | dependencies:
1795 | has-flag "^4.0.0"
1796 |
1797 | timers-browserify@2.0.12, timers-browserify@^2.0.4:
1798 | version "2.0.12"
1799 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee"
1800 | integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==
1801 | dependencies:
1802 | setimmediate "^1.0.4"
1803 |
1804 | to-arraybuffer@^1.0.0:
1805 | version "1.0.1"
1806 | resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
1807 | integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
1808 |
1809 | to-fast-properties@^2.0.0:
1810 | version "2.0.0"
1811 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
1812 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
1813 |
1814 | to-regex-range@^5.0.1:
1815 | version "5.0.1"
1816 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
1817 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1818 | dependencies:
1819 | is-number "^7.0.0"
1820 |
1821 | toidentifier@1.0.0:
1822 | version "1.0.0"
1823 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
1824 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
1825 |
1826 | tr46@^1.0.1:
1827 | version "1.0.1"
1828 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
1829 | integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=
1830 | dependencies:
1831 | punycode "^2.1.0"
1832 |
1833 | ts-pnp@^1.1.6:
1834 | version "1.2.0"
1835 | resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92"
1836 | integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==
1837 |
1838 | tty-browserify@0.0.0:
1839 | version "0.0.0"
1840 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
1841 | integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=
1842 |
1843 | tty-browserify@0.0.1:
1844 | version "0.0.1"
1845 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811"
1846 | integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==
1847 |
1848 | type-fest@^0.7.1:
1849 | version "0.7.1"
1850 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48"
1851 | integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==
1852 |
1853 | unbox-primitive@^1.0.1:
1854 | version "1.0.1"
1855 | resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
1856 | integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==
1857 | dependencies:
1858 | function-bind "^1.1.1"
1859 | has-bigints "^1.0.1"
1860 | has-symbols "^1.0.2"
1861 | which-boxed-primitive "^1.0.2"
1862 |
1863 | unpipe@1.0.0:
1864 | version "1.0.0"
1865 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
1866 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
1867 |
1868 | url@^0.11.0:
1869 | version "0.11.0"
1870 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
1871 | integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
1872 | dependencies:
1873 | punycode "1.3.2"
1874 | querystring "0.2.0"
1875 |
1876 | use-subscription@1.5.1:
1877 | version "1.5.1"
1878 | resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.5.1.tgz#73501107f02fad84c6dd57965beb0b75c68c42d1"
1879 | integrity sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==
1880 | dependencies:
1881 | object-assign "^4.1.1"
1882 |
1883 | util-deprecate@^1.0.1, util-deprecate@~1.0.1:
1884 | version "1.0.2"
1885 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
1886 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
1887 |
1888 | util@0.10.3:
1889 | version "0.10.3"
1890 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
1891 | integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk=
1892 | dependencies:
1893 | inherits "2.0.1"
1894 |
1895 | util@0.12.3:
1896 | version "0.12.3"
1897 | resolved "https://registry.yarnpkg.com/util/-/util-0.12.3.tgz#971bb0292d2cc0c892dab7c6a5d37c2bec707888"
1898 | integrity sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==
1899 | dependencies:
1900 | inherits "^2.0.3"
1901 | is-arguments "^1.0.4"
1902 | is-generator-function "^1.0.7"
1903 | is-typed-array "^1.1.3"
1904 | safe-buffer "^5.1.2"
1905 | which-typed-array "^1.1.2"
1906 |
1907 | util@^0.11.0:
1908 | version "0.11.1"
1909 | resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61"
1910 | integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==
1911 | dependencies:
1912 | inherits "2.0.3"
1913 |
1914 | util@^0.12.0:
1915 | version "0.12.4"
1916 | resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253"
1917 | integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==
1918 | dependencies:
1919 | inherits "^2.0.3"
1920 | is-arguments "^1.0.4"
1921 | is-generator-function "^1.0.7"
1922 | is-typed-array "^1.1.3"
1923 | safe-buffer "^5.1.2"
1924 | which-typed-array "^1.1.2"
1925 |
1926 | vm-browserify@1.1.2, vm-browserify@^1.0.1:
1927 | version "1.1.2"
1928 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
1929 | integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
1930 |
1931 | watchpack@2.1.1:
1932 | version "2.1.1"
1933 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.1.tgz#e99630550fca07df9f90a06056987baa40a689c7"
1934 | integrity sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==
1935 | dependencies:
1936 | glob-to-regexp "^0.4.1"
1937 | graceful-fs "^4.1.2"
1938 |
1939 | webidl-conversions@^4.0.2:
1940 | version "4.0.2"
1941 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
1942 | integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
1943 |
1944 | whatwg-fetch@^3.4.1:
1945 | version "3.6.2"
1946 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c"
1947 | integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==
1948 |
1949 | whatwg-url@^7.0.0:
1950 | version "7.1.0"
1951 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
1952 | integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==
1953 | dependencies:
1954 | lodash.sortby "^4.7.0"
1955 | tr46 "^1.0.1"
1956 | webidl-conversions "^4.0.2"
1957 |
1958 | which-boxed-primitive@^1.0.2:
1959 | version "1.0.2"
1960 | resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
1961 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
1962 | dependencies:
1963 | is-bigint "^1.0.1"
1964 | is-boolean-object "^1.1.0"
1965 | is-number-object "^1.0.4"
1966 | is-string "^1.0.5"
1967 | is-symbol "^1.0.3"
1968 |
1969 | which-typed-array@^1.1.2:
1970 | version "1.1.6"
1971 | resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.6.tgz#f3713d801da0720a7f26f50c596980a9f5c8b383"
1972 | integrity sha512-DdY984dGD5sQ7Tf+x1CkXzdg85b9uEel6nr4UkFg1LoE9OXv3uRuZhe5CoWdawhGACeFpEZXH8fFLQnDhbpm/Q==
1973 | dependencies:
1974 | available-typed-arrays "^1.0.4"
1975 | call-bind "^1.0.2"
1976 | es-abstract "^1.18.5"
1977 | foreach "^2.0.5"
1978 | has-tostringtag "^1.0.0"
1979 | is-typed-array "^1.1.6"
1980 |
1981 | which@^1.2.9:
1982 | version "1.3.1"
1983 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
1984 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
1985 | dependencies:
1986 | isexe "^2.0.0"
1987 |
1988 | xtend@^4.0.0, xtend@^4.0.2:
1989 | version "4.0.2"
1990 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
1991 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
1992 |
1993 | yocto-queue@^0.1.0:
1994 | version "0.1.0"
1995 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
1996 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
1997 |
--------------------------------------------------------------------------------
/packages/node/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | ./node_modules
3 | .DS_Store
4 | env.js
5 | .env
6 | coverage
7 |
--------------------------------------------------------------------------------
/packages/node/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | [
4 | "@babel/preset-env",
5 | {
6 | targets: {
7 | node: "current"
8 | }
9 | }
10 | ]
11 | ]
12 | };
13 |
--------------------------------------------------------------------------------
/packages/node/dist/cli-index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const spawn = require("cross-spawn");
4 | const fs = require("fs");
5 | const argv = require("minimist")(process.argv.slice(2), { "--": true });
6 |
7 | function writeBrowserEnvironment(env) {
8 | const base = fs.realpathSync(process.cwd());
9 | const dest = argv.d || argv.dest || "public";
10 | const debug = argv.debug;
11 | const path = `${base}/${dest}/__ENV.js`;
12 | console.info("react-env: Writing runtime env", path);
13 | if(debug) {
14 | console.debug(`react-env: ${JSON.stringify(env, null, 2)}`);
15 | }
16 | const populate = `window.__ENV = ${JSON.stringify(env)};`;
17 | fs.writeFileSync(path, populate);
18 | }
19 |
20 | function getEnvironment() {
21 | const prefix = argv.prefix || "REACT_APP";
22 | const envList = Object.keys(process.env)
23 | .filter((key) => new RegExp(`^${prefix}_`, 'i').test(key))
24 | .reduce((env, key) => {
25 | env[key] = process.env[key];
26 | return env;
27 | }, {});
28 | if(argv.prefix) {
29 | envList['REACT_ENV_PREFIX'] = prefix;
30 | process.env.REACT_ENV_PREFIX = prefix;
31 | }
32 | return envList;
33 | }
34 |
35 | function resolveFile(file) {
36 | const path = fs.realpathSync(process.cwd());
37 | return `${path}/${file}`;
38 | }
39 |
40 | function getEnvFiles() {
41 | const envKey = argv.e || argv.env || "";
42 | const envVal = process.env[envKey] ? process.env[envKey] : "";
43 | const path = argv.p || argv.path || "";
44 | return [
45 | resolveFile(path),
46 | resolveFile(`.env.${envVal}`),
47 | resolveFile(".env.local"),
48 | resolveFile(".env"),
49 | ].filter(Boolean);
50 | }
51 |
52 | const dotenvFiles = getEnvFiles();
53 |
54 | dotenvFiles.forEach((dotenvFile) => {
55 | if (fs.existsSync(dotenvFile)) {
56 | require("dotenv-expand")(
57 | require("dotenv").config({
58 | path: dotenvFile,
59 | })
60 | );
61 | }
62 | });
63 |
64 | const env = getEnvironment();
65 |
66 | writeBrowserEnvironment(env);
67 |
68 | if (argv["--"] && argv["--"].length) {
69 | spawn(argv["--"][0], argv["--"].slice(1), { stdio: "inherit" }).on(
70 | "exit",
71 | function (exitCode) {
72 | process.exit(exitCode);
73 | }
74 | );
75 | }
76 |
--------------------------------------------------------------------------------
/packages/node/dist/cli.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | 'use strict';
4 |
5 | require("../dist/cli-index")
6 |
--------------------------------------------------------------------------------
/packages/node/dist/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | function isBrowser() {
4 | return Boolean(typeof window !== "undefined" && window.__ENV);
5 | }
6 |
7 | function getFiltered() {
8 | const prefix = process.env.REACT_ENV_PREFIX || 'REACT_APP';
9 | return Object.keys(process.env)
10 | .filter((key) => new RegExp(`^${prefix}_`, 'i').test(key))
11 | .reduce((env, key) => {
12 | env[key] = process.env[key];
13 | return env;
14 | }, {});
15 | }
16 |
17 | function env(key = "") {
18 | const prefix = (isBrowser() ? window.__ENV['REACT_ENV_PREFIX'] : process.env.REACT_ENV_PREFIX) || 'REACT_APP';
19 | const safeKey = `${prefix}_${key}`;
20 | if (isBrowser()) {
21 | return key.length ? window.__ENV[safeKey] : window.__ENV;
22 | }
23 | return key.length ? process.env[safeKey] : getFiltered();
24 | }
25 |
26 | module.exports = env;
27 |
--------------------------------------------------------------------------------
/packages/node/dist/types.d.ts:
--------------------------------------------------------------------------------
1 | declare module "@beam-australia/react-env" {
2 | function env(key: string): string
3 | export = env
4 | }
--------------------------------------------------------------------------------
/packages/node/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@beam-australia/react-env",
3 | "version": "3.1.1",
4 | "author": "andrewmclagan",
5 | "license": "MIT",
6 | "publishConfig": {
7 | "access": "public"
8 | },
9 | "repository": "http://github.com/beam-australia/react-env",
10 | "main": "dist/index.js",
11 | "types": "dist/types.d.ts",
12 | "bin": {
13 | "react-env": "dist/cli.js"
14 | },
15 | "scripts": {
16 | "test": "jest",
17 | "test:ci": "jest --coverage --coverageReporters=text-lcov | coveralls",
18 | "build": "rollup -c",
19 | "start": "rollup -c -w"
20 | },
21 | "dependencies": {
22 | "cross-spawn": "^6.0.5",
23 | "dotenv": "^8.0.0",
24 | "dotenv-expand": "^5.1.0",
25 | "minimist": "^1.2.0"
26 | },
27 | "peerDependencies": {},
28 | "devDependencies": {
29 | "@babel/core": "^7.4.5",
30 | "@babel/preset-env": "^7.4.5",
31 | "babel-jest": "^24.8.0",
32 | "coveralls": "^3.0.3",
33 | "del": "^4.1.1",
34 | "jest": "^24.8.0",
35 | "rollup": "^1.7.3",
36 | "rollup-plugin-commonjs": "^10.0.0"
37 | },
38 | "files": [
39 | "dist"
40 | ]
41 | }
42 |
--------------------------------------------------------------------------------
/packages/node/rollup.config.js:
--------------------------------------------------------------------------------
1 | import commonjs from "rollup-plugin-commonjs";
2 |
3 | export default [
4 | {
5 | input: "src/cli-index.js",
6 | output: {
7 | file: "dist/cli-index.js",
8 | format: "cjs"
9 | },
10 | external: ["shelljs", "yargs"]
11 | },
12 | {
13 | input: "src/index.js",
14 | output: {
15 | file: "dist/index.js",
16 | format: "cjs"
17 | },
18 | plugins: [
19 | commonjs()
20 | ]
21 | }
22 | ];
23 |
--------------------------------------------------------------------------------
/packages/node/src/__tests__/dotenv.spec.js:
--------------------------------------------------------------------------------
1 | import Mock from "../../testing/mockEnv";
2 | import fs from 'fs';
3 |
4 | const debugSpy = jest.spyOn(console, "debug");
5 | const infoSpy = jest.spyOn(console, "info");
6 |
7 | beforeAll(() => {
8 | debugSpy.mockImplementation()
9 | infoSpy.mockImplementation()
10 | });
11 |
12 | afterAll(() => {
13 | debugSpy.mockRestore();
14 | infoSpy.mockRestore();
15 | });
16 |
17 | afterEach(() => {
18 | Mock.reset();
19 | });
20 |
21 | it("parses safe env vars and", () => {
22 | const dest = '.';
23 | const base = fs.realpathSync(process.cwd());
24 | const pathToEnv = `${base}/${dest}/__ENV.js`;
25 |
26 | Mock.writeEnvFile(".env", `
27 | REACT_APP_FOO=123
28 | REACT_APP_BAR='hello world'
29 | `);
30 |
31 | const jsonEnv = JSON.stringify({
32 | REACT_APP_FOO: "123",
33 | REACT_APP_BAR: 'hello world'
34 | }, null, 2)
35 |
36 | Mock.run(["--dest", dest]);
37 |
38 |
39 | expect(window.__ENV.REACT_APP_FOO).toBe("123");
40 | expect(window.__ENV.REACT_APP_BAR).toBe("hello world");
41 |
42 | delete process.env.REACT_APP_FOO;
43 | delete process.env.REACT_APP_BAR;
44 |
45 |
46 | expect(infoSpy).toHaveBeenCalledWith('react-env: Writing runtime env', pathToEnv)
47 | expect(debugSpy).not.toHaveBeenCalledWith(jsonEnv)
48 | });
49 |
50 | it("reads env files via --env arg", () => {
51 | process.env.ENV = 'staging';
52 |
53 | Mock.writeEnvFile(".env.staging", `
54 | REACT_APP_FOO=456
55 | REACT_APP_BAR=789
56 | `);
57 | Mock.run(["--env","ENV","--dest","."]);
58 |
59 | expect(window.__ENV.REACT_APP_FOO).toBe("456");
60 | expect(window.__ENV.REACT_APP_BAR).toBe("789");
61 |
62 | delete process.env.ENV;
63 | delete process.env.REACT_APP_FOO;
64 | delete process.env.REACT_APP_BAR;
65 | });
66 |
67 | it("reads env files via -e arg", () => {
68 | process.env.ENV = 'production';
69 |
70 | Mock.writeEnvFile(".env.production", `
71 | REACT_APP_FOO=789
72 | REACT_APP_BAR=101112
73 | `);
74 | Mock.run(["-e","ENV","--dest","."]);
75 |
76 | expect(window.__ENV.REACT_APP_FOO).toBe("789");
77 | expect(window.__ENV.REACT_APP_BAR).toBe("101112");
78 |
79 | delete process.env.ENV;
80 | delete process.env.REACT_APP_FOO;
81 | delete process.env.REACT_APP_BAR;
82 | });
83 |
84 | it("reads files via --path arg", () => {
85 |
86 | Mock.writeEnvFile(".env.foo", `
87 | REACT_APP_FOO=10101
88 | REACT_APP_BAR=01010
89 | `);
90 | Mock.run(["--path",".env.foo","--dest","."]);
91 |
92 | expect(window.__ENV.REACT_APP_FOO).toBe("10101");
93 | expect(window.__ENV.REACT_APP_BAR).toBe("01010");
94 |
95 | delete process.env.ENV;
96 | delete process.env.REACT_APP_FOO;
97 | delete process.env.REACT_APP_BAR;
98 | });
99 |
100 | it("reads files via -p arg", () => {
101 |
102 | Mock.writeEnvFile(".env.bar", `
103 | REACT_APP_FOO=1983
104 | REACT_APP_BAR=3891
105 | `);
106 | Mock.run(["-p",".env.bar","--dest","."]);
107 |
108 | expect(window.__ENV.REACT_APP_FOO).toBe("1983");
109 | expect(window.__ENV.REACT_APP_BAR).toBe("3891");
110 |
111 | delete process.env.ENV;
112 | delete process.env.REACT_APP_FOO;
113 | delete process.env.REACT_APP_BAR;
114 | });
115 |
116 | it("has order of priority", () => {
117 | process.env.ENV = 'test';
118 |
119 | Mock.writeEnvFile(".env.qa", `
120 | REACT_APP_QA=4001
121 | `);
122 | Mock.writeEnvFile(".env.test", `
123 | REACT_APP_QA=4000
124 | REACT_APP_TEST=3001
125 | `);
126 | Mock.writeEnvFile(".env.local", `
127 | REACT_APP_QA=4000
128 | REACT_APP_TEST=3000
129 | REACT_APP_LOCAL=2001
130 | `);
131 | Mock.writeEnvFile(".env", `
132 | REACT_APP_QA=4000
133 | REACT_APP_TEST=3000
134 | REACT_APP_LOCAL=2000
135 | REACT_APP_BASE=1001
136 | `);
137 | Mock.run(["-p",".env.qa","-e","ENV","--dest","."]);
138 |
139 | expect(window.__ENV.REACT_APP_QA).toBe("4001");
140 | expect(window.__ENV.REACT_APP_TEST).toBe("3001");
141 | expect(window.__ENV.REACT_APP_LOCAL).toBe("2001");
142 | expect(window.__ENV.REACT_APP_BASE).toBe("1001");
143 |
144 | delete process.env.ENV;
145 | delete process.env.REACT_APP_QA;
146 | delete process.env.REACT_APP_TEST;
147 | delete process.env.REACT_APP_LOCAL;
148 | delete process.env.REACT_APP_BASE;
149 | });
150 |
151 | it("can expand env vars", () => {
152 | Mock.writeEnvFile(".env", "REACT_APP_ENV=${NODE_ENV}");
153 | Mock.run(["--dest","."]);
154 |
155 | expect(window.__ENV.REACT_APP_ENV).toBe(process.env.NODE_ENV);
156 |
157 | delete process.env.REACT_APP_ENV;
158 | });
159 |
160 | it('can use custom prefix via --prefix arg', () => {
161 | Mock.writeEnvFile(".env", `
162 | CUSTOM_PREFIX_FOO=10101
163 | CUSTOM_PREFIX_BAR=01010
164 | `);
165 |
166 | Mock.run(["--prefix","CUSTOM_PREFIX","--dest","."]);
167 |
168 | expect(process.env.REACT_ENV_PREFIX).toBe("CUSTOM_PREFIX");
169 |
170 | expect(process.env.CUSTOM_PREFIX_FOO).toBe("10101");
171 | expect(process.env.CUSTOM_PREFIX_BAR).toBe("01010");
172 |
173 | expect(window.__ENV.CUSTOM_PREFIX_FOO).toBe("10101");
174 | expect(window.__ENV.CUSTOM_PREFIX_BAR).toBe("01010");
175 |
176 | delete process.env.CUSTOM_PREFIX_FOO;
177 | delete process.env.CUSTOM_PREFIX_BAR;
178 | })
179 |
180 | it("should show log only if debug params is enabled", () => {
181 | Mock.writeEnvFile(".env", `
182 | REACT_APP_FOO=123
183 | REACT_APP_BAR='hello world'
184 | `);
185 |
186 | const jsonEnv = JSON.stringify({
187 | REACT_APP_FOO: "123",
188 | REACT_APP_BAR: 'hello world'
189 | }, null, 2)
190 |
191 | Mock.run(["--debug", '--dest', '.']);
192 |
193 | expect(window.__ENV.REACT_APP_FOO).toBe("123");
194 | expect(window.__ENV.REACT_APP_BAR).toBe("hello world");
195 |
196 | delete process.env.REACT_APP_FOO;
197 | delete process.env.REACT_APP_BAR;
198 |
199 | expect(debugSpy).toHaveBeenCalledWith(`react-env: ${jsonEnv}`)
200 | })
--------------------------------------------------------------------------------
/packages/node/src/__tests__/index.spec.js:
--------------------------------------------------------------------------------
1 | import env from "../";
2 |
3 | it("returns a safe value from the browser", () => {
4 | Object.defineProperty(global, "window", {
5 | value: {
6 | __ENV: {
7 | REACT_ENV_PREFIX: 'REACT_APP',
8 | REACT_APP_FOO: "bar",
9 | },
10 | },
11 | writable: true,
12 | });
13 |
14 | expect(env("FOO")).toBe("bar");
15 | });
16 |
17 | it("returns a safe value from the server", () => {
18 | process.env.REACT_APP_FOO = "bar";
19 | expect(env("FOO")).toBe("bar");
20 | });
21 |
22 | it("does not return a non-safe value from the browser", () => {
23 | Object.defineProperty(global, "window", {
24 | value: {
25 | __ENV: {
26 | FOO: "bar",
27 | },
28 | },
29 | writable: true,
30 | });
31 |
32 | expect(env("FOO")).toBeUndefined();
33 | });
34 |
35 | it("does not return a non-safe value from the server", () => {
36 | process.env.FOO = "bar";
37 | expect(env("FOO")).toBeUndefined();
38 | });
39 |
40 | it("returns entire safe environment from the browser", () => {
41 | Object.defineProperty(global, "window", {
42 | value: {
43 | __ENV: {
44 | REACT_APP_FOO: "bar",
45 | REACT_APP_BAR: "foo",
46 | },
47 | },
48 | writable: true,
49 | });
50 |
51 | expect(env()).toEqual({
52 | REACT_APP_FOO: "bar",
53 | REACT_APP_BAR: "foo",
54 | });
55 | });
56 |
57 | it("returns entire safe environment from the server", () => {
58 | delete window.__ENV;
59 | process.env.REACT_APP_FOO = "bar";
60 | process.env.REACT_APP_BAR = "foo";
61 | process.env.FOO_BAR = "123";
62 | expect(env()).toEqual({
63 | REACT_APP_FOO: "bar",
64 | REACT_APP_BAR: "foo",
65 | });
66 | });
67 |
68 | it('work with the prefix parameters', () => {
69 | Object.defineProperty(global, "window", {
70 | value: {
71 | __ENV: {
72 | REACT_ENV_PREFIX: 'CUSTOM_PREFIX',
73 | CUSTOM_PREFIX_FOO: "bar",
74 | CUSTOM_PREFIX_BAR: "foo",
75 | },
76 | },
77 | writable: true,
78 | });
79 |
80 | expect(env()).toEqual({
81 | REACT_ENV_PREFIX: 'CUSTOM_PREFIX',
82 | CUSTOM_PREFIX_FOO: "bar",
83 | CUSTOM_PREFIX_BAR: "foo",
84 | });
85 | })
86 |
87 | it("returns undefined when variable does not exist in the browser", () => {
88 | expect(env("BAM_BAM")).toBe(undefined);
89 | });
90 |
91 | it("returns undefined when variable does not exist in the server", () => {
92 | expect(env("BAM_BAM_BAM")).toBe(undefined);
93 | });
94 |
--------------------------------------------------------------------------------
/packages/node/src/cli-index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | const spawn = require("cross-spawn");
4 | const fs = require("fs");
5 | const argv = require("minimist")(process.argv.slice(2), { "--": true });
6 |
7 | function writeBrowserEnvironment(env) {
8 | const base = fs.realpathSync(process.cwd());
9 | const dest = argv.d || argv.dest || "public";
10 | const debug = argv.debug;
11 | const path = `${base}/${dest}/__ENV.js`;
12 | console.info("react-env: Writing runtime env", path);
13 | if(debug) {
14 | console.debug(`react-env: ${JSON.stringify(env, null, 2)}`);
15 | }
16 | const populate = `window.__ENV = ${JSON.stringify(env)};`;
17 | fs.writeFileSync(path, populate);
18 | }
19 |
20 | function getEnvironment() {
21 | const prefix = argv.prefix || "REACT_APP";
22 | const envList = Object.keys(process.env)
23 | .filter((key) => new RegExp(`^${prefix}_`, 'i').test(key))
24 | .reduce((env, key) => {
25 | env[key] = process.env[key];
26 | return env;
27 | }, {});
28 | if(argv.prefix) {
29 | envList['REACT_ENV_PREFIX'] = prefix;
30 | process.env.REACT_ENV_PREFIX = prefix;
31 | }
32 | return envList;
33 | }
34 |
35 | function resolveFile(file) {
36 | const path = fs.realpathSync(process.cwd());
37 | return `${path}/${file}`;
38 | }
39 |
40 | function getEnvFiles() {
41 | const envKey = argv.e || argv.env || "";
42 | const envVal = process.env[envKey] ? process.env[envKey] : "";
43 | const path = argv.p || argv.path || "";
44 | return [
45 | resolveFile(path),
46 | resolveFile(`.env.${envVal}`),
47 | resolveFile(".env.local"),
48 | resolveFile(".env"),
49 | ].filter(Boolean);
50 | }
51 |
52 | const dotenvFiles = getEnvFiles();
53 |
54 | dotenvFiles.forEach((dotenvFile) => {
55 | if (fs.existsSync(dotenvFile)) {
56 | require("dotenv-expand")(
57 | require("dotenv").config({
58 | path: dotenvFile,
59 | })
60 | );
61 | }
62 | });
63 |
64 | const env = getEnvironment();
65 |
66 | writeBrowserEnvironment(env);
67 |
68 | if (argv["--"] && argv["--"].length) {
69 | spawn(argv["--"][0], argv["--"].slice(1), { stdio: "inherit" }).on(
70 | "exit",
71 | function (exitCode) {
72 | process.exit(exitCode);
73 | }
74 | );
75 | }
76 |
--------------------------------------------------------------------------------
/packages/node/src/cli.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | 'use strict';
4 |
5 | require("../dist/cli-index")
6 |
--------------------------------------------------------------------------------
/packages/node/src/index.js:
--------------------------------------------------------------------------------
1 | function isBrowser() {
2 | return Boolean(typeof window !== "undefined" && window.__ENV);
3 | }
4 |
5 | function getFiltered() {
6 | const prefix = process.env.REACT_ENV_PREFIX || 'REACT_APP';
7 | return Object.keys(process.env)
8 | .filter((key) => new RegExp(`^${prefix}_`, 'i').test(key))
9 | .reduce((env, key) => {
10 | env[key] = process.env[key];
11 | return env;
12 | }, {});
13 | }
14 |
15 | export default function env(key = "") {
16 | const prefix = (isBrowser() ? window.__ENV['REACT_ENV_PREFIX'] : process.env.REACT_ENV_PREFIX) || 'REACT_APP'
17 | const safeKey = `${prefix}_${key}`;
18 | if (isBrowser()) {
19 | return key.length ? window.__ENV[safeKey] : window.__ENV;
20 | }
21 | return key.length ? process.env[safeKey] : getFiltered();
22 | }
23 |
--------------------------------------------------------------------------------
/packages/node/testing/mockEnv.js:
--------------------------------------------------------------------------------
1 | import del from "del";
2 | import fs from "fs";
3 |
4 | function run(args) {
5 | process.argv = ["", "", ...args];
6 | const basePath = fs.realpathSync(process.cwd());
7 | require(`${basePath}/src/cli-index`);
8 | require(`${basePath}/__ENV.js`);
9 | }
10 |
11 | function writeEnvFile(name, string) {
12 | const path = fs.realpathSync(process.cwd());
13 | fs.writeFileSync(`${path}/${name}`, string);
14 | }
15 |
16 | function reset() {
17 | del.sync([".env*", "__ENV.js"]);
18 | jest.resetModules();
19 | delete window.__ENV;
20 | }
21 |
22 | export default { run, writeEnvFile, reset };
23 |
--------------------------------------------------------------------------------