├── .gitignore
├── .travis.yml
├── README.md
├── custom-login
├── .gitignore
├── README.md
├── client_secrets.json.dist
├── helpers.py
├── main.py
├── templates
│ ├── home.html
│ ├── login.html
│ ├── profile.html
│ └── template.html
└── user.py
├── okta-hosted-login
├── .gitignore
├── README.md
├── client_secrets.json.dist
├── helpers.py
├── main.py
├── templates
│ ├── home.html
│ ├── profile.html
│ └── template.html
└── user.py
├── package-lock.json
├── package.json
├── requirements.txt
├── resource-server
├── .gitignore
├── README.md
├── client_secrets.json.dist
├── helpers.py
└── main.py
├── scripts
└── setup-env.js
├── setup.py
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | testenv
2 | node_modules/
3 | okta-oidc-tck/
4 | build2/
5 | yarn-error.log
6 | .DS_Store
7 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: python
2 | python:
3 | - "3.7"
4 |
5 | install:
6 | - pip install -U importlib_metadata
7 | - pip install -U -r requirements.txt
8 |
9 | script: "exit 0"
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Flask Sample Applications for Okta
2 | This repository contains several sample applications that demonstrate various Okta use-cases in your Flask application.
3 |
4 | > Requires Python version 3.6.0 or higher.
5 |
6 | Please find the sample that fits your use-case from the table below.
7 |
8 | | Sample | Description |
9 | |-----------------------------------------|-------------|
10 | | [Okta-Hosted Login](/okta-hosted-login) | A Flask application that will redirect the user to the Okta-Hosted login page of your Org for authentication. The user is redirected back to the Python application after authenticating. |
11 | | [Custom Login Page](/custom-login) | A Flask application that uses the Okta Sign-In Widget within the Flask application to authenticate the user. |
12 | | [Resource Server](/resource-server) | This is a sample API resource server that shows you how to authenticate requests with access tokens that have been issued by Okta. |
13 |
14 | > ⚠️ Note: These examples require the use of API Access Management. This solution is not included by default for **organizations** (you will have this [error](https://support.okta.com/help/s/article/400-Bad-Request-The-requested-feature-is-not-enabled-in-this-environment?language=en_US)).
15 |
--------------------------------------------------------------------------------
/custom-login/.gitignore:
--------------------------------------------------------------------------------
1 | client_secrets.json
--------------------------------------------------------------------------------
/custom-login/README.md:
--------------------------------------------------------------------------------
1 | # Flask + Okta Hosted Login Example
2 |
3 | This example shows you how to use Flask to login to your application with a Custom Login page. The login is achieved with the [Okta Sign In Widget][], which gives you more control to customize the login experience within your app. After the user authenticates they are redirected back to the application with an authorization code that is then exchanged for an access token.
4 |
5 | > Requires Python version 3.6.0 or higher.
6 |
7 | ## Prerequisites
8 |
9 | Before running this sample, you will need the following:
10 |
11 | * An Okta Developer Account, you can sign up for one at https://developer.okta.com/signup/.
12 | * An Okta Application, configured for Web mode. This is done from the Okta Developer Console and you can find instructions [here][OIDC WEB Setup Instructions]. When following the wizard, use the default properties. They are are designed to work with our sample applications.
13 |
14 | ## Running This Example
15 |
16 | To run this application, you first need to clone this repo and then enter into this directory:
17 |
18 | ```bash
19 | git clone git@github.com:okta/samples-python-flask.git
20 | cd samples-python-flask
21 | ```
22 |
23 | Then install dependencies:
24 |
25 | ```bash
26 | pip install -r requirements.txt
27 | ```
28 |
29 | You also need to gather the following information from the Okta Developer Console:
30 |
31 | - **Client ID** and **Client Secret** - These can be found on the "General" tab of the Web application that you created earlier in the Okta Developer Console.
32 | - **Issuer** - This is the URL of the authorization server that will perform authentication. All Developer Accounts have a "default" authorization server. The issuer is a combination of your Org URL (found in the upper right of the console home page) and `/oauth2/default`. For example, `https://dev-1234.oktapreview.com/oauth2/default`.
33 |
34 | Now that you have the information needed from your organization, open the `okta-hosted-login` directory. Copy the [`client_secrets.json.dist`](client_secrets.json.dist) to `client_secrets.json` and fill in the information you gathered.
35 |
36 | ```json
37 | {
38 | "auth_uri": "https://{yourOktaDomain}/oauth2/default/v1/authorize",
39 | "client_id": "{yourClientId}",
40 | "client_secret": "{yourClientSecret}",
41 | "redirect_uri": "http://localhost:8080/authorization-code/callback",
42 | "issuer": "https://{yourOktaDomain}/oauth2/default",
43 | "token_uri": "https://{yourOktaDomain}/oauth2/default/v1/token",
44 | "token_introspection_uri": "https://{yourOktaDomain}/oauth2/default/v1/introspect",
45 | "userinfo_uri": "https://{yourOktaDomain}/oauth2/default/v1/userinfo"
46 | }
47 | ```
48 |
49 | Now start the app server:
50 |
51 | ```
52 | python main.py
53 | ```
54 |
55 | Now navigate to http://localhost:8080 in your browser.
56 |
57 | If you see a home page that prompts you to login, then things are working! Clicking the **Log in** button will redirect you to the applicaitons custom sign-in page.
58 |
59 | You can login with the same account that you created when signing up for your Developer Org, or you can use a known username and password from your Okta Directory.
60 |
61 | [Okta Sign In Widget]: https://github.com/okta/okta-signin-widget
62 | [OIDC WEB Setup Instructions]: https://developer.okta.com/authentication-guide/implementing-authentication/auth-code#1-setting-up-your-application
63 |
--------------------------------------------------------------------------------
/custom-login/client_secrets.json.dist:
--------------------------------------------------------------------------------
1 | {
2 | "auth_uri": "https://{{OKTA_DOMAIN}}/oauth2/default/v1/authorize",
3 | "client_id": "{{CLIENT_ID}}",
4 | "client_secret": "{{CLIENT_SECRET}}",
5 | "redirect_uri": "http://localhost:8080/authorization-code/callback",
6 | "issuer": "https://{{OKTA_DOMAIN}}/oauth2/default",
7 | "token_uri": "https://{{OKTA_DOMAIN}}/oauth2/default/v1/token",
8 | "userinfo_uri": "https://{{OKTA_DOMAIN}}/oauth2/default/v1/userinfo"
9 | }
10 |
--------------------------------------------------------------------------------
/custom-login/helpers.py:
--------------------------------------------------------------------------------
1 | import asyncio
2 | import json
3 |
4 | from okta_jwt_verifier import AccessTokenVerifier, IDTokenVerifier
5 |
6 |
7 | loop = asyncio.get_event_loop()
8 |
9 |
10 | def is_access_token_valid(token, issuer):
11 | jwt_verifier = AccessTokenVerifier(issuer=issuer, audience='api://default')
12 | try:
13 | loop.run_until_complete(jwt_verifier.verify(token))
14 | return True
15 | except Exception:
16 | return False
17 |
18 |
19 | def is_id_token_valid(token, issuer, client_id, nonce):
20 | jwt_verifier = IDTokenVerifier(issuer=issuer, client_id=client_id, audience='api://default')
21 | try:
22 | loop.run_until_complete(jwt_verifier.verify(token, nonce=nonce))
23 | return True
24 | except Exception:
25 | return False
26 |
27 |
28 | def load_config(fname='./client_secrets.json'):
29 | config = None
30 | with open(fname) as f:
31 | config = json.load(f)
32 | return config
33 |
34 |
35 | config = load_config()
36 |
--------------------------------------------------------------------------------
/custom-login/main.py:
--------------------------------------------------------------------------------
1 | import base64
2 | import requests
3 |
4 | from flask import Flask, render_template, url_for, redirect, session, json, request
5 | from flask_login import (
6 | LoginManager,
7 | current_user,
8 | login_required,
9 | login_user,
10 | logout_user,
11 | )
12 |
13 | from helpers import is_access_token_valid, is_id_token_valid, config
14 | from user import User
15 |
16 |
17 | app = Flask(__name__)
18 | app.config.update({'SECRET_KEY': 'SomethingNotEntirelySecret'})
19 |
20 |
21 | login_manager = LoginManager()
22 | login_manager.init_app(app)
23 |
24 |
25 | # Parameter state should be something not guessable
26 | APP_STATE = 'ApplicationState+CSRFProtection'
27 | NONCE = 'SampleNonce'
28 |
29 |
30 | @login_manager.user_loader
31 | def load_user(user_id):
32 | return User.get(user_id)
33 |
34 |
35 | @app.route("/")
36 | def home():
37 | return render_template("home.html")
38 |
39 |
40 | @app.route("/login")
41 | def login():
42 | bu = config['issuer'].split('/oauth2')[0]
43 | cid = config['client_id']
44 |
45 | return render_template("login.html",
46 | baseUri=bu,
47 | clientId=cid,
48 | state=APP_STATE,
49 | nonce=NONCE)
50 |
51 |
52 | @app.route("/authorization-code/callback")
53 | def callback():
54 | if request.args.get("state") != APP_STATE:
55 | return "The state is unexpected.", 403
56 | headers = {'Content-Type': 'application/x-www-form-urlencoded'}
57 | code = request.args.get("code")
58 | if not code:
59 | return "The code was not returned or is not accessible", 403
60 | query_params = {'grant_type': 'authorization_code',
61 | 'code': code,
62 | 'redirect_uri': request.base_url
63 | }
64 | query_params = requests.compat.urlencode(query_params)
65 | exchange = requests.post(
66 | config["token_uri"],
67 | headers=headers,
68 | data=query_params,
69 | auth=(config["client_id"], config["client_secret"]),
70 | ).json()
71 |
72 | # Get tokens and validate
73 | if not exchange.get("token_type"):
74 | return "Unsupported token type. Should be 'Bearer'.", 403
75 | access_token = exchange["access_token"]
76 | id_token = exchange["id_token"]
77 |
78 | if not is_access_token_valid(access_token, config["issuer"]):
79 | return "Access token is invalid", 403
80 |
81 | if not is_id_token_valid(id_token, config["issuer"], config["client_id"], NONCE):
82 | return "ID token is invalid", 403
83 |
84 | # Authorization flow successful, get userinfo and login user
85 | userinfo_response = requests.get(config["userinfo_uri"],
86 | headers={'Authorization': f'Bearer {access_token}'}).json()
87 |
88 | unique_id = userinfo_response["sub"]
89 | user_email = userinfo_response["email"]
90 | user_name = userinfo_response["given_name"]
91 |
92 | user = User(
93 | id_=unique_id, name=user_name, email=user_email
94 | )
95 |
96 | if not User.get(unique_id):
97 | User.create(unique_id, user_name, user_email)
98 |
99 | login_user(user)
100 |
101 | return redirect(url_for("profile"))
102 |
103 |
104 | @app.route("/profile")
105 | @login_required
106 | def profile():
107 | return render_template("profile.html", user=current_user)
108 |
109 |
110 | @app.route("/logout", methods=["POST"])
111 | @login_required
112 | def logout():
113 | logout_user()
114 | return redirect(url_for("home"))
115 |
116 |
117 | def base64_to_str(data):
118 | return str(base64.b64encode(json.dumps(data).encode('utf-8')), 'utf-8')
119 |
120 |
121 | if __name__ == '__main__':
122 | app.run(host="localhost", port=8080, debug=True)
123 |
--------------------------------------------------------------------------------
/custom-login/templates/home.html:
--------------------------------------------------------------------------------
1 | {% extends "template.html" %}
2 |
3 | {% block content %}
4 |
Custom Login + Flask Example
5 |
6 | {% if current_user.is_authenticated %}
7 |
8 |
Welcome back, {{current_user.name}} !
9 |
You have successfully authenticated against your Okta org, and have been redirected back to this application.
10 |
Visit the My Profile page in this application to view the information
11 | retrieved with your OAuth Access Token.
12 |
13 | {% else %}
14 |
15 |
Hello!
16 |
If you're viewing this page then you have successfully configured and started this example server.
17 |
This example shows you how to to add the Authorization Code Flow to your Flask application.
18 |
When you click the login button below, you will be redirected to the login page on your local application.
19 |
20 |
21 |
24 | {% endif %}
25 | {% endblock content %}
26 |
--------------------------------------------------------------------------------
/custom-login/templates/login.html:
--------------------------------------------------------------------------------
1 | {% extends "template.html" %}
2 |
3 | {% block content %}
4 |
5 |
24 | {% endblock content %}
25 |
--------------------------------------------------------------------------------
/custom-login/templates/profile.html:
--------------------------------------------------------------------------------
1 | {% extends "template.html" %}
2 |
3 | {% block content %}
4 |
5 |
My Profile
6 |
Hello, {{ user.email }} . Below is the information that was read with your Access Token .
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | Claim
17 | Value
18 |
19 |
20 |
21 | {% for key, claim in user.claims() %}
22 |
23 | {{ key }}
24 |
25 | {{ claim }}
26 |
27 |
28 | {% endfor %}
29 |
30 |
31 | {% endblock content %}
32 |
--------------------------------------------------------------------------------
/custom-login/templates/template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
11 |
12 |
14 |
16 |
18 |
26 |
27 |
28 |
29 | Okta Hosted Login in Flask
30 |
31 |
32 |
33 |
34 |
35 | Home
36 | {% if current_user.is_authenticated %}
37 | My Profile
38 | {% endif %}
39 |
40 | {% if current_user.is_authenticated %}
41 |
44 | {% endif %}
45 |
46 |
47 |
48 |
49 | {% block content %}{% endblock %}
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/custom-login/user.py:
--------------------------------------------------------------------------------
1 | from flask_login import UserMixin
2 |
3 |
4 | # Simulate user database
5 | USERS_DB = {}
6 |
7 |
8 | class User(UserMixin):
9 |
10 | """Custom User class."""
11 |
12 | def __init__(self, id_, name, email):
13 | self.id = id_
14 | self.name = name
15 | self.email = email
16 |
17 | def claims(self):
18 | """Use this method to render all assigned claims on profile page."""
19 | return {'name': self.name,
20 | 'email': self.email}.items()
21 |
22 | @staticmethod
23 | def get(user_id):
24 | return USERS_DB.get(user_id)
25 |
26 | @staticmethod
27 | def create(user_id, name, email):
28 | USERS_DB[user_id] = User(user_id, name, email)
29 |
--------------------------------------------------------------------------------
/okta-hosted-login/.gitignore:
--------------------------------------------------------------------------------
1 | client_secrets.json
--------------------------------------------------------------------------------
/okta-hosted-login/README.md:
--------------------------------------------------------------------------------
1 | # Flask + Okta Hosted Login Example
2 |
3 | This example shows you how to use Flask to log in to your application with an Okta Hosted Login page. The login is achieved through the [authorization code flow](https://developer.okta.com/authentication-guide/implementing-authentication/auth-code), where the user is redirected to the Okta-Hosted login page. After the user authenticates, they are redirected back to the application with an access code that is then exchanged for an access token.
4 |
5 | > Requires Python version 3.6.0 or higher.
6 |
7 | ## Prerequisites
8 |
9 | Before running this sample, you will need the following:
10 |
11 | * An Okta Developer Account, you can sign up for one at https://developer.okta.com/signup/.
12 | * An Okta Application configured for Web mode. You can create one from the Okta Developer Console, and you can find instructions [here][OIDC WEB Setup Instructions]. When following the wizard, use the default properties. They are designed to work with our sample applications.
13 |
14 | ## Running This Example
15 |
16 | To run this application, you first need to clone this repo:
17 |
18 | ```bash
19 | git clone git@github.com:okta/samples-python-flask.git
20 | cd samples-python-flask
21 | ```
22 |
23 | Then install dependencies:
24 |
25 | ```bash
26 | pip install -r requirements.txt
27 | ```
28 |
29 | Open the `okta-hosted-login` directory and copy the [`client_secrets.json.dist`](client_secrets.json.dist) to `client_secrets.json`:
30 |
31 | ```bash
32 | cd okta-hosted-login
33 | cp client_secrets.json.dist client_secrets.json
34 | ```
35 |
36 | You now need to gather the following information from the Okta Developer Console:
37 |
38 | - **Client ID** and **Client Secret** - These can be found on the "General" tab of the Web application that you created earlier in the Okta Developer Console.
39 | - **Issuer** - This is the URL of the authorization server that will perform authentication. All Developer Accounts have a "default" authorization server. The issuer is a combination of your Org URL (found in the upper right of the console home page) and `/oauth2/default`. For example, `https://dev-1234.oktapreview.com/oauth2/default`.
40 |
41 | Fill in the information that you gathered in the `client_secrets.json` file.
42 |
43 | ```json
44 | {
45 | "auth_uri": "https://{yourOktaDomain}/oauth2/default/v1/authorize",
46 | "client_id": "{yourClientId}",
47 | "client_secret": "{yourClientSecret}",
48 | "redirect_uri": "http://localhost:8080/authorization-code/callback",
49 | "issuer": "https://{yourOktaDomain}/oauth2/default",
50 | "token_uri": "https://{yourOktaDomain}/oauth2/default/v1/token",
51 | "token_introspection_uri": "https://{yourOktaDomain}/oauth2/default/v1/introspect",
52 | "userinfo_uri": "https://{yourOktaDomain}/oauth2/default/v1/userinfo"
53 | }
54 | ```
55 |
56 | Start the app server:
57 |
58 | ```
59 | python main.py
60 | ```
61 |
62 | Now navigate to http://localhost:8080 in your browser.
63 |
64 | If you see a home page that prompts you to log in, then things are working! Clicking the **Log in** button will redirect you to the Okta hosted sign-in page.
65 |
66 | You can log in with the same account that you created when signing up for your Developer Org. You can also use a known username and password from your Okta Directory.
67 |
68 | **Note:** If you are currently using your Developer Console, you already have a Single Sign-On (SSO) session for your Org. You will be automatically logged into your application as the same user that is using the Developer Console. You may want to use an incognito tab to test the flow from a blank slate.
69 |
70 | [OIDC Web Setup Instructions]: https://developer.okta.com/authentication-guide/implementing-authentication/auth-code#1-setting-up-your-application
71 |
--------------------------------------------------------------------------------
/okta-hosted-login/client_secrets.json.dist:
--------------------------------------------------------------------------------
1 | {
2 | "auth_uri": "https://{{OKTA_DOMAIN}}/oauth2/default/v1/authorize",
3 | "client_id": "{{CLIENT_ID}}",
4 | "client_secret": "{{CLIENT_SECRET}}",
5 | "redirect_uri": "http://localhost:8080/authorization-code/callback",
6 | "issuer": "https://{{OKTA_DOMAIN}}/oauth2/default",
7 | "token_uri": "https://{{OKTA_DOMAIN}}/oauth2/default/v1/token",
8 | "userinfo_uri": "https://{{OKTA_DOMAIN}}/oauth2/default/v1/userinfo"
9 | }
10 |
--------------------------------------------------------------------------------
/okta-hosted-login/helpers.py:
--------------------------------------------------------------------------------
1 | import asyncio
2 | import json
3 |
4 | from okta_jwt_verifier import AccessTokenVerifier, IDTokenVerifier
5 |
6 |
7 | loop = asyncio.get_event_loop()
8 |
9 |
10 | def is_access_token_valid(token, issuer):
11 | jwt_verifier = AccessTokenVerifier(issuer=issuer, audience='api://default')
12 | try:
13 | loop.run_until_complete(jwt_verifier.verify(token))
14 | return True
15 | except Exception:
16 | return False
17 |
18 |
19 | def is_id_token_valid(token, issuer, client_id, nonce):
20 | jwt_verifier = IDTokenVerifier(issuer=issuer, client_id=client_id, audience='api://default')
21 | try:
22 | loop.run_until_complete(jwt_verifier.verify(token, nonce=nonce))
23 | return True
24 | except Exception:
25 | return False
26 |
27 |
28 | def load_config(fname='./client_secrets.json'):
29 | config = None
30 | with open(fname) as f:
31 | config = json.load(f)
32 | return config
33 |
34 |
35 | config = load_config()
36 |
--------------------------------------------------------------------------------
/okta-hosted-login/main.py:
--------------------------------------------------------------------------------
1 | import requests
2 |
3 | from flask import Flask, render_template, redirect, request, url_for
4 | from flask_login import (
5 | LoginManager,
6 | current_user,
7 | login_required,
8 | login_user,
9 | logout_user,
10 | )
11 |
12 | from helpers import is_access_token_valid, is_id_token_valid, config
13 | from user import User
14 |
15 |
16 | app = Flask(__name__)
17 | app.config.update({'SECRET_KEY': ''.join(random.choices(string.ascii_uppercase + string.ascii_lowercase + string.digits, k=32))})
18 |
19 | login_manager = LoginManager()
20 | login_manager.init_app(app)
21 |
22 |
23 | APP_STATE = 'ApplicationState'
24 | NONCE = 'SampleNonce'
25 |
26 |
27 | @login_manager.user_loader
28 | def load_user(user_id):
29 | return User.get(user_id)
30 |
31 |
32 | @app.route("/")
33 | def home():
34 | return render_template("home.html")
35 |
36 |
37 | @app.route("/login")
38 | def login():
39 | # get request params
40 | query_params = {'client_id': config["client_id"],
41 | 'redirect_uri': config["redirect_uri"],
42 | 'scope': "openid email profile",
43 | 'state': APP_STATE,
44 | 'nonce': NONCE,
45 | 'response_type': 'code',
46 | 'response_mode': 'query'}
47 |
48 | # build request_uri
49 | request_uri = "{base_url}?{query_params}".format(
50 | base_url=config["auth_uri"],
51 | query_params=requests.compat.urlencode(query_params)
52 | )
53 |
54 | return redirect(request_uri)
55 |
56 |
57 | @app.route("/profile")
58 | @login_required
59 | def profile():
60 | return render_template("profile.html", user=current_user)
61 |
62 |
63 | @app.route("/authorization-code/callback")
64 | def callback():
65 | headers = {'Content-Type': 'application/x-www-form-urlencoded'}
66 | code = request.args.get("code")
67 | if not code:
68 | return "The code was not returned or is not accessible", 403
69 | query_params = {'grant_type': 'authorization_code',
70 | 'code': code,
71 | 'redirect_uri': request.base_url
72 | }
73 | query_params = requests.compat.urlencode(query_params)
74 | exchange = requests.post(
75 | config["token_uri"],
76 | headers=headers,
77 | data=query_params,
78 | auth=(config["client_id"], config["client_secret"]),
79 | ).json()
80 |
81 | # Get tokens and validate
82 | if not exchange.get("token_type"):
83 | return "Unsupported token type. Should be 'Bearer'.", 403
84 | access_token = exchange["access_token"]
85 | id_token = exchange["id_token"]
86 |
87 | if not is_access_token_valid(access_token, config["issuer"]):
88 | return "Access token is invalid", 403
89 |
90 | if not is_id_token_valid(id_token, config["issuer"], config["client_id"], NONCE):
91 | return "ID token is invalid", 403
92 |
93 | # Authorization flow successful, get userinfo and login user
94 | userinfo_response = requests.get(config["userinfo_uri"],
95 | headers={'Authorization': f'Bearer {access_token}'}).json()
96 |
97 | unique_id = userinfo_response["sub"]
98 | user_email = userinfo_response["email"]
99 | user_name = userinfo_response["given_name"]
100 |
101 | user = User(
102 | id_=unique_id, name=user_name, email=user_email
103 | )
104 |
105 | if not User.get(unique_id):
106 | User.create(unique_id, user_name, user_email)
107 |
108 | login_user(user)
109 |
110 | return redirect(url_for("profile"))
111 |
112 |
113 | @app.route("/logout", methods=["GET", "POST"])
114 | @login_required
115 | def logout():
116 | logout_user()
117 | return redirect(url_for("home"))
118 |
119 |
120 | if __name__ == '__main__':
121 | app.run(host="localhost", port=8080, debug=True)
122 |
--------------------------------------------------------------------------------
/okta-hosted-login/templates/home.html:
--------------------------------------------------------------------------------
1 | {% extends "template.html" %}
2 |
3 | {% block content %}
4 | Okta Hosted Login + Flask Example
5 |
6 | {% if current_user.is_authenticated %}
7 |
8 |
Welcome back, !
9 |
You have successfully authenticated against your Okta org, and have been redirected back to this application.
10 |
Visit the My Profile page in this application to view the information
11 | retrieved with your OAuth Access Token.
12 |
13 | {% else %}
14 |
15 |
Hello!
16 |
If you're viewing this page then you have successfully configured and started this example server.
17 |
This example shows you how to to add the Authorization Code Flow to your Flask application.
18 |
When you click the login button below, you will be redirected to the login page on your Okta org. After you authenticate, you will be returned to this application.
19 |
20 |
21 |
24 | {% endif %}
25 | {% endblock content %}
26 |
--------------------------------------------------------------------------------
/okta-hosted-login/templates/profile.html:
--------------------------------------------------------------------------------
1 | {% extends "template.html" %}
2 |
3 | {% block content %}
4 |
5 |
My Profile
6 |
Hello, {{ user.email }} . Below is the information that was read with your Access Token .
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | Claim
17 | Value
18 |
19 |
20 |
21 | {% for key, claim in user.claims() %}
22 |
23 | {{ key }}
24 |
25 | {{ claim }}
26 |
27 |
28 | {% endfor %}
29 |
30 |
31 | {% endblock content %}
32 |
--------------------------------------------------------------------------------
/okta-hosted-login/templates/template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
11 |
12 |
13 |
14 | Okta Hosted Login in Flask
15 |
16 |
17 |
18 |
19 |
20 | Home
21 | {% if current_user.is_authenticated %}
22 | My Profile
23 | {% endif %}
24 |
25 | {% if current_user.is_authenticated %}
26 |
29 | {% endif %}
30 |
31 |
32 |
33 |
34 | {% block content %}{% endblock %}
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/okta-hosted-login/user.py:
--------------------------------------------------------------------------------
1 | from flask_login import UserMixin
2 |
3 |
4 | # Simulate user database
5 | USERS_DB = {}
6 |
7 |
8 | class User(UserMixin):
9 |
10 | """Custom User class."""
11 |
12 | def __init__(self, id_, name, email):
13 | self.id = id_
14 | self.name = name
15 | self.email = email
16 |
17 | def claims(self):
18 | """Use this method to render all assigned claims on profile page."""
19 | return {'name': self.name,
20 | 'email': self.email}.items()
21 |
22 | @staticmethod
23 | def get(user_id):
24 | return USERS_DB.get(user_id)
25 |
26 | @staticmethod
27 | def create(user_id, name, email):
28 | USERS_DB[user_id] = User(user_id, name, email)
29 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@okta/samples-python-flask",
3 | "version": "0.1.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "@okta/samples-python-flask",
9 | "version": "0.1.0",
10 | "license": "Apache-2.0",
11 | "devDependencies": {
12 | "dotenv": "^5.0.1",
13 | "find-process": "^1.1.0",
14 | "forever-monitor": "npm:@umpacken/forever-monitor@^1.6.1",
15 | "jasmine": "^3.0.0",
16 | "jasmine-reporters": "^2.5",
17 | "node-cmd": "^3.0.0",
18 | "platform": "^1.3.5",
19 | "protractor": "^7.0.0",
20 | "wait-on": "^5.3.0"
21 | }
22 | },
23 | "node_modules/@hapi/hoek": {
24 | "version": "9.3.0",
25 | "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
26 | "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==",
27 | "dev": true
28 | },
29 | "node_modules/@hapi/topo": {
30 | "version": "5.1.0",
31 | "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
32 | "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
33 | "dev": true,
34 | "dependencies": {
35 | "@hapi/hoek": "^9.0.0"
36 | }
37 | },
38 | "node_modules/@sideway/address": {
39 | "version": "4.1.4",
40 | "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
41 | "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==",
42 | "dev": true,
43 | "dependencies": {
44 | "@hapi/hoek": "^9.0.0"
45 | }
46 | },
47 | "node_modules/@sideway/formula": {
48 | "version": "3.0.1",
49 | "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
50 | "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==",
51 | "dev": true
52 | },
53 | "node_modules/@sideway/pinpoint": {
54 | "version": "2.0.0",
55 | "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
56 | "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
57 | "dev": true
58 | },
59 | "node_modules/@types/q": {
60 | "version": "0.0.32",
61 | "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz",
62 | "integrity": "sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug==",
63 | "dev": true
64 | },
65 | "node_modules/@types/selenium-webdriver": {
66 | "version": "3.0.20",
67 | "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.20.tgz",
68 | "integrity": "sha512-6d8Q5fqS9DWOXEhMDiF6/2FjyHdmP/jSTAUyeQR7QwrFeNmYyzmvGxD5aLIHL445HjWgibs0eAig+KPnbaesXA==",
69 | "dev": true
70 | },
71 | "node_modules/@xmldom/xmldom": {
72 | "version": "0.8.6",
73 | "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.6.tgz",
74 | "integrity": "sha512-uRjjusqpoqfmRkTaNuLJ2VohVr67Q5YwDATW3VU7PfzTj6IRaihGrYI7zckGZjxQPBIp63nfvJbM+Yu5ICh0Bg==",
75 | "dev": true,
76 | "engines": {
77 | "node": ">=10.0.0"
78 | }
79 | },
80 | "node_modules/adm-zip": {
81 | "version": "0.5.10",
82 | "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz",
83 | "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==",
84 | "dev": true,
85 | "engines": {
86 | "node": ">=6.0"
87 | }
88 | },
89 | "node_modules/agent-base": {
90 | "version": "4.3.0",
91 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
92 | "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
93 | "dev": true,
94 | "dependencies": {
95 | "es6-promisify": "^5.0.0"
96 | },
97 | "engines": {
98 | "node": ">= 4.0.0"
99 | }
100 | },
101 | "node_modules/ajv": {
102 | "version": "6.12.6",
103 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
104 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
105 | "dev": true,
106 | "dependencies": {
107 | "fast-deep-equal": "^3.1.1",
108 | "fast-json-stable-stringify": "^2.0.0",
109 | "json-schema-traverse": "^0.4.1",
110 | "uri-js": "^4.2.2"
111 | },
112 | "funding": {
113 | "type": "github",
114 | "url": "https://github.com/sponsors/epoberezkin"
115 | }
116 | },
117 | "node_modules/ansi-regex": {
118 | "version": "5.0.1",
119 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
120 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
121 | "dev": true,
122 | "engines": {
123 | "node": ">=8"
124 | }
125 | },
126 | "node_modules/ansi-styles": {
127 | "version": "4.3.0",
128 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
129 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
130 | "dev": true,
131 | "dependencies": {
132 | "color-convert": "^2.0.1"
133 | },
134 | "engines": {
135 | "node": ">=8"
136 | },
137 | "funding": {
138 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
139 | }
140 | },
141 | "node_modules/anymatch": {
142 | "version": "3.1.3",
143 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
144 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
145 | "dev": true,
146 | "dependencies": {
147 | "normalize-path": "^3.0.0",
148 | "picomatch": "^2.0.4"
149 | },
150 | "engines": {
151 | "node": ">= 8"
152 | }
153 | },
154 | "node_modules/array-union": {
155 | "version": "1.0.2",
156 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
157 | "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
158 | "dev": true,
159 | "dependencies": {
160 | "array-uniq": "^1.0.1"
161 | },
162 | "engines": {
163 | "node": ">=0.10.0"
164 | }
165 | },
166 | "node_modules/array-uniq": {
167 | "version": "1.0.3",
168 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
169 | "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
170 | "dev": true,
171 | "engines": {
172 | "node": ">=0.10.0"
173 | }
174 | },
175 | "node_modules/arrify": {
176 | "version": "1.0.1",
177 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
178 | "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
179 | "dev": true,
180 | "engines": {
181 | "node": ">=0.10.0"
182 | }
183 | },
184 | "node_modules/asn1": {
185 | "version": "0.2.6",
186 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
187 | "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
188 | "dev": true,
189 | "dependencies": {
190 | "safer-buffer": "~2.1.0"
191 | }
192 | },
193 | "node_modules/assert-plus": {
194 | "version": "1.0.0",
195 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
196 | "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
197 | "dev": true,
198 | "engines": {
199 | "node": ">=0.8"
200 | }
201 | },
202 | "node_modules/async": {
203 | "version": "3.2.4",
204 | "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
205 | "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
206 | "dev": true
207 | },
208 | "node_modules/asynckit": {
209 | "version": "0.4.0",
210 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
211 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
212 | "dev": true
213 | },
214 | "node_modules/aws-sign2": {
215 | "version": "0.7.0",
216 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
217 | "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
218 | "dev": true,
219 | "engines": {
220 | "node": "*"
221 | }
222 | },
223 | "node_modules/aws4": {
224 | "version": "1.12.0",
225 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz",
226 | "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==",
227 | "dev": true
228 | },
229 | "node_modules/axios": {
230 | "version": "0.21.4",
231 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
232 | "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
233 | "dev": true,
234 | "dependencies": {
235 | "follow-redirects": "^1.14.0"
236 | }
237 | },
238 | "node_modules/balanced-match": {
239 | "version": "1.0.2",
240 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
241 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
242 | "dev": true
243 | },
244 | "node_modules/bcrypt-pbkdf": {
245 | "version": "1.0.2",
246 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
247 | "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
248 | "dev": true,
249 | "dependencies": {
250 | "tweetnacl": "^0.14.3"
251 | }
252 | },
253 | "node_modules/binary-extensions": {
254 | "version": "2.2.0",
255 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
256 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
257 | "dev": true,
258 | "engines": {
259 | "node": ">=8"
260 | }
261 | },
262 | "node_modules/blocking-proxy": {
263 | "version": "1.0.1",
264 | "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz",
265 | "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==",
266 | "dev": true,
267 | "dependencies": {
268 | "minimist": "^1.2.0"
269 | },
270 | "bin": {
271 | "blocking-proxy": "built/lib/bin.js"
272 | },
273 | "engines": {
274 | "node": ">=6.9.x"
275 | }
276 | },
277 | "node_modules/brace-expansion": {
278 | "version": "1.1.11",
279 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
280 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
281 | "dev": true,
282 | "dependencies": {
283 | "balanced-match": "^1.0.0",
284 | "concat-map": "0.0.1"
285 | }
286 | },
287 | "node_modules/braces": {
288 | "version": "3.0.2",
289 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
290 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
291 | "dev": true,
292 | "dependencies": {
293 | "fill-range": "^7.0.1"
294 | },
295 | "engines": {
296 | "node": ">=8"
297 | }
298 | },
299 | "node_modules/browserstack": {
300 | "version": "1.6.1",
301 | "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz",
302 | "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==",
303 | "dev": true,
304 | "dependencies": {
305 | "https-proxy-agent": "^2.2.1"
306 | }
307 | },
308 | "node_modules/camelcase": {
309 | "version": "5.3.1",
310 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
311 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
312 | "dev": true,
313 | "engines": {
314 | "node": ">=6"
315 | }
316 | },
317 | "node_modules/caseless": {
318 | "version": "0.12.0",
319 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
320 | "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
321 | "dev": true
322 | },
323 | "node_modules/chalk": {
324 | "version": "4.1.2",
325 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
326 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
327 | "dev": true,
328 | "dependencies": {
329 | "ansi-styles": "^4.1.0",
330 | "supports-color": "^7.1.0"
331 | },
332 | "engines": {
333 | "node": ">=10"
334 | },
335 | "funding": {
336 | "url": "https://github.com/chalk/chalk?sponsor=1"
337 | }
338 | },
339 | "node_modules/chokidar": {
340 | "version": "3.5.3",
341 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
342 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
343 | "dev": true,
344 | "funding": [
345 | {
346 | "type": "individual",
347 | "url": "https://paulmillr.com/funding/"
348 | }
349 | ],
350 | "dependencies": {
351 | "anymatch": "~3.1.2",
352 | "braces": "~3.0.2",
353 | "glob-parent": "~5.1.2",
354 | "is-binary-path": "~2.1.0",
355 | "is-glob": "~4.0.1",
356 | "normalize-path": "~3.0.0",
357 | "readdirp": "~3.6.0"
358 | },
359 | "engines": {
360 | "node": ">= 8.10.0"
361 | },
362 | "optionalDependencies": {
363 | "fsevents": "~2.3.2"
364 | }
365 | },
366 | "node_modules/cliui": {
367 | "version": "6.0.0",
368 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
369 | "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
370 | "dev": true,
371 | "dependencies": {
372 | "string-width": "^4.2.0",
373 | "strip-ansi": "^6.0.0",
374 | "wrap-ansi": "^6.2.0"
375 | }
376 | },
377 | "node_modules/color-convert": {
378 | "version": "2.0.1",
379 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
380 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
381 | "dev": true,
382 | "dependencies": {
383 | "color-name": "~1.1.4"
384 | },
385 | "engines": {
386 | "node": ">=7.0.0"
387 | }
388 | },
389 | "node_modules/color-name": {
390 | "version": "1.1.4",
391 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
392 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
393 | "dev": true
394 | },
395 | "node_modules/combined-stream": {
396 | "version": "1.0.8",
397 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
398 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
399 | "dev": true,
400 | "dependencies": {
401 | "delayed-stream": "~1.0.0"
402 | },
403 | "engines": {
404 | "node": ">= 0.8"
405 | }
406 | },
407 | "node_modules/commander": {
408 | "version": "5.1.0",
409 | "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
410 | "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
411 | "dev": true,
412 | "engines": {
413 | "node": ">= 6"
414 | }
415 | },
416 | "node_modules/concat-map": {
417 | "version": "0.0.1",
418 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
419 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
420 | "dev": true
421 | },
422 | "node_modules/core-util-is": {
423 | "version": "1.0.3",
424 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
425 | "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
426 | "dev": true
427 | },
428 | "node_modules/dashdash": {
429 | "version": "1.14.1",
430 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
431 | "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
432 | "dev": true,
433 | "dependencies": {
434 | "assert-plus": "^1.0.0"
435 | },
436 | "engines": {
437 | "node": ">=0.10"
438 | }
439 | },
440 | "node_modules/debug": {
441 | "version": "4.3.4",
442 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
443 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
444 | "dev": true,
445 | "dependencies": {
446 | "ms": "2.1.2"
447 | },
448 | "engines": {
449 | "node": ">=6.0"
450 | },
451 | "peerDependenciesMeta": {
452 | "supports-color": {
453 | "optional": true
454 | }
455 | }
456 | },
457 | "node_modules/decamelize": {
458 | "version": "1.2.0",
459 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
460 | "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
461 | "dev": true,
462 | "engines": {
463 | "node": ">=0.10.0"
464 | }
465 | },
466 | "node_modules/del": {
467 | "version": "2.2.2",
468 | "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
469 | "integrity": "sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==",
470 | "dev": true,
471 | "dependencies": {
472 | "globby": "^5.0.0",
473 | "is-path-cwd": "^1.0.0",
474 | "is-path-in-cwd": "^1.0.0",
475 | "object-assign": "^4.0.1",
476 | "pify": "^2.0.0",
477 | "pinkie-promise": "^2.0.0",
478 | "rimraf": "^2.2.8"
479 | },
480 | "engines": {
481 | "node": ">=0.10.0"
482 | }
483 | },
484 | "node_modules/delayed-stream": {
485 | "version": "1.0.0",
486 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
487 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
488 | "dev": true,
489 | "engines": {
490 | "node": ">=0.4.0"
491 | }
492 | },
493 | "node_modules/dotenv": {
494 | "version": "5.0.1",
495 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz",
496 | "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==",
497 | "dev": true,
498 | "engines": {
499 | "node": ">=4.6.0"
500 | }
501 | },
502 | "node_modules/duplexer": {
503 | "version": "0.1.2",
504 | "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
505 | "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
506 | "dev": true
507 | },
508 | "node_modules/ecc-jsbn": {
509 | "version": "0.1.2",
510 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
511 | "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
512 | "dev": true,
513 | "dependencies": {
514 | "jsbn": "~0.1.0",
515 | "safer-buffer": "^2.1.0"
516 | }
517 | },
518 | "node_modules/emoji-regex": {
519 | "version": "8.0.0",
520 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
521 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
522 | "dev": true
523 | },
524 | "node_modules/es6-promise": {
525 | "version": "4.2.8",
526 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
527 | "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
528 | "dev": true
529 | },
530 | "node_modules/es6-promisify": {
531 | "version": "5.0.0",
532 | "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
533 | "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==",
534 | "dev": true,
535 | "dependencies": {
536 | "es6-promise": "^4.0.3"
537 | }
538 | },
539 | "node_modules/escape-string-regexp": {
540 | "version": "1.0.5",
541 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
542 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
543 | "dev": true,
544 | "engines": {
545 | "node": ">=0.8.0"
546 | }
547 | },
548 | "node_modules/event-stream": {
549 | "version": "3.3.4",
550 | "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
551 | "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==",
552 | "dev": true,
553 | "dependencies": {
554 | "duplexer": "~0.1.1",
555 | "from": "~0",
556 | "map-stream": "~0.1.0",
557 | "pause-stream": "0.0.11",
558 | "split": "0.3",
559 | "stream-combiner": "~0.0.4",
560 | "through": "~2.3.1"
561 | }
562 | },
563 | "node_modules/eventemitter2": {
564 | "version": "6.4.9",
565 | "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz",
566 | "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==",
567 | "dev": true
568 | },
569 | "node_modules/exit": {
570 | "version": "0.1.2",
571 | "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
572 | "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
573 | "dev": true,
574 | "engines": {
575 | "node": ">= 0.8.0"
576 | }
577 | },
578 | "node_modules/extend": {
579 | "version": "3.0.2",
580 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
581 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
582 | "dev": true
583 | },
584 | "node_modules/extsprintf": {
585 | "version": "1.3.0",
586 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
587 | "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
588 | "dev": true,
589 | "engines": [
590 | "node >=0.6.0"
591 | ]
592 | },
593 | "node_modules/fast-deep-equal": {
594 | "version": "3.1.3",
595 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
596 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
597 | "dev": true
598 | },
599 | "node_modules/fast-json-stable-stringify": {
600 | "version": "2.1.0",
601 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
602 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
603 | "dev": true
604 | },
605 | "node_modules/fill-range": {
606 | "version": "7.0.1",
607 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
608 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
609 | "dev": true,
610 | "dependencies": {
611 | "to-regex-range": "^5.0.1"
612 | },
613 | "engines": {
614 | "node": ">=8"
615 | }
616 | },
617 | "node_modules/find-process": {
618 | "version": "1.4.7",
619 | "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.7.tgz",
620 | "integrity": "sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==",
621 | "dev": true,
622 | "dependencies": {
623 | "chalk": "^4.0.0",
624 | "commander": "^5.1.0",
625 | "debug": "^4.1.1"
626 | },
627 | "bin": {
628 | "find-process": "bin/find-process.js"
629 | }
630 | },
631 | "node_modules/find-up": {
632 | "version": "4.1.0",
633 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
634 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
635 | "dev": true,
636 | "dependencies": {
637 | "locate-path": "^5.0.0",
638 | "path-exists": "^4.0.0"
639 | },
640 | "engines": {
641 | "node": ">=8"
642 | }
643 | },
644 | "node_modules/follow-redirects": {
645 | "version": "1.15.2",
646 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
647 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
648 | "dev": true,
649 | "funding": [
650 | {
651 | "type": "individual",
652 | "url": "https://github.com/sponsors/RubenVerborgh"
653 | }
654 | ],
655 | "engines": {
656 | "node": ">=4.0"
657 | },
658 | "peerDependenciesMeta": {
659 | "debug": {
660 | "optional": true
661 | }
662 | }
663 | },
664 | "node_modules/forever-agent": {
665 | "version": "0.6.1",
666 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
667 | "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
668 | "dev": true,
669 | "engines": {
670 | "node": "*"
671 | }
672 | },
673 | "node_modules/forever-monitor": {
674 | "name": "@umpacken/forever-monitor",
675 | "version": "1.6.1",
676 | "resolved": "https://registry.npmjs.org/@umpacken/forever-monitor/-/forever-monitor-1.6.1.tgz",
677 | "integrity": "sha512-xm5q3/1VnqWKEbzSh7HtQhJXWPkUB2Z+8kBdGwP7XipQCehHTAZhVrokfDwN0Sz7lyTeyBSEvc227L5SNQdSOg==",
678 | "dev": true,
679 | "dependencies": {
680 | "async": "^3.0.0",
681 | "chokidar": "^3.0.0",
682 | "eventemitter2": "^6.4.3",
683 | "minimatch": "^3.0.4",
684 | "ps-tree": "^1.2.0"
685 | },
686 | "engines": {
687 | "node": ">=6"
688 | }
689 | },
690 | "node_modules/form-data": {
691 | "version": "2.3.3",
692 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
693 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
694 | "dev": true,
695 | "dependencies": {
696 | "asynckit": "^0.4.0",
697 | "combined-stream": "^1.0.6",
698 | "mime-types": "^2.1.12"
699 | },
700 | "engines": {
701 | "node": ">= 0.12"
702 | }
703 | },
704 | "node_modules/from": {
705 | "version": "0.1.7",
706 | "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
707 | "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==",
708 | "dev": true
709 | },
710 | "node_modules/fs.realpath": {
711 | "version": "1.0.0",
712 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
713 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
714 | "dev": true
715 | },
716 | "node_modules/fsevents": {
717 | "version": "2.3.2",
718 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
719 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
720 | "dev": true,
721 | "hasInstallScript": true,
722 | "optional": true,
723 | "os": [
724 | "darwin"
725 | ],
726 | "engines": {
727 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
728 | }
729 | },
730 | "node_modules/get-caller-file": {
731 | "version": "2.0.5",
732 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
733 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
734 | "dev": true,
735 | "engines": {
736 | "node": "6.* || 8.* || >= 10.*"
737 | }
738 | },
739 | "node_modules/getpass": {
740 | "version": "0.1.7",
741 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
742 | "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
743 | "dev": true,
744 | "dependencies": {
745 | "assert-plus": "^1.0.0"
746 | }
747 | },
748 | "node_modules/glob": {
749 | "version": "7.2.3",
750 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
751 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
752 | "dev": true,
753 | "dependencies": {
754 | "fs.realpath": "^1.0.0",
755 | "inflight": "^1.0.4",
756 | "inherits": "2",
757 | "minimatch": "^3.1.1",
758 | "once": "^1.3.0",
759 | "path-is-absolute": "^1.0.0"
760 | },
761 | "engines": {
762 | "node": "*"
763 | },
764 | "funding": {
765 | "url": "https://github.com/sponsors/isaacs"
766 | }
767 | },
768 | "node_modules/glob-parent": {
769 | "version": "5.1.2",
770 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
771 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
772 | "dev": true,
773 | "dependencies": {
774 | "is-glob": "^4.0.1"
775 | },
776 | "engines": {
777 | "node": ">= 6"
778 | }
779 | },
780 | "node_modules/globby": {
781 | "version": "5.0.0",
782 | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
783 | "integrity": "sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==",
784 | "dev": true,
785 | "dependencies": {
786 | "array-union": "^1.0.1",
787 | "arrify": "^1.0.0",
788 | "glob": "^7.0.3",
789 | "object-assign": "^4.0.1",
790 | "pify": "^2.0.0",
791 | "pinkie-promise": "^2.0.0"
792 | },
793 | "engines": {
794 | "node": ">=0.10.0"
795 | }
796 | },
797 | "node_modules/har-schema": {
798 | "version": "2.0.0",
799 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
800 | "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
801 | "dev": true,
802 | "engines": {
803 | "node": ">=4"
804 | }
805 | },
806 | "node_modules/har-validator": {
807 | "version": "5.1.5",
808 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
809 | "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
810 | "deprecated": "this library is no longer supported",
811 | "dev": true,
812 | "dependencies": {
813 | "ajv": "^6.12.3",
814 | "har-schema": "^2.0.0"
815 | },
816 | "engines": {
817 | "node": ">=6"
818 | }
819 | },
820 | "node_modules/has-ansi": {
821 | "version": "2.0.0",
822 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
823 | "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==",
824 | "dev": true,
825 | "dependencies": {
826 | "ansi-regex": "^2.0.0"
827 | },
828 | "engines": {
829 | "node": ">=0.10.0"
830 | }
831 | },
832 | "node_modules/has-ansi/node_modules/ansi-regex": {
833 | "version": "2.1.1",
834 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
835 | "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
836 | "dev": true,
837 | "engines": {
838 | "node": ">=0.10.0"
839 | }
840 | },
841 | "node_modules/has-flag": {
842 | "version": "4.0.0",
843 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
844 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
845 | "dev": true,
846 | "engines": {
847 | "node": ">=8"
848 | }
849 | },
850 | "node_modules/http-signature": {
851 | "version": "1.2.0",
852 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
853 | "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
854 | "dev": true,
855 | "dependencies": {
856 | "assert-plus": "^1.0.0",
857 | "jsprim": "^1.2.2",
858 | "sshpk": "^1.7.0"
859 | },
860 | "engines": {
861 | "node": ">=0.8",
862 | "npm": ">=1.3.7"
863 | }
864 | },
865 | "node_modules/https-proxy-agent": {
866 | "version": "2.2.4",
867 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz",
868 | "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==",
869 | "dev": true,
870 | "dependencies": {
871 | "agent-base": "^4.3.0",
872 | "debug": "^3.1.0"
873 | },
874 | "engines": {
875 | "node": ">= 4.5.0"
876 | }
877 | },
878 | "node_modules/https-proxy-agent/node_modules/debug": {
879 | "version": "3.2.7",
880 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
881 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
882 | "dev": true,
883 | "dependencies": {
884 | "ms": "^2.1.1"
885 | }
886 | },
887 | "node_modules/immediate": {
888 | "version": "3.0.6",
889 | "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
890 | "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
891 | "dev": true
892 | },
893 | "node_modules/inflight": {
894 | "version": "1.0.6",
895 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
896 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
897 | "dev": true,
898 | "dependencies": {
899 | "once": "^1.3.0",
900 | "wrappy": "1"
901 | }
902 | },
903 | "node_modules/inherits": {
904 | "version": "2.0.4",
905 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
906 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
907 | "dev": true
908 | },
909 | "node_modules/ini": {
910 | "version": "1.3.8",
911 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
912 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
913 | "dev": true
914 | },
915 | "node_modules/is-binary-path": {
916 | "version": "2.1.0",
917 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
918 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
919 | "dev": true,
920 | "dependencies": {
921 | "binary-extensions": "^2.0.0"
922 | },
923 | "engines": {
924 | "node": ">=8"
925 | }
926 | },
927 | "node_modules/is-extglob": {
928 | "version": "2.1.1",
929 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
930 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
931 | "dev": true,
932 | "engines": {
933 | "node": ">=0.10.0"
934 | }
935 | },
936 | "node_modules/is-fullwidth-code-point": {
937 | "version": "3.0.0",
938 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
939 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
940 | "dev": true,
941 | "engines": {
942 | "node": ">=8"
943 | }
944 | },
945 | "node_modules/is-glob": {
946 | "version": "4.0.3",
947 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
948 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
949 | "dev": true,
950 | "dependencies": {
951 | "is-extglob": "^2.1.1"
952 | },
953 | "engines": {
954 | "node": ">=0.10.0"
955 | }
956 | },
957 | "node_modules/is-number": {
958 | "version": "7.0.0",
959 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
960 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
961 | "dev": true,
962 | "engines": {
963 | "node": ">=0.12.0"
964 | }
965 | },
966 | "node_modules/is-path-cwd": {
967 | "version": "1.0.0",
968 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
969 | "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==",
970 | "dev": true,
971 | "engines": {
972 | "node": ">=0.10.0"
973 | }
974 | },
975 | "node_modules/is-path-in-cwd": {
976 | "version": "1.0.1",
977 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
978 | "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
979 | "dev": true,
980 | "dependencies": {
981 | "is-path-inside": "^1.0.0"
982 | },
983 | "engines": {
984 | "node": ">=0.10.0"
985 | }
986 | },
987 | "node_modules/is-path-inside": {
988 | "version": "1.0.1",
989 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
990 | "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==",
991 | "dev": true,
992 | "dependencies": {
993 | "path-is-inside": "^1.0.1"
994 | },
995 | "engines": {
996 | "node": ">=0.10.0"
997 | }
998 | },
999 | "node_modules/is-typedarray": {
1000 | "version": "1.0.0",
1001 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
1002 | "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
1003 | "dev": true
1004 | },
1005 | "node_modules/isarray": {
1006 | "version": "1.0.0",
1007 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1008 | "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
1009 | "dev": true
1010 | },
1011 | "node_modules/isstream": {
1012 | "version": "0.1.2",
1013 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
1014 | "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
1015 | "dev": true
1016 | },
1017 | "node_modules/jasmine": {
1018 | "version": "3.99.0",
1019 | "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.99.0.tgz",
1020 | "integrity": "sha512-YIThBuHzaIIcjxeuLmPD40SjxkEcc8i//sGMDKCgkRMVgIwRJf5qyExtlJpQeh7pkeoBSOe6lQEdg+/9uKg9mw==",
1021 | "dev": true,
1022 | "dependencies": {
1023 | "glob": "^7.1.6",
1024 | "jasmine-core": "~3.99.0"
1025 | },
1026 | "bin": {
1027 | "jasmine": "bin/jasmine.js"
1028 | }
1029 | },
1030 | "node_modules/jasmine-core": {
1031 | "version": "3.99.1",
1032 | "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.99.1.tgz",
1033 | "integrity": "sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg==",
1034 | "dev": true
1035 | },
1036 | "node_modules/jasmine-reporters": {
1037 | "version": "2.5.2",
1038 | "resolved": "https://registry.npmjs.org/jasmine-reporters/-/jasmine-reporters-2.5.2.tgz",
1039 | "integrity": "sha512-qdewRUuFOSiWhiyWZX8Yx3YNQ9JG51ntBEO4ekLQRpktxFTwUHy24a86zD/Oi2BRTKksEdfWQZcQFqzjqIkPig==",
1040 | "dev": true,
1041 | "dependencies": {
1042 | "@xmldom/xmldom": "^0.8.5",
1043 | "mkdirp": "^1.0.4"
1044 | }
1045 | },
1046 | "node_modules/jasminewd2": {
1047 | "version": "2.2.0",
1048 | "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz",
1049 | "integrity": "sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg==",
1050 | "dev": true,
1051 | "engines": {
1052 | "node": ">= 6.9.x"
1053 | }
1054 | },
1055 | "node_modules/joi": {
1056 | "version": "17.8.4",
1057 | "resolved": "https://registry.npmjs.org/joi/-/joi-17.8.4.tgz",
1058 | "integrity": "sha512-jjdRHb5WtL+KgSHvOULQEPPv4kcl+ixd1ybOFQq3rWLgEEqc03QMmilodL0GVJE14U/SQDXkUhQUSZANGDH/AA==",
1059 | "dev": true,
1060 | "dependencies": {
1061 | "@hapi/hoek": "^9.0.0",
1062 | "@hapi/topo": "^5.0.0",
1063 | "@sideway/address": "^4.1.3",
1064 | "@sideway/formula": "^3.0.1",
1065 | "@sideway/pinpoint": "^2.0.0"
1066 | }
1067 | },
1068 | "node_modules/jsbn": {
1069 | "version": "0.1.1",
1070 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
1071 | "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
1072 | "dev": true
1073 | },
1074 | "node_modules/json-schema": {
1075 | "version": "0.4.0",
1076 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
1077 | "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
1078 | "dev": true
1079 | },
1080 | "node_modules/json-schema-traverse": {
1081 | "version": "0.4.1",
1082 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
1083 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
1084 | "dev": true
1085 | },
1086 | "node_modules/json-stringify-safe": {
1087 | "version": "5.0.1",
1088 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
1089 | "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
1090 | "dev": true
1091 | },
1092 | "node_modules/jsprim": {
1093 | "version": "1.4.2",
1094 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
1095 | "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
1096 | "dev": true,
1097 | "dependencies": {
1098 | "assert-plus": "1.0.0",
1099 | "extsprintf": "1.3.0",
1100 | "json-schema": "0.4.0",
1101 | "verror": "1.10.0"
1102 | },
1103 | "engines": {
1104 | "node": ">=0.6.0"
1105 | }
1106 | },
1107 | "node_modules/jszip": {
1108 | "version": "3.10.1",
1109 | "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
1110 | "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
1111 | "dev": true,
1112 | "dependencies": {
1113 | "lie": "~3.3.0",
1114 | "pako": "~1.0.2",
1115 | "readable-stream": "~2.3.6",
1116 | "setimmediate": "^1.0.5"
1117 | }
1118 | },
1119 | "node_modules/lie": {
1120 | "version": "3.3.0",
1121 | "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
1122 | "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
1123 | "dev": true,
1124 | "dependencies": {
1125 | "immediate": "~3.0.5"
1126 | }
1127 | },
1128 | "node_modules/locate-path": {
1129 | "version": "5.0.0",
1130 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
1131 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
1132 | "dev": true,
1133 | "dependencies": {
1134 | "p-locate": "^4.1.0"
1135 | },
1136 | "engines": {
1137 | "node": ">=8"
1138 | }
1139 | },
1140 | "node_modules/lodash": {
1141 | "version": "4.17.21",
1142 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
1143 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
1144 | "dev": true
1145 | },
1146 | "node_modules/map-stream": {
1147 | "version": "0.1.0",
1148 | "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
1149 | "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==",
1150 | "dev": true
1151 | },
1152 | "node_modules/mime-db": {
1153 | "version": "1.52.0",
1154 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
1155 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
1156 | "dev": true,
1157 | "engines": {
1158 | "node": ">= 0.6"
1159 | }
1160 | },
1161 | "node_modules/mime-types": {
1162 | "version": "2.1.35",
1163 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
1164 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
1165 | "dev": true,
1166 | "dependencies": {
1167 | "mime-db": "1.52.0"
1168 | },
1169 | "engines": {
1170 | "node": ">= 0.6"
1171 | }
1172 | },
1173 | "node_modules/minimatch": {
1174 | "version": "3.1.2",
1175 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1176 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1177 | "dev": true,
1178 | "dependencies": {
1179 | "brace-expansion": "^1.1.7"
1180 | },
1181 | "engines": {
1182 | "node": "*"
1183 | }
1184 | },
1185 | "node_modules/minimist": {
1186 | "version": "1.2.8",
1187 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
1188 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
1189 | "dev": true,
1190 | "funding": {
1191 | "url": "https://github.com/sponsors/ljharb"
1192 | }
1193 | },
1194 | "node_modules/mkdirp": {
1195 | "version": "1.0.4",
1196 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
1197 | "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
1198 | "dev": true,
1199 | "bin": {
1200 | "mkdirp": "bin/cmd.js"
1201 | },
1202 | "engines": {
1203 | "node": ">=10"
1204 | }
1205 | },
1206 | "node_modules/ms": {
1207 | "version": "2.1.2",
1208 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1209 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1210 | "dev": true
1211 | },
1212 | "node_modules/node-cmd": {
1213 | "version": "3.0.0",
1214 | "resolved": "https://registry.npmjs.org/node-cmd/-/node-cmd-3.0.0.tgz",
1215 | "integrity": "sha512-SBvtm39iEkhEEDbUowR0O2YVaqpbD2nRvQ3fxXP/Tn1FgRpZAaUb8yKeEtFulBIv+xTHDodOKkj4EXIBANj+AQ==",
1216 | "dev": true
1217 | },
1218 | "node_modules/normalize-path": {
1219 | "version": "3.0.0",
1220 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1221 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1222 | "dev": true,
1223 | "engines": {
1224 | "node": ">=0.10.0"
1225 | }
1226 | },
1227 | "node_modules/oauth-sign": {
1228 | "version": "0.9.0",
1229 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
1230 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
1231 | "dev": true,
1232 | "engines": {
1233 | "node": "*"
1234 | }
1235 | },
1236 | "node_modules/object-assign": {
1237 | "version": "4.1.1",
1238 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1239 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
1240 | "dev": true,
1241 | "engines": {
1242 | "node": ">=0.10.0"
1243 | }
1244 | },
1245 | "node_modules/once": {
1246 | "version": "1.4.0",
1247 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1248 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1249 | "dev": true,
1250 | "dependencies": {
1251 | "wrappy": "1"
1252 | }
1253 | },
1254 | "node_modules/os-tmpdir": {
1255 | "version": "1.0.2",
1256 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
1257 | "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
1258 | "dev": true,
1259 | "engines": {
1260 | "node": ">=0.10.0"
1261 | }
1262 | },
1263 | "node_modules/p-limit": {
1264 | "version": "2.3.0",
1265 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
1266 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
1267 | "dev": true,
1268 | "dependencies": {
1269 | "p-try": "^2.0.0"
1270 | },
1271 | "engines": {
1272 | "node": ">=6"
1273 | },
1274 | "funding": {
1275 | "url": "https://github.com/sponsors/sindresorhus"
1276 | }
1277 | },
1278 | "node_modules/p-locate": {
1279 | "version": "4.1.0",
1280 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
1281 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
1282 | "dev": true,
1283 | "dependencies": {
1284 | "p-limit": "^2.2.0"
1285 | },
1286 | "engines": {
1287 | "node": ">=8"
1288 | }
1289 | },
1290 | "node_modules/p-try": {
1291 | "version": "2.2.0",
1292 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
1293 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
1294 | "dev": true,
1295 | "engines": {
1296 | "node": ">=6"
1297 | }
1298 | },
1299 | "node_modules/pako": {
1300 | "version": "1.0.11",
1301 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
1302 | "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
1303 | "dev": true
1304 | },
1305 | "node_modules/path-exists": {
1306 | "version": "4.0.0",
1307 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
1308 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
1309 | "dev": true,
1310 | "engines": {
1311 | "node": ">=8"
1312 | }
1313 | },
1314 | "node_modules/path-is-absolute": {
1315 | "version": "1.0.1",
1316 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1317 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
1318 | "dev": true,
1319 | "engines": {
1320 | "node": ">=0.10.0"
1321 | }
1322 | },
1323 | "node_modules/path-is-inside": {
1324 | "version": "1.0.2",
1325 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
1326 | "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==",
1327 | "dev": true
1328 | },
1329 | "node_modules/pause-stream": {
1330 | "version": "0.0.11",
1331 | "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
1332 | "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==",
1333 | "dev": true,
1334 | "dependencies": {
1335 | "through": "~2.3"
1336 | }
1337 | },
1338 | "node_modules/performance-now": {
1339 | "version": "2.1.0",
1340 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
1341 | "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
1342 | "dev": true
1343 | },
1344 | "node_modules/picomatch": {
1345 | "version": "2.3.1",
1346 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1347 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1348 | "dev": true,
1349 | "engines": {
1350 | "node": ">=8.6"
1351 | },
1352 | "funding": {
1353 | "url": "https://github.com/sponsors/jonschlinkert"
1354 | }
1355 | },
1356 | "node_modules/pify": {
1357 | "version": "2.3.0",
1358 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
1359 | "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
1360 | "dev": true,
1361 | "engines": {
1362 | "node": ">=0.10.0"
1363 | }
1364 | },
1365 | "node_modules/pinkie": {
1366 | "version": "2.0.4",
1367 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
1368 | "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
1369 | "dev": true,
1370 | "engines": {
1371 | "node": ">=0.10.0"
1372 | }
1373 | },
1374 | "node_modules/pinkie-promise": {
1375 | "version": "2.0.1",
1376 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
1377 | "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
1378 | "dev": true,
1379 | "dependencies": {
1380 | "pinkie": "^2.0.0"
1381 | },
1382 | "engines": {
1383 | "node": ">=0.10.0"
1384 | }
1385 | },
1386 | "node_modules/platform": {
1387 | "version": "1.3.6",
1388 | "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz",
1389 | "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==",
1390 | "dev": true
1391 | },
1392 | "node_modules/process-nextick-args": {
1393 | "version": "2.0.1",
1394 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
1395 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
1396 | "dev": true
1397 | },
1398 | "node_modules/protractor": {
1399 | "version": "7.0.0",
1400 | "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz",
1401 | "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==",
1402 | "deprecated": "We have news to share - Protractor is deprecated and will reach end-of-life by Summer 2023. To learn more and find out about other options please refer to this post on the Angular blog. Thank you for using and contributing to Protractor. https://goo.gle/state-of-e2e-in-angular",
1403 | "dev": true,
1404 | "dependencies": {
1405 | "@types/q": "^0.0.32",
1406 | "@types/selenium-webdriver": "^3.0.0",
1407 | "blocking-proxy": "^1.0.0",
1408 | "browserstack": "^1.5.1",
1409 | "chalk": "^1.1.3",
1410 | "glob": "^7.0.3",
1411 | "jasmine": "2.8.0",
1412 | "jasminewd2": "^2.1.0",
1413 | "q": "1.4.1",
1414 | "saucelabs": "^1.5.0",
1415 | "selenium-webdriver": "3.6.0",
1416 | "source-map-support": "~0.4.0",
1417 | "webdriver-js-extender": "2.1.0",
1418 | "webdriver-manager": "^12.1.7",
1419 | "yargs": "^15.3.1"
1420 | },
1421 | "bin": {
1422 | "protractor": "bin/protractor",
1423 | "webdriver-manager": "bin/webdriver-manager"
1424 | },
1425 | "engines": {
1426 | "node": ">=10.13.x"
1427 | }
1428 | },
1429 | "node_modules/protractor/node_modules/ansi-regex": {
1430 | "version": "2.1.1",
1431 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
1432 | "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
1433 | "dev": true,
1434 | "engines": {
1435 | "node": ">=0.10.0"
1436 | }
1437 | },
1438 | "node_modules/protractor/node_modules/ansi-styles": {
1439 | "version": "2.2.1",
1440 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
1441 | "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
1442 | "dev": true,
1443 | "engines": {
1444 | "node": ">=0.10.0"
1445 | }
1446 | },
1447 | "node_modules/protractor/node_modules/chalk": {
1448 | "version": "1.1.3",
1449 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
1450 | "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
1451 | "dev": true,
1452 | "dependencies": {
1453 | "ansi-styles": "^2.2.1",
1454 | "escape-string-regexp": "^1.0.2",
1455 | "has-ansi": "^2.0.0",
1456 | "strip-ansi": "^3.0.0",
1457 | "supports-color": "^2.0.0"
1458 | },
1459 | "engines": {
1460 | "node": ">=0.10.0"
1461 | }
1462 | },
1463 | "node_modules/protractor/node_modules/jasmine": {
1464 | "version": "2.8.0",
1465 | "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz",
1466 | "integrity": "sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==",
1467 | "dev": true,
1468 | "dependencies": {
1469 | "exit": "^0.1.2",
1470 | "glob": "^7.0.6",
1471 | "jasmine-core": "~2.8.0"
1472 | },
1473 | "bin": {
1474 | "jasmine": "bin/jasmine.js"
1475 | }
1476 | },
1477 | "node_modules/protractor/node_modules/jasmine-core": {
1478 | "version": "2.8.0",
1479 | "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz",
1480 | "integrity": "sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==",
1481 | "dev": true
1482 | },
1483 | "node_modules/protractor/node_modules/strip-ansi": {
1484 | "version": "3.0.1",
1485 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
1486 | "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
1487 | "dev": true,
1488 | "dependencies": {
1489 | "ansi-regex": "^2.0.0"
1490 | },
1491 | "engines": {
1492 | "node": ">=0.10.0"
1493 | }
1494 | },
1495 | "node_modules/protractor/node_modules/supports-color": {
1496 | "version": "2.0.0",
1497 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
1498 | "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
1499 | "dev": true,
1500 | "engines": {
1501 | "node": ">=0.8.0"
1502 | }
1503 | },
1504 | "node_modules/ps-tree": {
1505 | "version": "1.2.0",
1506 | "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz",
1507 | "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==",
1508 | "dev": true,
1509 | "dependencies": {
1510 | "event-stream": "=3.3.4"
1511 | },
1512 | "bin": {
1513 | "ps-tree": "bin/ps-tree.js"
1514 | },
1515 | "engines": {
1516 | "node": ">= 0.10"
1517 | }
1518 | },
1519 | "node_modules/psl": {
1520 | "version": "1.9.0",
1521 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
1522 | "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
1523 | "dev": true
1524 | },
1525 | "node_modules/punycode": {
1526 | "version": "2.3.0",
1527 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
1528 | "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
1529 | "dev": true,
1530 | "engines": {
1531 | "node": ">=6"
1532 | }
1533 | },
1534 | "node_modules/q": {
1535 | "version": "1.4.1",
1536 | "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
1537 | "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==",
1538 | "dev": true,
1539 | "engines": {
1540 | "node": ">=0.6.0",
1541 | "teleport": ">=0.2.0"
1542 | }
1543 | },
1544 | "node_modules/qs": {
1545 | "version": "6.5.3",
1546 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
1547 | "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
1548 | "dev": true,
1549 | "engines": {
1550 | "node": ">=0.6"
1551 | }
1552 | },
1553 | "node_modules/readable-stream": {
1554 | "version": "2.3.8",
1555 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
1556 | "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
1557 | "dev": true,
1558 | "dependencies": {
1559 | "core-util-is": "~1.0.0",
1560 | "inherits": "~2.0.3",
1561 | "isarray": "~1.0.0",
1562 | "process-nextick-args": "~2.0.0",
1563 | "safe-buffer": "~5.1.1",
1564 | "string_decoder": "~1.1.1",
1565 | "util-deprecate": "~1.0.1"
1566 | }
1567 | },
1568 | "node_modules/readdirp": {
1569 | "version": "3.6.0",
1570 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1571 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1572 | "dev": true,
1573 | "dependencies": {
1574 | "picomatch": "^2.2.1"
1575 | },
1576 | "engines": {
1577 | "node": ">=8.10.0"
1578 | }
1579 | },
1580 | "node_modules/request": {
1581 | "version": "2.88.2",
1582 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
1583 | "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
1584 | "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
1585 | "dev": true,
1586 | "dependencies": {
1587 | "aws-sign2": "~0.7.0",
1588 | "aws4": "^1.8.0",
1589 | "caseless": "~0.12.0",
1590 | "combined-stream": "~1.0.6",
1591 | "extend": "~3.0.2",
1592 | "forever-agent": "~0.6.1",
1593 | "form-data": "~2.3.2",
1594 | "har-validator": "~5.1.3",
1595 | "http-signature": "~1.2.0",
1596 | "is-typedarray": "~1.0.0",
1597 | "isstream": "~0.1.2",
1598 | "json-stringify-safe": "~5.0.1",
1599 | "mime-types": "~2.1.19",
1600 | "oauth-sign": "~0.9.0",
1601 | "performance-now": "^2.1.0",
1602 | "qs": "~6.5.2",
1603 | "safe-buffer": "^5.1.2",
1604 | "tough-cookie": "~2.5.0",
1605 | "tunnel-agent": "^0.6.0",
1606 | "uuid": "^3.3.2"
1607 | },
1608 | "engines": {
1609 | "node": ">= 6"
1610 | }
1611 | },
1612 | "node_modules/require-directory": {
1613 | "version": "2.1.1",
1614 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1615 | "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
1616 | "dev": true,
1617 | "engines": {
1618 | "node": ">=0.10.0"
1619 | }
1620 | },
1621 | "node_modules/require-main-filename": {
1622 | "version": "2.0.0",
1623 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
1624 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
1625 | "dev": true
1626 | },
1627 | "node_modules/rimraf": {
1628 | "version": "2.7.1",
1629 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
1630 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
1631 | "dev": true,
1632 | "dependencies": {
1633 | "glob": "^7.1.3"
1634 | },
1635 | "bin": {
1636 | "rimraf": "bin.js"
1637 | }
1638 | },
1639 | "node_modules/rxjs": {
1640 | "version": "6.6.7",
1641 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
1642 | "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
1643 | "dev": true,
1644 | "dependencies": {
1645 | "tslib": "^1.9.0"
1646 | },
1647 | "engines": {
1648 | "npm": ">=2.0.0"
1649 | }
1650 | },
1651 | "node_modules/safe-buffer": {
1652 | "version": "5.1.2",
1653 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1654 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1655 | "dev": true
1656 | },
1657 | "node_modules/safer-buffer": {
1658 | "version": "2.1.2",
1659 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1660 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1661 | "dev": true
1662 | },
1663 | "node_modules/saucelabs": {
1664 | "version": "1.5.0",
1665 | "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz",
1666 | "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==",
1667 | "dev": true,
1668 | "dependencies": {
1669 | "https-proxy-agent": "^2.2.1"
1670 | },
1671 | "engines": {
1672 | "node": "*"
1673 | }
1674 | },
1675 | "node_modules/sax": {
1676 | "version": "1.2.4",
1677 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
1678 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
1679 | "dev": true
1680 | },
1681 | "node_modules/selenium-webdriver": {
1682 | "version": "3.6.0",
1683 | "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz",
1684 | "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==",
1685 | "dev": true,
1686 | "dependencies": {
1687 | "jszip": "^3.1.3",
1688 | "rimraf": "^2.5.4",
1689 | "tmp": "0.0.30",
1690 | "xml2js": "^0.4.17"
1691 | },
1692 | "engines": {
1693 | "node": ">= 6.9.0"
1694 | }
1695 | },
1696 | "node_modules/semver": {
1697 | "version": "5.7.1",
1698 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1699 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
1700 | "dev": true,
1701 | "bin": {
1702 | "semver": "bin/semver"
1703 | }
1704 | },
1705 | "node_modules/set-blocking": {
1706 | "version": "2.0.0",
1707 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
1708 | "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
1709 | "dev": true
1710 | },
1711 | "node_modules/setimmediate": {
1712 | "version": "1.0.5",
1713 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
1714 | "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
1715 | "dev": true
1716 | },
1717 | "node_modules/source-map": {
1718 | "version": "0.5.7",
1719 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
1720 | "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
1721 | "dev": true,
1722 | "engines": {
1723 | "node": ">=0.10.0"
1724 | }
1725 | },
1726 | "node_modules/source-map-support": {
1727 | "version": "0.4.18",
1728 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
1729 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
1730 | "dev": true,
1731 | "dependencies": {
1732 | "source-map": "^0.5.6"
1733 | }
1734 | },
1735 | "node_modules/split": {
1736 | "version": "0.3.3",
1737 | "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
1738 | "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==",
1739 | "dev": true,
1740 | "dependencies": {
1741 | "through": "2"
1742 | },
1743 | "engines": {
1744 | "node": "*"
1745 | }
1746 | },
1747 | "node_modules/sshpk": {
1748 | "version": "1.17.0",
1749 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
1750 | "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
1751 | "dev": true,
1752 | "dependencies": {
1753 | "asn1": "~0.2.3",
1754 | "assert-plus": "^1.0.0",
1755 | "bcrypt-pbkdf": "^1.0.0",
1756 | "dashdash": "^1.12.0",
1757 | "ecc-jsbn": "~0.1.1",
1758 | "getpass": "^0.1.1",
1759 | "jsbn": "~0.1.0",
1760 | "safer-buffer": "^2.0.2",
1761 | "tweetnacl": "~0.14.0"
1762 | },
1763 | "bin": {
1764 | "sshpk-conv": "bin/sshpk-conv",
1765 | "sshpk-sign": "bin/sshpk-sign",
1766 | "sshpk-verify": "bin/sshpk-verify"
1767 | },
1768 | "engines": {
1769 | "node": ">=0.10.0"
1770 | }
1771 | },
1772 | "node_modules/stream-combiner": {
1773 | "version": "0.0.4",
1774 | "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
1775 | "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==",
1776 | "dev": true,
1777 | "dependencies": {
1778 | "duplexer": "~0.1.1"
1779 | }
1780 | },
1781 | "node_modules/string_decoder": {
1782 | "version": "1.1.1",
1783 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1784 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1785 | "dev": true,
1786 | "dependencies": {
1787 | "safe-buffer": "~5.1.0"
1788 | }
1789 | },
1790 | "node_modules/string-width": {
1791 | "version": "4.2.3",
1792 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1793 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1794 | "dev": true,
1795 | "dependencies": {
1796 | "emoji-regex": "^8.0.0",
1797 | "is-fullwidth-code-point": "^3.0.0",
1798 | "strip-ansi": "^6.0.1"
1799 | },
1800 | "engines": {
1801 | "node": ">=8"
1802 | }
1803 | },
1804 | "node_modules/strip-ansi": {
1805 | "version": "6.0.1",
1806 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1807 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1808 | "dev": true,
1809 | "dependencies": {
1810 | "ansi-regex": "^5.0.1"
1811 | },
1812 | "engines": {
1813 | "node": ">=8"
1814 | }
1815 | },
1816 | "node_modules/supports-color": {
1817 | "version": "7.2.0",
1818 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
1819 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
1820 | "dev": true,
1821 | "dependencies": {
1822 | "has-flag": "^4.0.0"
1823 | },
1824 | "engines": {
1825 | "node": ">=8"
1826 | }
1827 | },
1828 | "node_modules/through": {
1829 | "version": "2.3.8",
1830 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
1831 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
1832 | "dev": true
1833 | },
1834 | "node_modules/tmp": {
1835 | "version": "0.0.30",
1836 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz",
1837 | "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==",
1838 | "dev": true,
1839 | "dependencies": {
1840 | "os-tmpdir": "~1.0.1"
1841 | },
1842 | "engines": {
1843 | "node": ">=0.4.0"
1844 | }
1845 | },
1846 | "node_modules/to-regex-range": {
1847 | "version": "5.0.1",
1848 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1849 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1850 | "dev": true,
1851 | "dependencies": {
1852 | "is-number": "^7.0.0"
1853 | },
1854 | "engines": {
1855 | "node": ">=8.0"
1856 | }
1857 | },
1858 | "node_modules/tough-cookie": {
1859 | "version": "2.5.0",
1860 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
1861 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
1862 | "dev": true,
1863 | "dependencies": {
1864 | "psl": "^1.1.28",
1865 | "punycode": "^2.1.1"
1866 | },
1867 | "engines": {
1868 | "node": ">=0.8"
1869 | }
1870 | },
1871 | "node_modules/tslib": {
1872 | "version": "1.14.1",
1873 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
1874 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
1875 | "dev": true
1876 | },
1877 | "node_modules/tunnel-agent": {
1878 | "version": "0.6.0",
1879 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
1880 | "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
1881 | "dev": true,
1882 | "dependencies": {
1883 | "safe-buffer": "^5.0.1"
1884 | },
1885 | "engines": {
1886 | "node": "*"
1887 | }
1888 | },
1889 | "node_modules/tweetnacl": {
1890 | "version": "0.14.5",
1891 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
1892 | "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
1893 | "dev": true
1894 | },
1895 | "node_modules/uri-js": {
1896 | "version": "4.4.1",
1897 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
1898 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
1899 | "dev": true,
1900 | "dependencies": {
1901 | "punycode": "^2.1.0"
1902 | }
1903 | },
1904 | "node_modules/util-deprecate": {
1905 | "version": "1.0.2",
1906 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1907 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
1908 | "dev": true
1909 | },
1910 | "node_modules/uuid": {
1911 | "version": "3.4.0",
1912 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
1913 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
1914 | "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
1915 | "dev": true,
1916 | "bin": {
1917 | "uuid": "bin/uuid"
1918 | }
1919 | },
1920 | "node_modules/verror": {
1921 | "version": "1.10.0",
1922 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
1923 | "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
1924 | "dev": true,
1925 | "engines": [
1926 | "node >=0.6.0"
1927 | ],
1928 | "dependencies": {
1929 | "assert-plus": "^1.0.0",
1930 | "core-util-is": "1.0.2",
1931 | "extsprintf": "^1.2.0"
1932 | }
1933 | },
1934 | "node_modules/verror/node_modules/core-util-is": {
1935 | "version": "1.0.2",
1936 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
1937 | "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
1938 | "dev": true
1939 | },
1940 | "node_modules/wait-on": {
1941 | "version": "5.3.0",
1942 | "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-5.3.0.tgz",
1943 | "integrity": "sha512-DwrHrnTK+/0QFaB9a8Ol5Lna3k7WvUR4jzSKmz0YaPBpuN2sACyiPVKVfj6ejnjcajAcvn3wlbTyMIn9AZouOg==",
1944 | "dev": true,
1945 | "dependencies": {
1946 | "axios": "^0.21.1",
1947 | "joi": "^17.3.0",
1948 | "lodash": "^4.17.21",
1949 | "minimist": "^1.2.5",
1950 | "rxjs": "^6.6.3"
1951 | },
1952 | "bin": {
1953 | "wait-on": "bin/wait-on"
1954 | },
1955 | "engines": {
1956 | "node": ">=8.9.0"
1957 | }
1958 | },
1959 | "node_modules/webdriver-js-extender": {
1960 | "version": "2.1.0",
1961 | "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz",
1962 | "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==",
1963 | "dev": true,
1964 | "dependencies": {
1965 | "@types/selenium-webdriver": "^3.0.0",
1966 | "selenium-webdriver": "^3.0.1"
1967 | },
1968 | "engines": {
1969 | "node": ">=6.9.x"
1970 | }
1971 | },
1972 | "node_modules/webdriver-manager": {
1973 | "version": "12.1.9",
1974 | "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.9.tgz",
1975 | "integrity": "sha512-Yl113uKm8z4m/KMUVWHq1Sjtla2uxEBtx2Ue3AmIlnlPAKloDn/Lvmy6pqWCUersVISpdMeVpAaGbNnvMuT2LQ==",
1976 | "dev": true,
1977 | "dependencies": {
1978 | "adm-zip": "^0.5.2",
1979 | "chalk": "^1.1.1",
1980 | "del": "^2.2.0",
1981 | "glob": "^7.0.3",
1982 | "ini": "^1.3.4",
1983 | "minimist": "^1.2.0",
1984 | "q": "^1.4.1",
1985 | "request": "^2.87.0",
1986 | "rimraf": "^2.5.2",
1987 | "semver": "^5.3.0",
1988 | "xml2js": "^0.4.17"
1989 | },
1990 | "bin": {
1991 | "webdriver-manager": "bin/webdriver-manager"
1992 | },
1993 | "engines": {
1994 | "node": ">=6.9.x"
1995 | }
1996 | },
1997 | "node_modules/webdriver-manager/node_modules/ansi-regex": {
1998 | "version": "2.1.1",
1999 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
2000 | "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
2001 | "dev": true,
2002 | "engines": {
2003 | "node": ">=0.10.0"
2004 | }
2005 | },
2006 | "node_modules/webdriver-manager/node_modules/ansi-styles": {
2007 | "version": "2.2.1",
2008 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
2009 | "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
2010 | "dev": true,
2011 | "engines": {
2012 | "node": ">=0.10.0"
2013 | }
2014 | },
2015 | "node_modules/webdriver-manager/node_modules/chalk": {
2016 | "version": "1.1.3",
2017 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
2018 | "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
2019 | "dev": true,
2020 | "dependencies": {
2021 | "ansi-styles": "^2.2.1",
2022 | "escape-string-regexp": "^1.0.2",
2023 | "has-ansi": "^2.0.0",
2024 | "strip-ansi": "^3.0.0",
2025 | "supports-color": "^2.0.0"
2026 | },
2027 | "engines": {
2028 | "node": ">=0.10.0"
2029 | }
2030 | },
2031 | "node_modules/webdriver-manager/node_modules/strip-ansi": {
2032 | "version": "3.0.1",
2033 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
2034 | "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
2035 | "dev": true,
2036 | "dependencies": {
2037 | "ansi-regex": "^2.0.0"
2038 | },
2039 | "engines": {
2040 | "node": ">=0.10.0"
2041 | }
2042 | },
2043 | "node_modules/webdriver-manager/node_modules/supports-color": {
2044 | "version": "2.0.0",
2045 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
2046 | "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
2047 | "dev": true,
2048 | "engines": {
2049 | "node": ">=0.8.0"
2050 | }
2051 | },
2052 | "node_modules/which-module": {
2053 | "version": "2.0.0",
2054 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
2055 | "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==",
2056 | "dev": true
2057 | },
2058 | "node_modules/wrap-ansi": {
2059 | "version": "6.2.0",
2060 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
2061 | "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
2062 | "dev": true,
2063 | "dependencies": {
2064 | "ansi-styles": "^4.0.0",
2065 | "string-width": "^4.1.0",
2066 | "strip-ansi": "^6.0.0"
2067 | },
2068 | "engines": {
2069 | "node": ">=8"
2070 | }
2071 | },
2072 | "node_modules/wrappy": {
2073 | "version": "1.0.2",
2074 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2075 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
2076 | "dev": true
2077 | },
2078 | "node_modules/xml2js": {
2079 | "version": "0.4.23",
2080 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
2081 | "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
2082 | "dev": true,
2083 | "dependencies": {
2084 | "sax": ">=0.6.0",
2085 | "xmlbuilder": "~11.0.0"
2086 | },
2087 | "engines": {
2088 | "node": ">=4.0.0"
2089 | }
2090 | },
2091 | "node_modules/xmlbuilder": {
2092 | "version": "11.0.1",
2093 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
2094 | "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
2095 | "dev": true,
2096 | "engines": {
2097 | "node": ">=4.0"
2098 | }
2099 | },
2100 | "node_modules/y18n": {
2101 | "version": "4.0.3",
2102 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
2103 | "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
2104 | "dev": true
2105 | },
2106 | "node_modules/yargs": {
2107 | "version": "15.4.1",
2108 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
2109 | "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
2110 | "dev": true,
2111 | "dependencies": {
2112 | "cliui": "^6.0.0",
2113 | "decamelize": "^1.2.0",
2114 | "find-up": "^4.1.0",
2115 | "get-caller-file": "^2.0.1",
2116 | "require-directory": "^2.1.1",
2117 | "require-main-filename": "^2.0.0",
2118 | "set-blocking": "^2.0.0",
2119 | "string-width": "^4.2.0",
2120 | "which-module": "^2.0.0",
2121 | "y18n": "^4.0.0",
2122 | "yargs-parser": "^18.1.2"
2123 | },
2124 | "engines": {
2125 | "node": ">=8"
2126 | }
2127 | },
2128 | "node_modules/yargs-parser": {
2129 | "version": "18.1.3",
2130 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
2131 | "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
2132 | "dev": true,
2133 | "dependencies": {
2134 | "camelcase": "^5.0.0",
2135 | "decamelize": "^1.2.0"
2136 | },
2137 | "engines": {
2138 | "node": ">=6"
2139 | }
2140 | }
2141 | }
2142 | }
2143 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@okta/samples-python-flask",
3 | "version": "0.1.0",
4 | "description": "Python 2 - Flask Sample Applications for Okta",
5 | "author": "Brian Retterer ",
6 | "license": "Apache-2.0",
7 | "repository": {
8 | "type": "git",
9 | "url": "git+https://github.com/okta/samples-python-flask.git"
10 | },
11 | "bugs": {
12 | "url": "https://github.com/okta/samples-python-flask/issues"
13 | },
14 | "homepage": "https://github.com/okta/samples-python-flask#readme",
15 | "devDependencies": {
16 | "dotenv": "^5.0.1",
17 | "find-process": "^1.1.0",
18 | "forever-monitor": "npm:@umpacken/forever-monitor@^1.6.1",
19 | "node-cmd": "^3.0.0",
20 | "jasmine": "^3.0.0",
21 | "jasmine-reporters": "^2.5",
22 | "platform": "^1.3.5",
23 | "protractor": "^7.0.0",
24 | "wait-on": "^5.3.0"
25 | },
26 | "scripts": {
27 | "test": "npm run test:e2e && npm run test:resource-server",
28 | "test:e2e": "npm run test:okta-hosted-login && npm run test:custom-login",
29 | "okta-hosted-login-server": "cd okta-hosted-login && python main.py",
30 | "test:okta-hosted-login": "protractor okta-oidc-tck/e2e-tests/okta-hosted-login/conf.js",
31 | "custom-login-server": "cd custom-login && python main.py",
32 | "setup-env": "node scripts/setup-env.js",
33 | "test:custom-login": "protractor okta-oidc-tck/e2e-tests/custom-login/conf.js",
34 | "resource-server": "cd resource-server && python main.py",
35 | "test:resource-server": "jasmine okta-oidc-tck/resource-server/specs/okta-resource-server-spec.js",
36 | "pretest": "webdriver-manager update --gecko false"
37 | }
38 | }
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | requests==2.21.0
2 | Flask==1.0.2
3 | flask-cors==3.0.10
4 | pyOpenSSL==23.2.0
5 | Flask-Login==0.4.1
6 | okta-jwt-verifier==0.2.0
--------------------------------------------------------------------------------
/resource-server/.gitignore:
--------------------------------------------------------------------------------
1 | client_secrets.json
--------------------------------------------------------------------------------
/resource-server/README.md:
--------------------------------------------------------------------------------
1 | # Flask Resource Server Example
2 |
3 | This sample application authenticates requests against your Flask application, using access tokens.
4 |
5 | The access tokens are obtained via the [Implicit Flow][]. As such, you will need to use one of our front-end samples with this project. It is the responsibility of the front-end to authenticate the user, then use the obtained access tokens to make requests to this resource server.
6 |
7 | > Requires Python version 3.6.0 or higher.
8 |
9 | ## Prerequisites
10 |
11 | Before running this sample, you will need the following:
12 |
13 | * An Okta Developer Account, you can sign up for one at https://developer.okta.com/signup/.
14 | * An Okta Application, configured for Web mode. This is done from the Okta Developer Console and you can find instructions [here][OIDC WEB Setup Instructions]. When following the wizard, use the default properties. They are are designed to work with our sample applications.
15 | * An Okta Application, configured for Singe-Page App (SPA) mode. This is done from the Okta Developer Console and you can find instructions [here][OIDC SPA Setup Instructions] or follow instructions within one of our front-end samples below. When following the wizard, use the default properties. They are are designed to work with our sample applications.
16 | * One of our front-end sample applications to demonstrate the interaction with the resource server:
17 | * [Okta Angular Sample Apps][]
18 | * [Okta React Sample Apps][]
19 | * [Okta Vue Sample Apps][]
20 |
21 | A typical resource-server requires a frontend and a backend application, so you will need to start each process:
22 |
23 | ## Running This Example
24 | To run this application, you first need to clone this repo and then enter into this directory:
25 |
26 | ```bash
27 | git clone git@github.com:okta/samples-python-flask.git
28 | cd samples-python-flask/resource-server
29 | ```
30 |
31 | Then install dependencies:
32 |
33 | ```bash
34 | pip install -r requirements.txt
35 | ```
36 |
37 | Now you need to gather the following information from the Okta Developer Console that belongs to your front-end application:
38 | - **Client ID** - The client ID of the Web application that you created earlier. This can be found on the "General" tab of an application, or the list of applications. This identifies the application that tokens will be minted for.
39 | - **Issuer** - This is the URL of the authorization server that will perform authentication. All Developer Accounts have a "default" authorization server. The issuer is a combination of your Org URL (found in the upper right of the console home page) and `/oauth2/default`. For example, `https://dev-1234.oktapreview.com/oauth2/default`.
40 |
41 | Now that you have the information needed from your organization, open the `okta-hosted-login` directory. Copy the [`client_secrets.json.dist`](client_secrets.json.dist) to `client_secrets.json` and fill in the information you gathered.
42 |
43 | ```json
44 | {
45 | "auth_uri": "https://{yourOktaDomain}/oauth2/default/v1/authorize",
46 | "client_id": "{yourClientId}",
47 | "client_secret": "{yourClientSecret}",
48 | "redirect_uri": "http://localhost:8080/authorization-code/callback",
49 | "issuer": "https://{yourOktaDomain}/oauth2/default",
50 | "token_uri": "https://{yourOktaDomain}/oauth2/default/v1/token",
51 | "token_introspection_uri": "https://{yourOktaDomain}/oauth2/default/v1/introspect",
52 | "userinfo_uri": "https://{yourOktaDomain}/oauth2/default/v1/userinfo"
53 | }
54 | ```
55 |
56 | Next, Start the resource server example:
57 |
58 | ```bash
59 | python main.py
60 | ```
61 |
62 | Finally, install the [front-end sample project of your choice](#prerequisites) and run the sample application.
63 | Once the front-end sample is running, you can navigate to http://localhost:8080 in your browser and log in to the front-end application. Once logged in, you can navigate to the "Messages" page to see the interaction with the resource server.
64 |
65 |
66 | [Implicit Flow]: https://developer.okta.com/authentication-guide/implementing-authentication/implicit
67 | [Okta Angular Sample Apps]: https://github.com/okta/samples-js-angular
68 | [Okta Vue Sample Apps]: https://github.com/okta/samples-js-vue
69 | [Okta React Sample Apps]: https://github.com/okta/samples-js-react
70 | [OIDC SPA Setup Instructions]: https://developer.okta.com/authentication-guide/implementing-authentication/implicit#1-setting-up-your-application
71 | [OIDC Web Setup Instructions]: https://developer.okta.com/authentication-guide/implementing-authentication/auth-code#1-setting-up-your-application
72 |
--------------------------------------------------------------------------------
/resource-server/client_secrets.json.dist:
--------------------------------------------------------------------------------
1 | {
2 | "auth_uri": "https://{{OKTA_DOMAIN}}/oauth2/default/v1/authorize",
3 | "client_id": "{{CLIENT_ID}}",
4 | "client_secret": "{{CLIENT_SECRET}}",
5 | "redirect_uri": "http://localhost:8080/authorization-code/callback",
6 | "issuer": "https://{{OKTA_DOMAIN}}/oauth2/default",
7 | "token_uri": "https://{{OKTA_DOMAIN}}/oauth2/default/v1/token",
8 | "userinfo_uri": "https://{{OKTA_DOMAIN}}/oauth2/default/v1/userinfo"
9 | }
10 |
--------------------------------------------------------------------------------
/resource-server/helpers.py:
--------------------------------------------------------------------------------
1 | import asyncio
2 | import json
3 |
4 | from okta_jwt_verifier import AccessTokenVerifier
5 |
6 |
7 | loop = asyncio.get_event_loop()
8 |
9 |
10 | def is_access_token_valid(token, issuer):
11 | jwt_verifier = AccessTokenVerifier(issuer=issuer, audience='api://default')
12 | try:
13 | loop.run_until_complete(jwt_verifier.verify(token))
14 | return True
15 | except Exception:
16 | return False
17 |
18 |
19 | def load_config(fname='./client_secrets.json'):
20 | config = None
21 | with open(fname) as f:
22 | config = json.load(f)
23 | return config
24 |
25 |
26 | config = load_config()
27 |
--------------------------------------------------------------------------------
/resource-server/main.py:
--------------------------------------------------------------------------------
1 | import json
2 | import time
3 |
4 | from flask import Flask, request
5 | from flask_cors import CORS
6 |
7 | from helpers import is_access_token_valid, config
8 |
9 |
10 | app = Flask(__name__)
11 | CORS(app)
12 | app.config.update({
13 | 'SECRET_KEY': 'SomethingNotEntirelySecret',
14 | })
15 |
16 |
17 | def is_authorized(request):
18 | """Get access token from authorization header."""
19 | try:
20 | token = request.headers.get("Authorization").split("Bearer ")[1]
21 | return is_access_token_valid(token, config["issuer"])
22 | except Exception:
23 | return False
24 |
25 |
26 | @app.route("/")
27 | def home():
28 | return "Hello! There's not much to see here." \
29 | "Please grab one of our front-end samples for use with this sample resource server"
30 |
31 |
32 | @app.route("/api/messages")
33 | def messages():
34 | if not is_authorized(request):
35 | return "Unauthorized", 401
36 |
37 | response = {
38 | 'messages': [
39 | {
40 | 'date': time.time(),
41 | 'text': 'I am a robot.'
42 | },
43 | {
44 | 'date': time.time()-3600,
45 | 'text': 'Hello, World!'
46 | }
47 | ]
48 | }
49 |
50 | return json.dumps(response)
51 |
52 |
53 | if __name__ == '__main__':
54 | app.run(host="localhost", port=8000, debug=True)
55 |
--------------------------------------------------------------------------------
/scripts/setup-env.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2018, Okta, Inc. and/or its affiliates. All rights reserved.
3 | * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
4 | *
5 | * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
6 | * Unless required by applicable law or agreed to in writing, software
7 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
8 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9 | *
10 | * See the License for the specific language governing permissions and limitations under the License.
11 | */
12 |
13 | /* eslint-disable consistent-return, no-console */
14 |
15 | 'use strict';
16 |
17 | const fs = require('fs');
18 | const { execSync } = require('child_process');
19 | const path = require('path');
20 |
21 | // Users can also provide the testenv configuration at the root folder
22 | require('dotenv').config({path: path.join(__dirname, '..', 'testenv')});
23 |
24 | function updateConfig(directory) {
25 | if (!process.env.ISSUER || !process.env.CLIENT_ID || !process.env.CLIENT_SECRET || !process.env.USERNAME || !process.env.PASSWORD) {
26 | console.log('[ERROR] Please set the necessary Environment variables (ISSUER, CLIENT_ID, CLIENT_SECRET, USERNAME, PASSWORD)');
27 | process.exit(1);
28 | }
29 |
30 | const envFile = path.join(directory, '.env');
31 | const data = fs.readFileSync(envFile, 'utf8');
32 |
33 | let clientId = process.env.CLIENT_ID;
34 | // For resource server, we need to set client_id of SPA in .env
35 | if (directory.includes('resource-server')) {
36 | if (!process.env.SPA_CLIENT_ID) {
37 | console.error('[ERROR] Please set the SPA_CLIENT_ID for resource-server tests');
38 | process.exit(1);
39 | }
40 | clientId = process.env.SPA_CLIENT_ID;
41 | }
42 |
43 | let result = data.replace(/CLIENT_ID=/g, `CLIENT_ID=${clientId}`);
44 | result = result.replace(/CLIENT_SECRET=/g, `CLIENT_SECRET=${process.env.CLIENT_SECRET}`);
45 | result = result.replace(/ISSUER=https:\/\/{yourOktaDomain}.com\/oauth2\/default/g, `ISSUER=${process.env.ISSUER}/`);
46 | fs.writeFileSync(envFile, result, 'utf8');
47 | }
48 |
49 | function updateAllConfigs() {
50 | const oktaHostedLoginDir = path.join(__dirname, '..', 'okta-hosted-login');
51 | const customLoginDir = path.join(__dirname, '..', 'custom-login');
52 | const resourceServerDir = path.join(__dirname, '..', 'resource-server');
53 |
54 | copyAndUpdateConfig(oktaHostedLoginDir);
55 | copyAndUpdateConfig(customLoginDir);
56 | copyAndUpdateConfig(resourceServerDir);
57 | }
58 |
59 | function cloneRepository(repository, directory) {
60 | const dir = path.join(__dirname, '..', directory);
61 | if (fs.existsSync(dir)) {
62 | console.log(`${directory} is already cloned. Getting latest version...`);
63 | execSync(`cd ${directory} && git pull`)
64 | return;
65 | }
66 |
67 | const command = `git clone ${repository}`;
68 | console.log(`Cloning repository ${directory}`);
69 | execSync(command);
70 | }
71 |
72 | function copyAndUpdateConfig(directory) {
73 | const envFile = path.join(directory, '.env');
74 |
75 | if (fs.existsSync(envFile)) {
76 | console.log(`.env file already exists in ${directory}`);
77 | return;
78 | }
79 |
80 | const copyCommand = process.platform === 'win32'? 'copy' : 'cp';
81 |
82 | execSync(`${copyCommand} ${path.join(directory, '.env.dist')} ${path.join(directory, '.env')}`);
83 |
84 | updateConfig(directory);
85 | }
86 |
87 | updateAllConfigs();
88 | cloneRepository('https://github.com/okta/okta-oidc-tck.git', 'okta-oidc-tck');
--------------------------------------------------------------------------------
/setup.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 | from collections import OrderedDict
4 |
5 | from setuptools import setup
6 |
7 | setup(
8 | name='samples-python-flask',
9 | version='2.0.0',
10 | url='https://developer.okta.com',
11 | project_urls=OrderedDict((
12 | ('Code', 'https://github.com/okta/samples-python-flask'),
13 | ('Documentation', 'https://github.com/okta/samples-python-flask/blob/master/README.md'),
14 | ('Issue Tracker', 'https://github.com/okta/okta-python-flask/issues'),
15 | )),
16 | license='Apache-2.0',
17 | python_requires='>=3.6,'
18 | )
19 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@hapi/hoek@^9.0.0":
6 | version "9.3.0"
7 | resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz"
8 | integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==
9 |
10 | "@hapi/topo@^5.0.0":
11 | version "5.1.0"
12 | resolved "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz"
13 | integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==
14 | dependencies:
15 | "@hapi/hoek" "^9.0.0"
16 |
17 | "@sideway/address@^4.1.3":
18 | version "4.1.4"
19 | resolved "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz"
20 | integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==
21 | dependencies:
22 | "@hapi/hoek" "^9.0.0"
23 |
24 | "@sideway/formula@^3.0.0":
25 | version "3.0.0"
26 | resolved "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz"
27 | integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==
28 |
29 | "@sideway/pinpoint@^2.0.0":
30 | version "2.0.0"
31 | resolved "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz"
32 | integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==
33 |
34 | "@types/q@^0.0.32":
35 | version "0.0.32"
36 | resolved "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz"
37 | integrity sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug==
38 |
39 | "@types/selenium-webdriver@^3.0.0":
40 | version "3.0.20"
41 | resolved "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.20.tgz"
42 | integrity sha512-6d8Q5fqS9DWOXEhMDiF6/2FjyHdmP/jSTAUyeQR7QwrFeNmYyzmvGxD5aLIHL445HjWgibs0eAig+KPnbaesXA==
43 |
44 | "@xmldom/xmldom@^0.7.3":
45 | version "0.7.5"
46 | resolved "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz"
47 | integrity sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==
48 |
49 | adm-zip@^0.4.9:
50 | version "0.4.16"
51 | resolved "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz"
52 | integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==
53 |
54 | agent-base@^4.3.0:
55 | version "4.3.0"
56 | resolved "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz"
57 | integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==
58 | dependencies:
59 | es6-promisify "^5.0.0"
60 |
61 | ajv@^6.12.3:
62 | version "6.12.6"
63 | resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
64 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
65 | dependencies:
66 | fast-deep-equal "^3.1.1"
67 | fast-json-stable-stringify "^2.0.0"
68 | json-schema-traverse "^0.4.1"
69 | uri-js "^4.2.2"
70 |
71 | ansi-regex@^2.0.0:
72 | version "2.1.1"
73 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
74 | integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==
75 |
76 | ansi-regex@^5.0.1:
77 | version "5.0.1"
78 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
79 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
80 |
81 | ansi-styles@^2.2.1:
82 | version "2.2.1"
83 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"
84 | integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==
85 |
86 | ansi-styles@^4.0.0, ansi-styles@^4.1.0:
87 | version "4.3.0"
88 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
89 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
90 | dependencies:
91 | color-convert "^2.0.1"
92 |
93 | anymatch@^2.0.0:
94 | version "2.0.0"
95 | resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz"
96 | integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
97 | dependencies:
98 | micromatch "^3.1.4"
99 | normalize-path "^2.1.1"
100 |
101 | arr-diff@^4.0.0:
102 | version "4.0.0"
103 | resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz"
104 | integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==
105 |
106 | arr-flatten@^1.1.0:
107 | version "1.1.0"
108 | resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz"
109 | integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
110 |
111 | arr-union@^3.1.0:
112 | version "3.1.0"
113 | resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz"
114 | integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==
115 |
116 | array-union@^1.0.1:
117 | version "1.0.2"
118 | resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz"
119 | integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==
120 | dependencies:
121 | array-uniq "^1.0.1"
122 |
123 | array-uniq@^1.0.1:
124 | version "1.0.3"
125 | resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz"
126 | integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==
127 |
128 | array-unique@^0.3.2:
129 | version "0.3.2"
130 | resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz"
131 | integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==
132 |
133 | arrify@^1.0.0:
134 | version "1.0.1"
135 | resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz"
136 | integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==
137 |
138 | asn1@~0.2.3:
139 | version "0.2.6"
140 | resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz"
141 | integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==
142 | dependencies:
143 | safer-buffer "~2.1.0"
144 |
145 | assert-plus@^1.0.0, assert-plus@1.0.0:
146 | version "1.0.0"
147 | resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
148 | integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==
149 |
150 | assign-symbols@^1.0.0:
151 | version "1.0.0"
152 | resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz"
153 | integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==
154 |
155 | async-each@^1.0.1:
156 | version "1.0.3"
157 | resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz"
158 | integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
159 |
160 | async@^1.5.2:
161 | version "1.5.2"
162 | resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz"
163 | integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==
164 |
165 | asynckit@^0.4.0:
166 | version "0.4.0"
167 | resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
168 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
169 |
170 | atob@^2.1.2:
171 | version "2.1.2"
172 | resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz"
173 | integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
174 |
175 | aws-sign2@~0.7.0:
176 | version "0.7.0"
177 | resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"
178 | integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==
179 |
180 | aws4@^1.8.0:
181 | version "1.11.0"
182 | resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz"
183 | integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
184 |
185 | axios@^0.21.1:
186 | version "0.21.4"
187 | resolved "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz"
188 | integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
189 | dependencies:
190 | follow-redirects "^1.14.0"
191 |
192 | balanced-match@^1.0.0:
193 | version "1.0.2"
194 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
195 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
196 |
197 | base@^0.11.1:
198 | version "0.11.2"
199 | resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz"
200 | integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
201 | dependencies:
202 | cache-base "^1.0.1"
203 | class-utils "^0.3.5"
204 | component-emitter "^1.2.1"
205 | define-property "^1.0.0"
206 | isobject "^3.0.1"
207 | mixin-deep "^1.2.0"
208 | pascalcase "^0.1.1"
209 |
210 | bcrypt-pbkdf@^1.0.0:
211 | version "1.0.2"
212 | resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"
213 | integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==
214 | dependencies:
215 | tweetnacl "^0.14.3"
216 |
217 | binary-extensions@^1.0.0:
218 | version "1.13.1"
219 | resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz"
220 | integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
221 |
222 | bindings@^1.5.0:
223 | version "1.5.0"
224 | resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz"
225 | integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
226 | dependencies:
227 | file-uri-to-path "1.0.0"
228 |
229 | blocking-proxy@^1.0.0:
230 | version "1.0.1"
231 | resolved "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz"
232 | integrity sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==
233 | dependencies:
234 | minimist "^1.2.0"
235 |
236 | brace-expansion@^1.1.7:
237 | version "1.1.11"
238 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
239 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
240 | dependencies:
241 | balanced-match "^1.0.0"
242 | concat-map "0.0.1"
243 |
244 | braces@^2.3.1, braces@^2.3.2:
245 | version "2.3.2"
246 | resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz"
247 | integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
248 | dependencies:
249 | arr-flatten "^1.1.0"
250 | array-unique "^0.3.2"
251 | extend-shallow "^2.0.1"
252 | fill-range "^4.0.0"
253 | isobject "^3.0.1"
254 | repeat-element "^1.1.2"
255 | snapdragon "^0.8.1"
256 | snapdragon-node "^2.0.1"
257 | split-string "^3.0.2"
258 | to-regex "^3.0.1"
259 |
260 | browserstack@^1.5.1:
261 | version "1.6.1"
262 | resolved "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz"
263 | integrity sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==
264 | dependencies:
265 | https-proxy-agent "^2.2.1"
266 |
267 | cache-base@^1.0.1:
268 | version "1.0.1"
269 | resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz"
270 | integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
271 | dependencies:
272 | collection-visit "^1.0.0"
273 | component-emitter "^1.2.1"
274 | get-value "^2.0.6"
275 | has-value "^1.0.0"
276 | isobject "^3.0.1"
277 | set-value "^2.0.0"
278 | to-object-path "^0.3.0"
279 | union-value "^1.0.0"
280 | unset-value "^1.0.0"
281 |
282 | camelcase@^5.0.0:
283 | version "5.3.1"
284 | resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz"
285 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
286 |
287 | caseless@~0.12.0:
288 | version "0.12.0"
289 | resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
290 | integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==
291 |
292 | chalk@^1.1.1:
293 | version "1.1.3"
294 | resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
295 | integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==
296 | dependencies:
297 | ansi-styles "^2.2.1"
298 | escape-string-regexp "^1.0.2"
299 | has-ansi "^2.0.0"
300 | strip-ansi "^3.0.0"
301 | supports-color "^2.0.0"
302 |
303 | chalk@^1.1.3:
304 | version "1.1.3"
305 | resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
306 | integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==
307 | dependencies:
308 | ansi-styles "^2.2.1"
309 | escape-string-regexp "^1.0.2"
310 | has-ansi "^2.0.0"
311 | strip-ansi "^3.0.0"
312 | supports-color "^2.0.0"
313 |
314 | chalk@^4.0.0:
315 | version "4.1.2"
316 | resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
317 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
318 | dependencies:
319 | ansi-styles "^4.1.0"
320 | supports-color "^7.1.0"
321 |
322 | chokidar@^2.1.8:
323 | version "2.1.8"
324 | resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz"
325 | integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==
326 | dependencies:
327 | anymatch "^2.0.0"
328 | async-each "^1.0.1"
329 | braces "^2.3.2"
330 | glob-parent "^3.1.0"
331 | inherits "^2.0.3"
332 | is-binary-path "^1.0.0"
333 | is-glob "^4.0.0"
334 | normalize-path "^3.0.0"
335 | path-is-absolute "^1.0.0"
336 | readdirp "^2.2.1"
337 | upath "^1.1.1"
338 | optionalDependencies:
339 | fsevents "^1.2.7"
340 |
341 | class-utils@^0.3.5:
342 | version "0.3.6"
343 | resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz"
344 | integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
345 | dependencies:
346 | arr-union "^3.1.0"
347 | define-property "^0.2.5"
348 | isobject "^3.0.0"
349 | static-extend "^0.1.1"
350 |
351 | cliui@^6.0.0:
352 | version "6.0.0"
353 | resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz"
354 | integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
355 | dependencies:
356 | string-width "^4.2.0"
357 | strip-ansi "^6.0.0"
358 | wrap-ansi "^6.2.0"
359 |
360 | collection-visit@^1.0.0:
361 | version "1.0.0"
362 | resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz"
363 | integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==
364 | dependencies:
365 | map-visit "^1.0.0"
366 | object-visit "^1.0.0"
367 |
368 | color-convert@^2.0.1:
369 | version "2.0.1"
370 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
371 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
372 | dependencies:
373 | color-name "~1.1.4"
374 |
375 | color-name@~1.1.4:
376 | version "1.1.4"
377 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
378 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
379 |
380 | combined-stream@^1.0.6, combined-stream@~1.0.6:
381 | version "1.0.8"
382 | resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
383 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
384 | dependencies:
385 | delayed-stream "~1.0.0"
386 |
387 | commander@^5.1.0:
388 | version "5.1.0"
389 | resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz"
390 | integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
391 |
392 | component-emitter@^1.2.1:
393 | version "1.3.0"
394 | resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz"
395 | integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
396 |
397 | concat-map@0.0.1:
398 | version "0.0.1"
399 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
400 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
401 |
402 | copy-descriptor@^0.1.0:
403 | version "0.1.1"
404 | resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz"
405 | integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==
406 |
407 | core-util-is@~1.0.0:
408 | version "1.0.3"
409 | resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz"
410 | integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
411 |
412 | core-util-is@1.0.2:
413 | version "1.0.2"
414 | resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
415 | integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==
416 |
417 | dashdash@^1.12.0:
418 | version "1.14.1"
419 | resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"
420 | integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==
421 | dependencies:
422 | assert-plus "^1.0.0"
423 |
424 | debug@^2.2.0:
425 | version "2.6.9"
426 | resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
427 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
428 | dependencies:
429 | ms "2.0.0"
430 |
431 | debug@^2.3.3:
432 | version "2.6.9"
433 | resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
434 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
435 | dependencies:
436 | ms "2.0.0"
437 |
438 | debug@^3.1.0:
439 | version "3.2.7"
440 | resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"
441 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
442 | dependencies:
443 | ms "^2.1.1"
444 |
445 | debug@^4.1.1:
446 | version "4.3.4"
447 | resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
448 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
449 | dependencies:
450 | ms "2.1.2"
451 |
452 | decamelize@^1.2.0:
453 | version "1.2.0"
454 | resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
455 | integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
456 |
457 | decode-uri-component@^0.2.0:
458 | version "0.2.0"
459 | resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz"
460 | integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==
461 |
462 | define-property@^0.2.5:
463 | version "0.2.5"
464 | resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
465 | integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==
466 | dependencies:
467 | is-descriptor "^0.1.0"
468 |
469 | define-property@^1.0.0:
470 | version "1.0.0"
471 | resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz"
472 | integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==
473 | dependencies:
474 | is-descriptor "^1.0.0"
475 |
476 | define-property@^2.0.2:
477 | version "2.0.2"
478 | resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz"
479 | integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
480 | dependencies:
481 | is-descriptor "^1.0.2"
482 | isobject "^3.0.1"
483 |
484 | del@^2.2.0:
485 | version "2.2.2"
486 | resolved "https://registry.npmjs.org/del/-/del-2.2.2.tgz"
487 | integrity sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==
488 | dependencies:
489 | globby "^5.0.0"
490 | is-path-cwd "^1.0.0"
491 | is-path-in-cwd "^1.0.0"
492 | object-assign "^4.0.1"
493 | pify "^2.0.0"
494 | pinkie-promise "^2.0.0"
495 | rimraf "^2.2.8"
496 |
497 | delayed-stream@~1.0.0:
498 | version "1.0.0"
499 | resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
500 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
501 |
502 | dotenv@^5.0.1:
503 | version "5.0.1"
504 | resolved "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz"
505 | integrity sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==
506 |
507 | duplexer@~0.1.1:
508 | version "0.1.2"
509 | resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz"
510 | integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
511 |
512 | ecc-jsbn@~0.1.1:
513 | version "0.1.2"
514 | resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"
515 | integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==
516 | dependencies:
517 | jsbn "~0.1.0"
518 | safer-buffer "^2.1.0"
519 |
520 | emoji-regex@^8.0.0:
521 | version "8.0.0"
522 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"
523 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
524 |
525 | es6-promise@^4.0.3:
526 | version "4.2.8"
527 | resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz"
528 | integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
529 |
530 | es6-promisify@^5.0.0:
531 | version "5.0.0"
532 | resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz"
533 | integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==
534 | dependencies:
535 | es6-promise "^4.0.3"
536 |
537 | escape-string-regexp@^1.0.2:
538 | version "1.0.5"
539 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
540 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
541 |
542 | event-stream@=3.3.4:
543 | version "3.3.4"
544 | resolved "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz"
545 | integrity sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==
546 | dependencies:
547 | duplexer "~0.1.1"
548 | from "~0"
549 | map-stream "~0.1.0"
550 | pause-stream "0.0.11"
551 | split "0.3"
552 | stream-combiner "~0.0.4"
553 | through "~2.3.1"
554 |
555 | eventemitter2@^6.4.3:
556 | version "6.4.7"
557 | resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz"
558 | integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==
559 |
560 | exit@^0.1.2:
561 | version "0.1.2"
562 | resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz"
563 | integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==
564 |
565 | expand-brackets@^2.1.4:
566 | version "2.1.4"
567 | resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz"
568 | integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==
569 | dependencies:
570 | debug "^2.3.3"
571 | define-property "^0.2.5"
572 | extend-shallow "^2.0.1"
573 | posix-character-classes "^0.1.0"
574 | regex-not "^1.0.0"
575 | snapdragon "^0.8.1"
576 | to-regex "^3.0.1"
577 |
578 | extend-shallow@^2.0.1:
579 | version "2.0.1"
580 | resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"
581 | integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==
582 | dependencies:
583 | is-extendable "^0.1.0"
584 |
585 | extend-shallow@^3.0.0:
586 | version "3.0.2"
587 | resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz"
588 | integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==
589 | dependencies:
590 | assign-symbols "^1.0.0"
591 | is-extendable "^1.0.1"
592 |
593 | extend-shallow@^3.0.2:
594 | version "3.0.2"
595 | resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz"
596 | integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==
597 | dependencies:
598 | assign-symbols "^1.0.0"
599 | is-extendable "^1.0.1"
600 |
601 | extend@~3.0.2:
602 | version "3.0.2"
603 | resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"
604 | integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
605 |
606 | extglob@^2.0.4:
607 | version "2.0.4"
608 | resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz"
609 | integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
610 | dependencies:
611 | array-unique "^0.3.2"
612 | define-property "^1.0.0"
613 | expand-brackets "^2.1.4"
614 | extend-shallow "^2.0.1"
615 | fragment-cache "^0.2.1"
616 | regex-not "^1.0.0"
617 | snapdragon "^0.8.1"
618 | to-regex "^3.0.1"
619 |
620 | extsprintf@^1.2.0, extsprintf@1.3.0:
621 | version "1.3.0"
622 | resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"
623 | integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==
624 |
625 | fast-deep-equal@^3.1.1:
626 | version "3.1.3"
627 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
628 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
629 |
630 | fast-json-stable-stringify@^2.0.0:
631 | version "2.1.0"
632 | resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
633 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
634 |
635 | file-uri-to-path@1.0.0:
636 | version "1.0.0"
637 | resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"
638 | integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
639 |
640 | fill-range@^4.0.0:
641 | version "4.0.0"
642 | resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz"
643 | integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==
644 | dependencies:
645 | extend-shallow "^2.0.1"
646 | is-number "^3.0.0"
647 | repeat-string "^1.6.1"
648 | to-regex-range "^2.1.0"
649 |
650 | find-process@^1.1.0:
651 | version "1.4.7"
652 | resolved "https://registry.npmjs.org/find-process/-/find-process-1.4.7.tgz"
653 | integrity sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==
654 | dependencies:
655 | chalk "^4.0.0"
656 | commander "^5.1.0"
657 | debug "^4.1.1"
658 |
659 | find-up@^4.1.0:
660 | version "4.1.0"
661 | resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz"
662 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
663 | dependencies:
664 | locate-path "^5.0.0"
665 | path-exists "^4.0.0"
666 |
667 | follow-redirects@^1.14.0:
668 | version "1.15.1"
669 | resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz"
670 | integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==
671 |
672 | for-in@^1.0.2:
673 | version "1.0.2"
674 | resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz"
675 | integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==
676 |
677 | forever-agent@~0.6.1:
678 | version "0.6.1"
679 | resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
680 | integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==
681 |
682 | forever-monitor@^3.0.3:
683 | version "3.0.3"
684 | resolved "https://registry.npmjs.org/forever-monitor/-/forever-monitor-3.0.3.tgz"
685 | integrity sha512-7YGDo0UlbMy++6G3lzncWISDaT5CVp+yPVAkZ7FDFF0ec+0HKgBOWOhPGKpMF0hjcm3Ps/HbtrETrQLYREZ7YQ==
686 | dependencies:
687 | async "^1.5.2"
688 | chokidar "^2.1.8"
689 | eventemitter2 "^6.4.3"
690 | minimatch "^3.0.4"
691 | ps-tree "^1.2.0"
692 |
693 | form-data@~2.3.2:
694 | version "2.3.3"
695 | resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz"
696 | integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
697 | dependencies:
698 | asynckit "^0.4.0"
699 | combined-stream "^1.0.6"
700 | mime-types "^2.1.12"
701 |
702 | fragment-cache@^0.2.1:
703 | version "0.2.1"
704 | resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz"
705 | integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==
706 | dependencies:
707 | map-cache "^0.2.2"
708 |
709 | from@~0:
710 | version "0.1.7"
711 | resolved "https://registry.npmjs.org/from/-/from-0.1.7.tgz"
712 | integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==
713 |
714 | fs.realpath@^1.0.0:
715 | version "1.0.0"
716 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
717 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
718 |
719 | fsevents@^1.2.7:
720 | version "1.2.13"
721 | resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz"
722 | integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==
723 | dependencies:
724 | bindings "^1.5.0"
725 | nan "^2.12.1"
726 |
727 | get-caller-file@^2.0.1:
728 | version "2.0.5"
729 | resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
730 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
731 |
732 | get-value@^2.0.3, get-value@^2.0.6:
733 | version "2.0.6"
734 | resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz"
735 | integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==
736 |
737 | getpass@^0.1.1:
738 | version "0.1.7"
739 | resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"
740 | integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==
741 | dependencies:
742 | assert-plus "^1.0.0"
743 |
744 | glob-parent@^3.1.0:
745 | version "3.1.0"
746 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz"
747 | integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==
748 | dependencies:
749 | is-glob "^3.1.0"
750 | path-dirname "^1.0.0"
751 |
752 | glob@^7.0.3, glob@^7.0.6, glob@^7.1.3, glob@^7.1.6:
753 | version "7.2.3"
754 | resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
755 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
756 | dependencies:
757 | fs.realpath "^1.0.0"
758 | inflight "^1.0.4"
759 | inherits "2"
760 | minimatch "^3.1.1"
761 | once "^1.3.0"
762 | path-is-absolute "^1.0.0"
763 |
764 | globby@^5.0.0:
765 | version "5.0.0"
766 | resolved "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz"
767 | integrity sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==
768 | dependencies:
769 | array-union "^1.0.1"
770 | arrify "^1.0.0"
771 | glob "^7.0.3"
772 | object-assign "^4.0.1"
773 | pify "^2.0.0"
774 | pinkie-promise "^2.0.0"
775 |
776 | graceful-fs@^4.1.11:
777 | version "4.2.10"
778 | resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz"
779 | integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
780 |
781 | har-schema@^2.0.0:
782 | version "2.0.0"
783 | resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"
784 | integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==
785 |
786 | har-validator@~5.1.3:
787 | version "5.1.5"
788 | resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz"
789 | integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
790 | dependencies:
791 | ajv "^6.12.3"
792 | har-schema "^2.0.0"
793 |
794 | has-ansi@^2.0.0:
795 | version "2.0.0"
796 | resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"
797 | integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==
798 | dependencies:
799 | ansi-regex "^2.0.0"
800 |
801 | has-flag@^4.0.0:
802 | version "4.0.0"
803 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
804 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
805 |
806 | has-value@^0.3.1:
807 | version "0.3.1"
808 | resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz"
809 | integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==
810 | dependencies:
811 | get-value "^2.0.3"
812 | has-values "^0.1.4"
813 | isobject "^2.0.0"
814 |
815 | has-value@^1.0.0:
816 | version "1.0.0"
817 | resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz"
818 | integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==
819 | dependencies:
820 | get-value "^2.0.6"
821 | has-values "^1.0.0"
822 | isobject "^3.0.0"
823 |
824 | has-values@^0.1.4:
825 | version "0.1.4"
826 | resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz"
827 | integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==
828 |
829 | has-values@^1.0.0:
830 | version "1.0.0"
831 | resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz"
832 | integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==
833 | dependencies:
834 | is-number "^3.0.0"
835 | kind-of "^4.0.0"
836 |
837 | http-signature@~1.2.0:
838 | version "1.2.0"
839 | resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz"
840 | integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==
841 | dependencies:
842 | assert-plus "^1.0.0"
843 | jsprim "^1.2.2"
844 | sshpk "^1.7.0"
845 |
846 | https-proxy-agent@^2.2.1:
847 | version "2.2.4"
848 | resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz"
849 | integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==
850 | dependencies:
851 | agent-base "^4.3.0"
852 | debug "^3.1.0"
853 |
854 | immediate@~3.0.5:
855 | version "3.0.6"
856 | resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz"
857 | integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==
858 |
859 | inflight@^1.0.4:
860 | version "1.0.6"
861 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
862 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
863 | dependencies:
864 | once "^1.3.0"
865 | wrappy "1"
866 |
867 | inherits@^2.0.3, inherits@~2.0.3, inherits@2:
868 | version "2.0.4"
869 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
870 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
871 |
872 | ini@^1.3.4:
873 | version "1.3.8"
874 | resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz"
875 | integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
876 |
877 | is-accessor-descriptor@^0.1.6:
878 | version "0.1.6"
879 | resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz"
880 | integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==
881 | dependencies:
882 | kind-of "^3.0.2"
883 |
884 | is-accessor-descriptor@^1.0.0:
885 | version "1.0.0"
886 | resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz"
887 | integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
888 | dependencies:
889 | kind-of "^6.0.0"
890 |
891 | is-binary-path@^1.0.0:
892 | version "1.0.1"
893 | resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz"
894 | integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==
895 | dependencies:
896 | binary-extensions "^1.0.0"
897 |
898 | is-buffer@^1.1.5:
899 | version "1.1.6"
900 | resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"
901 | integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
902 |
903 | is-data-descriptor@^0.1.4:
904 | version "0.1.4"
905 | resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz"
906 | integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==
907 | dependencies:
908 | kind-of "^3.0.2"
909 |
910 | is-data-descriptor@^1.0.0:
911 | version "1.0.0"
912 | resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz"
913 | integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
914 | dependencies:
915 | kind-of "^6.0.0"
916 |
917 | is-descriptor@^0.1.0:
918 | version "0.1.6"
919 | resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz"
920 | integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
921 | dependencies:
922 | is-accessor-descriptor "^0.1.6"
923 | is-data-descriptor "^0.1.4"
924 | kind-of "^5.0.0"
925 |
926 | is-descriptor@^1.0.0, is-descriptor@^1.0.2:
927 | version "1.0.2"
928 | resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz"
929 | integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
930 | dependencies:
931 | is-accessor-descriptor "^1.0.0"
932 | is-data-descriptor "^1.0.0"
933 | kind-of "^6.0.2"
934 |
935 | is-extendable@^0.1.0, is-extendable@^0.1.1:
936 | version "0.1.1"
937 | resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
938 | integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==
939 |
940 | is-extendable@^1.0.1:
941 | version "1.0.1"
942 | resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz"
943 | integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
944 | dependencies:
945 | is-plain-object "^2.0.4"
946 |
947 | is-extglob@^2.1.0, is-extglob@^2.1.1:
948 | version "2.1.1"
949 | resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
950 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
951 |
952 | is-fullwidth-code-point@^3.0.0:
953 | version "3.0.0"
954 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
955 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
956 |
957 | is-glob@^3.1.0:
958 | version "3.1.0"
959 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz"
960 | integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==
961 | dependencies:
962 | is-extglob "^2.1.0"
963 |
964 | is-glob@^4.0.0:
965 | version "4.0.3"
966 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
967 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
968 | dependencies:
969 | is-extglob "^2.1.1"
970 |
971 | is-number@^3.0.0:
972 | version "3.0.0"
973 | resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz"
974 | integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==
975 | dependencies:
976 | kind-of "^3.0.2"
977 |
978 | is-path-cwd@^1.0.0:
979 | version "1.0.0"
980 | resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz"
981 | integrity sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==
982 |
983 | is-path-in-cwd@^1.0.0:
984 | version "1.0.1"
985 | resolved "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz"
986 | integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==
987 | dependencies:
988 | is-path-inside "^1.0.0"
989 |
990 | is-path-inside@^1.0.0:
991 | version "1.0.1"
992 | resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz"
993 | integrity sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==
994 | dependencies:
995 | path-is-inside "^1.0.1"
996 |
997 | is-plain-object@^2.0.3, is-plain-object@^2.0.4:
998 | version "2.0.4"
999 | resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz"
1000 | integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
1001 | dependencies:
1002 | isobject "^3.0.1"
1003 |
1004 | is-typedarray@~1.0.0:
1005 | version "1.0.0"
1006 | resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
1007 | integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
1008 |
1009 | is-windows@^1.0.2:
1010 | version "1.0.2"
1011 | resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz"
1012 | integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
1013 |
1014 | isarray@~1.0.0, isarray@1.0.0:
1015 | version "1.0.0"
1016 | resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
1017 | integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
1018 |
1019 | isobject@^2.0.0:
1020 | version "2.1.0"
1021 | resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz"
1022 | integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==
1023 | dependencies:
1024 | isarray "1.0.0"
1025 |
1026 | isobject@^3.0.0, isobject@^3.0.1:
1027 | version "3.0.1"
1028 | resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
1029 | integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
1030 |
1031 | isstream@~0.1.2:
1032 | version "0.1.2"
1033 | resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
1034 | integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==
1035 |
1036 | jasmine-core@~2.8.0:
1037 | version "2.8.0"
1038 | resolved "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz"
1039 | integrity sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==
1040 |
1041 | jasmine-core@~3.99.0:
1042 | version "3.99.1"
1043 | resolved "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.99.1.tgz"
1044 | integrity sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg==
1045 |
1046 | jasmine-reporters@^2.5:
1047 | version "2.5.0"
1048 | resolved "https://registry.npmjs.org/jasmine-reporters/-/jasmine-reporters-2.5.0.tgz"
1049 | integrity sha512-J69peyTR8j6SzvIPP6aO1Y00wwCqXuIvhwTYvE/di14roCf6X3wDZ4/cKGZ2fGgufjhP2FKjpgrUIKjwau4e/Q==
1050 | dependencies:
1051 | "@xmldom/xmldom" "^0.7.3"
1052 | mkdirp "^1.0.4"
1053 |
1054 | jasmine@^3.0.0:
1055 | version "3.99.0"
1056 | resolved "https://registry.npmjs.org/jasmine/-/jasmine-3.99.0.tgz"
1057 | integrity sha512-YIThBuHzaIIcjxeuLmPD40SjxkEcc8i//sGMDKCgkRMVgIwRJf5qyExtlJpQeh7pkeoBSOe6lQEdg+/9uKg9mw==
1058 | dependencies:
1059 | glob "^7.1.6"
1060 | jasmine-core "~3.99.0"
1061 |
1062 | jasmine@2.8.0:
1063 | version "2.8.0"
1064 | resolved "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz"
1065 | integrity sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==
1066 | dependencies:
1067 | exit "^0.1.2"
1068 | glob "^7.0.6"
1069 | jasmine-core "~2.8.0"
1070 |
1071 | jasminewd2@^2.1.0:
1072 | version "2.2.0"
1073 | resolved "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz"
1074 | integrity sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg==
1075 |
1076 | joi@^17.3.0:
1077 | version "17.6.0"
1078 | resolved "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz"
1079 | integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==
1080 | dependencies:
1081 | "@hapi/hoek" "^9.0.0"
1082 | "@hapi/topo" "^5.0.0"
1083 | "@sideway/address" "^4.1.3"
1084 | "@sideway/formula" "^3.0.0"
1085 | "@sideway/pinpoint" "^2.0.0"
1086 |
1087 | jsbn@~0.1.0:
1088 | version "0.1.1"
1089 | resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
1090 | integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==
1091 |
1092 | json-schema-traverse@^0.4.1:
1093 | version "0.4.1"
1094 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
1095 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
1096 |
1097 | json-schema@0.4.0:
1098 | version "0.4.0"
1099 | resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz"
1100 | integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==
1101 |
1102 | json-stringify-safe@~5.0.1:
1103 | version "5.0.1"
1104 | resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
1105 | integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
1106 |
1107 | jsprim@^1.2.2:
1108 | version "1.4.2"
1109 | resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz"
1110 | integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==
1111 | dependencies:
1112 | assert-plus "1.0.0"
1113 | extsprintf "1.3.0"
1114 | json-schema "0.4.0"
1115 | verror "1.10.0"
1116 |
1117 | jszip@^3.1.3:
1118 | version "3.10.1"
1119 | resolved "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz"
1120 | integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==
1121 | dependencies:
1122 | lie "~3.3.0"
1123 | pako "~1.0.2"
1124 | readable-stream "~2.3.6"
1125 | setimmediate "^1.0.5"
1126 |
1127 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
1128 | version "3.2.2"
1129 | resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
1130 | integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==
1131 | dependencies:
1132 | is-buffer "^1.1.5"
1133 |
1134 | kind-of@^4.0.0:
1135 | version "4.0.0"
1136 | resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz"
1137 | integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==
1138 | dependencies:
1139 | is-buffer "^1.1.5"
1140 |
1141 | kind-of@^5.0.0:
1142 | version "5.1.0"
1143 | resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz"
1144 | integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
1145 |
1146 | kind-of@^6.0.0:
1147 | version "6.0.3"
1148 | resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz"
1149 | integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
1150 |
1151 | kind-of@^6.0.2:
1152 | version "6.0.3"
1153 | resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz"
1154 | integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
1155 |
1156 | lie@~3.3.0:
1157 | version "3.3.0"
1158 | resolved "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz"
1159 | integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==
1160 | dependencies:
1161 | immediate "~3.0.5"
1162 |
1163 | locate-path@^5.0.0:
1164 | version "5.0.0"
1165 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz"
1166 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
1167 | dependencies:
1168 | p-locate "^4.1.0"
1169 |
1170 | lodash@^4.17.21:
1171 | version "4.17.21"
1172 | resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
1173 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
1174 |
1175 | map-cache@^0.2.2:
1176 | version "0.2.2"
1177 | resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz"
1178 | integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==
1179 |
1180 | map-stream@~0.1.0:
1181 | version "0.1.0"
1182 | resolved "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz"
1183 | integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==
1184 |
1185 | map-visit@^1.0.0:
1186 | version "1.0.0"
1187 | resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz"
1188 | integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==
1189 | dependencies:
1190 | object-visit "^1.0.0"
1191 |
1192 | micromatch@^3.1.10, micromatch@^3.1.4:
1193 | version "3.1.10"
1194 | resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz"
1195 | integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
1196 | dependencies:
1197 | arr-diff "^4.0.0"
1198 | array-unique "^0.3.2"
1199 | braces "^2.3.1"
1200 | define-property "^2.0.2"
1201 | extend-shallow "^3.0.2"
1202 | extglob "^2.0.4"
1203 | fragment-cache "^0.2.1"
1204 | kind-of "^6.0.2"
1205 | nanomatch "^1.2.9"
1206 | object.pick "^1.3.0"
1207 | regex-not "^1.0.0"
1208 | snapdragon "^0.8.1"
1209 | to-regex "^3.0.2"
1210 |
1211 | mime-db@1.52.0:
1212 | version "1.52.0"
1213 | resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
1214 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
1215 |
1216 | mime-types@^2.1.12, mime-types@~2.1.19:
1217 | version "2.1.35"
1218 | resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
1219 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
1220 | dependencies:
1221 | mime-db "1.52.0"
1222 |
1223 | minimatch@^3.0.4, minimatch@^3.1.1:
1224 | version "3.1.2"
1225 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
1226 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
1227 | dependencies:
1228 | brace-expansion "^1.1.7"
1229 |
1230 | minimist@^1.2.0, minimist@^1.2.5:
1231 | version "1.2.6"
1232 | resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz"
1233 | integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
1234 |
1235 | mixin-deep@^1.2.0:
1236 | version "1.3.2"
1237 | resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz"
1238 | integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
1239 | dependencies:
1240 | for-in "^1.0.2"
1241 | is-extendable "^1.0.1"
1242 |
1243 | mkdirp@^1.0.4:
1244 | version "1.0.4"
1245 | resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz"
1246 | integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
1247 |
1248 | ms@^2.1.1, ms@2.1.2:
1249 | version "2.1.2"
1250 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
1251 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1252 |
1253 | ms@2.0.0:
1254 | version "2.0.0"
1255 | resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
1256 | integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
1257 |
1258 | nan@^2.12.1:
1259 | version "2.16.0"
1260 | resolved "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz"
1261 | integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==
1262 |
1263 | nanomatch@^1.2.9:
1264 | version "1.2.13"
1265 | resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz"
1266 | integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
1267 | dependencies:
1268 | arr-diff "^4.0.0"
1269 | array-unique "^0.3.2"
1270 | define-property "^2.0.2"
1271 | extend-shallow "^3.0.2"
1272 | fragment-cache "^0.2.1"
1273 | is-windows "^1.0.2"
1274 | kind-of "^6.0.2"
1275 | object.pick "^1.3.0"
1276 | regex-not "^1.0.0"
1277 | snapdragon "^0.8.1"
1278 | to-regex "^3.0.1"
1279 |
1280 | node-cmd@^3.0.0:
1281 | version "3.0.0"
1282 | resolved "https://registry.npmjs.org/node-cmd/-/node-cmd-3.0.0.tgz"
1283 | integrity sha512-SBvtm39iEkhEEDbUowR0O2YVaqpbD2nRvQ3fxXP/Tn1FgRpZAaUb8yKeEtFulBIv+xTHDodOKkj4EXIBANj+AQ==
1284 |
1285 | normalize-path@^2.1.1:
1286 | version "2.1.1"
1287 | resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz"
1288 | integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==
1289 | dependencies:
1290 | remove-trailing-separator "^1.0.1"
1291 |
1292 | normalize-path@^3.0.0:
1293 | version "3.0.0"
1294 | resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
1295 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
1296 |
1297 | oauth-sign@~0.9.0:
1298 | version "0.9.0"
1299 | resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz"
1300 | integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
1301 |
1302 | object-assign@^4.0.1:
1303 | version "4.1.1"
1304 | resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
1305 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
1306 |
1307 | object-copy@^0.1.0:
1308 | version "0.1.0"
1309 | resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz"
1310 | integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==
1311 | dependencies:
1312 | copy-descriptor "^0.1.0"
1313 | define-property "^0.2.5"
1314 | kind-of "^3.0.3"
1315 |
1316 | object-visit@^1.0.0:
1317 | version "1.0.1"
1318 | resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz"
1319 | integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==
1320 | dependencies:
1321 | isobject "^3.0.0"
1322 |
1323 | object.pick@^1.3.0:
1324 | version "1.3.0"
1325 | resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz"
1326 | integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==
1327 | dependencies:
1328 | isobject "^3.0.1"
1329 |
1330 | once@^1.3.0:
1331 | version "1.4.0"
1332 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
1333 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
1334 | dependencies:
1335 | wrappy "1"
1336 |
1337 | os-tmpdir@~1.0.1:
1338 | version "1.0.2"
1339 | resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"
1340 | integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
1341 |
1342 | p-limit@^2.2.0:
1343 | version "2.3.0"
1344 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"
1345 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
1346 | dependencies:
1347 | p-try "^2.0.0"
1348 |
1349 | p-locate@^4.1.0:
1350 | version "4.1.0"
1351 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz"
1352 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
1353 | dependencies:
1354 | p-limit "^2.2.0"
1355 |
1356 | p-try@^2.0.0:
1357 | version "2.2.0"
1358 | resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"
1359 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
1360 |
1361 | pako@~1.0.2:
1362 | version "1.0.11"
1363 | resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz"
1364 | integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
1365 |
1366 | pascalcase@^0.1.1:
1367 | version "0.1.1"
1368 | resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz"
1369 | integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==
1370 |
1371 | path-dirname@^1.0.0:
1372 | version "1.0.2"
1373 | resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz"
1374 | integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==
1375 |
1376 | path-exists@^4.0.0:
1377 | version "4.0.0"
1378 | resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
1379 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
1380 |
1381 | path-is-absolute@^1.0.0:
1382 | version "1.0.1"
1383 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
1384 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
1385 |
1386 | path-is-inside@^1.0.1:
1387 | version "1.0.2"
1388 | resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz"
1389 | integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==
1390 |
1391 | pause-stream@0.0.11:
1392 | version "0.0.11"
1393 | resolved "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz"
1394 | integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==
1395 | dependencies:
1396 | through "~2.3"
1397 |
1398 | performance-now@^2.1.0:
1399 | version "2.1.0"
1400 | resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"
1401 | integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
1402 |
1403 | pify@^2.0.0:
1404 | version "2.3.0"
1405 | resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
1406 | integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
1407 |
1408 | pinkie-promise@^2.0.0:
1409 | version "2.0.1"
1410 | resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
1411 | integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==
1412 | dependencies:
1413 | pinkie "^2.0.0"
1414 |
1415 | pinkie@^2.0.0:
1416 | version "2.0.4"
1417 | resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
1418 | integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==
1419 |
1420 | platform@^1.3.5:
1421 | version "1.3.6"
1422 | resolved "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz"
1423 | integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==
1424 |
1425 | posix-character-classes@^0.1.0:
1426 | version "0.1.1"
1427 | resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz"
1428 | integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==
1429 |
1430 | process-nextick-args@~2.0.0:
1431 | version "2.0.1"
1432 | resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"
1433 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
1434 |
1435 | protractor@^7.0.0:
1436 | version "7.0.0"
1437 | resolved "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz"
1438 | integrity sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==
1439 | dependencies:
1440 | "@types/q" "^0.0.32"
1441 | "@types/selenium-webdriver" "^3.0.0"
1442 | blocking-proxy "^1.0.0"
1443 | browserstack "^1.5.1"
1444 | chalk "^1.1.3"
1445 | glob "^7.0.3"
1446 | jasmine "2.8.0"
1447 | jasminewd2 "^2.1.0"
1448 | q "1.4.1"
1449 | saucelabs "^1.5.0"
1450 | selenium-webdriver "3.6.0"
1451 | source-map-support "~0.4.0"
1452 | webdriver-js-extender "2.1.0"
1453 | webdriver-manager "^12.1.7"
1454 | yargs "^15.3.1"
1455 |
1456 | ps-tree@^1.2.0:
1457 | version "1.2.0"
1458 | resolved "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz"
1459 | integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==
1460 | dependencies:
1461 | event-stream "=3.3.4"
1462 |
1463 | psl@^1.1.28:
1464 | version "1.9.0"
1465 | resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz"
1466 | integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
1467 |
1468 | punycode@^2.1.0, punycode@^2.1.1:
1469 | version "2.1.1"
1470 | resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
1471 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1472 |
1473 | q@^1.4.1, q@1.4.1:
1474 | version "1.4.1"
1475 | resolved "https://registry.npmjs.org/q/-/q-1.4.1.tgz"
1476 | integrity sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==
1477 |
1478 | qs@~6.5.2:
1479 | version "6.5.3"
1480 | resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz"
1481 | integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
1482 |
1483 | readable-stream@^2.0.2, readable-stream@~2.3.6:
1484 | version "2.3.7"
1485 | resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"
1486 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
1487 | dependencies:
1488 | core-util-is "~1.0.0"
1489 | inherits "~2.0.3"
1490 | isarray "~1.0.0"
1491 | process-nextick-args "~2.0.0"
1492 | safe-buffer "~5.1.1"
1493 | string_decoder "~1.1.1"
1494 | util-deprecate "~1.0.1"
1495 |
1496 | readdirp@^2.2.1:
1497 | version "2.2.1"
1498 | resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz"
1499 | integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
1500 | dependencies:
1501 | graceful-fs "^4.1.11"
1502 | micromatch "^3.1.10"
1503 | readable-stream "^2.0.2"
1504 |
1505 | regex-not@^1.0.0, regex-not@^1.0.2:
1506 | version "1.0.2"
1507 | resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz"
1508 | integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
1509 | dependencies:
1510 | extend-shallow "^3.0.2"
1511 | safe-regex "^1.1.0"
1512 |
1513 | remove-trailing-separator@^1.0.1:
1514 | version "1.1.0"
1515 | resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz"
1516 | integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==
1517 |
1518 | repeat-element@^1.1.2:
1519 | version "1.1.4"
1520 | resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz"
1521 | integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==
1522 |
1523 | repeat-string@^1.6.1:
1524 | version "1.6.1"
1525 | resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"
1526 | integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==
1527 |
1528 | request@^2.87.0:
1529 | version "2.88.2"
1530 | resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz"
1531 | integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
1532 | dependencies:
1533 | aws-sign2 "~0.7.0"
1534 | aws4 "^1.8.0"
1535 | caseless "~0.12.0"
1536 | combined-stream "~1.0.6"
1537 | extend "~3.0.2"
1538 | forever-agent "~0.6.1"
1539 | form-data "~2.3.2"
1540 | har-validator "~5.1.3"
1541 | http-signature "~1.2.0"
1542 | is-typedarray "~1.0.0"
1543 | isstream "~0.1.2"
1544 | json-stringify-safe "~5.0.1"
1545 | mime-types "~2.1.19"
1546 | oauth-sign "~0.9.0"
1547 | performance-now "^2.1.0"
1548 | qs "~6.5.2"
1549 | safe-buffer "^5.1.2"
1550 | tough-cookie "~2.5.0"
1551 | tunnel-agent "^0.6.0"
1552 | uuid "^3.3.2"
1553 |
1554 | require-directory@^2.1.1:
1555 | version "2.1.1"
1556 | resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
1557 | integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
1558 |
1559 | require-main-filename@^2.0.0:
1560 | version "2.0.0"
1561 | resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz"
1562 | integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
1563 |
1564 | resolve-url@^0.2.1:
1565 | version "0.2.1"
1566 | resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz"
1567 | integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==
1568 |
1569 | ret@~0.1.10:
1570 | version "0.1.15"
1571 | resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz"
1572 | integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
1573 |
1574 | rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4:
1575 | version "2.7.1"
1576 | resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz"
1577 | integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
1578 | dependencies:
1579 | glob "^7.1.3"
1580 |
1581 | rxjs@^6.6.3:
1582 | version "6.6.7"
1583 | resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz"
1584 | integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==
1585 | dependencies:
1586 | tslib "^1.9.0"
1587 |
1588 | safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
1589 | version "5.1.2"
1590 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
1591 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1592 |
1593 | safe-regex@^1.1.0:
1594 | version "1.1.0"
1595 | resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz"
1596 | integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==
1597 | dependencies:
1598 | ret "~0.1.10"
1599 |
1600 | safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
1601 | version "2.1.2"
1602 | resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
1603 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
1604 |
1605 | saucelabs@^1.5.0:
1606 | version "1.5.0"
1607 | resolved "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz"
1608 | integrity sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==
1609 | dependencies:
1610 | https-proxy-agent "^2.2.1"
1611 |
1612 | sax@>=0.6.0:
1613 | version "1.2.4"
1614 | resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"
1615 | integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
1616 |
1617 | selenium-webdriver@^3.0.1, selenium-webdriver@3.6.0:
1618 | version "3.6.0"
1619 | resolved "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz"
1620 | integrity sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==
1621 | dependencies:
1622 | jszip "^3.1.3"
1623 | rimraf "^2.5.4"
1624 | tmp "0.0.30"
1625 | xml2js "^0.4.17"
1626 |
1627 | semver@^5.3.0:
1628 | version "5.7.1"
1629 | resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
1630 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
1631 |
1632 | set-blocking@^2.0.0:
1633 | version "2.0.0"
1634 | resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
1635 | integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
1636 |
1637 | set-value@^2.0.0, set-value@^2.0.1:
1638 | version "2.0.1"
1639 | resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz"
1640 | integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
1641 | dependencies:
1642 | extend-shallow "^2.0.1"
1643 | is-extendable "^0.1.1"
1644 | is-plain-object "^2.0.3"
1645 | split-string "^3.0.1"
1646 |
1647 | setimmediate@^1.0.5:
1648 | version "1.0.5"
1649 | resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz"
1650 | integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==
1651 |
1652 | snapdragon-node@^2.0.1:
1653 | version "2.1.1"
1654 | resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz"
1655 | integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
1656 | dependencies:
1657 | define-property "^1.0.0"
1658 | isobject "^3.0.0"
1659 | snapdragon-util "^3.0.1"
1660 |
1661 | snapdragon-util@^3.0.1:
1662 | version "3.0.1"
1663 | resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz"
1664 | integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
1665 | dependencies:
1666 | kind-of "^3.2.0"
1667 |
1668 | snapdragon@^0.8.1:
1669 | version "0.8.2"
1670 | resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz"
1671 | integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
1672 | dependencies:
1673 | base "^0.11.1"
1674 | debug "^2.2.0"
1675 | define-property "^0.2.5"
1676 | extend-shallow "^2.0.1"
1677 | map-cache "^0.2.2"
1678 | source-map "^0.5.6"
1679 | source-map-resolve "^0.5.0"
1680 | use "^3.1.0"
1681 |
1682 | source-map-resolve@^0.5.0:
1683 | version "0.5.3"
1684 | resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz"
1685 | integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
1686 | dependencies:
1687 | atob "^2.1.2"
1688 | decode-uri-component "^0.2.0"
1689 | resolve-url "^0.2.1"
1690 | source-map-url "^0.4.0"
1691 | urix "^0.1.0"
1692 |
1693 | source-map-support@~0.4.0:
1694 | version "0.4.18"
1695 | resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz"
1696 | integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==
1697 | dependencies:
1698 | source-map "^0.5.6"
1699 |
1700 | source-map-url@^0.4.0:
1701 | version "0.4.1"
1702 | resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz"
1703 | integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==
1704 |
1705 | source-map@^0.5.6:
1706 | version "0.5.7"
1707 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
1708 | integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
1709 |
1710 | split-string@^3.0.1, split-string@^3.0.2:
1711 | version "3.1.0"
1712 | resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz"
1713 | integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
1714 | dependencies:
1715 | extend-shallow "^3.0.0"
1716 |
1717 | split@0.3:
1718 | version "0.3.3"
1719 | resolved "https://registry.npmjs.org/split/-/split-0.3.3.tgz"
1720 | integrity sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==
1721 | dependencies:
1722 | through "2"
1723 |
1724 | sshpk@^1.7.0:
1725 | version "1.17.0"
1726 | resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz"
1727 | integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==
1728 | dependencies:
1729 | asn1 "~0.2.3"
1730 | assert-plus "^1.0.0"
1731 | bcrypt-pbkdf "^1.0.0"
1732 | dashdash "^1.12.0"
1733 | ecc-jsbn "~0.1.1"
1734 | getpass "^0.1.1"
1735 | jsbn "~0.1.0"
1736 | safer-buffer "^2.0.2"
1737 | tweetnacl "~0.14.0"
1738 |
1739 | static-extend@^0.1.1:
1740 | version "0.1.2"
1741 | resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz"
1742 | integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==
1743 | dependencies:
1744 | define-property "^0.2.5"
1745 | object-copy "^0.1.0"
1746 |
1747 | stream-combiner@~0.0.4:
1748 | version "0.0.4"
1749 | resolved "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz"
1750 | integrity sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==
1751 | dependencies:
1752 | duplexer "~0.1.1"
1753 |
1754 | string_decoder@~1.1.1:
1755 | version "1.1.1"
1756 | resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
1757 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
1758 | dependencies:
1759 | safe-buffer "~5.1.0"
1760 |
1761 | string-width@^4.1.0, string-width@^4.2.0:
1762 | version "4.2.3"
1763 | resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
1764 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
1765 | dependencies:
1766 | emoji-regex "^8.0.0"
1767 | is-fullwidth-code-point "^3.0.0"
1768 | strip-ansi "^6.0.1"
1769 |
1770 | strip-ansi@^3.0.0:
1771 | version "3.0.1"
1772 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
1773 | integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==
1774 | dependencies:
1775 | ansi-regex "^2.0.0"
1776 |
1777 | strip-ansi@^6.0.0, strip-ansi@^6.0.1:
1778 | version "6.0.1"
1779 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
1780 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
1781 | dependencies:
1782 | ansi-regex "^5.0.1"
1783 |
1784 | supports-color@^2.0.0:
1785 | version "2.0.0"
1786 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
1787 | integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==
1788 |
1789 | supports-color@^7.1.0:
1790 | version "7.2.0"
1791 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
1792 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1793 | dependencies:
1794 | has-flag "^4.0.0"
1795 |
1796 | through@~2.3, through@~2.3.1, through@2:
1797 | version "2.3.8"
1798 | resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
1799 | integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
1800 |
1801 | tmp@0.0.30:
1802 | version "0.0.30"
1803 | resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz"
1804 | integrity sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==
1805 | dependencies:
1806 | os-tmpdir "~1.0.1"
1807 |
1808 | to-object-path@^0.3.0:
1809 | version "0.3.0"
1810 | resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz"
1811 | integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==
1812 | dependencies:
1813 | kind-of "^3.0.2"
1814 |
1815 | to-regex-range@^2.1.0:
1816 | version "2.1.1"
1817 | resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz"
1818 | integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==
1819 | dependencies:
1820 | is-number "^3.0.0"
1821 | repeat-string "^1.6.1"
1822 |
1823 | to-regex@^3.0.1, to-regex@^3.0.2:
1824 | version "3.0.2"
1825 | resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz"
1826 | integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
1827 | dependencies:
1828 | define-property "^2.0.2"
1829 | extend-shallow "^3.0.2"
1830 | regex-not "^1.0.2"
1831 | safe-regex "^1.1.0"
1832 |
1833 | tough-cookie@~2.5.0:
1834 | version "2.5.0"
1835 | resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz"
1836 | integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
1837 | dependencies:
1838 | psl "^1.1.28"
1839 | punycode "^2.1.1"
1840 |
1841 | tslib@^1.9.0:
1842 | version "1.14.1"
1843 | resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
1844 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
1845 |
1846 | tunnel-agent@^0.6.0:
1847 | version "0.6.0"
1848 | resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
1849 | integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==
1850 | dependencies:
1851 | safe-buffer "^5.0.1"
1852 |
1853 | tweetnacl@^0.14.3, tweetnacl@~0.14.0:
1854 | version "0.14.5"
1855 | resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
1856 | integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==
1857 |
1858 | union-value@^1.0.0:
1859 | version "1.0.1"
1860 | resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz"
1861 | integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
1862 | dependencies:
1863 | arr-union "^3.1.0"
1864 | get-value "^2.0.6"
1865 | is-extendable "^0.1.1"
1866 | set-value "^2.0.1"
1867 |
1868 | unset-value@^1.0.0:
1869 | version "1.0.0"
1870 | resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz"
1871 | integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==
1872 | dependencies:
1873 | has-value "^0.3.1"
1874 | isobject "^3.0.0"
1875 |
1876 | upath@^1.1.1:
1877 | version "1.2.0"
1878 | resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz"
1879 | integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
1880 |
1881 | uri-js@^4.2.2:
1882 | version "4.4.1"
1883 | resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
1884 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
1885 | dependencies:
1886 | punycode "^2.1.0"
1887 |
1888 | urix@^0.1.0:
1889 | version "0.1.0"
1890 | resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz"
1891 | integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==
1892 |
1893 | use@^3.1.0:
1894 | version "3.1.1"
1895 | resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz"
1896 | integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
1897 |
1898 | util-deprecate@~1.0.1:
1899 | version "1.0.2"
1900 | resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
1901 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
1902 |
1903 | uuid@^3.3.2:
1904 | version "3.4.0"
1905 | resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz"
1906 | integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
1907 |
1908 | verror@1.10.0:
1909 | version "1.10.0"
1910 | resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"
1911 | integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==
1912 | dependencies:
1913 | assert-plus "^1.0.0"
1914 | core-util-is "1.0.2"
1915 | extsprintf "^1.2.0"
1916 |
1917 | wait-on@^5.3.0:
1918 | version "5.3.0"
1919 | resolved "https://registry.npmjs.org/wait-on/-/wait-on-5.3.0.tgz"
1920 | integrity sha512-DwrHrnTK+/0QFaB9a8Ol5Lna3k7WvUR4jzSKmz0YaPBpuN2sACyiPVKVfj6ejnjcajAcvn3wlbTyMIn9AZouOg==
1921 | dependencies:
1922 | axios "^0.21.1"
1923 | joi "^17.3.0"
1924 | lodash "^4.17.21"
1925 | minimist "^1.2.5"
1926 | rxjs "^6.6.3"
1927 |
1928 | webdriver-js-extender@2.1.0:
1929 | version "2.1.0"
1930 | resolved "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz"
1931 | integrity sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==
1932 | dependencies:
1933 | "@types/selenium-webdriver" "^3.0.0"
1934 | selenium-webdriver "^3.0.1"
1935 |
1936 | webdriver-manager@^12.1.7:
1937 | version "12.1.8"
1938 | resolved "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz"
1939 | integrity sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==
1940 | dependencies:
1941 | adm-zip "^0.4.9"
1942 | chalk "^1.1.1"
1943 | del "^2.2.0"
1944 | glob "^7.0.3"
1945 | ini "^1.3.4"
1946 | minimist "^1.2.0"
1947 | q "^1.4.1"
1948 | request "^2.87.0"
1949 | rimraf "^2.5.2"
1950 | semver "^5.3.0"
1951 | xml2js "^0.4.17"
1952 |
1953 | which-module@^2.0.0:
1954 | version "2.0.0"
1955 | resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz"
1956 | integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==
1957 |
1958 | wrap-ansi@^6.2.0:
1959 | version "6.2.0"
1960 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz"
1961 | integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
1962 | dependencies:
1963 | ansi-styles "^4.0.0"
1964 | string-width "^4.1.0"
1965 | strip-ansi "^6.0.0"
1966 |
1967 | wrappy@1:
1968 | version "1.0.2"
1969 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
1970 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
1971 |
1972 | xml2js@^0.4.17:
1973 | version "0.4.23"
1974 | resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz"
1975 | integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==
1976 | dependencies:
1977 | sax ">=0.6.0"
1978 | xmlbuilder "~11.0.0"
1979 |
1980 | xmlbuilder@~11.0.0:
1981 | version "11.0.1"
1982 | resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz"
1983 | integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
1984 |
1985 | y18n@^4.0.0:
1986 | version "4.0.3"
1987 | resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz"
1988 | integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
1989 |
1990 | yargs-parser@^18.1.2:
1991 | version "18.1.3"
1992 | resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz"
1993 | integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
1994 | dependencies:
1995 | camelcase "^5.0.0"
1996 | decamelize "^1.2.0"
1997 |
1998 | yargs@^15.3.1:
1999 | version "15.4.1"
2000 | resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz"
2001 | integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
2002 | dependencies:
2003 | cliui "^6.0.0"
2004 | decamelize "^1.2.0"
2005 | find-up "^4.1.0"
2006 | get-caller-file "^2.0.1"
2007 | require-directory "^2.1.1"
2008 | require-main-filename "^2.0.0"
2009 | set-blocking "^2.0.0"
2010 | string-width "^4.2.0"
2011 | which-module "^2.0.0"
2012 | y18n "^4.0.0"
2013 | yargs-parser "^18.1.2"
2014 |
--------------------------------------------------------------------------------