diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index cbb9c8a..c87be84 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -44,6 +44,7 @@ test:e2e:
before_script:
# install missing dependencies
- npm install -g sirv-cli
+ - npm install cypress-localstorage-commands
# making sure the process is orphan
- sirv dist --port 3000 > /dev/null 2>&1 &
script:
@@ -99,6 +100,7 @@ test3:
script:
- echo "$APP_CONFIG_TEST3" > config.json
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - sed -i -E 's/component-chat@([0-9]+).([0-9]+)/component-chat@beta/g' src/dependencies.pug
- npm run build
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* test3@astral.startinblox.com:~/front/
only:
@@ -553,42 +555,6 @@ apidays:
tags:
- deploy
-ejp:
- stage: deployment
- environment:
- name: ejp
- url: https://ejp.hubl.world
- before_script:
- - npm ci --cache .npm --prefer-offline --only=production
- script:
- - echo "$APP_CONFIG_EJP" > config.json
- - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
- - npm run build
- - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* georgetown-uni@astral.startinblox.com:~/front/
- only:
- - master
- when: manual
- tags:
- - deploy
-
-fichemetierfr:
- stage: deployment
- environment:
- name: fichemetierfr
- url: https://fichemetier.fr.hubl.world
- before_script:
- - npm ci --cache .npm --prefer-offline --only=production
- script:
- - echo "$APP_CONFIG_FICHEMETIERFR" > config.json
- - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
- - npm run build
- - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* fichemetierfr@astral.startinblox.com:~/front/
- only:
- - master
- when: manual
- tags:
- - deploy
-
toulouse:
stage: deployment
environment:
@@ -606,3 +572,363 @@ toulouse:
when: manual
tags:
- deploy
+
+lepool:
+ stage: deployment
+ environment:
+ name: lepool
+ url: https://lepool.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_LEPOOL" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* lepool@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+cpe:
+ stage: deployment
+ environment:
+ name: cpe
+ url: https://cpe.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_CPE" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* cpe@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+lescanumeriques:
+ stage: deployment
+ environment:
+ name: lescanumeriques
+ url: https://fichemetier.fr.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_LESCANUMERIQUES" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* lescanumeriques@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+phares:
+ stage: deployment
+ environment:
+ name: phares
+ url: https://le.phares.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_LE_PHARES" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* phares@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+esspace:
+ stage: deployment
+ environment:
+ name: esspace
+ url: https://ess.pace.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_ESSPACE" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* esspace@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+grandecoco:
+ stage: deployment
+ environment:
+ name: grandecoco
+ url: https://la.grande.coco.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_COCO" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* grande-coco@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+espaceimaginaire:
+ stage: deployment
+ environment:
+ name: espaceimaginaire
+ url: https://espace-imaginaire.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_ESPACEIMAGINAIRE" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* espace-imaginaire@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+hallesciviques:
+ stage: deployment
+ environment:
+ name: hallesciviques
+ url: https://les.halles.civiques.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_HALLES" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* halles-civiques@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+ctc:
+ stage: deployment
+ environment:
+ name: ctc
+ url: https://collectif.tansition.citoyenne.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_CTC" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* collectif-tansition-citoyenne@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+studiossinguliers:
+ stage: deployment
+ environment:
+ name: studiossinguliers
+ url: https://studios-singuliers.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_SINGULIER" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* studios-singuliers@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+apluscestmieux:
+ stage: deployment
+ environment:
+ name: apluscestmieux
+ url: https://apluscestmieux.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_APLUS" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* apluscestmieux@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+projetlerepaire:
+ stage: deployment
+ environment:
+ name: projetlerepaire
+ url: https://projet.le.repaire.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_LEREPAIRE" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* projetlerepaire@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+oxamyne:
+ stage: deployment
+ environment:
+ name: oxamyne
+ url: https://oxamyne.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_OXAMYNE" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* oxamyne@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+laruchesaintgermain:
+ stage: deployment
+ environment:
+ name: laruchesaintgermain
+ url: https://la.ruche.saint-germain.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_LARUCHE" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* laruche-saint-germain@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+artefacts:
+ stage: deployment
+ environment:
+ name: artefacts
+ url: https://artefacts.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_ARTEFACTS" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* artefacts@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+lab01:
+ stage: deployment
+ environment:
+ name: lab01
+ url: https://le.lab01.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_LAB01" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* le-lab01@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+makesense:
+ stage: deployment
+ environment:
+ name: makesense
+ url: https://makesense.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_MAKESENSE" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* makesense@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+moulindepontru:
+ stage: deployment
+ environment:
+ name: moulindepontru
+ url: https://moulin.de.pont-ru.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_MOULINPONTRU" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* moulin-de-pont-ru@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+latreso:
+ stage: deployment
+ environment:
+ name: latreso
+ url: https://la.treso.hubl.world
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_LATRESO" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* la-treso@astral.startinblox.com:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
+
+montpellier:
+ stage: deployment
+ environment:
+ name: montpellier
+ url: https://app.montpellier.happy-dev.fr
+ before_script:
+ - npm ci --cache .npm --prefer-offline --only=production
+ script:
+ - echo "$APP_CONFIG_MONTPELLIER" > config.json
+ - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+ - npm run build
+ - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* montpellier@ssh-montpellier.happy-dev.fr:~/front/
+ only:
+ - master
+ when: manual
+ tags:
+ - deploy
\ No newline at end of file
diff --git a/.gitlab/issue_templates/bug.md b/.gitlab/issue_templates/bug.md
index e796cd3..89008f5 100644
--- a/.gitlab/issue_templates/bug.md
+++ b/.gitlab/issue_templates/bug.md
@@ -1,28 +1,24 @@
-/label ~BUG
+# What's happening?
-### What's happening?
+Describe in a few words what's happening
-*Describe in a few words what's happening*
+## Steps to reproduce
-### Steps to reproduce
-
-*How one can reproduce the issue - this is very important*
+How one can reproduce the issue - this is very important
1. Step 1
2. Step 2
3. Step 3
-### Relevant logs and/or screenshots
+## Relevant logs and/or screenshots
-*If possible, please add a screenshot.*
+If possible, please add a screenshot.
-### Your Environment
+## Your Environment
(Include relevant details about the environment you experienced the bug in)
* Browser name and version:
* Operating System and version (desktop or mobile):
-
-
-
+/label ~BUG
diff --git a/.gitlab/issue_templates/feature.md b/.gitlab/issue_templates/feature.md
index 3f8fa19..f954430 100644
--- a/.gitlab/issue_templates/feature.md
+++ b/.gitlab/issue_templates/feature.md
@@ -1,16 +1,12 @@
-## What needs to be done?
-
-/label ~Feature request
-
+# What needs to be done
## Technical details
-*Are there any technical details worth mentioning?*
-
+Are there any technical details worth mentioning?
## Test cases
-*Describe here the tests needed in order to validate this feature*
+Describe here the tests needed in order to validate this feature
1. Step 1
2. Step 2
@@ -20,3 +16,5 @@
1. Link to user story in wiki
2. other related Gitlab issues
+
+/label ~Feature request
diff --git a/.gitlab/issue_templates/new_instance.md b/.gitlab/issue_templates/new_instance.md
index a93fe19..2cf64a0 100644
--- a/.gitlab/issue_templates/new_instance.md
+++ b/.gitlab/issue_templates/new_instance.md
@@ -1,40 +1,16 @@
-/label ~"New Instance"
-
-# Please fill all these info:
+# Please fill all these info
## General info
-- Name of the instance:
-- Domain:
-
-## Settings:
-
-- Does the instance allow people to sign up? **Yes / No**
-- Does the instance want new people to get a welcome email? **Yes / No**
-
-## Federation:
-
-- Which current instance should see this new instance data? **Please provide the info module by module and include the instance itself.**
-- Do those current instances agree to share their public data with this new instance? **Yes / No**
-
-Example:
-
-- *Instance G is the new kid in town*
-- *Instance G wants to only see their dashboard, but want to access the circles of A, B, C, D, E & F.*
-- *Instance G wants to be able to chat with users from A, B, C, D, E & F.*
-- *Instance G wants to be able to see A and B job offers*
-
-Let's say every instances agree to this scenario, the issue should describe the following:
-
-- Dashboard: G
-- Circles: A, B, C, D, E, F & G
-- Job offers: A, B, F, G
-- Users: A, B, C, D, E, F & G
-- Profile directory: A, B, C, D, E, F & G
-- G agrees that any new instance can see their public data.
+- Name of the instance:
+- Domain: .hubl.world
## Cosmetics
-- Logo:
-- Favicon:
-- 4 Colors:
\ No newline at end of file
+- Logo:
+
+- Favicon:
+
+- 4 Colors:
+
+/label ~"New Instance"
diff --git a/.gitlab/merge_request_templates/checklist_before_merging.md b/.gitlab/merge_request_templates/checklist_before_merging.md
index edd506b..c92dfae 100644
--- a/.gitlab/merge_request_templates/checklist_before_merging.md
+++ b/.gitlab/merge_request_templates/checklist_before_merging.md
@@ -1,4 +1,4 @@
-## Checklist
+# Checklist
-
## Time spent
-
diff --git a/README.md b/README.md
index 1b64591..1d32adf 100644
--- a/README.md
+++ b/README.md
@@ -10,23 +10,24 @@ These instructions will get you a copy of the project up and running on your loc
To install Hubl, you'll need:
-* A Hubl Server (djangoldp>=0.7.11) with the appropriate modules
-* A Prosody Server (with [appropriate modules](https://git.startinblox.com/infra/prosody-modules/)
+* A [Hubl Server](https://git.startinblox.com/djangoldp-packages/server-manager/) (djangoldp>1)
+* A [Prosody Server](https://prosody.im/) (with [appropriate modules](https://git.startinblox.com/infra/prosody-modules/))
* A SMTP Server (optional)
* NodeJS on your machine
Before diving in you have to check your Hubl Server supports the following LDP packages:
* djangoldp_account
+* djangoldp_community
* djangoldp_notification
* djangoldp_profile
* djangoldp_skill
* djangoldp_uploader
-* oidc_provider: 'git+https://github.com/jblemee/django-oidc-provider.git@develop'
+* oidc_provider: django-webidoidc-provider
Those packages are given with the last stable version tested.
-Refer to the [documentation to install a Hubl Server](https://git.startinblox.com/documentation/doc/wikis/devops/install_sib_server) with this configuration.
+Refer to the [documentation to install a Hubl Server](https://docs.startinblox.com/import_documentation/install-sib-server.html) with this configuration.
## Build the application
@@ -76,6 +77,8 @@ On `config.json`:
```json
{
"xmpp": "https://jabber.happy-dev.fr/http-bind/",
+ "clientName": "My local Hubl",
+ "clientLogo": "/images/logo.webp",
"authority": "http://localhost:8000/",
"endpoints": {
"skills": "http://server.url/skills/",
@@ -87,9 +90,23 @@ On `config.json`:
Where:
+* `clientName` is the name of your Hubl
+* `clientLogo` is an URL to an image file
* `xmpp` is your [Prosody](https://prosody.im/) with [appropriate modules](https://git.startinblox.com/infra/prosody-modules/) configured on.
* `authority` is the OpenID Provider. Usually, if you use `djangoldp-account` it's the same as your djangoldp server.
-* `endpoints.users` is the API endpoints for Users on your djangoldp server.
+* `endpoints.users` is the API endpoints for Users on your djangoldp server. (djangoldp-account)
+* `endpoints.skills` is the API endpoints for Skills on your djangoldp server. (djangoldp-skill)
+* `endpoints.uploads` is the API endpoints for Uploads on your djangoldp server. (djangoldp-upload)
+
+### Communities
+
+Communities are mandatory to have an Hubl. If you're upgrading an existion Hubl, you can assign all your local users to a community this way:
+
+```bash
+./manage.py create_community --name="My community"
+```
+
+Don't forget to set some users as admin from the Django Admin if you want to allow them to create new users from app.
### Optional personalisation
@@ -97,8 +114,8 @@ On `config.json`:
```json
"clientName": "Hubl",
- "clientFavicon": "/images/favicon.png",
- "clientLogo": "/images/logo.png",
+ "clientFavicon": "/images/favicon.webp",
+ "clientLogo": "/images/logo.webp",
"clientLogoHeight": "32px",
"clientCSS": "/path/to/custom.css",
"authorityName": "djangoldp-server-name"
@@ -203,7 +220,7 @@ On `config.json`:
```json
"endpoints": {
- "joboffers": "http://server.url/joboffers/",
+ "joboffers": "http://server.url/job-offers/",
"skills": "http://server.url/skills/",
"uploads": "http://server.url/upload/"
}
diff --git a/client.sample.etuc.scss b/client.sample.etuc.scss
deleted file mode 100644
index e0f5a61..0000000
--- a/client.sample.etuc.scss
+++ /dev/null
@@ -1,180 +0,0 @@
-:root {
- --color-primary: #063B5C;
- --color-secondary: #3A3A3A;
- --color-complementary: #C4262E;
- --color-complementary-darken: #36383B;
- --color-white: #FFFFFF;
-
- --color-black-h: 216;
- --color-black-s: 4%;
- --color-black-l: 22%;
-
- --color-main-background: var(--color-grey-13);
- --color-main-text: #7A7F85;
- --color-highlight-primary: var(--color-primary);
- --color-user-panel: var(--color-black);
- --color-bell: var(--color-secondary);
- --color-avatar-background: #E4E8ED;
- --color-title: #36383B;
- --color-h1: var(--color-title);
- --color-h2: var(--color-title);
-
- /* Depreciated */
- --color-tag-group-text: #9BA0A7;
- --color-tag-group-border: var(--color-primary);
- --color-label-dark: var(--color-grey-6);
-
- /* Header's elements */
- --color-header-background: var(--color-white);
- --color-bell: var(--color-complementary-darken);
- --color-user-panel-header-text: var(--color-complementary-darken);
- --color-user-panel-header-background: var(--color-white);
- --color-user-panel-header-text-open: var(--color-white);
- --color-user-panel-header-background-open: var(--color-secondary);
- --color-user-panel-list-background: var(--color-white);
- --color-user-panel-list-text-hover: var(--color-complementary);
- --color-user-panel-list-border: #E4E8ED;
-
- /* Left menu */
- --color-menu-highlight-primary:var(--color-white);
- --color-menu-background: var(--color-secondary);
- --color-menu-text: var(--color-white);
- --color-menu-text-active: var(--color-complementary);
- --color-menu-background-active: var(--color-menu-highlight-primary);
- --color-menu-badge-background: var(--color-menu-highlight-primary);
- --color-menu-badge-text-active: var(--color-menu-highlight-primary);
- --color-menu-badge-background-active: var(--color-secondary);
- --color-menu-icon-background-active: var(--color-secondary);
-
- /* Right menu */
- --color-right-menu-background: #e8e8e8;
- --color-right-menu-text: #3c3F57;
- --color-right-menu-link-border: #BDC2D7;
- --color-right-menu-active-text: var(--color-white);
- --color-right-menu-active-background: var(--color-complementary);
- --color-right-menu-active-icon: var(--color-primary);
-
- /* Scrollbar */
- --color-scrollbar-right-background: var(--color-white);
- --color-scrollbar-right-track: var(--color-grey-6);
- --color-scrollbar-left-background: var(--color-secondary);
- --color-scrollbar-left-track: var(--color-grey-11);
-
- /* Tags */
- --color-tag-admin-text: var(--color-complementary);
- --color-tag-admin-border: var(--color-complementary);
-
- /* Form elements */
- --color-button-white: var(--color-white);
- --color-button-primary: var(--color-primary);
- --color-button-secondary: var(--color-complementary);
- --color-button-complementary: var(--color-secondary);
-
- --color-input-background: #EDF1FA;
- --color-input-text: var(--color-secondary);
- --color-input-icon: var(--color-complementary);
- --color-input-active: var(--color-complementary);
- --color-fieldset: var(--color-title);
- --color-fieldset-border: #DAE2F3;
- --color-button-modal: var(--color-title);
- --color-select-list: var(--color-secondary);
- --color-select-add-button: var(--color-button-secondary);
- --color-select-add-button-background: var(--color-button-white);
-
- --color-label-light: var(--color-grey-6);
-
- /* Skill */
- --color-skill-background: var(--color-primary);
- --color-skill-text: var(--color-white);
-
- /* Icon */
- --color-icon: var(--color-primary);
-
- /* Table */
- --color-table-header-background: #BDC2D7;
- --color-table-header-text: var(--color-white);
- --color-table-border: #BDC2D7;
-
- /* User thumb */
- --color-user-thumb-name: #7A7F85;
-
- --color-backlink: var(--color-secondary);
- --color-content-header: #DAE2F3;
-
- /* Chat */
- --color-chat-white: var(--color-white);
- --color-chat-primary: var(--color-primary);
- --color-chat-complementary: var(--color-complementary);
- --color-chat-secondary: var(--color-secondary);
- --color-chat-complementary-darken: var(--color-complementary-darken);
- --color-chat-grey-1: var(--color-grey-4);
- --color-chat-grey-2: var(--color-grey-6);
- --color-chat-grey-3: var(--color-grey-10);
-
- /* Directory */
- --color-directory-grey-4: #7A7F85;
- --color-directory-grey-5: #F0F3F6;
-
- --color-directory-avatar-background: #E4E8ED;
- --color-directory-back-link: #36383B;
- --color-directory-border: #DAE2F3;
- --color-directory-content-header-border: #DAE2F3;
- --color-directory-h1: var(--color-complementary-darken);
- --color-directory-list-icon: var(--color-primary);
- --color-directory-text: var(--color-directory-grey-4);
-
- --color-directory-form-input: #EDF1FA;
- --color-directory-form-input-text: var(--color-directory-grey-4);
- --color-directory-form-input-active: var(--color-complementary);
- --color-directory-form-select-icon: var(--color-complementary);
-}
-
-#main__menu {
- font-family: "RefrigeratorDelxW01Bold";
-}
-#main__menu .menu {
- font-size: 2rem;
-}
-#main__menu .unread {
- font-weight: bold;
-}
-#main__menu .menu[active=""] {
- color: var(--color-complementary);
-}
-#main__menu .sub-menu.menu-notification {
- font-family: Facit;
-}
-#main__menu solid-router sib-route.menu, #main__menu sib-router sib-route.menu {
- padding: 1.2rem 0;
-}
-#viewport .content-box {
- font-family: Facit;
-}
-#viewport #circle .content-box__header solid-display div {
- text-align: center;
-}
-#viewport #circle .content-box__header .h1-like {
- font-family: "RefrigeratorDelxW01Bold";
- font-size: 3.2rem;
- color: var(--color-primary);
-}
-#viewport #circle .content-box__header solid-display div .h1-aside {
-
- margin: 10px 0;
-}
-#viewport .with-sidebar nav > solid-router {
- color: #3C3F57;
-}
-#viewport .with-sidebar nav > solid-router > ul > sib-route[active] {
- background-color: var(--color-right-menu-active-background);
- color: var(--color-right-menu-active-text);
- display: inline-block;
-}
-@media (min-width: 992px) {
- .content-box__height {
- min-height: calc(100vh - 83px - 98px);
- }
- #viewport .chat-view {
- height: calc(100vh - 84px - 98px);
- }
-}
\ No newline at end of file
diff --git a/client.sample.etuc.css b/client.sample.happy-dev.css
similarity index 97%
rename from client.sample.etuc.css
rename to client.sample.happy-dev.css
index 1caa98d..bcb1d5c 100644
--- a/client.sample.etuc.css
+++ b/client.sample.happy-dev.css
@@ -1,6 +1,6 @@
:root {
- --color-primary: pink;
- --color-secondary: green;
+ --color-primary: #FFB700;
+ --color-secondary: #3C3F57;
--color-complementary: #6259E5;
--color-complementary-darken: #36383B;
--color-white: #FFFFFF;
@@ -42,7 +42,7 @@
--color-user-panel-list-border: #E4E8ED;
/* Left menu */
- --color-menu-highlight-primary: #000c42;
+ --color-menu-highlight-primary: #FFD759;
--color-menu-background: var(--color-secondary);
--color-menu-text: var(--color-white);
--color-menu-text-active: var(--color-secondary);
@@ -144,6 +144,12 @@
--color-directory-form-select-icon: var(--color-complementary) !important;
}
+/* Text color for the beta label */
+
+#header>div.header-left>span.beta-tag {
+ color: var(--color-complementary);
+}
+
/* Button to edit a channel or a project (in project-profile) */
#project solid-link[next="project-edit"],
#circle solid-link[next="circle-edit"] {
diff --git a/config.sample.federated.json b/config.sample.federated.json
index 0fa0a63..7eb8009 100644
--- a/config.sample.federated.json
+++ b/config.sample.federated.json
@@ -1,6 +1,8 @@
{
"xmpp": "https://jabber.happy-dev.fr/http-bind/",
"authority": "http://localhost:8000/",
+ "clientName": "Hubl",
+ "clientLogo": "https://cdn.startinblox.com/logos/hubl-logo.png",
"endpoints": {
"get": {
"skills": "http://localhost:8000/skills/",
diff --git a/config.sample.json b/config.sample.json
index 47b7bf1..0df2760 100644
--- a/config.sample.json
+++ b/config.sample.json
@@ -2,6 +2,8 @@
"xmpp": "https://jabber.happy-dev.fr/http-bind/",
"authority": "http://localhost:8000/",
"authorityName": "djangoldp-server-name",
+ "clientName": "Hubl",
+ "clientLogo": "https://cdn.startinblox.com/logos/hubl-logo.png",
"endpoints": {
"groups": "http://localhost:8000/groups/",
"skills": "http://localhost:8000/skills/",
diff --git a/cypress.json b/cypress.json
index 2f9683b..eaf2081 100644
--- a/cypress.json
+++ b/cypress.json
@@ -1,7 +1,8 @@
{
"baseUrl": "http://127.0.0.1:3000",
- "defaultCommandTimeout": 60000,
+ "defaultCommandTimeout": 1000,
"chromeWebSecurity": false,
"viewportWidth": 1920,
- "viewportHeight": 1080
+ "viewportHeight": 1080,
+ "video": false
}
diff --git a/cypress/README.md b/cypress/README.md
new file mode 100644
index 0000000..3081ad7
--- /dev/null
+++ b/cypress/README.md
@@ -0,0 +1,54 @@
+## Users:
+```
+ - signin
+ - signup
+ - create
+ - listing
+ - edit
+ // TO-FIX: Uncomment workaround (blocked by: nested routing bug)
+```
+
+## Job Offers:
+```
+ - create
+ - edit
+ - listing
+ // TO-FIX: Search by title and description (blocked by: no search fields available)
+ - post
+ // TO-DO: Entire flow (blocked by: no published / unpublished flag)
+```
+
+## Channels:
+```
+ - create
+ - edit
+ - leave
+ - retire
+ - delete
+ - join
+ // TO-DO: Join other user created project (blocked by: can't create new user to create a channel)
+ - invite
+ // TO-DO
+```
+
+## Projects:
+```
+ - create
+ - edit
+ - leave
+ - retire
+ - delete
+ // TO-DO: Delete a project (blocked by: no option to delete a project)
+ - join
+ // TO-DO: Join other user created project (blocked by: can't create new user to create a project)
+ - invite
+ // TO-DO
+```
+
+## Breakdown:
+```
+DONE: 15
+TO-FIX: 2
+BLOCKED: 4
+NOT DONE: 2
+```
diff --git a/cypress/fixtures/admin.json b/cypress/fixtures/admin.json
new file mode 100644
index 0000000..fb25ded
--- /dev/null
+++ b/cypress/fixtures/admin.json
@@ -0,0 +1,4 @@
+{
+ "username": "admin",
+ "password": "admin"
+}
\ No newline at end of file
diff --git a/cypress/integration/create-channel.spec.js b/cypress/integration/create-channel.spec.js
new file mode 100644
index 0000000..b28c0f1
--- /dev/null
+++ b/cypress/integration/create-channel.spec.js
@@ -0,0 +1,116 @@
+///
+/* globals cy, expect */
+
+context('Create Channel Browser Testing', () => {
+ before(() => {
+ cy.clearLocalStorageSnapshot();
+ cy.clearLocalStorage({ domain: null });
+ cy.clearCookies({ domain: null });
+ });
+ beforeEach(() => cy.restoreLocalStorage());
+ afterEach(() => cy.saveLocalStorage());
+ it('should visit user login screen', () => cy.userLogin());
+ it('should login', () => cy.login());
+ describe('Channel Creation process #1', () => {
+ let channelName = 'Test Channel ',
+ description = 'Test Description ';
+ it('should visit the channel creation screen', () => {
+ cy.visit('/admin/admin-circle-create');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/admin/admin-circle-create');
+ });
+ });
+ it('should enter correct channel data', () => {
+ cy.randomNum().then(num => {
+ channelName += num;
+ description += num;
+ cy.get('#admin-circle-create input[name="name"]').clear().type(channelName);
+ cy.get('#admin-circle-create input[name="name"]').should('have.value', channelName);
+ cy.get('#admin-circle-create input[name="description"]').clear().type(description);
+ cy.get('#admin-circle-create input[name="description"]').should('have.value', description);
+ });
+ });
+ it('should click on create channel button', () => {
+ cy.get('#admin-circle-create input[type="submit"]').click();
+ });
+ it('should land on channels list screen', () => {
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/admin');
+ });
+ });
+ it('should land newly created channel on channels list screen', () => {
+ cy.contains('solid-display-value[name="circle.name"]', channelName).should("exist");
+ cy.fixture('admin.json').then(admin => {
+ cy.contains('solid-display-value[name="username"]', admin.username).should("exist");
+ });
+ });
+ });
+ describe('Channel Creation process #2', () => {
+ let channelName = 'Test Channel ',
+ description = 'Test Description ';
+ it('should visit the channel creation screen', () => {
+ cy.visit('/admin/admin-circle-create');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/admin/admin-circle-create');
+ });
+ });
+ it('should enter correct channel data', () => {
+ cy.randomNum().then(num => {
+ channelName += num;
+ description += num;
+ cy.get('#admin-circle-create input[name="name"]').clear().type(channelName);
+ cy.get('#admin-circle-create input[name="name"]').should('have.value', channelName);
+ cy.get('#admin-circle-create input[name="description"]').clear().type(description);
+ cy.get('#admin-circle-create input[name="description"]').should('have.value', description);
+ });
+ });
+ it('should click on create channel button', () => {
+ cy.get('#admin-circle-create input[type="submit"]').click();
+ });
+ it('should land on channels list screen', () => {
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/admin');
+ });
+ });
+ it('should land newly created channel on channels list screen', () => {
+ cy.contains('solid-display-value[name="circle.name"]', channelName).should("exist");
+ cy.fixture('admin.json').then(admin => {
+ cy.contains('solid-display-value[name="username"]', admin.username).should("exist");
+ });
+ });
+ });
+ describe('Channel Creation process #3', () => {
+ let channelName = 'Test Channel ',
+ description = 'Test Description ';
+ it('should visit the channel creation screen', () => {
+ cy.visit('/admin/admin-circle-create');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/admin/admin-circle-create');
+ });
+ });
+ it('should enter correct channel data', () => {
+ cy.randomNum().then(num => {
+ channelName += num;
+ description += num;
+ cy.get('#admin-circle-create input[name="name"]').clear().type(channelName);
+ cy.get('#admin-circle-create input[name="name"]').should('have.value', channelName);
+ cy.get('#admin-circle-create input[name="description"]').clear().type(description);
+ cy.get('#admin-circle-create input[name="description"]').should('have.value', description);
+ });
+ });
+ it('should click on create channel button', () => {
+ cy.get('#admin-circle-create input[type="submit"]').click();
+ });
+ it('should land on channels list screen', () => {
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/admin');
+ });
+ });
+ it('should land newly created channel on channels list screen', () => {
+ cy.contains('solid-display-value[name="circle.name"]', channelName).should("exist");
+ cy.fixture('admin.json').then(admin => {
+ cy.contains('solid-display-value[name="username"]', admin.username).should("exist");
+ });
+ });
+ });
+});
diff --git a/cypress/integration/create-job-offer.spec.js b/cypress/integration/create-job-offer.spec.js
new file mode 100644
index 0000000..ad960d4
--- /dev/null
+++ b/cypress/integration/create-job-offer.spec.js
@@ -0,0 +1,52 @@
+///
+/* globals cy, expect */
+
+context('Create Job Offer Browser Testing', () => {
+ let jobDate = '',
+ jobTitle = 'Test Job Offer ',
+ description = 'Test Description ';
+ before(() => {
+ cy.nextYear(1).then(year => {
+ jobDate = year + '-12-31';
+ });
+ cy.randomNum().then(num => {
+ jobTitle += num;
+ description += num;
+ });
+ cy.clearLocalStorageSnapshot();
+ cy.clearLocalStorage({ domain: null });
+ cy.clearCookies({ domain: null });
+ });
+ beforeEach(() => cy.restoreLocalStorage());
+ afterEach(() => cy.saveLocalStorage());
+ it('should visit user login screen', () => cy.userLogin());
+ it('should login', () => cy.login());
+ describe('Job Offer Creation process', () => {
+ it('should visit the job offer creation screen', () => {
+ cy.visit('/job-offers/job-offers-create');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/job-offers/job-offers-create');
+ });
+ });
+ it('should enter correct job offer data', () => {
+ cy.get('#job-offers-create input[name="closingDate"]').clear().type(jobDate);
+ cy.get('#job-offers-create input[name="closingDate"]').should('have.value', jobDate);
+ cy.get('#job-offers-create input[name="title"]').clear().type(jobTitle);
+ cy.get('#job-offers-create input[name="title"]').should('have.value', jobTitle);
+ cy.get('#job-offers-create textarea[name="description"]').clear().type(description);
+ cy.get('#job-offers-create textarea[name="description"]').should('have.value', description);
+ });
+ it('should click on create job offer button', () => {
+ cy.get('#job-offers-create input[type="submit"]').click();
+ });
+ it('should land on job offers list screen', () => {
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/job-offers');
+ });
+ });
+ it('should land newly created job offer on job offers list screen', () => {
+ cy.contains('solid-display-value[name="title"]', jobTitle).should("exist");
+ cy.contains('solid-display-value[name="description"]', description).should("exist");
+ });
+ });
+});
diff --git a/cypress/integration/create-project.spec.js b/cypress/integration/create-project.spec.js
new file mode 100644
index 0000000..8775a1e
--- /dev/null
+++ b/cypress/integration/create-project.spec.js
@@ -0,0 +1,90 @@
+///
+/* globals cy, expect */
+
+context('Create Project Browser Testing', () => {
+ before(() => {
+ cy.clearLocalStorageSnapshot();
+ cy.clearLocalStorage({ domain: null });
+ cy.clearCookies({ domain: null });
+ });
+ beforeEach(() => cy.restoreLocalStorage());
+ afterEach(() => cy.saveLocalStorage());
+ it('should visit user login screen', () => cy.userLogin());
+ it('should login', () => cy.login());
+ describe('Project Creation process #1', () => {
+ let projectName = 'Test Project ',
+ customerName = 'Test Customer ',
+ description = 'Test Description ';
+ it('should visit the project creation screen', () => {
+ cy.visit('/admin/admin-projects/admin-project-create');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/admin/admin-projects/admin-project-create');
+ });
+ });
+ it('should enter correct project data', () => {
+ cy.randomNum().then(num => {
+ projectName += num;
+ customerName += num;
+ description += num;
+ cy.get('#admin-project-create input[name="customer.name"]').clear().type(customerName);
+ cy.get('#admin-project-create input[name="customer.name"]').should('have.value', customerName);
+ cy.get('#admin-project-create input[name="name"]').clear().type(projectName);
+ cy.get('#admin-project-create input[name="name"]').should('have.value', projectName);
+ cy.get('#admin-project-create textarea[name="description"]').clear().type(description);
+ cy.get('#admin-project-create textarea[name="description"]').should('have.value', description);
+ });
+ });
+ it('should click on create project button', () => {
+ cy.get('#admin-project-create input[type="submit"]').click();
+ });
+ it('should land on projects list screen', () => {
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/admin/admin-projects');
+ });
+ });
+ it('should land newly created project on projects list screen', () => {
+ cy.contains('solid-display-value[name="project.name"]', projectName).should("exist");
+ cy.fixture('admin.json').then(admin => {
+ cy.contains('solid-display-value[name="username"]', admin.username).should("exist");
+ });
+ });
+ });
+ describe('Project Creation process #2', () => {
+ let projectName = 'Test Project ',
+ customerName = 'Test Customer ',
+ description = 'Test Description ';
+ it('should visit the project creation screen', () => {
+ cy.visit('/admin/admin-projects/admin-project-create');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/admin/admin-projects/admin-project-create');
+ });
+ });
+ it('should enter correct project data', () => {
+ cy.randomNum().then(num => {
+ projectName += num;
+ customerName += num;
+ description += num;
+ cy.get('#admin-project-create input[name="customer.name"]').clear().type(customerName);
+ cy.get('#admin-project-create input[name="customer.name"]').should('have.value', customerName);
+ cy.get('#admin-project-create input[name="name"]').clear().type(projectName);
+ cy.get('#admin-project-create input[name="name"]').should('have.value', projectName);
+ cy.get('#admin-project-create textarea[name="description"]').clear().type(description);
+ cy.get('#admin-project-create textarea[name="description"]').should('have.value', description);
+ });
+ });
+ it('should click on create project button', () => {
+ cy.get('#admin-project-create input[type="submit"]').click();
+ });
+ it('should land on projects list screen', () => {
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/admin/admin-projects');
+ });
+ });
+ it('should land newly created project on projects list screen', () => {
+ cy.contains('solid-display-value[name="project.name"]', projectName).should("exist");
+ cy.fixture('admin.json').then(admin => {
+ cy.contains('solid-display-value[name="username"]', admin.username).should("exist");
+ });
+ });
+ });
+});
diff --git a/cypress/integration/create-user.spec.js b/cypress/integration/create-user.spec.js
new file mode 100644
index 0000000..4164a8e
--- /dev/null
+++ b/cypress/integration/create-user.spec.js
@@ -0,0 +1,56 @@
+///
+/* globals cy, expect */
+
+// Unable to create an user without a community. Unable to create community from app
+
+// context('Create User Browser Testing', () => {
+// let firstName = 'First ',
+// lastName = 'Last ',
+// username = 'testuser_creation_',
+// email = '';
+// before(() => {
+// cy.randomNum().then(num => {
+// firstName += num;
+// lastName += num;
+// username += num;
+// email = username + '@testemail.com';
+// });
+// cy.clearLocalStorageSnapshot();
+// cy.clearLocalStorage({ domain: null });
+// cy.clearCookies({ domain: null });
+// });
+// beforeEach(() => cy.restoreLocalStorage());
+// afterEach(() => cy.saveLocalStorage());
+// it('should visit user login screen', () => cy.userLogin());
+// it('should login', () => cy.login());
+// describe('User Creation process', () => {
+// it('should visit the user creation screen', () => {
+// cy.visit('/admin/admin-users/admin-users-create');
+// cy.location().should((loc) => {
+// expect(loc.pathname).to.eq('/admin/admin-users/admin-users-create');
+// });
+// });
+// it('should enter correct user data', () => {
+// cy.get('#admin-users-create input[name="first_name"]').clear().type(firstName);
+// cy.get('#admin-users-create input[name="first_name"]').should('have.value', firstName);
+// cy.get('#admin-users-create input[name="last_name"]').clear().type(lastName);
+// cy.get('#admin-users-create input[name="last_name"]').should('have.value', lastName);
+// cy.get('#admin-users-create input[name="username"]').clear().type(username);
+// cy.get('#admin-users-create input[name="username"]').should('have.value', username);
+// cy.get('#admin-users-create input[name="email"]').clear().type(email);
+// cy.get('#admin-users-create input[name="email"]').should('have.value', email);
+// });
+// it('should click on create user button', () => {
+// cy.get('#admin-users-create input[type="submit"]').click();
+// });
+// it('should land on users list screen', () => {
+// cy.location().should((loc) => {
+// expect(loc.pathname).to.eq('/admin/admin-users');
+// });
+// });
+// it('should land newly created user on users list screen', () => {
+// cy.contains('solid-display-value[name="name"]', firstName + ' ' + lastName).should("exist");
+// cy.contains('solid-display-value[name="username"]', username).should("exist");
+// });
+// });
+// });
diff --git a/cypress/integration/delete-channel.spec.js b/cypress/integration/delete-channel.spec.js
new file mode 100644
index 0000000..ac97861
--- /dev/null
+++ b/cypress/integration/delete-channel.spec.js
@@ -0,0 +1,63 @@
+///
+/* globals cy, expect */
+
+context('Delete Channel Browser Testing', () => {
+ let menuQuery = [
+ 'solid-display.circle-tab',
+ 'solid-display:last-child',
+ 'solid-display[order-by="name"]'
+ ],
+ menuCountQuery = [
+ 'solid-display.circle-tab',
+ 'solid-display',
+ 'solid-display[order-by="name"]'
+ ];
+ before(() => {
+ cy.clearLocalStorageSnapshot();
+ cy.clearLocalStorage({ domain: null });
+ cy.clearCookies({ domain: null });
+ });
+ beforeEach(() => cy.restoreLocalStorage());
+ afterEach(() => cy.saveLocalStorage());
+ it('should visit user login screend', () => cy.userLogin());
+ it('should login', () => cy.login());
+ describe('Channel Retirement process', () => {
+ let channelsLength;
+ it('should visit the channels list screen', () => {
+ cy.visit('/admin');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/admin');
+ });
+ });
+ it('should visit the last channel edit screen', () => {
+ cy.get(menuQuery.join(' '))
+ .invoke('attr', 'data-src')
+ .then(url => cy.encodeUrl(url).then(id => {
+ cy.visit('/circle/@' + id + '/circle-information');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/circle/@' + id + '/circle-information');
+ });
+ }));
+ });
+ it('should count the number of joined channels', () => {
+ cy.get(menuCountQuery.join(' ')).its('length').then(length => channelsLength = length);
+ });
+ it('should click button to retire the channel', () => {
+ cy.get('#circle-profile solid-delete[data-label="Supprimer le canal"] button').click();
+ });
+ it('should stay on channel edit screen', () => {
+ cy.get(menuQuery.join(' '))
+ .invoke('attr', 'data-src')
+ .then(url => cy.encodeUrl(url).then(id => {
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/circle/@' + id + '/circle-information');
+ });
+ }));
+ });
+ it('should check if chennel was retired', () => {
+ cy.get(menuCountQuery.join(' ')).its('length').should(length => {
+ expect(length).to.eq(channelsLength - 1);
+ });
+ });
+ });
+});
diff --git a/cypress/integration/edit-channel.spec.js b/cypress/integration/edit-channel.spec.js
new file mode 100644
index 0000000..b1a8227
--- /dev/null
+++ b/cypress/integration/edit-channel.spec.js
@@ -0,0 +1,65 @@
+///
+/* globals cy, expect */
+
+context('Edit Channel Browser Testing', () => {
+ let channelName = 'Edited Test Channel ',
+ description = 'Edited Test Description ',
+ menuQuery = [
+ 'solid-display.circle-tab',
+ 'solid-display:last-child',
+ 'solid-display[order-by="name"]'
+ ];
+ before(() => {
+ cy.randomNum().then(num => {
+ channelName += num;
+ description += num;
+ });
+ cy.clearLocalStorageSnapshot();
+ cy.clearLocalStorage({ domain: null });
+ cy.clearCookies({ domain: null });
+ });
+ beforeEach(() => cy.restoreLocalStorage());
+ afterEach(() => cy.saveLocalStorage());
+ it('should visit user login screen', () => cy.userLogin());
+ it('should login', () => cy.login());
+ describe('Channel Edition process', () => {
+ it('should visit the channel list screen', () => {
+ cy.visit('/admin');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/admin');
+ });
+ });
+ it('should visit the last channel edit screen', () => {
+ cy.get(menuQuery.join(' '))
+ .invoke('attr', 'data-src')
+ .then(url => cy.encodeUrl(url).then(id => {
+ cy.visit('/circle/@' + id + '/circle-information/circle-edit');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/circle/@' + id + '/circle-information/circle-edit');
+ });
+ }));
+ });
+ it('should enter new channel data', () => {
+ cy.get('#circle-edit input[name="name"]').clear().type(channelName);
+ cy.get('#circle-edit input[name="name"]').should('have.value', channelName);
+ cy.get('#circle-edit input[name="description"]').clear().type(description);
+ cy.get('#circle-edit input[name="description"]').should('have.value', description);
+ });
+ it('should click button to save the channel', () => {
+ cy.get('#circle-edit input[value="Enregistrer"]').click();
+ });
+ it('should land on channel information screen', () => {
+ cy.get(menuQuery.join(' '))
+ .invoke('attr', 'data-src')
+ .then(url => cy.encodeUrl(url).then(id => {
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/circle/@' + id + '/circle-information');
+ });
+ }));
+ });
+ it('should show edited channel data on channel information screen', () => {
+ cy.contains('solid-display-value[name="name"]', channelName).should("exist");
+ cy.contains('solid-display-value[name="description"]', description).should("exist");
+ });
+ });
+});
diff --git a/cypress/integration/edit-job-offer.spec.js b/cypress/integration/edit-job-offer.spec.js
new file mode 100644
index 0000000..0ce7690
--- /dev/null
+++ b/cypress/integration/edit-job-offer.spec.js
@@ -0,0 +1,66 @@
+///
+/* globals cy, expect */
+
+context('Edit Job Offer Browser Testing', () => {
+ let jobDate = '',
+ jobTitle = 'Edited Test Job Offer ',
+ description = 'Edited Test Description ',
+ menuQuery = [
+ 'solid-display.job-board__list',
+ 'solid-display:last-child'
+ ];
+ before(() => {
+ cy.nextYear(2).then(year => {
+ jobDate = year + '-12-31';
+ });
+ cy.randomNum().then(num => {
+ jobTitle += num;
+ description += num;
+ });
+ cy.clearLocalStorageSnapshot();
+ cy.clearLocalStorage({ domain: null });
+ cy.clearCookies({ domain: null });
+ });
+ beforeEach(() => cy.restoreLocalStorage());
+ afterEach(() => cy.saveLocalStorage());
+ it('should visit user login screen', () => cy.userLogin());
+ it('should login', () => cy.login());
+ describe('Job Offer Edition process', () => {
+ it('should visit the job offers list screen', () => {
+ cy.visit('/job-offers');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/job-offers');
+ });
+ });
+ it('should visit the last job offer edit screen', () => {
+ cy.get(menuQuery.join(' '))
+ .invoke('attr', 'data-src')
+ .then(url => cy.encodeUrl(url).then(id => {
+ cy.visit('/job-offers/job-offers-edit/@' + id);
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/job-offers/job-offers-edit/@' + id);
+ });
+ }));
+ });
+ it('should enter new job offer data', () => {
+ cy.get('#job-offers-edit input[name="closingDate"]').clear().type(jobDate);
+ cy.get('#job-offers-edit input[name="closingDate"]').should('have.value', jobDate);
+ cy.get('#job-offers-edit input[name="title"]').clear().type(jobTitle);
+ cy.get('#job-offers-edit input[name="title"]').should('have.value', jobTitle);
+ cy.get('#job-offers-edit textarea[name="description"]').clear().type(description);
+ cy.get('#job-offers-edit textarea[name="description"]').should('have.value', description);
+ });
+ it('should click button to save the job offer', () => {
+ cy.get('#job-offers-edit input[type="submit"]').click();
+ });
+ it('should land on job offers list screen', () => {
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/job-offers');
+ });
+ });
+ it('should show edited job offer data on job offer information screen', () => {
+ cy.contains('solid-display-value[name="title"]', jobTitle).should("exist");
+ cy.contains('solid-display-value[name="description"]', description).should("exist");
+ });
+ });
+});
diff --git a/cypress/integration/edit-project.spec.js b/cypress/integration/edit-project.spec.js
new file mode 100644
index 0000000..f3d7c54
--- /dev/null
+++ b/cypress/integration/edit-project.spec.js
@@ -0,0 +1,69 @@
+///
+/* globals cy, expect */
+
+context('Edit Project Browser Testing', () => {
+ let projectName = 'Edited Test Project ',
+ customerName = 'Edited Test Customer ',
+ description = 'Edited Test Description ',
+ menuQuery = [
+ 'solid-display.project-tab',
+ 'solid-display:last-child',
+ 'solid-display[order-by="customer.name"]'
+ ];
+ before(() => {
+ cy.randomNum().then(num => {
+ projectName += num;
+ customerName += num;
+ description += num;
+ });
+ cy.clearLocalStorageSnapshot();
+ cy.clearLocalStorage({ domain: null });
+ cy.clearCookies({ domain: null });
+ });
+ beforeEach(() => cy.restoreLocalStorage());
+ afterEach(() => cy.saveLocalStorage());
+ it('should visit user login screen', () => cy.userLogin());
+ it('should login', () => cy.login());
+ describe('Project Edition process', () => {
+ it('should visit the project list screen', () => {
+ cy.visit('/admin/admin-projects');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/admin/admin-projects');
+ });
+ });
+ it('should visit the last project edit screen', () => {
+ cy.get(menuQuery.join(' '))
+ .invoke('attr', 'data-src')
+ .then(url => cy.encodeUrl(url).then(id => {
+ cy.visit('/project/@' + id + '/project-information/project-edit');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/project/@' + id + '/project-information/project-edit');
+ });
+ }));
+ });
+ it('should enter new project data', () => {
+ cy.get('#project-edit input[name="customer.name"]').clear().type(customerName);
+ cy.get('#project-edit input[name="customer.name"]').should('have.value', customerName);
+ cy.get('#project-edit input[name="name"]').clear().type(projectName);
+ cy.get('#project-edit input[name="name"]').should('have.value', projectName);
+ cy.get('#project-edit textarea[name="description"]').clear().type(description);
+ cy.get('#project-edit textarea[name="description"]').should('have.value', description);
+ });
+ it('should click button to save the project', () => {
+ cy.get('#project-edit input[value="Enregistrer"]').click();
+ });
+ it('should land on project information screen', () => {
+ cy.get(menuQuery.join(' '))
+ .invoke('attr', 'data-src')
+ .then(url => cy.encodeUrl(url).then(id => {
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/project/@' + id + '/project-information');
+ });
+ }));
+ });
+ it('should show edited project data on project information screen', () => {
+ cy.contains('solid-display-value[name="customer.name"]', customerName).should("exist");
+ cy.contains('solid-display-value[name="name"]', projectName).should("exist");
+ });
+ });
+});
diff --git a/cypress/integration/edit-user.spec.js b/cypress/integration/edit-user.spec.js
new file mode 100644
index 0000000..ff82266
--- /dev/null
+++ b/cypress/integration/edit-user.spec.js
@@ -0,0 +1,73 @@
+///
+/* globals cy, expect */
+
+context('Edit User Browser Testing', () => {
+ let userFirstName = 'Edited User First Name ',
+ userLastName = 'Edited User Last Name ',
+ jobDescription = 'Edited Job Description ',
+ city = 'Edited City ',
+ phone = '+1234',
+ website = 'https://test.site/';
+ before(() => {
+ cy.randomNum().then(num => {
+ userFirstName += num;
+ userLastName += num;
+ jobDescription += num;
+ city += num;
+ phone += num;
+ website += num;
+ });
+ cy.clearLocalStorageSnapshot();
+ cy.clearLocalStorage({ domain: null });
+ cy.clearCookies({ domain: null });
+ });
+ beforeEach(() => cy.restoreLocalStorage());
+ afterEach(() => cy.saveLocalStorage());
+ it('should visit user login screen', () => cy.userLogin());
+ it('should login', () => cy.login());
+ describe('User Edition process', () => {
+ it('should visit the user edit screen', () => {
+ cy.visit('/profile/solid-profile-edit-profile');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/profile/solid-profile-edit-profile');
+ });
+ });
+ /// Workaround - Routing bug - user won't land on edit profile screen
+ it('should navigate to user edit screen', () => {
+ cy.get('#solid-profile-my-profile solid-link[next="solid-profile-edit-profile"]').click();
+ });
+ /// End workaround
+ it('should enter new user data', () => {
+ cy.get('#solid-profile-edit-profile input[name="first_name"]').clear().type(userFirstName);
+ cy.get('#solid-profile-edit-profile input[name="first_name"]').should('have.value', userFirstName);
+ cy.get('#solid-profile-edit-profile input[name="last_name"]').clear().type(userLastName);
+ cy.get('#solid-profile-edit-profile input[name="last_name"]').should('have.value', userLastName);
+ cy.get('#solid-profile-edit-profile textarea[name="profile.job"]').clear().type(jobDescription);
+ cy.get('#solid-profile-edit-profile textarea[name="profile.job"]').should('have.value', jobDescription);
+ cy.get('#solid-profile-edit-profile input[name="profile.city"]').clear().type(city);
+ cy.get('#solid-profile-edit-profile input[name="profile.city"]').should('have.value', city);
+ cy.get('#solid-profile-edit-profile input[name="profile.phone"]').clear().type(phone);
+ cy.get('#solid-profile-edit-profile input[name="profile.phone"]').should('have.value', phone);
+ cy.get('#solid-profile-edit-profile input[name="profile.website"]').clear().type(website);
+ cy.get('#solid-profile-edit-profile input[name="profile.website"]').should('have.value', website);
+ });
+ it('should click button to save the user', () => {
+ cy.get('#solid-profile-edit-profile input[value="ENREGISTRER"]').click();
+ });
+ it('should land on user information screen', () => {
+ cy.location().should(location => {
+ /// Workaround - Routing bug - route pathname won't be /profile as it should
+ expect(location.pathname).to.eq('/');
+ // expect(location.pathname).to.eq('/profile');
+ /// End workaround
+ });
+ });
+ it('should show edited user data on user information screen', () => {
+ cy.contains('solid-display-value[name="name"]', userFirstName + ' ' + userLastName).should("exist");
+ cy.contains('solid-display-value[name="profile.job"]', jobDescription).should("exist");
+ cy.contains('solid-display-value[name="profile.city"]', city).should("exist");
+ cy.contains('directory-link-tel a', phone).should("exist");
+ cy.contains('directory-website a', website).should("exist");
+ });
+ });
+});
diff --git a/cypress/integration/leave-channel.spec.js b/cypress/integration/leave-channel.spec.js
new file mode 100644
index 0000000..3b762c3
--- /dev/null
+++ b/cypress/integration/leave-channel.spec.js
@@ -0,0 +1,42 @@
+///
+/* globals cy, expect */
+
+context('Leave Channel Browser Testing', () => {
+ let tableQuery = [
+ 'solid-display.table-body',
+ 'solid-display:last-child',
+ 'hubl-admin-circle-leave-button',
+ 'solid-delete'
+ ],
+ tableListQuery = [
+ 'solid-display[nested-field="circles"]',
+ 'div >',
+ 'solid-display'
+ ];
+ before(() => {
+ cy.clearLocalStorageSnapshot();
+ cy.clearLocalStorage({ domain: null });
+ cy.clearCookies({ domain: null });
+ });
+ beforeEach(() => cy.restoreLocalStorage());
+ afterEach(() => cy.saveLocalStorage());
+ it('should visit user login screend', () => cy.userLogin());
+ it('should login', () => cy.login());
+ describe('Channel Leaving process', () => {
+ it('should visit the channels list screen', () => {
+ cy.visit('/admin');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/admin');
+ });
+ });
+ it('should click the last channel leave button', () => {
+ cy.get(tableListQuery.join(' ')).its('length').as('channelsLength');
+ cy.get(tableQuery.join(' ')).click();
+ });
+ it('should check if chennel was left', () => {
+ cy.get(tableListQuery.join(' ')).its('length').should(length => {
+ expect(length).to.eq(this.channelsLength - 1);
+ });
+ });
+ });
+});
diff --git a/cypress/integration/leave-project.spec.js b/cypress/integration/leave-project.spec.js
new file mode 100644
index 0000000..886d3a2
--- /dev/null
+++ b/cypress/integration/leave-project.spec.js
@@ -0,0 +1,42 @@
+///
+/* globals cy, expect */
+
+context('Leave Project Browser Testing', () => {
+ let tableQuery = [
+ 'solid-display.table-body',
+ 'solid-display:last-child',
+ 'hubl-admin-project-leave-button',
+ 'solid-delete'
+ ],
+ tableListQuery = [
+ 'solid-display[nested-field="projects"]',
+ 'div >',
+ 'solid-display'
+ ];
+ before(() => {
+ cy.clearLocalStorageSnapshot();
+ cy.clearLocalStorage({ domain: null });
+ cy.clearCookies({ domain: null });
+ });
+ beforeEach(() => cy.restoreLocalStorage());
+ afterEach(() => cy.saveLocalStorage());
+ it('should visit user login screend', () => cy.userLogin());
+ it('should login', () => cy.login());
+ describe('Project Leaving process', () => {
+ it('should visit the projects list screen', () => {
+ cy.visit('/admin/admin-projects');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/admin/admin-projects');
+ });
+ });
+ it('should click the last project leave button', () => {
+ cy.get(tableListQuery.join(' ')).its('length').as('projectsLength');
+ cy.get(tableQuery.join(' ')).click();
+ });
+ it('should check if project was left', () => {
+ cy.get(tableListQuery.join(' ')).its('length').should(length => {
+ expect(length).to.eq(this.projectsLength - 1);
+ });
+ });
+ });
+});
diff --git a/cypress/integration/list-job-offers.spec.js b/cypress/integration/list-job-offers.spec.js
new file mode 100644
index 0000000..8def06b
--- /dev/null
+++ b/cypress/integration/list-job-offers.spec.js
@@ -0,0 +1,84 @@
+///
+/* globals cy, expect */
+
+context('List Job Offers Browser Testing', () => {
+ let listQuery = 'solid-display.job-board__list',
+ filtersQuery = [
+ listQuery,
+ 'solid-form',
+ 'input'
+ ],
+ listingCountQuery = [
+ listQuery,
+ 'solid-display'
+ ],
+ firstListingQuery = [
+ listQuery,
+ 'solid-display:first-child',
+ 'solid-display-value'
+ ];
+ before(() => {
+ cy.clearLocalStorageSnapshot();
+ cy.clearLocalStorage({ domain: null });
+ cy.clearCookies({ domain: null });
+ });
+ beforeEach(() => cy.restoreLocalStorage());
+ afterEach(() => cy.saveLocalStorage());
+ it('should visit user login screen', () => cy.userLogin());
+ it('should login', () => cy.login());
+ describe('Job Offer Listing process', () => {
+ let listingTitle,
+ listingDesccription,
+ listingCount;
+ it('should visit the job offers listing screen', () => {
+ cy.visit('/job-offers');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/job-offers');
+ });
+ });
+ it('should get the listing count', () => {
+ cy.get(listingCountQuery.join(' ')).its('length').then(length => listingCount = length);
+ });
+ it('should get the first job offer listing data', () => {
+ cy.get(firstListingQuery.join(' ') + '[name="title"]').invoke('text').then(text => listingTitle = text);
+ cy.get(firstListingQuery.join(' ') + '[name="description"]').invoke('text').then(text => listingDesccription = text);
+ });
+ // TO-DO: Search by title and description
+ /*it('should filter the listing by first name', () => {
+ cy.get(filtersQuery.join(' ') + '[name="title"]').clear().type(listingTitle);
+ cy.get(filtersQuery.join(' ') + '[name="title"]').should('have.value', listingTitle);
+ });
+ it('should get filtered listing count', () => {
+ cy.get(listingCountQuery.join(' ')).its('length').then(length => {
+ expect(length).to.eq(1);
+ });
+ });
+ it('should clear the first name filter', () => {
+ cy.get(filtersQuery.join(' ') + '[name="title"]').clear();
+ cy.get(filtersQuery.join(' ') + '[name="title"]').should('have.value', '');
+ });
+ it('should get previous listing count', () => {
+ cy.get(listingCountQuery.join(' ')).its('length').then(length => {
+ expect(length).to.eq(listingCount);
+ });
+ });
+ it('should filter the listing by first name', () => {
+ cy.get(filtersQuery.join(' ') + '[name="description"]').clear().type(listingDesccription);
+ cy.get(filtersQuery.join(' ') + '[name="description"]').should('have.value', listingDesccription);
+ });
+ it('should get filtered listing count', () => {
+ cy.get(listingCountQuery.join(' ')).its('length').then(length => {
+ expect(length).to.eq(1);
+ });
+ });
+ it('should clear the first name filter', () => {
+ cy.get(filtersQuery.join(' ') + '[name="description"]').clear();
+ cy.get(filtersQuery.join(' ') + '[name="description"]').should('have.value', '');
+ });
+ it('should get previous listing count', () => {
+ cy.get(listingCountQuery.join(' ')).its('length').then(length => {
+ expect(length).to.eq(listingCount);
+ });
+ });*/
+ });
+});
diff --git a/cypress/integration/list-users.spec.js b/cypress/integration/list-users.spec.js
new file mode 100644
index 0000000..ddd848e
--- /dev/null
+++ b/cypress/integration/list-users.spec.js
@@ -0,0 +1,124 @@
+///
+/* globals cy, expect */
+
+context('List Users Browser Testing', () => {
+ let listQuery = 'solid-display#members-list__content',
+ filtersQuery = [
+ listQuery,
+ 'solid-form',
+ 'input'
+ ],
+ listingCountQuery = [
+ listQuery,
+ 'div:first-child',
+ 'span'
+ ],
+ firstListingQuery = [
+ listQuery,
+ 'solid-display:first-child',
+ 'solid-display-value'
+ ];
+ before(() => {
+ cy.clearLocalStorageSnapshot();
+ cy.clearLocalStorage({ domain: null });
+ cy.clearCookies({ domain: null });
+ });
+ beforeEach(() => cy.restoreLocalStorage());
+ afterEach(() => cy.saveLocalStorage());
+ it('should visit user login screen', () => cy.userLogin());
+ it('should login', () => cy.login());
+ describe('User Listing process', () => {
+ let listingFirstName,
+ listingLastName,
+ listingJob,
+ listingCity,
+ listingCount;
+ it('should visit the users listing screen', () => {
+ cy.visit('/members');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/members');
+ });
+ });
+ it('should get the listing count', () => {
+ cy.get(listingCountQuery.join(' ')).invoke('text').then(text => listingCount = text);
+ });
+ it('should get the first user listing data', () => {
+ cy.get(firstListingQuery.join(' ') + '[name="first_name"]').invoke('text').then(text => listingFirstName = text);
+ cy.get(firstListingQuery.join(' ') + '[name="last_name"]').invoke('text').then(text => listingLastName = text);
+ cy.get(firstListingQuery.join(' ') + '[name="profile.job"]').invoke('text').then(text => listingJob = text);
+ cy.get(firstListingQuery.join(' ') + '[name="profile.city"]').invoke('text').then(text => listingCity = text);
+ });
+ it('should filter the listing by first name', () => {
+ cy.get(filtersQuery.join(' ') + '[name="name"]').clear().type(listingFirstName);
+ cy.get(filtersQuery.join(' ') + '[name="name"]').should('have.value', listingFirstName);
+ });
+ it('should get filtered listing count', () => {
+ cy.get(listingCountQuery.join(' ')).invoke('text').then(text => {
+ expect(text).to.eq('1 membres');
+ });
+ });
+ it('should clear the first name filter', () => {
+ cy.get(filtersQuery.join(' ') + '[name="name"]').clear();
+ cy.get(filtersQuery.join(' ') + '[name="name"]').should('have.value', '');
+ });
+ it('should get previous listing count', () => {
+ cy.get(listingCountQuery.join(' ')).invoke('text').then(text => {
+ expect(text).to.eq(listingCount);
+ });
+ });
+ it('should filter the listing by last name', () => {
+ cy.get(filtersQuery.join(' ') + '[name="name"]').clear().type(listingLastName);
+ cy.get(filtersQuery.join(' ') + '[name="name"]').should('have.value', listingLastName);
+ });
+ it('should get filtered listing count', () => {
+ cy.get(listingCountQuery.join(' ')).invoke('text').then(text => {
+ expect(text).to.eq('1 membres');
+ });
+ });
+ it('should clear the last name filter', () => {
+ cy.get(filtersQuery.join(' ') + '[name="name"]').clear();
+ cy.get(filtersQuery.join(' ') + '[name="name"]').should('have.value', '');
+ });
+ it('should get previous listing count', () => {
+ cy.get(listingCountQuery.join(' ')).invoke('text').then(text => {
+ expect(text).to.eq(listingCount);
+ });
+ });
+ it('should filter the listing by job description', () => {
+ cy.get(filtersQuery.join(' ') + '[name="member-job"]').clear().type(listingJob);
+ cy.get(filtersQuery.join(' ') + '[name="member-job"]').should('have.value', listingJob);
+ });
+ it('should get filtered listing count', () => {
+ cy.get(listingCountQuery.join(' ')).invoke('text').then(text => {
+ expect(text).to.eq('1 membres');
+ });
+ });
+ it('should clear the job description filter', () => {
+ cy.get(filtersQuery.join(' ') + '[name="member-job"]').clear();
+ cy.get(filtersQuery.join(' ') + '[name="member-job"]').should('have.value', '');
+ });
+ it('should get previous listing count', () => {
+ cy.get(listingCountQuery.join(' ')).invoke('text').then(text => {
+ expect(text).to.eq(listingCount);
+ });
+ });
+ it('should filter the listing by city', () => {
+ cy.get(filtersQuery.join(' ') + '[name="member-city"]').clear().type(listingCity);
+ cy.get(filtersQuery.join(' ') + '[name="member-city"]').should('have.value', listingCity);
+ });
+ it('should get filtered listing count', () => {
+ cy.get(listingCountQuery.join(' ')).invoke('text').then(text => {
+ expect(text).to.eq('1 membres');
+ });
+ });
+ it('should clear the city filter', () => {
+ cy.get(filtersQuery.join(' ') + '[name="member-city"]').clear();
+ cy.get(filtersQuery.join(' ') + '[name="member-city"]').should('have.value', '');
+ });
+ it('should get previous listing count', () => {
+ cy.get(listingCountQuery.join(' ')).invoke('text').then(text => {
+ expect(text).to.eq(listingCount);
+ });
+ });
+ });
+});
diff --git a/cypress/integration/retire-channel.spec.js b/cypress/integration/retire-channel.spec.js
new file mode 100644
index 0000000..6ae42d2
--- /dev/null
+++ b/cypress/integration/retire-channel.spec.js
@@ -0,0 +1,63 @@
+///
+/* globals cy, expect */
+
+context('Retire Channel Browser Testing', () => {
+ let menuQuery = [
+ 'solid-display.circle-tab',
+ 'solid-display:last-child',
+ 'solid-display[order-by="name"]'
+ ],
+ menuCountQuery = [
+ 'solid-display.circle-tab',
+ 'solid-display',
+ 'solid-display[order-by="name"]'
+ ];
+ before(() => {
+ cy.clearLocalStorageSnapshot();
+ cy.clearLocalStorage({ domain: null });
+ cy.clearCookies({ domain: null });
+ });
+ beforeEach(() => cy.restoreLocalStorage());
+ afterEach(() => cy.saveLocalStorage());
+ it('should visit user login screend', () => cy.userLogin());
+ it('should login', () => cy.login());
+ describe('Channel Retirement process', () => {
+ let channelsLength;
+ it('should visit the channels list screen', () => {
+ cy.visit('/admin');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/admin');
+ });
+ });
+ it('should visit the last channel edit screen', () => {
+ cy.get(menuQuery.join(' '))
+ .invoke('attr', 'data-src')
+ .then(url => cy.encodeUrl(url).then(id => {
+ cy.visit('/circle/@' + id + '/circle-information/circle-edit');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/circle/@' + id + '/circle-information/circle-edit');
+ });
+ }));
+ });
+ it('should count the number of joined channels', () => {
+ cy.get(menuCountQuery.join(' ')).its('length').then(length => channelsLength = length);
+ });
+ it('should click button to retire the channel', () => {
+ cy.get('solid-multiple[name="members"] solid-delete[data-label="Retirer"] button').click();
+ });
+ it('should stay on channel edit screen', () => {
+ cy.get(menuQuery.join(' '))
+ .invoke('attr', 'data-src')
+ .then(url => cy.encodeUrl(url).then(id => {
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/circle/@' + id + '/circle-information/circle-edit');
+ });
+ }));
+ });
+ it('should check if chennel was retired', () => {
+ cy.get(menuCountQuery.join(' ')).its('length').should(length => {
+ expect(length).to.eq(channelsLength - 1);
+ });
+ });
+ });
+});
diff --git a/cypress/integration/retire-project.spec.js b/cypress/integration/retire-project.spec.js
new file mode 100644
index 0000000..b54b90d
--- /dev/null
+++ b/cypress/integration/retire-project.spec.js
@@ -0,0 +1,63 @@
+///
+/* globals cy, expect */
+
+context('Retire Project Browser Testing', () => {
+ let menuQuery = [
+ 'solid-display.project-tab',
+ 'solid-display:last-child',
+ 'solid-display[order-by="customer.name"]'
+ ],
+ menuCountQuery = [
+ 'solid-display.project-tab',
+ 'solid-display',
+ 'solid-display[order-by="customer.name"]'
+ ];
+ before(() => {
+ cy.clearLocalStorageSnapshot();
+ cy.clearLocalStorage({ domain: null });
+ cy.clearCookies({ domain: null });
+ });
+ beforeEach(() => cy.restoreLocalStorage());
+ afterEach(() => cy.saveLocalStorage());
+ it('should visit user login screend', () => cy.userLogin());
+ it('should login', () => cy.login());
+ describe('Project Retirement process', () => {
+ let projectsLength;
+ it('should visit the projects list screen', () => {
+ cy.visit('/admin/admin-projects');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/admin/admin-projects');
+ });
+ });
+ it('should visit the last project edit screen', () => {
+ cy.get(menuQuery.join(' '))
+ .invoke('attr', 'data-src')
+ .then(url => cy.encodeUrl(url).then(id => {
+ cy.visit('/project/@' + id + '/project-information/project-edit');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/project/@' + id + '/project-information/project-edit');
+ });
+ }));
+ });
+ it('should count the number of joined projects', () => {
+ cy.get(menuCountQuery.join(' ')).its('length').then(length => projectsLength = length);
+ });
+ it('should click button to retire the project', () => {
+ cy.get('solid-multiple[name="members"] solid-delete[data-label="Retirer"] button').click();
+ });
+ it('should stay on project edit screen', () => {
+ cy.get(menuQuery.join(' '))
+ .invoke('attr', 'data-src')
+ .then(url => cy.encodeUrl(url).then(id => {
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/project/@' + id + '/project-information/project-edit');
+ });
+ }));
+ });
+ it('should check if project was retired', () => {
+ cy.get(menuCountQuery.join(' ')).its('length').should(length => {
+ expect(length).to.eq(projectsLength - 1);
+ });
+ });
+ });
+});
diff --git a/cypress/integration/tests.spec.js b/cypress/integration/signin.spec.js
similarity index 70%
rename from cypress/integration/tests.spec.js
rename to cypress/integration/signin.spec.js
index ba53571..53457ed 100644
--- a/cypress/integration/tests.spec.js
+++ b/cypress/integration/signin.spec.js
@@ -1,43 +1,37 @@
///
-
+/* globals cy, expect */
context('Browser testing', () => {
- before(() => {
- cy.clearLocalStorage({ domain: null});
- cy.clearCookies({ domain: null });
+ before(() => {
+ cy.clearLocalStorageSnapshot();
+ cy.clearLocalStorage({ domain: null});
+ cy.clearCookies({ domain: null });
+ });
+ it('should visit user login screen', () => cy.userLogin());
+ describe('Login process', () => {
+ it('should write "admin" on username field and "password" on password field', () => {
+ cy.get('#id_username').type('admin');
+ cy.get('#id_username').should('have.value', 'admin');
+ cy.get('#id_password').type('password');
+ cy.get('#id_password').should('have.value', 'password');
});
- it('visit the homepage', () => {
- cy.visit('/');
+ it('should click on login button', () => {
+ cy.get(':nth-child(1) > .flex-column > [type="submit"]').click();
});
- it('should await for an user login', () => {
+ it('should provide an error, username and password mismatch.', () => {
+ cy.get('.error').should('contain.text', 'Ton nom d\'utilisateur et ton mot de passe ne correspondent pas. Réessaye.');
+ });
+ it('should write "admin" on password field then press the login button', () => {
+ cy.get('#id_password').type('admin');
+ cy.get('#id_password').should('have.value', 'admin');
+ cy.get(':nth-child(1) > .flex-column > [type="submit"]').click();
+ });
+ it('should ask for user permission to access their datas.', () => {
cy.location().should((loc) => {
- expect(loc.pathname).to.eq('/auth/login/');
+ expect(loc.pathname).to.eq('/authorize');
});
+ cy.get('.accept-button').click();
});
- describe('Login process', () => {
- it('should write "admin" on username field and "password" on password field', () => {
- cy.get('#id_username').type('admin');
- cy.get('#id_username').should('have.value', 'admin');
- cy.get('#id_password').type('password');
- cy.get('#id_password').should('have.value', 'password');
- });
- it('should click on login button', () => {
- cy.get(':nth-child(1) > .flex-column > [type="submit"]').click();
- });
- it('should provide an error, username and password mismatch.', () => {
- cy.get('.error').should('contain.text', 'Ton nom d\'utilisateur et ton mot de passe ne correspondent pas. Réessaye.')
- });
- it('should write "admin" on password field then press the login button', () => {
- cy.get('#id_password').type('admin');
- cy.get('#id_password').should('have.value', 'admin');
- cy.get(':nth-child(1) > .flex-column > [type="submit"]').click();
- });
- it('should ask for user permission to access their datas.', () => {
- cy.location().should((loc) => {
- expect(loc.pathname).to.eq('/authorize')
- });
- cy.get('.accept-button').click();
- });
// it('should redirect the user to the app.', () => {
// cy.get('.accept-button').click();
// cy.location().should((loc) => {
@@ -103,6 +97,5 @@ context('Browser testing', () => {
// expect(loc.pathname).to.eq('/auth/login/');
// });
// });
- });
});
-
+});
diff --git a/cypress/integration/signup.spec.js b/cypress/integration/signup.spec.js
new file mode 100644
index 0000000..05ee1b8
--- /dev/null
+++ b/cypress/integration/signup.spec.js
@@ -0,0 +1,61 @@
+///
+/* globals cy */
+
+context('Signup Browser Testing', () => {
+ let username = 'testuser_creation_',
+ email = '',
+ password = 'testpwd';
+ before(() => {
+ cy.randomNum().then(num => {
+ username += num;
+ email = username + '@testemail.com';
+ });
+ cy.clearLocalStorageSnapshot();
+ cy.clearLocalStorage({ domain: null });
+ cy.clearCookies({ domain: null });
+ });
+ it('should visit user login screen', () => cy.userLogin());
+ describe('Signup process', () => {
+ it('should click on signup page link', () => {
+ cy.get('.sib-link.sib-register-link').click();
+ });
+ it('should write incorrect user data', () => {
+ cy.get('#id_username').type('!"#$%&');
+ cy.get('#id_username').should('have.value', '!"#$%&');
+ cy.get('#id_email').type(email.split('.')[0]);
+ cy.get('#id_email').should('have.value', email.split('.')[0]);
+ cy.get('#id_password1').type(password + 'wrong1');
+ cy.get('#id_password1').should('have.value', password + 'wrong1');
+ cy.get('#id_password2').type(password + 'wrong2');
+ cy.get('#id_password2').should('have.value', password + 'wrong2');
+ });
+ it('should click on signup button', () => {
+ cy.get('.sib-registration-btn').click();
+ });
+ it('should provide errors about incorrect user data', () => {
+ cy.get('tbody tr:nth-child(1) ul.errorlist li')
+ .should('contain.text', 'Enter a valid username. This value may contain only letters, numbers, and ./+/-/_ characters.');
+ cy.get('tbody tr:nth-child(2) ul.errorlist li')
+ .should('contain.text', 'Enter a valid email address.');
+ cy.get('tbody tr:nth-child(4) ul.errorlist li')
+ .should('contain.text', 'The two password fields didn\'t match.');
+ });
+ it('should write correct user data', () => {
+ cy.get('#id_username').clear().type(username);
+ cy.get('#id_username').should('have.value', username);
+ cy.get('#id_email').clear().type(email);
+ cy.get('#id_email').should('have.value', email);
+ cy.get('#id_password1').clear().type(password);
+ cy.get('#id_password1').should('have.value', password);
+ cy.get('#id_password2').clear().type(password);
+ cy.get('#id_password2').should('have.value', password);
+ });
+ it('should click on signup button', () => {
+ cy.get('.sib-registration-btn').click();
+ });
+ it('should show email confirmation dialog', () => {
+ cy.contains('h1.text-center', 'Un e-mail d\'activation a été envoyé.').should("exist");
+ cy.contains('p.text-center', 'Vérifie ta boite mail et clique sur le lien pour activer ton compte.').should("exist");
+ });
+ });
+});
diff --git a/cypress/support/commands.js b/cypress/support/commands.js
index ca4d256..cff3858 100644
--- a/cypress/support/commands.js
+++ b/cypress/support/commands.js
@@ -23,3 +23,50 @@
//
// -- This will overwrite an existing command --
// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
+
+/* globals Cypress, cy, expect */
+
+import 'cypress-localstorage-commands';
+
+Cypress.Commands.add('login', () => {
+ cy.fixture('admin.json').then(admin => {
+ cy.get('#id_username').type(admin.username);
+ cy.get('#id_username').should('have.value', admin.username);
+ cy.get('#id_password').type(admin.password);
+ cy.get('#id_password').should('have.value', admin.password);
+ cy.get('.connection-btn').click();
+ cy.location('pathname').should('include', '/authorize');
+ cy.get('.accept-button').click();
+ cy.location().should(location => {
+ expect(location.pathname).to.eq('/');
+ });
+ });
+});
+
+Cypress.Commands.add('userLogin', () => {
+ cy.visit('/');
+ cy.location().should((loc) => {
+ expect(loc.pathname).to.eq('/auth/login/');
+ });
+});
+
+Cypress.Commands.add('encodeUrl', url => {
+ const encodeIdReplacement = [
+ ['~', '~~'],
+ ['.', '~!'],
+ [':', '~@'],
+ ['/', '~_'],
+ ];
+ encodeIdReplacement.forEach(([char, repl]) => {
+ url = url.split(char).join(repl);
+ });
+ return url;
+});
+
+Cypress.Commands.add('randomNum', () => {
+ return Math.floor(1000 + Math.random() * 9000);
+});
+
+Cypress.Commands.add('nextYear', increment => {
+ return new Date().getFullYear() + ( increment || 1 );
+});
diff --git a/cypress/support/index.js b/cypress/support/index.js
index 92fa6f5..c1a0001 100644
--- a/cypress/support/index.js
+++ b/cypress/support/index.js
@@ -13,8 +13,10 @@
// https://on.cypress.io/configuration
// ***********************************************************
+/* globals Cypress */
+
// Import commands.js using ES2015 syntax:
-import './commands'
+import './commands';
//require('cypress-terminal-report').installSupport();
@@ -27,4 +29,9 @@ Cypress.on('uncaught:exception', (err, runnable) => {
return false;
});
-Cypress.on('fail', () => Cypress.runner.abort())
+Cypress.on('fail', (error) => {
+ console.log(error);
+ if ( typeof Cypress.runner.abort == 'function' ) {
+ Cypress.runner.abort();
+ }
+});
diff --git a/make-webmanifest.mjs b/make-webmanifest.mjs
new file mode 100644
index 0000000..097076b
--- /dev/null
+++ b/make-webmanifest.mjs
@@ -0,0 +1,39 @@
+'use strict';
+import fs from 'fs';
+
+if(!fs.existsSync("config.json")) throw "[Error] (Mandatory) Missing config.json file";
+
+let config = JSON.parse(fs.readFileSync('config.json'));
+
+if(!config.clientName) throw "[Error] (Mandatory) Missing clientName on config.json";
+if(!config.clientLogo) throw "[Error] (Mandatory) Missing clientLogo on config.json";
+
+let manifest = {
+ "lang": "fr",
+ "dir": "ltr",
+ "name": config.clientName,
+ "description": `Hubl of ${config.clientName}`,
+ "short_name": config.clientName,
+ "icons": [{
+ "src": config.clientLogo,
+ "purpose": "any"
+ }, {
+ "src": "/images/hubl-icon-192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ }, {
+ "src": "/images/hubl-icon-512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }],
+ "start_url": ".",
+ "display": "standalone",
+ "orientation": "portrait",
+ "background_color": "#fff",
+ 'theme_color': "white"
+}
+
+fs.existsSync("dist") || fs.mkdirSync("dist");
+fs.writeFileSync('dist/manifest.webmanifest', JSON.stringify(manifest, null, 2));
+
+console.log(`Created manifest for ${config.clientName}`);
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 231201a..e1ad312 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,8 +1,8260 @@
{
"name": "hubl",
"version": "1.0.0",
- "lockfileVersion": 1,
+ "lockfileVersion": 2,
"requires": true,
+ "packages": {
+ "": {
+ "version": "1.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/cli": "^7.7.0",
+ "@babel/core": "^7.9.0",
+ "copyfiles": "^2.1.1",
+ "include-media": "^1.4.9",
+ "node-sass": "^4.14.0",
+ "normalize.css": "^8.0.1",
+ "npm-run-all": "^4.1.5",
+ "pug": "^2.0.4",
+ "pug-cli": "^1.0.0-alpha6",
+ "pushstate-server": "^3.1.0"
+ },
+ "devDependencies": {
+ "cypress": "^4.5.0",
+ "cypress-localstorage-commands": "^1.2.1",
+ "cypress-terminal-report": "^1.2.1",
+ "npm-watch": "^0.7.0"
+ }
+ },
+ "node_modules/@babel/cli": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.8.4.tgz",
+ "integrity": "sha512-XXLgAm6LBbaNxaGhMAznXXaxtCWfuv6PIDJ9Alsy9JYTOh+j2jJz+L/162kkfU1j/pTSxK1xGmlwI4pdIMkoag==",
+ "dependencies": {
+ "chokidar": "^2.1.8",
+ "commander": "^4.0.1",
+ "convert-source-map": "^1.1.0",
+ "fs-readdir-recursive": "^1.1.0",
+ "glob": "^7.0.0",
+ "lodash": "^4.17.13",
+ "make-dir": "^2.1.0",
+ "slash": "^2.0.0",
+ "source-map": "^0.5.0"
+ },
+ "bin": {
+ "babel": "bin/babel.js",
+ "babel-external-helpers": "bin/babel-external-helpers.js"
+ },
+ "optionalDependencies": {
+ "chokidar": "^2.1.8"
+ }
+ },
+ "node_modules/@babel/cli/node_modules/commander": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
+ "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
+ "dependencies": {
+ "@babel/highlight": "^7.8.3"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz",
+ "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==",
+ "dependencies": {
+ "@babel/code-frame": "^7.8.3",
+ "@babel/generator": "^7.9.0",
+ "@babel/helper-module-transforms": "^7.9.0",
+ "@babel/helpers": "^7.9.0",
+ "@babel/parser": "^7.9.0",
+ "@babel/template": "^7.8.6",
+ "@babel/traverse": "^7.9.0",
+ "@babel/types": "^7.9.0",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.1",
+ "json5": "^2.1.2",
+ "lodash": "^4.17.13",
+ "resolve": "^1.3.2",
+ "semver": "^5.4.1",
+ "source-map": "^0.5.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core/node_modules/debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/@babel/core/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.9.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
+ "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
+ "dependencies": {
+ "@babel/types": "^7.9.5",
+ "jsesc": "^2.5.1",
+ "lodash": "^4.17.13",
+ "source-map": "^0.5.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.9.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
+ "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
+ "dependencies": {
+ "@babel/helper-get-function-arity": "^7.8.3",
+ "@babel/template": "^7.8.3",
+ "@babel/types": "^7.9.5"
+ }
+ },
+ "node_modules/@babel/helper-get-function-arity": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
+ "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
+ "dependencies": {
+ "@babel/types": "^7.8.3"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz",
+ "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==",
+ "dependencies": {
+ "@babel/types": "^7.8.3"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz",
+ "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==",
+ "dependencies": {
+ "@babel/types": "^7.8.3"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz",
+ "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.8.3",
+ "@babel/helper-replace-supers": "^7.8.6",
+ "@babel/helper-simple-access": "^7.8.3",
+ "@babel/helper-split-export-declaration": "^7.8.3",
+ "@babel/template": "^7.8.6",
+ "@babel/types": "^7.9.0",
+ "lodash": "^4.17.13"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz",
+ "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==",
+ "dependencies": {
+ "@babel/types": "^7.8.3"
+ }
+ },
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.8.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz",
+ "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==",
+ "dependencies": {
+ "@babel/helper-member-expression-to-functions": "^7.8.3",
+ "@babel/helper-optimise-call-expression": "^7.8.3",
+ "@babel/traverse": "^7.8.6",
+ "@babel/types": "^7.8.6"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz",
+ "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==",
+ "dependencies": {
+ "@babel/template": "^7.8.3",
+ "@babel/types": "^7.8.3"
+ }
+ },
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
+ "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
+ "dependencies": {
+ "@babel/types": "^7.8.3"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.9.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz",
+ "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g=="
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.9.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz",
+ "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==",
+ "dependencies": {
+ "@babel/template": "^7.8.3",
+ "@babel/traverse": "^7.9.0",
+ "@babel/types": "^7.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+ "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.9.0",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.9.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
+ "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.8.6",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
+ "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
+ "dependencies": {
+ "@babel/code-frame": "^7.8.3",
+ "@babel/parser": "^7.8.6",
+ "@babel/types": "^7.8.6"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.9.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
+ "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
+ "dependencies": {
+ "@babel/code-frame": "^7.8.3",
+ "@babel/generator": "^7.9.5",
+ "@babel/helper-function-name": "^7.9.5",
+ "@babel/helper-split-export-declaration": "^7.8.3",
+ "@babel/parser": "^7.9.0",
+ "@babel/types": "^7.9.5",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0",
+ "lodash": "^4.17.13"
+ }
+ },
+ "node_modules/@babel/traverse/node_modules/debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/@babel/traverse/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/@babel/types": {
+ "version": "7.9.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+ "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.9.5",
+ "lodash": "^4.17.13",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "node_modules/@cypress/listr-verbose-renderer": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz",
+ "integrity": "sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo=",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^1.1.3",
+ "cli-cursor": "^1.0.2",
+ "date-fns": "^1.27.2",
+ "figures": "^1.7.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@cypress/listr-verbose-renderer/node_modules/ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@cypress/listr-verbose-renderer/node_modules/chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@cypress/listr-verbose-renderer/node_modules/supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@cypress/request": {
+ "version": "2.88.5",
+ "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.5.tgz",
+ "integrity": "sha512-TzEC1XMi1hJkywWpRfD2clreTa/Z+lOrXDCxxBTBPEcY5azdPi56A6Xw+O4tWJnaJH3iIE7G5aDXZC6JgRZLcA==",
+ "dev": true,
+ "dependencies": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.3",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.5.0",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/@cypress/xvfb": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz",
+ "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^3.1.0",
+ "lodash.once": "^4.1.1"
+ }
+ },
+ "node_modules/@cypress/xvfb/node_modules/debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/@cypress/xvfb/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/@samverschueren/stream-to-observable": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz",
+ "integrity": "sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==",
+ "dev": true,
+ "dependencies": {
+ "any-observable": "^0.3.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@sindresorhus/is": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
+ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@szmarczak/http-timer": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
+ "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+ "dev": true,
+ "dependencies": {
+ "defer-to-connect": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@types/babel-types": {
+ "version": "7.0.7",
+ "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz",
+ "integrity": "sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ=="
+ },
+ "node_modules/@types/babylon": {
+ "version": "6.16.5",
+ "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz",
+ "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==",
+ "dependencies": {
+ "@types/babel-types": "*"
+ }
+ },
+ "node_modules/@types/blob-util": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/@types/blob-util/-/blob-util-1.3.3.tgz",
+ "integrity": "sha512-4ahcL/QDnpjWA2Qs16ZMQif7HjGP2cw3AGjHabybjw7Vm1EKu+cfQN1D78BaZbS1WJNa1opSMF5HNMztx7lR0w==",
+ "dev": true
+ },
+ "node_modules/@types/bluebird": {
+ "version": "3.5.29",
+ "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.29.tgz",
+ "integrity": "sha512-kmVtnxTuUuhCET669irqQmPAez4KFnFVKvpleVRyfC3g+SHD1hIkFZcWLim9BVcwUBLO59o8VZE4yGCmTif8Yw==",
+ "dev": true
+ },
+ "node_modules/@types/chai": {
+ "version": "4.2.7",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.7.tgz",
+ "integrity": "sha512-luq8meHGYwvky0O7u0eQZdA7B4Wd9owUCqvbw2m3XCrCU8mplYOujMBbvyS547AxJkC+pGnd0Cm15eNxEUNU8g==",
+ "dev": true
+ },
+ "node_modules/@types/chai-jquery": {
+ "version": "1.1.40",
+ "resolved": "https://registry.npmjs.org/@types/chai-jquery/-/chai-jquery-1.1.40.tgz",
+ "integrity": "sha512-mCNEZ3GKP7T7kftKeIs7QmfZZQM7hslGSpYzKbOlR2a2HCFf9ph4nlMRA9UnuOETeOQYJVhJQK7MwGqNZVyUtQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/chai": "*",
+ "@types/jquery": "*"
+ }
+ },
+ "node_modules/@types/color-name": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
+ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
+ "dev": true
+ },
+ "node_modules/@types/jquery": {
+ "version": "3.3.31",
+ "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.31.tgz",
+ "integrity": "sha512-Lz4BAJihoFw5nRzKvg4nawXPzutkv7wmfQ5121avptaSIXlDNJCUuxZxX/G+9EVidZGuO0UBlk+YjKbwRKJigg==",
+ "dev": true,
+ "dependencies": {
+ "@types/sizzle": "*"
+ }
+ },
+ "node_modules/@types/lodash": {
+ "version": "4.14.149",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.149.tgz",
+ "integrity": "sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ==",
+ "dev": true
+ },
+ "node_modules/@types/minimatch": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
+ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
+ "dev": true
+ },
+ "node_modules/@types/mocha": {
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
+ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==",
+ "dev": true
+ },
+ "node_modules/@types/sinon": {
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-7.5.1.tgz",
+ "integrity": "sha512-EZQUP3hSZQyTQRfiLqelC9NMWd1kqLcmQE0dMiklxBkgi84T+cHOhnKpgk4NnOWpGX863yE6+IaGnOXUNFqDnQ==",
+ "dev": true
+ },
+ "node_modules/@types/sinon-chai": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.3.tgz",
+ "integrity": "sha512-TOUFS6vqS0PVL1I8NGVSNcFaNJtFoyZPXZ5zur+qlhDfOmQECZZM4H4kKgca6O8L+QceX/ymODZASfUfn+y4yQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/chai": "*",
+ "@types/sinon": "*"
+ }
+ },
+ "node_modules/@types/sizzle": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz",
+ "integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==",
+ "dev": true
+ },
+ "node_modules/abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
+ },
+ "node_modules/accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "dependencies": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-globals": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
+ "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
+ "dependencies": {
+ "acorn": "^4.0.4"
+ }
+ },
+ "node_modules/acorn-globals/node_modules/acorn": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
+ "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "node_modules/align-text": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "dependencies": {
+ "kind-of": "^3.0.2",
+ "longest": "^1.0.1",
+ "repeat-string": "^1.5.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/align-text/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+ "engines": {
+ "node": ">=0.4.2"
+ }
+ },
+ "node_modules/ansi-align": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
+ "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^3.0.0"
+ }
+ },
+ "node_modules/ansi-align/node_modules/ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-align/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ansi-align/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-align/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-escapes": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/any-observable": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz",
+ "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "optional": true,
+ "dependencies": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ }
+ },
+ "node_modules/anymatch/node_modules/normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "optional": true,
+ "dependencies": {
+ "remove-trailing-separator": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+ },
+ "node_modules/arch": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz",
+ "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==",
+ "dev": true
+ },
+ "node_modules/are-we-there-yet": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+ "dependencies": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "node_modules/arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
+ },
+ "node_modules/asn1": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "dependencies": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "node_modules/assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/async": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz",
+ "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==",
+ "dev": true
+ },
+ "node_modules/async-each": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
+ "optional": true
+ },
+ "node_modules/async-foreach": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
+ "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "node_modules/atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+ "optional": true,
+ "bin": {
+ "atob": "bin/atob.js"
+ },
+ "engines": {
+ "node": ">= 4.5.0"
+ }
+ },
+ "node_modules/aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/aws4": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
+ "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
+ },
+ "node_modules/babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "dependencies": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
+ }
+ },
+ "node_modules/babel-types": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+ "dependencies": {
+ "babel-runtime": "^6.26.0",
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.4",
+ "to-fast-properties": "^1.0.3"
+ }
+ },
+ "node_modules/babel-types/node_modules/to-fast-properties": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "bin": {
+ "babylon": "bin/babylon.js"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "node_modules/base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "optional": true,
+ "dependencies": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/base/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "optional": true,
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/base/node_modules/is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "optional": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/base/node_modules/is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "optional": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/base/node_modules/is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "optional": true,
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "dependencies": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "optional": true,
+ "dependencies": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
+ "node_modules/block-stream": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+ "dependencies": {
+ "inherits": "~2.0.0"
+ },
+ "engines": {
+ "node": "0.4 || >=0.5.8"
+ }
+ },
+ "node_modules/bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+ "dev": true
+ },
+ "node_modules/boxen": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
+ "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-align": "^3.0.0",
+ "camelcase": "^5.3.1",
+ "chalk": "^3.0.0",
+ "cli-boxes": "^2.2.0",
+ "string-width": "^4.1.0",
+ "term-size": "^2.1.0",
+ "type-fest": "^0.8.1",
+ "widest-line": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/boxen/node_modules/ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/boxen/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/boxen/node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/boxen/node_modules/chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/boxen/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/boxen/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/boxen/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/boxen/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/boxen/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/boxen/node_modules/string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/boxen/node_modules/strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/boxen/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "optional": true,
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "optional": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "dev": true
+ },
+ "node_modules/bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "optional": true,
+ "dependencies": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/cacheable-request": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
+ "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+ "dev": true,
+ "dependencies": {
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^3.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^4.1.0",
+ "responselike": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cacheable-request/node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cacheable-request/node_modules/lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cachedir": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz",
+ "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "dependencies": {
+ "camelcase": "^2.0.0",
+ "map-obj": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+ },
+ "node_modules/center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "dependencies": {
+ "align-text": "^0.1.3",
+ "lazy-cache": "^1.0.3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/character-parser": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
+ "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=",
+ "dependencies": {
+ "is-regex": "^1.0.3"
+ }
+ },
+ "node_modules/check-more-types": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz",
+ "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+ "optional": true,
+ "dependencies": {
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "fsevents": "^1.2.7",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.3",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "normalize-path": "^3.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.1"
+ }
+ },
+ "node_modules/ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
+ "dev": true
+ },
+ "node_modules/class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "optional": true,
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/class-utils/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "optional": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/clean-css": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz",
+ "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==",
+ "dependencies": {
+ "source-map": "~0.6.0"
+ },
+ "engines": {
+ "node": ">= 4.0"
+ }
+ },
+ "node_modules/clean-css/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/cli-boxes": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
+ "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/cli-cursor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+ "dev": true,
+ "dependencies": {
+ "restore-cursor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/cli-table3": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz",
+ "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==",
+ "dev": true,
+ "dependencies": {
+ "colors": "^1.1.2",
+ "object-assign": "^4.1.0",
+ "string-width": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "optionalDependencies": {
+ "colors": "^1.1.2"
+ }
+ },
+ "node_modules/cli-table3/node_modules/ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cli-table3/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cli-table3/node_modules/string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "dependencies": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cli-table3/node_modules/strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cli-truncate": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz",
+ "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=",
+ "dev": true,
+ "dependencies": {
+ "slice-ansi": "0.0.4",
+ "string-width": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "dependencies": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "node_modules/clone-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
+ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+ "dev": true,
+ "dependencies": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "node_modules/code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "optional": true,
+ "dependencies": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ },
+ "node_modules/colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
+ "dev": true,
+ "optional": true,
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ },
+ "node_modules/common-tags": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz",
+ "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "optional": true
+ },
+ "node_modules/compressible": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
+ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
+ "dependencies": {
+ "mime-db": ">= 1.43.0 < 2"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/compression": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz",
+ "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==",
+ "dependencies": {
+ "accepts": "~1.3.5",
+ "bytes": "3.0.0",
+ "compressible": "~2.0.14",
+ "debug": "2.6.9",
+ "on-headers": "~1.0.1",
+ "safe-buffer": "5.1.2",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "node_modules/concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "engines": [
+ "node >= 0.8"
+ ],
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "node_modules/configstore": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
+ "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
+ "dev": true,
+ "dependencies": {
+ "dot-prop": "^5.2.0",
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^3.0.0",
+ "unique-string": "^2.0.0",
+ "write-file-atomic": "^3.0.0",
+ "xdg-basedir": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/configstore/node_modules/make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/configstore/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/connect": {
+ "version": "3.6.6",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz",
+ "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=",
+ "dependencies": {
+ "debug": "2.6.9",
+ "finalhandler": "1.1.0",
+ "parseurl": "~1.3.2",
+ "utils-merge": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/connect-static-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/connect-static-file/-/connect-static-file-2.0.0.tgz",
+ "integrity": "sha512-5T375Jo/uradjCNDN07uyMNepcADZzPIUoxg+Th/eVbVoWbc+ULhwaK7Ssluby2YwDZqBh4JqHXrP23LagB4Vw==",
+ "dependencies": {
+ "accepts": "^1.2.5",
+ "mime": "^1.3.4",
+ "send": "^0.16.0"
+ }
+ },
+ "node_modules/console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
+ },
+ "node_modules/constantinople": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz",
+ "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==",
+ "dependencies": {
+ "@types/babel-types": "^7.0.0",
+ "@types/babylon": "^6.16.2",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+ "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
+ "dependencies": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "node_modules/copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/copyfiles": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.2.0.tgz",
+ "integrity": "sha512-iJbHJI+8OKqsq+4JF0rqgRkZzo++jqO6Wf4FUU1JM41cJF6JcY5968XyF4tm3Kkm7ZOMrqlljdm8N9oyY5raGw==",
+ "dependencies": {
+ "glob": "^7.0.5",
+ "minimatch": "^3.0.3",
+ "mkdirp": "^0.5.1",
+ "noms": "0.0.0",
+ "through2": "^2.0.1",
+ "yargs": "^13.2.4"
+ },
+ "bin": {
+ "copyfiles": "copyfiles",
+ "copyup": "copyfiles"
+ }
+ },
+ "node_modules/copyfiles/node_modules/ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/copyfiles/node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/copyfiles/node_modules/cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dependencies": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "node_modules/copyfiles/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/copyfiles/node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/copyfiles/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/copyfiles/node_modules/require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ },
+ "node_modules/copyfiles/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/copyfiles/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/copyfiles/node_modules/which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
+ },
+ "node_modules/copyfiles/node_modules/wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dependencies": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/copyfiles/node_modules/y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
+ },
+ "node_modules/copyfiles/node_modules/yargs": {
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz",
+ "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==",
+ "dependencies": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.1"
+ }
+ },
+ "node_modules/copyfiles/node_modules/yargs-parser": {
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
+ "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ },
+ "node_modules/core-js": {
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
+ "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==",
+ "hasInstallScript": true
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "node_modules/cross-spawn": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
+ "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
+ "dependencies": {
+ "lru-cache": "^4.0.1",
+ "which": "^1.2.9"
+ }
+ },
+ "node_modules/crypto-random-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
+ "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "dependencies": {
+ "array-find-index": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/cypress": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.5.0.tgz",
+ "integrity": "sha512-2A4g5FW5d2fHzq8HKUGAMVTnW6P8nlWYQALiCoGN4bqBLvgwhYM/oG9oKc2CS6LnvgHFiKivKzpm9sfk3uU3zQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "@cypress/listr-verbose-renderer": "0.4.1",
+ "@cypress/request": "2.88.5",
+ "@cypress/xvfb": "1.2.4",
+ "@types/blob-util": "1.3.3",
+ "@types/bluebird": "3.5.29",
+ "@types/chai": "4.2.7",
+ "@types/chai-jquery": "1.1.40",
+ "@types/jquery": "3.3.31",
+ "@types/lodash": "4.14.149",
+ "@types/minimatch": "3.0.3",
+ "@types/mocha": "5.2.7",
+ "@types/sinon": "7.5.1",
+ "@types/sinon-chai": "3.2.3",
+ "@types/sizzle": "2.3.2",
+ "arch": "2.1.1",
+ "bluebird": "3.7.2",
+ "cachedir": "2.3.0",
+ "chalk": "2.4.2",
+ "check-more-types": "2.24.0",
+ "cli-table3": "0.5.1",
+ "commander": "4.1.0",
+ "common-tags": "1.8.0",
+ "debug": "4.1.1",
+ "eventemitter2": "4.1.2",
+ "execa": "1.0.0",
+ "executable": "4.1.1",
+ "extract-zip": "1.7.0",
+ "fs-extra": "8.1.0",
+ "getos": "3.1.4",
+ "is-ci": "2.0.0",
+ "is-installed-globally": "0.1.0",
+ "lazy-ass": "1.6.0",
+ "listr": "0.14.3",
+ "lodash": "4.17.15",
+ "log-symbols": "3.0.0",
+ "minimist": "1.2.5",
+ "moment": "2.24.0",
+ "ospath": "1.2.2",
+ "pretty-bytes": "5.3.0",
+ "ramda": "0.26.1",
+ "request-progress": "3.0.0",
+ "supports-color": "7.1.0",
+ "tmp": "0.1.0",
+ "untildify": "4.0.0",
+ "url": "0.11.0",
+ "yauzl": "2.10.0"
+ },
+ "bin": {
+ "cypress": "bin/cypress"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/cypress-localstorage-commands": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/cypress-localstorage-commands/-/cypress-localstorage-commands-1.2.1.tgz",
+ "integrity": "sha512-wWGElZS5fHAQDonZM8xtOA1tM+bTBUdwEMm6XrshLMKjq8Nxw4+Ysbl9/Yc+gZyv66EQe4hPNDLWANnp/zPkcA==",
+ "dev": true,
+ "engines": {
+ "node": "10.x || 12.x || 13.x || 14.x"
+ }
+ },
+ "node_modules/cypress-terminal-report": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/cypress-terminal-report/-/cypress-terminal-report-1.2.1.tgz",
+ "integrity": "sha512-Kmtdw3h+eJo5OxDRD0OvrV8tZu3vj9T2BM1uGcoVtNFjH7zT5RIAaM0mQp00+Wp3heFVtcuBNIxx7fxm8TNtiw==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^3.0.0",
+ "methods": "^1.1.2"
+ }
+ },
+ "node_modules/cypress-terminal-report/node_modules/ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "dependencies": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cypress-terminal-report/node_modules/chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cypress-terminal-report/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/cypress-terminal-report/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/cypress-terminal-report/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cypress-terminal-report/node_modules/supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cypress/node_modules/commander": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.0.tgz",
+ "integrity": "sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/cypress/node_modules/debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/cypress/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cypress/node_modules/minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+ "dev": true
+ },
+ "node_modules/cypress/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/cypress/node_modules/supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/date-fns": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz",
+ "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==",
+ "dev": true
+ },
+ "node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "dev": true,
+ "dependencies": {
+ "mimic-response": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/defer-to-connect": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
+ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
+ "dev": true
+ },
+ "node_modules/define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dependencies": {
+ "object-keys": "^1.0.12"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "optional": true,
+ "dependencies": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "optional": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "optional": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "optional": true,
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
+ },
+ "node_modules/depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+ },
+ "node_modules/doctypes": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
+ "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk="
+ },
+ "node_modules/dot-prop": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
+ "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
+ "dev": true,
+ "dependencies": {
+ "is-obj": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/duplexer3": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
+ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
+ "dev": true
+ },
+ "node_modules/ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "dependencies": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ },
+ "node_modules/elegant-spinner": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz",
+ "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+ },
+ "node_modules/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/es-abstract": {
+ "version": "1.17.4",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
+ "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
+ "dependencies": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-regex": "^1.0.5",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.1",
+ "string.prototype.trimright": "^2.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-abstract/node_modules/is-regex": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+ "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "dependencies": {
+ "has": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dependencies": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/escape-goat": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
+ "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/eventemitter2": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-4.1.2.tgz",
+ "integrity": "sha1-DhqEd6+CGm7zmVsxG/dMI6UkfxU=",
+ "dev": true
+ },
+ "node_modules/execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/execa/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dev": true,
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/executable": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz",
+ "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==",
+ "dev": true,
+ "dependencies": {
+ "pify": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/exit-hook": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
+ "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "optional": true,
+ "dependencies": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "optional": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "optional": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "node_modules/extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "optional": true,
+ "dependencies": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extend-shallow/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "optional": true,
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "optional": true,
+ "dependencies": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "optional": true,
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "optional": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "optional": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "optional": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "optional": true,
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extract-zip": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
+ "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==",
+ "dev": true,
+ "dependencies": {
+ "concat-stream": "^1.6.2",
+ "debug": "^2.6.9",
+ "mkdirp": "^0.5.4",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "extract-zip": "cli.js"
+ }
+ },
+ "node_modules/extract-zip/node_modules/minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+ "dev": true
+ },
+ "node_modules/extract-zip/node_modules/mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.5"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "engines": [
+ "node >=0.6.0"
+ ]
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+ "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ },
+ "node_modules/fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
+ "dev": true,
+ "dependencies": {
+ "pend": "~1.2.0"
+ }
+ },
+ "node_modules/figures": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5",
+ "object-assign": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+ "optional": true
+ },
+ "node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "optional": true,
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "optional": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
+ "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.1",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.2",
+ "statuses": "~1.3.1",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dependencies": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 0.12"
+ }
+ },
+ "node_modules/fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "optional": true,
+ "dependencies": {
+ "map-cache": "^0.2.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/fs-extra/node_modules/graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+ "dev": true
+ },
+ "node_modules/fs-readdir-recursive": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
+ "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA=="
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "node_modules/fsevents": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz",
+ "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==",
+ "bundleDependencies": [
+ "node-pre-gyp"
+ ],
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "dependencies": {
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1",
+ "node-pre-gyp": "*"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/are-we-there-yet": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "node_modules/fsevents/node_modules/balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/fsevents/node_modules/chownr": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
+ "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/fsevents/node_modules/deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/fsevents/node_modules/fs-minipass": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
+ "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^2.6.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/fsevents/node_modules/has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/ignore-walk": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz",
+ "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "node_modules/fsevents/node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/fsevents/node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/ini": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/fsevents/node_modules/is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "number-is-nan": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/fsevents/node_modules/minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/minipass": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
+ "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/minizlib": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
+ "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "minipass": "^2.9.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "minimist": "0.0.8"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/fsevents/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/needle": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz",
+ "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "debug": "^3.2.6",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
+ },
+ "bin": {
+ "needle": "bin/needle"
+ },
+ "engines": {
+ "node": ">= 4.4.x"
+ }
+ },
+ "node_modules/fsevents/node_modules/node-pre-gyp": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz",
+ "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==",
+ "inBundle": true,
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.1",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.2.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4.4.2"
+ },
+ "bin": {
+ "node-pre-gyp": "bin/node-pre-gyp"
+ }
+ },
+ "node_modules/fsevents/node_modules/nopt": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ }
+ },
+ "node_modules/fsevents/node_modules/npm-bundled": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz",
+ "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "node_modules/fsevents/node_modules/npm-normalize-package-bin": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
+ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/npm-packlist": {
+ "version": "1.4.7",
+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.7.tgz",
+ "integrity": "sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1"
+ }
+ },
+ "node_modules/fsevents/node_modules/npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/fsevents/node_modules/os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "inBundle": true,
+ "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
+ "optional": true,
+ "dependencies": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "bin": {
+ "rc": "cli.js"
+ }
+ },
+ "node_modules/fsevents/node_modules/rc/node_modules/minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/fsevents/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/fsevents/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/fsevents/node_modules/set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fsevents/node_modules/tar": {
+ "version": "4.4.13",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
+ "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.8.6",
+ "minizlib": "^1.2.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=4.5"
+ }
+ },
+ "node_modules/fsevents/node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "node_modules/fsevents/node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fsevents/node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "inBundle": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/fstream": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
+ "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "inherits": "~2.0.0",
+ "mkdirp": ">=0.5 0",
+ "rimraf": "2"
+ },
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "node_modules/gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "dependencies": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "node_modules/gaze": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
+ "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
+ "dependencies": {
+ "globule": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.1",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz",
+ "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
+ },
+ "node_modules/get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/getos": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.4.tgz",
+ "integrity": "sha512-UORPzguEB/7UG5hqiZai8f0vQ7hzynMQyJLxStoQ8dPGAcmgsfXOPA4iE/fGtweHYkK+z4zc9V0g+CIFRf5HYw==",
+ "dev": true,
+ "dependencies": {
+ "async": "^3.1.0"
+ }
+ },
+ "node_modules/getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "optional": true,
+ "dependencies": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ }
+ },
+ "node_modules/glob-parent/node_modules/is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "optional": true,
+ "dependencies": {
+ "is-extglob": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/global-dirs": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
+ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
+ "dev": true,
+ "dependencies": {
+ "ini": "^1.3.4"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/globule": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz",
+ "integrity": "sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==",
+ "dependencies": {
+ "glob": "~7.1.1",
+ "lodash": "~4.17.12",
+ "minimatch": "~3.0.2"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/got": {
+ "version": "9.6.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
+ "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+ "dev": true,
+ "dependencies": {
+ "@sindresorhus/is": "^0.14.0",
+ "@szmarczak/http-timer": "^1.1.2",
+ "cacheable-request": "^6.0.0",
+ "decompress-response": "^3.3.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^4.1.0",
+ "lowercase-keys": "^1.0.1",
+ "mimic-response": "^1.0.1",
+ "p-cancelable": "^1.0.0",
+ "to-readable-stream": "^1.0.0",
+ "url-parse-lax": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/har-validator": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+ "dependencies": {
+ "ajv": "^6.5.5",
+ "har-schema": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
+ },
+ "node_modules/has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "optional": true,
+ "dependencies": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "optional": true,
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values/node_modules/kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "optional": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-yarn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
+ "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/hosted-git-info": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
+ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w=="
+ },
+ "node_modules/http-cache-semantics": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
+ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
+ "dev": true
+ },
+ "node_modules/http-errors": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+ "dependencies": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": ">= 1.4.0 < 2"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/http-errors/node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ },
+ "engines": {
+ "node": ">=0.8",
+ "npm": ">=1.3.7"
+ }
+ },
+ "node_modules/ignore-by-default": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
+ "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=",
+ "dev": true
+ },
+ "node_modules/import-lazy": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
+ "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/in-publish": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz",
+ "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==",
+ "bin": {
+ "in-install": "in-install.js",
+ "in-publish": "in-publish.js",
+ "not-in-install": "not-in-install.js",
+ "not-in-publish": "not-in-publish.js"
+ }
+ },
+ "node_modules/include-media": {
+ "version": "1.4.9",
+ "resolved": "https://registry.npmjs.org/include-media/-/include-media-1.4.9.tgz",
+ "integrity": "sha1-0AILe+PrLVSGiiCUNZXOOA4LxDs="
+ },
+ "node_modules/indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dependencies": {
+ "repeating": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "node_modules/ini": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/invert-kv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "optional": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-accessor-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "optional": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+ },
+ "node_modules/is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "optional": true,
+ "dependencies": {
+ "binary-extensions": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "node_modules/is-callable": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
+ "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/is-ci": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
+ "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+ "dev": true,
+ "dependencies": {
+ "ci-info": "^2.0.0"
+ },
+ "bin": {
+ "is-ci": "bin.js"
+ }
+ },
+ "node_modules/is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "optional": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-data-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "optional": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-date-object": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
+ "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "optional": true,
+ "dependencies": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-descriptor/node_modules/kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-expression": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz",
+ "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=",
+ "dependencies": {
+ "acorn": "~4.0.2",
+ "object-assign": "^4.0.1"
+ }
+ },
+ "node_modules/is-expression/node_modules/acorn": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "devOptional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-finite": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
+ "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dependencies": {
+ "number-is-nan": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "devOptional": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-installed-globally": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
+ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
+ "dev": true,
+ "dependencies": {
+ "global-dirs": "^0.1.0",
+ "is-path-inside": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/is-npm": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz",
+ "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "optional": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "optional": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-observable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz",
+ "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==",
+ "dev": true,
+ "dependencies": {
+ "symbol-observable": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
+ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+ "dev": true,
+ "dependencies": {
+ "path-is-inside": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "optional": true,
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
+ },
+ "node_modules/is-regex": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+ "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "dependencies": {
+ "has": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-symbol": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
+ "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "dependencies": {
+ "has-symbols": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ },
+ "node_modules/is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
+ },
+ "node_modules/is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-yarn-global": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
+ "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==",
+ "dev": true
+ },
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ },
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+ },
+ "node_modules/js-base64": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz",
+ "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ=="
+ },
+ "node_modules/js-stringify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz",
+ "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds="
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ },
+ "node_modules/jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
+ },
+ "node_modules/jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
+ "dev": true
+ },
+ "node_modules/json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
+ },
+ "node_modules/json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "node_modules/json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
+ },
+ "node_modules/json5": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
+ "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
+ "dependencies": {
+ "minimist": "^1.2.5"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/json5/node_modules/minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+ },
+ "node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "dependencies": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "node_modules/jstransformer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz",
+ "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=",
+ "dependencies": {
+ "is-promise": "^2.0.0",
+ "promise": "^7.0.1"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
+ "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+ "dev": true,
+ "dependencies": {
+ "json-buffer": "3.0.0"
+ }
+ },
+ "node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/latest-version": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
+ "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
+ "dev": true,
+ "dependencies": {
+ "package-json": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/lazy-ass": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz",
+ "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=",
+ "dev": true,
+ "engines": {
+ "node": "> 0.8"
+ }
+ },
+ "node_modules/lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/lcid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "dependencies": {
+ "invert-kv": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/listr": {
+ "version": "0.14.3",
+ "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz",
+ "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==",
+ "dev": true,
+ "dependencies": {
+ "@samverschueren/stream-to-observable": "^0.3.0",
+ "is-observable": "^1.1.0",
+ "is-promise": "^2.1.0",
+ "is-stream": "^1.1.0",
+ "listr-silent-renderer": "^1.1.1",
+ "listr-update-renderer": "^0.5.0",
+ "listr-verbose-renderer": "^0.5.0",
+ "p-map": "^2.0.0",
+ "rxjs": "^6.3.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/listr-silent-renderer": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz",
+ "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/listr-update-renderer": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz",
+ "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^1.1.3",
+ "cli-truncate": "^0.2.1",
+ "elegant-spinner": "^1.0.1",
+ "figures": "^1.7.0",
+ "indent-string": "^3.0.0",
+ "log-symbols": "^1.0.2",
+ "log-update": "^2.3.0",
+ "strip-ansi": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/listr-update-renderer/node_modules/ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/listr-update-renderer/node_modules/chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/listr-update-renderer/node_modules/indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+ "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/listr-update-renderer/node_modules/log-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
+ "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/listr-update-renderer/node_modules/supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/listr-verbose-renderer": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz",
+ "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^2.4.1",
+ "cli-cursor": "^2.1.0",
+ "date-fns": "^1.27.2",
+ "figures": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/listr-verbose-renderer/node_modules/cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+ "dev": true,
+ "dependencies": {
+ "restore-cursor": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/listr-verbose-renderer/node_modules/figures": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/listr-verbose-renderer/node_modules/onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/listr-verbose-renderer/node_modules/restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "dev": true,
+ "dependencies": {
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/locate-path/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
+ },
+ "node_modules/lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=",
+ "dev": true
+ },
+ "node_modules/log-symbols": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz",
+ "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^2.4.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/log-update": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz",
+ "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=",
+ "dev": true,
+ "dependencies": {
+ "ansi-escapes": "^3.0.0",
+ "cli-cursor": "^2.0.0",
+ "wrap-ansi": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/log-update/node_modules/ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/log-update/node_modules/cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+ "dev": true,
+ "dependencies": {
+ "restore-cursor": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/log-update/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/log-update/node_modules/onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/log-update/node_modules/restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "dev": true,
+ "dependencies": {
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/log-update/node_modules/string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "dependencies": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/log-update/node_modules/strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/log-update/node_modules/wrap-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz",
+ "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/longest": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "dependencies": {
+ "currently-unhandled": "^0.4.1",
+ "signal-exit": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "dependencies": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dependencies": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/make-dir/node_modules/pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "optional": true,
+ "dependencies": {
+ "object-visit": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/memorystream": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
+ "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=",
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "dependencies": {
+ "camelcase-keys": "^2.0.0",
+ "decamelize": "^1.1.2",
+ "loud-rejection": "^1.0.0",
+ "map-obj": "^1.0.1",
+ "minimist": "^1.1.3",
+ "normalize-package-data": "^2.3.4",
+ "object-assign": "^4.0.1",
+ "read-pkg-up": "^1.0.1",
+ "redent": "^1.0.0",
+ "trim-newlines": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/meow/node_modules/minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+ },
+ "node_modules/methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "optional": true,
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.43.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
+ "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.26",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
+ "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
+ "dependencies": {
+ "mime-db": "1.43.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ },
+ "node_modules/mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "optional": true,
+ "dependencies": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mixin-deep/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "optional": true,
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dependencies": {
+ "minimist": "0.0.8"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/moment": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
+ "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "node_modules/nan": {
+ "version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
+ "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
+ },
+ "node_modules/nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "optional": true,
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ },
+ "node_modules/node-gyp": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
+ "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
+ "dependencies": {
+ "fstream": "^1.0.0",
+ "glob": "^7.0.3",
+ "graceful-fs": "^4.1.2",
+ "mkdirp": "^0.5.0",
+ "nopt": "2 || 3",
+ "npmlog": "0 || 1 || 2 || 3 || 4",
+ "osenv": "0",
+ "request": "^2.87.0",
+ "rimraf": "2",
+ "semver": "~5.3.0",
+ "tar": "^2.0.0",
+ "which": "1"
+ },
+ "bin": {
+ "node-gyp": "bin/node-gyp.js"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/node-gyp/node_modules/semver": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/node-sass": {
+ "version": "4.14.0",
+ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.0.tgz",
+ "integrity": "sha512-AxqU+DFpk0lEz95sI6jO0hU0Rwyw7BXVEv6o9OItoXLyeygPeaSpiV4rwQb10JiTghHaa0gZeD21sz+OsQluaw==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "async-foreach": "^0.1.3",
+ "chalk": "^1.1.1",
+ "cross-spawn": "^3.0.0",
+ "gaze": "^1.0.0",
+ "get-stdin": "^4.0.1",
+ "glob": "^7.0.3",
+ "in-publish": "^2.0.0",
+ "lodash": "^4.17.15",
+ "meow": "^3.7.0",
+ "mkdirp": "^0.5.1",
+ "nan": "^2.13.2",
+ "node-gyp": "^3.8.0",
+ "npmlog": "^4.0.0",
+ "request": "^2.88.0",
+ "sass-graph": "^2.2.4",
+ "stdout-stream": "^1.4.0",
+ "true-case-path": "^1.0.2"
+ },
+ "bin": {
+ "node-sass": "bin/node-sass"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/node-sass/node_modules/ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/node-sass/node_modules/chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dependencies": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/node-sass/node_modules/supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/nodemon": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.6.tgz",
+ "integrity": "sha512-4I3YDSKXg6ltYpcnZeHompqac4E6JeAMpGm8tJnB9Y3T0ehasLa4139dJOcCrB93HHrUMsCrKtoAlXTqT5n4AQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "chokidar": "^3.2.2",
+ "debug": "^3.2.6",
+ "ignore-by-default": "^1.0.1",
+ "minimatch": "^3.0.4",
+ "pstree.remy": "^1.1.7",
+ "semver": "^5.7.1",
+ "supports-color": "^5.5.0",
+ "touch": "^3.1.0",
+ "undefsafe": "^2.0.3",
+ "update-notifier": "^4.1.0"
+ },
+ "bin": {
+ "nodemon": "bin/nodemon.js"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/nodemon/node_modules/anymatch": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+ "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/nodemon/node_modules/binary-extensions": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
+ "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/nodemon/node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/nodemon/node_modules/chokidar": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz",
+ "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==",
+ "dev": true,
+ "dependencies": {
+ "anymatch": "~3.1.1",
+ "braces": "~3.0.2",
+ "fsevents": "~2.1.2",
+ "glob-parent": "~5.1.0",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.5.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.1.2"
+ }
+ },
+ "node_modules/nodemon/node_modules/debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/nodemon/node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/nodemon/node_modules/fsevents": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+ "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/nodemon/node_modules/glob-parent": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+ "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/nodemon/node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/nodemon/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/nodemon/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/nodemon/node_modules/readdirp": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
+ "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
+ "dev": true,
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/nodemon/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/nodemon/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/noms": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz",
+ "integrity": "sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "readable-stream": "~1.0.31"
+ }
+ },
+ "node_modules/noms/node_modules/isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "node_modules/noms/node_modules/readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "node_modules/noms/node_modules/string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "node_modules/nopt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+ "dependencies": {
+ "abbrev": "1"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ }
+ },
+ "node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dependencies": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "node_modules/normalize-package-data/node_modules/resolve": {
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz",
+ "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==",
+ "dependencies": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "devOptional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-url": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
+ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/normalize.css": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz",
+ "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg=="
+ },
+ "node_modules/npm-run-all": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz",
+ "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "chalk": "^2.4.1",
+ "cross-spawn": "^6.0.5",
+ "memorystream": "^0.3.1",
+ "minimatch": "^3.0.4",
+ "pidtree": "^0.3.0",
+ "read-pkg": "^3.0.0",
+ "shell-quote": "^1.6.1",
+ "string.prototype.padend": "^3.0.0"
+ },
+ "bin": {
+ "npm-run-all": "bin/npm-run-all/index.js",
+ "run-p": "bin/run-p/index.js",
+ "run-s": "bin/run-s/index.js"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/npm-run-all/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/npm-run-all/node_modules/load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/npm-run-all/node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/npm-run-all/node_modules/path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dependencies": {
+ "pify": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/npm-run-all/node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/npm-run-all/node_modules/read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "dependencies": {
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/npm-run-all/node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/npm-watch": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/npm-watch/-/npm-watch-0.7.0.tgz",
+ "integrity": "sha512-AN2scNyMljMGkn0mIkaRRk19I7Vx0qTK6GmsIcDblX5YRbSsoJORTAtrceICSx7Om9q48NWcwm/R0t6E7F4Ocg==",
+ "dev": true,
+ "dependencies": {
+ "nodemon": "^2.0.3",
+ "through2": "^2.0.0"
+ },
+ "bin": {
+ "npm-watch": "cli.js"
+ }
+ },
+ "node_modules/npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "dependencies": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "node_modules/number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "optional": true,
+ "dependencies": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "optional": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "optional": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+ "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw=="
+ },
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "optional": true,
+ "dependencies": {
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object.assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+ "dependencies": {
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "optional": true,
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/os-locale": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+ "dependencies": {
+ "lcid": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "dependencies": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "node_modules/ospath": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz",
+ "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=",
+ "dev": true
+ },
+ "node_modules/p-cancelable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
+ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
+ "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+ "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/package-json": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
+ "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
+ "dev": true,
+ "dependencies": {
+ "got": "^9.6.0",
+ "registry-auth-token": "^4.0.0",
+ "registry-url": "^5.0.0",
+ "semver": "^6.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/package-json/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dependencies": {
+ "error-ex": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+ "optional": true
+ },
+ "node_modules/path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dependencies": {
+ "pinkie-promise": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
+ },
+ "node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
+ },
+ "node_modules/path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
+ "dev": true
+ },
+ "node_modules/performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+ },
+ "node_modules/picomatch": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+ "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/pidtree": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz",
+ "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==",
+ "bin": {
+ "pidtree": "bin/pidtree.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dependencies": {
+ "pinkie": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pretty-bytes": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz",
+ "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
+ },
+ "node_modules/promise": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "dependencies": {
+ "asap": "~2.0.3"
+ }
+ },
+ "node_modules/pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
+ },
+ "node_modules/psl": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
+ "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
+ },
+ "node_modules/pstree.remy": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
+ "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
+ "dev": true
+ },
+ "node_modules/pug": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz",
+ "integrity": "sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw==",
+ "dependencies": {
+ "pug-code-gen": "^2.0.2",
+ "pug-filters": "^3.1.1",
+ "pug-lexer": "^4.1.0",
+ "pug-linker": "^3.0.6",
+ "pug-load": "^2.0.12",
+ "pug-parser": "^5.0.1",
+ "pug-runtime": "^2.0.5",
+ "pug-strip-comments": "^1.0.4"
+ }
+ },
+ "node_modules/pug-attrs": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz",
+ "integrity": "sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==",
+ "dependencies": {
+ "constantinople": "^3.0.1",
+ "js-stringify": "^1.0.1",
+ "pug-runtime": "^2.0.5"
+ }
+ },
+ "node_modules/pug-cli": {
+ "version": "1.0.0-alpha6",
+ "resolved": "https://registry.npmjs.org/pug-cli/-/pug-cli-1.0.0-alpha6.tgz",
+ "integrity": "sha1-HKU56krA67ac5KroSu7V1k/+ZQE=",
+ "dependencies": {
+ "chalk": "^1.0.0",
+ "commander": "^2.8.1",
+ "mkdirp": "^0.5.1",
+ "pug": "^2.0.0-alpha7"
+ },
+ "bin": {
+ "pug": "index.js"
+ }
+ },
+ "node_modules/pug-cli/node_modules/ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pug-cli/node_modules/chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dependencies": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pug-cli/node_modules/supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/pug-code-gen": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.2.tgz",
+ "integrity": "sha512-kROFWv/AHx/9CRgoGJeRSm+4mLWchbgpRzTEn8XCiwwOy6Vh0gAClS8Vh5TEJ9DBjaP8wCjS3J6HKsEsYdvaCw==",
+ "dependencies": {
+ "constantinople": "^3.1.2",
+ "doctypes": "^1.1.0",
+ "js-stringify": "^1.0.1",
+ "pug-attrs": "^2.0.4",
+ "pug-error": "^1.3.3",
+ "pug-runtime": "^2.0.5",
+ "void-elements": "^2.0.1",
+ "with": "^5.0.0"
+ }
+ },
+ "node_modules/pug-error": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz",
+ "integrity": "sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ=="
+ },
+ "node_modules/pug-filters": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.1.tgz",
+ "integrity": "sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg==",
+ "dependencies": {
+ "clean-css": "^4.1.11",
+ "constantinople": "^3.0.1",
+ "jstransformer": "1.0.0",
+ "pug-error": "^1.3.3",
+ "pug-walk": "^1.1.8",
+ "resolve": "^1.1.6",
+ "uglify-js": "^2.6.1"
+ }
+ },
+ "node_modules/pug-lexer": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz",
+ "integrity": "sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==",
+ "dependencies": {
+ "character-parser": "^2.1.1",
+ "is-expression": "^3.0.0",
+ "pug-error": "^1.3.3"
+ }
+ },
+ "node_modules/pug-linker": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.6.tgz",
+ "integrity": "sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg==",
+ "dependencies": {
+ "pug-error": "^1.3.3",
+ "pug-walk": "^1.1.8"
+ }
+ },
+ "node_modules/pug-load": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz",
+ "integrity": "sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==",
+ "dependencies": {
+ "object-assign": "^4.1.0",
+ "pug-walk": "^1.1.8"
+ }
+ },
+ "node_modules/pug-parser": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.1.tgz",
+ "integrity": "sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA==",
+ "dependencies": {
+ "pug-error": "^1.3.3",
+ "token-stream": "0.0.1"
+ }
+ },
+ "node_modules/pug-runtime": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz",
+ "integrity": "sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw=="
+ },
+ "node_modules/pug-strip-comments": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz",
+ "integrity": "sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==",
+ "dependencies": {
+ "pug-error": "^1.3.3"
+ }
+ },
+ "node_modules/pug-walk": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz",
+ "integrity": "sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA=="
+ },
+ "node_modules/pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pupa": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz",
+ "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==",
+ "dev": true,
+ "dependencies": {
+ "escape-goat": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pushstate-server": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/pushstate-server/-/pushstate-server-3.1.0.tgz",
+ "integrity": "sha512-CVUZoKFInwsjiTmg2UdLyBsF3ciR0vf47x5/+KYv0xlzDZqCeI9APwblSYvCDroUQUTnmoDTZKNe5u/ste1D3Q==",
+ "dependencies": {
+ "compression": "1.7.3",
+ "connect": "3.6.6",
+ "connect-static-file": "2.0.0",
+ "minimist": "1.2.0",
+ "serve-static": "1.13.2"
+ },
+ "bin": {
+ "pushstate-server": "bin/pushstate-server"
+ }
+ },
+ "node_modules/pushstate-server/node_modules/minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ },
+ "node_modules/qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
+ "node_modules/ramda": {
+ "version": "0.26.1",
+ "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz",
+ "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==",
+ "dev": true
+ },
+ "node_modules/range-parser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
+ "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dev": true,
+ "dependencies": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "bin": {
+ "rc": "cli.js"
+ }
+ },
+ "node_modules/rc/node_modules/minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+ "dev": true
+ },
+ "node_modules/read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dependencies": {
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dependencies": {
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+ "optional": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "dependencies": {
+ "indent-string": "^2.1.0",
+ "strip-indent": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
+ },
+ "node_modules/regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "optional": true,
+ "dependencies": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/registry-auth-token": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz",
+ "integrity": "sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==",
+ "dev": true,
+ "dependencies": {
+ "rc": "^1.2.8"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/registry-url": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
+ "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
+ "dev": true,
+ "dependencies": {
+ "rc": "^1.2.8"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "optional": true
+ },
+ "node_modules/repeat-element": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dependencies": {
+ "is-finite": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/request": {
+ "version": "2.88.2",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
+ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
+ "dependencies": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.3",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.5.0",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/request-progress": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz",
+ "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=",
+ "dev": true,
+ "dependencies": {
+ "throttleit": "^1.0.0"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
+ },
+ "node_modules/resolve": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
+ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
+ "dependencies": {
+ "path-parse": "^1.0.5"
+ }
+ },
+ "node_modules/resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "optional": true
+ },
+ "node_modules/responselike": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
+ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+ "dev": true,
+ "dependencies": {
+ "lowercase-keys": "^1.0.0"
+ }
+ },
+ "node_modules/restore-cursor": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "dev": true,
+ "dependencies": {
+ "exit-hook": "^1.0.0",
+ "onetime": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "optional": true,
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/right-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "dependencies": {
+ "align-text": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/rxjs": {
+ "version": "6.5.5",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
+ "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^1.9.0"
+ },
+ "engines": {
+ "npm": ">=2.0.0"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "node_modules/safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "optional": true,
+ "dependencies": {
+ "ret": "~0.1.10"
+ }
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "node_modules/sass-graph": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
+ "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
+ "dependencies": {
+ "glob": "^7.0.0",
+ "lodash": "^4.0.0",
+ "scss-tokenizer": "^0.2.3",
+ "yargs": "^7.0.0"
+ }
+ },
+ "node_modules/scss-tokenizer": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
+ "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
+ "dependencies": {
+ "js-base64": "^2.1.8",
+ "source-map": "^0.4.2"
+ }
+ },
+ "node_modules/scss-tokenizer/node_modules/source-map": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "dependencies": {
+ "amdefine": ">=0.0.4"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/semver": {
+ "version": "5.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
+ "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/semver-diff": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz",
+ "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/semver-diff/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/send": {
+ "version": "0.16.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
+ "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.6.2",
+ "mime": "1.4.1",
+ "ms": "2.0.0",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.0",
+ "statuses": "~1.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/send/node_modules/mime": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
+ "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
+ "bin": {
+ "mime": "cli.js"
+ }
+ },
+ "node_modules/send/node_modules/statuses": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
+ "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serve-static": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
+ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
+ "dependencies": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.2",
+ "send": "0.16.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+ },
+ "node_modules/set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "optional": true,
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/set-value/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "optional": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
+ },
+ "node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/shell-quote": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz",
+ "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg=="
+ },
+ "node_modules/signal-exit": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
+ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
+ },
+ "node_modules/slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/slice-ansi": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
+ "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "optional": true,
+ "dependencies": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "optional": true,
+ "dependencies": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "optional": true,
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "optional": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node/node_modules/is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "optional": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node/node_modules/is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "optional": true,
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "optional": true,
+ "dependencies": {
+ "kind-of": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-util/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "optional": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "optional": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "optional": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-resolve": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
+ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
+ "optional": true,
+ "dependencies": {
+ "atob": "^2.1.1",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "node_modules/source-map-url": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+ "optional": true
+ },
+ "node_modules/spdx-correct": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
+ "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-exceptions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
+ "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="
+ },
+ "node_modules/spdx-expression-parse": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz",
+ "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA=="
+ },
+ "node_modules/split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "optional": true,
+ "dependencies": {
+ "extend-shallow": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sshpk": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+ "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+ "dependencies": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "optional": true,
+ "dependencies": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/static-extend/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "optional": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/statuses": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
+ "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/stdout-stream": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
+ "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
+ "dependencies": {
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/string.prototype.padend": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz",
+ "integrity": "sha512-3aIv8Ffdp8EZj8iLwREGpQaUZiPyrWrpzMBHvkiSW/bK/EGve9np07Vwy7IJ5waydpGXzQZu/F8Oze2/IWkBaA==",
+ "dependencies": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/string.prototype.trimleft": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
+ "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
+ "dependencies": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/string.prototype.trimright": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
+ "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
+ "dependencies": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dependencies": {
+ "is-utf8": "^0.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "dependencies": {
+ "get-stdin": "^4.0.1"
+ },
+ "bin": {
+ "strip-indent": "cli.js"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/symbol-observable": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
+ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/tar": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
+ "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
+ "dependencies": {
+ "block-stream": "*",
+ "fstream": "^1.0.12",
+ "inherits": "2"
+ }
+ },
+ "node_modules/term-size": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz",
+ "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/throttleit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
+ "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
+ "dev": true
+ },
+ "node_modules/through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dependencies": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "node_modules/tmp": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz",
+ "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==",
+ "dev": true,
+ "dependencies": {
+ "rimraf": "^2.6.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "optional": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-object-path/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "optional": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-readable-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
+ "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "optional": true,
+ "dependencies": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "optional": true,
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/token-stream": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz",
+ "integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo="
+ },
+ "node_modules/touch": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
+ "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
+ "dev": true,
+ "dependencies": {
+ "nopt": "~1.0.10"
+ },
+ "bin": {
+ "nodetouch": "bin/nodetouch.js"
+ }
+ },
+ "node_modules/touch/node_modules/nopt": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
+ "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
+ "dev": true,
+ "dependencies": {
+ "abbrev": "1"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ }
+ },
+ "node_modules/tough-cookie": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
+ "dependencies": {
+ "psl": "^1.1.28",
+ "punycode": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/true-case-path": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
+ "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
+ "dependencies": {
+ "glob": "^7.1.2"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+ "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
+ "dev": true
+ },
+ "node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
+ },
+ "node_modules/type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "node_modules/typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "dev": true,
+ "dependencies": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
+ "node_modules/uglify-js": {
+ "version": "2.8.29",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "dependencies": {
+ "source-map": "~0.5.1",
+ "uglify-to-browserify": "~1.0.0",
+ "yargs": "~3.10.0"
+ },
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ },
+ "optionalDependencies": {
+ "uglify-to-browserify": "~1.0.0"
+ }
+ },
+ "node_modules/uglify-js/node_modules/camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/uglify-js/node_modules/cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "dependencies": {
+ "center-align": "^0.1.1",
+ "right-align": "^0.1.1",
+ "wordwrap": "0.0.2"
+ }
+ },
+ "node_modules/uglify-js/node_modules/yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "dependencies": {
+ "camelcase": "^1.0.2",
+ "cliui": "^2.1.0",
+ "decamelize": "^1.0.0",
+ "window-size": "0.1.0"
+ }
+ },
+ "node_modules/uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "optional": true
+ },
+ "node_modules/undefsafe": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz",
+ "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^2.2.0"
+ }
+ },
+ "node_modules/union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "optional": true,
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unique-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
+ "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
+ "dev": true,
+ "dependencies": {
+ "crypto-random-string": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "optional": true,
+ "dependencies": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "optional": true,
+ "dependencies": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "optional": true,
+ "dependencies": {
+ "isarray": "1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/untildify": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
+ "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/upath": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+ "optional": true,
+ "engines": {
+ "node": ">=4",
+ "yarn": "*"
+ }
+ },
+ "node_modules/update-notifier": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz",
+ "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==",
+ "dev": true,
+ "dependencies": {
+ "boxen": "^4.2.0",
+ "chalk": "^3.0.0",
+ "configstore": "^5.0.1",
+ "has-yarn": "^2.1.0",
+ "import-lazy": "^2.1.0",
+ "is-ci": "^2.0.0",
+ "is-installed-globally": "^0.3.1",
+ "is-npm": "^4.0.0",
+ "is-yarn-global": "^0.3.0",
+ "latest-version": "^5.0.0",
+ "pupa": "^2.0.1",
+ "semver-diff": "^3.1.1",
+ "xdg-basedir": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/update-notifier/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/update-notifier/node_modules/chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/update-notifier/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/update-notifier/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/update-notifier/node_modules/global-dirs": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz",
+ "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==",
+ "dev": true,
+ "dependencies": {
+ "ini": "^1.3.5"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/update-notifier/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/update-notifier/node_modules/is-installed-globally": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz",
+ "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==",
+ "dev": true,
+ "dependencies": {
+ "global-dirs": "^2.0.1",
+ "is-path-inside": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/update-notifier/node_modules/is-path-inside": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz",
+ "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/update-notifier/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "optional": true
+ },
+ "node_modules/url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "dev": true,
+ "dependencies": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ }
+ },
+ "node_modules/url-parse-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+ "dev": true,
+ "dependencies": {
+ "prepend-http": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/url/node_modules/punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+ "dev": true
+ },
+ "node_modules/use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "bin": {
+ "uuid": "bin/uuid"
+ }
+ },
+ "node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "node_modules/void-elements": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
+ "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "node_modules/which-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
+ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
+ },
+ "node_modules/wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "dependencies": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "node_modules/widest-line": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
+ "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/widest-line/node_modules/ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/widest-line/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/widest-line/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/widest-line/node_modules/string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/widest-line/node_modules/strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/with": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz",
+ "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=",
+ "dependencies": {
+ "acorn": "^3.1.0",
+ "acorn-globals": "^3.0.0"
+ }
+ },
+ "node_modules/wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dependencies": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "node_modules/write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dev": true,
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
+ "node_modules/xdg-basedir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
+ "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/y18n": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
+ },
+ "node_modules/yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+ },
+ "node_modules/yargs": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
+ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
+ "dependencies": {
+ "camelcase": "^3.0.0",
+ "cliui": "^3.2.0",
+ "decamelize": "^1.1.1",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^1.4.0",
+ "read-pkg-up": "^1.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^1.0.2",
+ "which-module": "^1.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^5.0.0"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
+ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
+ "dependencies": {
+ "camelcase": "^3.0.0"
+ }
+ },
+ "node_modules/yargs-parser/node_modules/camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/yargs/node_modules/camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
+ "dev": true,
+ "dependencies": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ }
+ },
"dependencies": {
"@babel/cli": {
"version": "7.8.4",
@@ -352,6 +8604,21 @@
"any-observable": "^0.3.0"
}
},
+ "@sindresorhus/is": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
+ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
+ "dev": true
+ },
+ "@szmarczak/http-timer": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
+ "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+ "dev": true,
+ "requires": {
+ "defer-to-connect": "^1.0.1"
+ }
+ },
"@types/babel-types": {
"version": "7.0.7",
"resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz",
@@ -518,6 +8785,49 @@
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
},
+ "ansi-align": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
+ "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==",
+ "dev": true,
+ "requires": {
+ "string-width": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
"ansi-escapes": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
@@ -587,17 +8897,20 @@
"arr-diff": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "optional": true
},
"arr-flatten": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "optional": true
},
"arr-union": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
- "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+ "optional": true
},
"array-find-index": {
"version": "1.0.2",
@@ -607,7 +8920,8 @@
"array-unique": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "optional": true
},
"asap": {
"version": "2.0.6",
@@ -630,7 +8944,8 @@
"assign-symbols": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
- "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "optional": true
},
"async": {
"version": "3.2.0",
@@ -657,7 +8972,8 @@
"atob": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+ "optional": true
},
"aws-sign2": {
"version": "0.7.0",
@@ -710,6 +9026,7 @@
"version": "0.11.2",
"resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
"integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "optional": true,
"requires": {
"cache-base": "^1.0.1",
"class-utils": "^0.3.5",
@@ -724,6 +9041,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "optional": true,
"requires": {
"is-descriptor": "^1.0.0"
}
@@ -732,6 +9050,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "optional": true,
"requires": {
"kind-of": "^6.0.0"
}
@@ -740,6 +9059,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "optional": true,
"requires": {
"kind-of": "^6.0.0"
}
@@ -748,6 +9068,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "optional": true,
"requires": {
"is-accessor-descriptor": "^1.0.0",
"is-data-descriptor": "^1.0.0",
@@ -793,6 +9114,117 @@
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
"dev": true
},
+ "boxen": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
+ "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==",
+ "dev": true,
+ "requires": {
+ "ansi-align": "^3.0.0",
+ "camelcase": "^5.3.1",
+ "chalk": "^3.0.0",
+ "cli-boxes": "^2.2.0",
+ "string-width": "^4.1.0",
+ "term-size": "^2.1.0",
+ "type-fest": "^0.8.1",
+ "widest-line": "^3.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -806,6 +9238,7 @@
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
"integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "optional": true,
"requires": {
"arr-flatten": "^1.1.0",
"array-unique": "^0.3.2",
@@ -823,6 +9256,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "optional": true,
"requires": {
"is-extendable": "^0.1.0"
}
@@ -850,6 +9284,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
"integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "optional": true,
"requires": {
"collection-visit": "^1.0.0",
"component-emitter": "^1.2.1",
@@ -862,6 +9297,38 @@
"unset-value": "^1.0.0"
}
},
+ "cacheable-request": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
+ "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+ "dev": true,
+ "requires": {
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^3.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^4.1.0",
+ "responselike": "^1.0.2"
+ },
+ "dependencies": {
+ "get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "dev": true
+ }
+ }
+ },
"cachedir": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz",
@@ -950,6 +9417,7 @@
"version": "0.3.6",
"resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
"integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "optional": true,
"requires": {
"arr-union": "^3.1.0",
"define-property": "^0.2.5",
@@ -961,6 +9429,7 @@
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "optional": true,
"requires": {
"is-descriptor": "^0.1.0"
}
@@ -982,6 +9451,12 @@
}
}
},
+ "cli-boxes": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
+ "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
+ "dev": true
+ },
"cli-cursor": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
@@ -1055,6 +9530,15 @@
"wrap-ansi": "^2.0.0"
}
},
+ "clone-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
+ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+ "dev": true,
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
"code-point-at": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
@@ -1064,6 +9548,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
"integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "optional": true,
"requires": {
"map-visit": "^1.0.0",
"object-visit": "^1.0.0"
@@ -1111,7 +9596,8 @@
"component-emitter": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
- "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "optional": true
},
"compressible": {
"version": "2.0.18",
@@ -1152,6 +9638,37 @@
"typedarray": "^0.0.6"
}
},
+ "configstore": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
+ "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
+ "dev": true,
+ "requires": {
+ "dot-prop": "^5.2.0",
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^3.0.0",
+ "unique-string": "^2.0.0",
+ "write-file-atomic": "^3.0.0",
+ "xdg-basedir": "^4.0.0"
+ },
+ "dependencies": {
+ "make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "dev": true,
+ "requires": {
+ "semver": "^6.0.0"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
"connect": {
"version": "3.6.6",
"resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz",
@@ -1200,7 +9717,8 @@
"copy-descriptor": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
- "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "optional": true
},
"copyfiles": {
"version": "2.2.0",
@@ -1343,6 +9861,12 @@
"which": "^1.2.9"
}
},
+ "crypto-random-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
+ "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
+ "dev": true
+ },
"currently-unhandled": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
@@ -1449,6 +9973,12 @@
}
}
},
+ "cypress-localstorage-commands": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/cypress-localstorage-commands/-/cypress-localstorage-commands-1.2.1.tgz",
+ "integrity": "sha512-wWGElZS5fHAQDonZM8xtOA1tM+bTBUdwEMm6XrshLMKjq8Nxw4+Ysbl9/Yc+gZyv66EQe4hPNDLWANnp/zPkcA==",
+ "dev": true
+ },
"cypress-terminal-report": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/cypress-terminal-report/-/cypress-terminal-report-1.2.1.tgz",
@@ -1541,7 +10071,29 @@
"decode-uri-component": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "optional": true
+ },
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "dev": true,
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "dev": true
+ },
+ "defer-to-connect": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
+ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
+ "dev": true
},
"define-properties": {
"version": "1.1.3",
@@ -1555,6 +10107,7 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
"integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "optional": true,
"requires": {
"is-descriptor": "^1.0.2",
"isobject": "^3.0.1"
@@ -1564,6 +10117,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "optional": true,
"requires": {
"kind-of": "^6.0.0"
}
@@ -1572,6 +10126,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "optional": true,
"requires": {
"kind-of": "^6.0.0"
}
@@ -1580,6 +10135,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "optional": true,
"requires": {
"is-accessor-descriptor": "^1.0.0",
"is-data-descriptor": "^1.0.0",
@@ -1613,6 +10169,21 @@
"resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
"integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk="
},
+ "dot-prop": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
+ "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
+ "dev": true,
+ "requires": {
+ "is-obj": "^2.0.0"
+ }
+ },
+ "duplexer3": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
+ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
+ "dev": true
+ },
"ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@@ -1698,6 +10269,12 @@
"is-symbol": "^1.0.2"
}
},
+ "escape-goat": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
+ "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==",
+ "dev": true
+ },
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@@ -1773,6 +10350,7 @@
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
"integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "optional": true,
"requires": {
"debug": "^2.3.3",
"define-property": "^0.2.5",
@@ -1787,6 +10365,7 @@
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "optional": true,
"requires": {
"is-descriptor": "^0.1.0"
}
@@ -1795,6 +10374,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "optional": true,
"requires": {
"is-extendable": "^0.1.0"
}
@@ -1810,6 +10390,7 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
"integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "optional": true,
"requires": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -1819,6 +10400,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "optional": true,
"requires": {
"is-plain-object": "^2.0.4"
}
@@ -1829,6 +10411,7 @@
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
"integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "optional": true,
"requires": {
"array-unique": "^0.3.2",
"define-property": "^1.0.0",
@@ -1844,6 +10427,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "optional": true,
"requires": {
"is-descriptor": "^1.0.0"
}
@@ -1852,6 +10436,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "optional": true,
"requires": {
"is-extendable": "^0.1.0"
}
@@ -1860,6 +10445,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "optional": true,
"requires": {
"kind-of": "^6.0.0"
}
@@ -1868,6 +10454,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "optional": true,
"requires": {
"kind-of": "^6.0.0"
}
@@ -1876,6 +10463,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "optional": true,
"requires": {
"is-accessor-descriptor": "^1.0.0",
"is-data-descriptor": "^1.0.0",
@@ -1957,6 +10545,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
"integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "optional": true,
"requires": {
"extend-shallow": "^2.0.1",
"is-number": "^3.0.0",
@@ -1968,6 +10557,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "optional": true,
"requires": {
"is-extendable": "^0.1.0"
}
@@ -2000,7 +10590,8 @@
"for-in": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "optional": true
},
"forever-agent": {
"version": "0.6.1",
@@ -2021,6 +10612,7 @@
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
"integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "optional": true,
"requires": {
"map-cache": "^0.2.2"
}
@@ -2072,20 +10664,29 @@
"dependencies": {
"abbrev": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"bundled": true,
"optional": true
},
"ansi-regex": {
"version": "2.1.1",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "bundled": true,
+ "optional": true
},
"aproba": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
"bundled": true,
"optional": true
},
"are-we-there-yet": {
"version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
"bundled": true,
"optional": true,
"requires": {
@@ -2095,11 +10696,15 @@
},
"balanced-match": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"bundled": true,
"optional": true
},
"brace-expansion": {
"version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"bundled": true,
"optional": true,
"requires": {
@@ -2109,29 +10714,43 @@
},
"chownr": {
"version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
+ "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
"bundled": true,
"optional": true
},
"code-point-at": {
"version": "1.1.0",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "bundled": true,
+ "optional": true
},
"concat-map": {
"version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"bundled": true,
"optional": true
},
"console-control-strings": {
"version": "1.1.0",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+ "bundled": true,
+ "optional": true
},
"core-util-is": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"bundled": true,
"optional": true
},
"debug": {
"version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"bundled": true,
"optional": true,
"requires": {
@@ -2140,21 +10759,29 @@
},
"deep-extend": {
"version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
"bundled": true,
"optional": true
},
"delegates": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
"bundled": true,
"optional": true
},
"detect-libc": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
"bundled": true,
"optional": true
},
"fs-minipass": {
"version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
+ "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
"bundled": true,
"optional": true,
"requires": {
@@ -2163,11 +10790,15 @@
},
"fs.realpath": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"bundled": true,
"optional": true
},
"gauge": {
"version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"bundled": true,
"optional": true,
"requires": {
@@ -2183,6 +10814,8 @@
},
"glob": {
"version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
"bundled": true,
"optional": true,
"requires": {
@@ -2196,11 +10829,15 @@
},
"has-unicode": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
"bundled": true,
"optional": true
},
"iconv-lite": {
"version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"bundled": true,
"optional": true,
"requires": {
@@ -2209,6 +10846,8 @@
},
"ignore-walk": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz",
+ "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==",
"bundled": true,
"optional": true,
"requires": {
@@ -2217,6 +10856,8 @@
},
"inflight": {
"version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"bundled": true,
"optional": true,
"requires": {
@@ -2226,39 +10867,58 @@
},
"inherits": {
"version": "2.0.4",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "bundled": true,
+ "optional": true
},
"ini": {
"version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
"bundled": true,
"optional": true
},
"is-fullwidth-code-point": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"bundled": true,
+ "optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
},
"isarray": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
"bundled": true,
"optional": true
},
"minimatch": {
"version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"bundled": true,
+ "optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
},
"minimist": {
"version": "0.0.8",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "bundled": true,
+ "optional": true
},
"minipass": {
"version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
+ "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
"bundled": true,
+ "optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@@ -2266,6 +10926,8 @@
},
"minizlib": {
"version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
+ "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
"bundled": true,
"optional": true,
"requires": {
@@ -2274,18 +10936,25 @@
},
"mkdirp": {
"version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"bundled": true,
+ "optional": true,
"requires": {
"minimist": "0.0.8"
}
},
"ms": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"bundled": true,
"optional": true
},
"needle": {
"version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz",
+ "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==",
"bundled": true,
"optional": true,
"requires": {
@@ -2296,6 +10965,8 @@
},
"node-pre-gyp": {
"version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz",
+ "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==",
"bundled": true,
"optional": true,
"requires": {
@@ -2313,6 +10984,8 @@
},
"nopt": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
"bundled": true,
"optional": true,
"requires": {
@@ -2322,6 +10995,8 @@
},
"npm-bundled": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz",
+ "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==",
"bundled": true,
"optional": true,
"requires": {
@@ -2330,11 +11005,15 @@
},
"npm-normalize-package-bin": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
+ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
"bundled": true,
"optional": true
},
"npm-packlist": {
"version": "1.4.7",
+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.7.tgz",
+ "integrity": "sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ==",
"bundled": true,
"optional": true,
"requires": {
@@ -2344,6 +11023,8 @@
},
"npmlog": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"bundled": true,
"optional": true,
"requires": {
@@ -2355,32 +11036,46 @@
},
"number-is-nan": {
"version": "1.0.1",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "bundled": true,
+ "optional": true
},
"object-assign": {
"version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"bundled": true,
"optional": true
},
"once": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"bundled": true,
+ "optional": true,
"requires": {
"wrappy": "1"
}
},
"os-homedir": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
"bundled": true,
"optional": true
},
"os-tmpdir": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"bundled": true,
"optional": true
},
"osenv": {
"version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
"bundled": true,
"optional": true,
"requires": {
@@ -2390,16 +11085,22 @@
},
"path-is-absolute": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"bundled": true,
"optional": true
},
"process-nextick-args": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
"bundled": true,
"optional": true
},
"rc": {
"version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"bundled": true,
"optional": true,
"requires": {
@@ -2411,6 +11112,8 @@
"dependencies": {
"minimist": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"bundled": true,
"optional": true
}
@@ -2418,6 +11121,8 @@
},
"readable-stream": {
"version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"bundled": true,
"optional": true,
"requires": {
@@ -2432,6 +11137,8 @@
},
"rimraf": {
"version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"bundled": true,
"optional": true,
"requires": {
@@ -2440,64 +11147,89 @@
},
"safe-buffer": {
"version": "5.1.2",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "bundled": true,
+ "optional": true
},
"safer-buffer": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"bundled": true,
"optional": true
},
"sax": {
"version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
"bundled": true,
"optional": true
},
"semver": {
"version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"bundled": true,
"optional": true
},
"set-blocking": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
"bundled": true,
"optional": true
},
"signal-exit": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
"bundled": true,
"optional": true
},
- "string-width": {
- "version": "1.0.2",
- "bundled": true,
- "requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- },
"string_decoder": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"bundled": true,
"optional": true,
"requires": {
"safe-buffer": "~5.1.0"
}
},
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
"strip-ansi": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"bundled": true,
+ "optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
},
"strip-json-comments": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
"bundled": true,
"optional": true
},
"tar": {
"version": "4.4.13",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
+ "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
"bundled": true,
"optional": true,
"requires": {
@@ -2512,11 +11244,15 @@
},
"util-deprecate": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"bundled": true,
"optional": true
},
"wide-align": {
"version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
"bundled": true,
"optional": true,
"requires": {
@@ -2525,11 +11261,17 @@
},
"wrappy": {
"version": "1.0.2",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "bundled": true,
+ "optional": true
},
"yallist": {
"version": "3.1.1",
- "bundled": true
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "bundled": true,
+ "optional": true
}
}
},
@@ -2599,7 +11341,8 @@
"get-value": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
- "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+ "optional": true
},
"getos": {
"version": "3.1.4",
@@ -2676,6 +11419,25 @@
"minimatch": "~3.0.2"
}
},
+ "got": {
+ "version": "9.6.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
+ "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+ "dev": true,
+ "requires": {
+ "@sindresorhus/is": "^0.14.0",
+ "@szmarczak/http-timer": "^1.1.2",
+ "cacheable-request": "^6.0.0",
+ "decompress-response": "^3.3.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^4.1.0",
+ "lowercase-keys": "^1.0.1",
+ "mimic-response": "^1.0.1",
+ "p-cancelable": "^1.0.0",
+ "to-readable-stream": "^1.0.0",
+ "url-parse-lax": "^3.0.0"
+ }
+ },
"graceful-fs": {
"version": "4.1.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
@@ -2730,6 +11492,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
"integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "optional": true,
"requires": {
"get-value": "^2.0.6",
"has-values": "^1.0.0",
@@ -2740,6 +11503,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
"integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "optional": true,
"requires": {
"is-number": "^3.0.0",
"kind-of": "^4.0.0"
@@ -2749,17 +11513,30 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "optional": true,
"requires": {
"is-buffer": "^1.1.5"
}
}
}
},
+ "has-yarn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
+ "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==",
+ "dev": true
+ },
"hosted-git-info": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
"integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w=="
},
+ "http-cache-semantics": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
+ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
+ "dev": true
+ },
"http-errors": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
@@ -2788,6 +11565,24 @@
"sshpk": "^1.7.0"
}
},
+ "ignore-by-default": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
+ "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=",
+ "dev": true
+ },
+ "import-lazy": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
+ "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
+ "dev": true
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
"in-publish": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz",
@@ -2835,6 +11630,7 @@
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
"integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "optional": true,
"requires": {
"kind-of": "^3.0.2"
},
@@ -2843,6 +11639,7 @@
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "optional": true,
"requires": {
"is-buffer": "^1.1.5"
}
@@ -2886,6 +11683,7 @@
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
"integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "optional": true,
"requires": {
"kind-of": "^3.0.2"
},
@@ -2894,6 +11692,7 @@
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "optional": true,
"requires": {
"is-buffer": "^1.1.5"
}
@@ -2909,6 +11708,7 @@
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
"integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "optional": true,
"requires": {
"is-accessor-descriptor": "^0.1.6",
"is-data-descriptor": "^0.1.4",
@@ -2918,7 +11718,8 @@
"kind-of": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "optional": true
}
}
},
@@ -2941,12 +11742,14 @@
"is-extendable": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "optional": true
},
"is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "devOptional": true
},
"is-finite": {
"version": "1.1.0",
@@ -2965,7 +11768,7 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
- "optional": true,
+ "devOptional": true,
"requires": {
"is-extglob": "^2.1.1"
}
@@ -2980,10 +11783,17 @@
"is-path-inside": "^1.0.0"
}
},
+ "is-npm": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz",
+ "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==",
+ "dev": true
+ },
"is-number": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "optional": true,
"requires": {
"kind-of": "^3.0.2"
},
@@ -2992,12 +11802,19 @@
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "optional": true,
"requires": {
"is-buffer": "^1.1.5"
}
}
}
},
+ "is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+ "dev": true
+ },
"is-observable": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz",
@@ -3020,6 +11837,7 @@
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "optional": true,
"requires": {
"isobject": "^3.0.1"
}
@@ -3064,7 +11882,14 @@
"is-windows": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "optional": true
+ },
+ "is-yarn-global": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
+ "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==",
+ "dev": true
},
"isarray": {
"version": "1.0.0",
@@ -3079,7 +11904,8 @@
"isobject": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "optional": true
},
"isstream": {
"version": "0.1.2",
@@ -3111,6 +11937,12 @@
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
"integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
},
+ "json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
+ "dev": true
+ },
"json-parse-better-errors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
@@ -3175,10 +12007,29 @@
"promise": "^7.0.1"
}
},
+ "keyv": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
+ "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+ "dev": true,
+ "requires": {
+ "json-buffer": "3.0.0"
+ }
+ },
"kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "optional": true
+ },
+ "latest-version": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
+ "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
+ "dev": true,
+ "requires": {
+ "package-json": "^6.3.0"
+ }
},
"lazy-ass": {
"version": "1.6.0",
@@ -3475,6 +12326,12 @@
"signal-exit": "^3.0.0"
}
},
+ "lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "dev": true
+ },
"lru-cache": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
@@ -3508,7 +12365,8 @@
"map-cache": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
- "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+ "optional": true
},
"map-obj": {
"version": "1.0.1",
@@ -3519,6 +12377,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
"integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "optional": true,
"requires": {
"object-visit": "^1.0.0"
}
@@ -3562,6 +12421,7 @@
"version": "3.1.10",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
"integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "optional": true,
"requires": {
"arr-diff": "^4.0.0",
"array-unique": "^0.3.2",
@@ -3602,6 +12462,12 @@
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
"dev": true
},
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "dev": true
+ },
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@@ -3619,6 +12485,7 @@
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
"integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "optional": true,
"requires": {
"for-in": "^1.0.2",
"is-extendable": "^1.0.1"
@@ -3628,6 +12495,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "optional": true,
"requires": {
"is-plain-object": "^2.0.4"
}
@@ -3662,6 +12530,7 @@
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
"integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "optional": true,
"requires": {
"arr-diff": "^4.0.0",
"array-unique": "^0.3.2",
@@ -3760,6 +12629,146 @@
}
}
},
+ "nodemon": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.6.tgz",
+ "integrity": "sha512-4I3YDSKXg6ltYpcnZeHompqac4E6JeAMpGm8tJnB9Y3T0ehasLa4139dJOcCrB93HHrUMsCrKtoAlXTqT5n4AQ==",
+ "dev": true,
+ "requires": {
+ "chokidar": "^3.2.2",
+ "debug": "^3.2.6",
+ "ignore-by-default": "^1.0.1",
+ "minimatch": "^3.0.4",
+ "pstree.remy": "^1.1.7",
+ "semver": "^5.7.1",
+ "supports-color": "^5.5.0",
+ "touch": "^3.1.0",
+ "undefsafe": "^2.0.3",
+ "update-notifier": "^4.1.0"
+ },
+ "dependencies": {
+ "anymatch": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+ "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "binary-extensions": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
+ "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
+ "dev": true
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chokidar": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz",
+ "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.1",
+ "braces": "~3.0.2",
+ "fsevents": "~2.1.2",
+ "glob-parent": "~5.1.0",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.5.0"
+ }
+ },
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "fsevents": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+ "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "dev": true,
+ "optional": true
+ },
+ "glob-parent": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+ "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "readdirp": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
+ "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
"noms": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz",
@@ -3825,7 +12834,13 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "optional": true
+ "devOptional": true
+ },
+ "normalize-url": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
+ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==",
+ "dev": true
},
"normalize.css": {
"version": "8.0.1",
@@ -3919,6 +12934,16 @@
"path-key": "^2.0.0"
}
},
+ "npm-watch": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/npm-watch/-/npm-watch-0.7.0.tgz",
+ "integrity": "sha512-AN2scNyMljMGkn0mIkaRRk19I7Vx0qTK6GmsIcDblX5YRbSsoJORTAtrceICSx7Om9q48NWcwm/R0t6E7F4Ocg==",
+ "dev": true,
+ "requires": {
+ "nodemon": "^2.0.3",
+ "through2": "^2.0.0"
+ }
+ },
"npmlog": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
@@ -3949,6 +12974,7 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
"integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "optional": true,
"requires": {
"copy-descriptor": "^0.1.0",
"define-property": "^0.2.5",
@@ -3959,6 +12985,7 @@
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "optional": true,
"requires": {
"is-descriptor": "^0.1.0"
}
@@ -3967,6 +12994,7 @@
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "optional": true,
"requires": {
"is-buffer": "^1.1.5"
}
@@ -3987,6 +13015,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
"integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "optional": true,
"requires": {
"isobject": "^3.0.0"
}
@@ -4006,6 +13035,7 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
"integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "optional": true,
"requires": {
"isobject": "^3.0.1"
}
@@ -4070,6 +13100,12 @@
"integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=",
"dev": true
},
+ "p-cancelable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
+ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
+ "dev": true
+ },
"p-finally": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
@@ -4103,6 +13139,26 @@
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
},
+ "package-json": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
+ "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
+ "dev": true,
+ "requires": {
+ "got": "^9.6.0",
+ "registry-auth-token": "^4.0.0",
+ "registry-url": "^5.0.0",
+ "semver": "^6.2.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
"parse-json": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
@@ -4119,7 +13175,8 @@
"pascalcase": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
- "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "optional": true
},
"path-dirname": {
"version": "1.0.2",
@@ -4177,6 +13234,12 @@
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
+ "picomatch": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+ "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
+ "dev": true
+ },
"pidtree": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz",
@@ -4203,7 +13266,14 @@
"posix-character-classes": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
- "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "optional": true
+ },
+ "prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
+ "dev": true
},
"pretty-bytes": {
"version": "5.3.0",
@@ -4234,6 +13304,12 @@
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
"integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
},
+ "pstree.remy": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
+ "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
+ "dev": true
+ },
"pug": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz",
@@ -4398,6 +13474,15 @@
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
+ "pupa": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz",
+ "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==",
+ "dev": true,
+ "requires": {
+ "escape-goat": "^2.0.0"
+ }
+ },
"pushstate-server": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/pushstate-server/-/pushstate-server-3.1.0.tgz",
@@ -4439,6 +13524,26 @@
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
},
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dev": true,
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+ "dev": true
+ }
+ }
+ },
"read-pkg": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
@@ -4501,11 +13606,30 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
"integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "optional": true,
"requires": {
"extend-shallow": "^3.0.2",
"safe-regex": "^1.1.0"
}
},
+ "registry-auth-token": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz",
+ "integrity": "sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==",
+ "dev": true,
+ "requires": {
+ "rc": "^1.2.8"
+ }
+ },
+ "registry-url": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
+ "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
+ "dev": true,
+ "requires": {
+ "rc": "^1.2.8"
+ }
+ },
"remove-trailing-separator": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
@@ -4515,7 +13639,8 @@
"repeat-element": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
- "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+ "optional": true
},
"repeat-string": {
"version": "1.6.1",
@@ -4587,7 +13712,17 @@
"resolve-url": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
- "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "optional": true
+ },
+ "responselike": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
+ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+ "dev": true,
+ "requires": {
+ "lowercase-keys": "^1.0.0"
+ }
},
"restore-cursor": {
"version": "1.0.1",
@@ -4602,7 +13737,8 @@
"ret": {
"version": "0.1.15",
"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
- "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "optional": true
},
"right-align": {
"version": "0.1.3",
@@ -4638,6 +13774,7 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
"integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "optional": true,
"requires": {
"ret": "~0.1.10"
}
@@ -4682,6 +13819,23 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
"integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw=="
},
+ "semver-diff": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz",
+ "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
+ "dev": true,
+ "requires": {
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
"send": {
"version": "0.16.2",
"resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
@@ -4734,6 +13888,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
"integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "optional": true,
"requires": {
"extend-shallow": "^2.0.1",
"is-extendable": "^0.1.1",
@@ -4745,6 +13900,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "optional": true,
"requires": {
"is-extendable": "^0.1.0"
}
@@ -4794,6 +13950,7 @@
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
"integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "optional": true,
"requires": {
"base": "^0.11.1",
"debug": "^2.2.0",
@@ -4809,6 +13966,7 @@
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "optional": true,
"requires": {
"is-descriptor": "^0.1.0"
}
@@ -4817,6 +13975,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "optional": true,
"requires": {
"is-extendable": "^0.1.0"
}
@@ -4827,6 +13986,7 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
"integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "optional": true,
"requires": {
"define-property": "^1.0.0",
"isobject": "^3.0.0",
@@ -4837,6 +13997,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "optional": true,
"requires": {
"is-descriptor": "^1.0.0"
}
@@ -4845,6 +14006,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "optional": true,
"requires": {
"kind-of": "^6.0.0"
}
@@ -4853,6 +14015,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "optional": true,
"requires": {
"kind-of": "^6.0.0"
}
@@ -4861,6 +14024,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "optional": true,
"requires": {
"is-accessor-descriptor": "^1.0.0",
"is-data-descriptor": "^1.0.0",
@@ -4873,6 +14037,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
"integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "optional": true,
"requires": {
"kind-of": "^3.2.0"
},
@@ -4881,6 +14046,7 @@
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "optional": true,
"requires": {
"is-buffer": "^1.1.5"
}
@@ -4896,6 +14062,7 @@
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
"integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
+ "optional": true,
"requires": {
"atob": "^2.1.1",
"decode-uri-component": "^0.2.0",
@@ -4907,7 +14074,8 @@
"source-map-url": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
- "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+ "optional": true
},
"spdx-correct": {
"version": "3.1.0",
@@ -4941,6 +14109,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
"integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "optional": true,
"requires": {
"extend-shallow": "^3.0.0"
}
@@ -4965,6 +14134,7 @@
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
"integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "optional": true,
"requires": {
"define-property": "^0.2.5",
"object-copy": "^0.1.0"
@@ -4974,6 +14144,7 @@
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "optional": true,
"requires": {
"is-descriptor": "^0.1.0"
}
@@ -4993,6 +14164,14 @@
"readable-stream": "^2.0.1"
}
},
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
"string-width": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
@@ -5030,14 +14209,6 @@
"function-bind": "^1.1.1"
}
},
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- },
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@@ -5068,6 +14239,12 @@
"get-stdin": "^4.0.1"
}
},
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true
+ },
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -5092,6 +14269,12 @@
"inherits": "2"
}
},
+ "term-size": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz",
+ "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==",
+ "dev": true
+ },
"throttleit": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
@@ -5125,6 +14308,7 @@
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
"integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "optional": true,
"requires": {
"kind-of": "^3.0.2"
},
@@ -5133,16 +14317,24 @@
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "optional": true,
"requires": {
"is-buffer": "^1.1.5"
}
}
}
},
+ "to-readable-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
+ "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
+ "dev": true
+ },
"to-regex": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
"integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "optional": true,
"requires": {
"define-property": "^2.0.2",
"extend-shallow": "^3.0.2",
@@ -5154,6 +14346,7 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
"integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "optional": true,
"requires": {
"is-number": "^3.0.0",
"repeat-string": "^1.6.1"
@@ -5164,6 +14357,26 @@
"resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz",
"integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo="
},
+ "touch": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
+ "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
+ "dev": true,
+ "requires": {
+ "nopt": "~1.0.10"
+ },
+ "dependencies": {
+ "nopt": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
+ "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
+ "dev": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ }
+ }
+ },
"tough-cookie": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
@@ -5205,12 +14418,27 @@
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
},
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
+ },
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
"dev": true
},
+ "typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "dev": true,
+ "requires": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
"uglify-js": {
"version": "2.8.29",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
@@ -5255,10 +14483,20 @@
"integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
"optional": true
},
+ "undefsafe": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz",
+ "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==",
+ "dev": true,
+ "requires": {
+ "debug": "^2.2.0"
+ }
+ },
"union-value": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
"integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "optional": true,
"requires": {
"arr-union": "^3.1.0",
"get-value": "^2.0.6",
@@ -5266,6 +14504,15 @@
"set-value": "^2.0.1"
}
},
+ "unique-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
+ "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
+ "dev": true,
+ "requires": {
+ "crypto-random-string": "^2.0.0"
+ }
+ },
"universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
@@ -5281,6 +14528,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
"integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "optional": true,
"requires": {
"has-value": "^0.3.1",
"isobject": "^3.0.0"
@@ -5290,6 +14538,7 @@
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
"integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "optional": true,
"requires": {
"get-value": "^2.0.3",
"has-values": "^0.1.4",
@@ -5300,6 +14549,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
"integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "optional": true,
"requires": {
"isarray": "1.0.0"
}
@@ -5309,7 +14559,8 @@
"has-values": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
- "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "optional": true
}
}
},
@@ -5325,6 +14576,103 @@
"integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
"optional": true
},
+ "update-notifier": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz",
+ "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==",
+ "dev": true,
+ "requires": {
+ "boxen": "^4.2.0",
+ "chalk": "^3.0.0",
+ "configstore": "^5.0.1",
+ "has-yarn": "^2.1.0",
+ "import-lazy": "^2.1.0",
+ "is-ci": "^2.0.0",
+ "is-installed-globally": "^0.3.1",
+ "is-npm": "^4.0.0",
+ "is-yarn-global": "^0.3.0",
+ "latest-version": "^5.0.0",
+ "pupa": "^2.0.1",
+ "semver-diff": "^3.1.1",
+ "xdg-basedir": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "global-dirs": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz",
+ "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==",
+ "dev": true,
+ "requires": {
+ "ini": "^1.3.5"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "is-installed-globally": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz",
+ "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==",
+ "dev": true,
+ "requires": {
+ "global-dirs": "^2.0.1",
+ "is-path-inside": "^3.0.1"
+ }
+ },
+ "is-path-inside": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz",
+ "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
"uri-js": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
@@ -5336,7 +14684,8 @@
"urix": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
- "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "optional": true
},
"url": {
"version": "0.11.0",
@@ -5356,10 +14705,20 @@
}
}
},
+ "url-parse-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+ "dev": true,
+ "requires": {
+ "prepend-http": "^2.0.0"
+ }
+ },
"use": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
- "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "optional": true
},
"util-deprecate": {
"version": "1.0.2",
@@ -5426,6 +14785,55 @@
"string-width": "^1.0.2 || 2"
}
},
+ "widest-line": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
+ "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ }
+ }
+ },
"window-size": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
@@ -5459,6 +14867,24 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
+ "write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
+ "xdg-basedir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
+ "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
+ "dev": true
+ },
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
diff --git a/package.json b/package.json
index 3792914..7048568 100644
--- a/package.json
+++ b/package.json
@@ -9,22 +9,40 @@
"scripts": {
"build": "run-p copy:* build:*",
"build:css": "node-sass src/styles/index.scss -o dist/styles/",
- "build:js": "babel 'src/scripts/*.js' -o dist/scripts/index.js",
- "build:jscomponents": "babel 'src/components/*.js' --out-dir dist/components/",
- "build:html": "pug src/index.pug -o dist/ --obj config.json",
+ "build:js": "babel \"src/scripts/*.js\" -o dist/scripts/index.js",
+ "build:jscomponents": "babel \"src/components/*.js\" --out-dir dist/components/",
+ "build:pug": "pug src/index.pug -o dist/ --obj config.json",
+ "build:manifest": "node --experimental-modules make-webmanifest.mjs",
+ "build:i18n": "copyfiles -u 2 src/locales/*.json dist/locales",
"copy:font": "copyfiles -f src/fonts/* dist/fonts",
"copy:image": "copyfiles -f src/images/* dist/images",
+ "copy:sw": "copyfiles -f src/sw.js dist",
"serve": "pushstate-server -d ./dist -p 3000",
- "watch": "run-p copy:* watch:* serve",
- "watch:css": "npm run build:css && npm run build:css -- -w",
- "watch:js": "babel --watch \"src/scripts/*.js\" -o dist/scripts/index.js",
- "watch:jscomponents": "babel --watch \"src/components/*.js\" --out-dir dist/components/",
+ "watch": "run-p build watch:* serve",
+ "watch:css": "npm-watch build:css",
+ "watch:js": "npm-watch build:js",
+ "watch:jscomponents": "npm-watch build:jscomponents",
+ "watch:manifest": "npm-watch build:manifest",
"watch:pug": "pug --watch src/index.pug -o dist/ --obj config.json",
+ "watch:i18n": "npm-watch build:i18n",
+ "watch:font": "npm-watch copy:font",
+ "watch:image": "npm-watch copy:image",
+ "watch:sw": "npm-watch copy:sw",
"cypress:open": "cypress open",
"cypress:verify": "cypress verify",
"cypress:info": "cypress info",
"test": "cypress run"
},
+ "watch": {
+ "build:css": "src/styles/**/*",
+ "build:manifest": "make-webmanifest.mjs",
+ "build:i18n": "src/locales/**/*",
+ "copy:images": "src/fonts/*.js",
+ "copy:fonts": "src/images/*.js",
+ "copy:sw": "src/sw.js",
+ "build:js": "src/scripts/*.js",
+ "build:jscomponents": "src/components/*.js"
+ },
"release": {
"branches": [
"master"
@@ -68,6 +86,8 @@
},
"devDependencies": {
"cypress": "^4.5.0",
- "cypress-terminal-report": "^1.2.1"
+ "cypress-localstorage-commands": "^1.2.1",
+ "cypress-terminal-report": "^1.2.1",
+ "npm-watch": "^0.7.0"
}
}
diff --git a/src/components/hubl-reactivity.js b/src/components/hubl-reactivity.js
index dce2a6c..400a4e2 100644
--- a/src/components/hubl-reactivity.js
+++ b/src/components/hubl-reactivity.js
@@ -1,6 +1,4 @@
-import { store } from 'https://unpkg.com/@startinblox/core@0.10';
-import { Sib } from "https://unpkg.com/@startinblox/core@0.10/dist/libs/Sib.js";
-import { StoreMixin } from "https://unpkg.com/@startinblox/core@0.10/dist/mixins/storeMixin.js";
+import { store, Sib, StoreMixin } from 'https://cdn.skypack.dev/@startinblox/core@0.13';
export const HublReactivity = {
name: 'hubl-reactivity',
@@ -13,21 +11,17 @@ export const HublReactivity = {
this.subscribe();
}
},
- dataSrc: {
- type: String,
- default: '',
- callback: async function (value) {
- this.resourceId = null;
- if (this.nestedField) {
- const resource = store.get(value) || await store.getData(value, this.context);
- const nestedResource = await resource[this.nestedField]
- this.resourceId = nestedResource ? nestedResource['@id'] : null;
- } else {
- this.resourceId = value;
- }
- this.subscribe();
- }
- },
+ },
+ async fetchData(value) {
+ this.resourceId = null;
+ if (this.nestedField) {
+ const resource = store.get(value) || await store.getData(value, this.context);
+ const nestedResource = await resource[this.nestedField]
+ this.resourceId = nestedResource ? nestedResource['@id'] : null;
+ } else {
+ this.resourceId = value;
+ }
+ this.subscribe();
},
subscribe() {
if (this.resourceId && this.targetSrc) {
diff --git a/src/components/hubl-search-users.js b/src/components/hubl-search-users.js
index c65e58e..f8bb618 100644
--- a/src/components/hubl-search-users.js
+++ b/src/components/hubl-search-users.js
@@ -1,4 +1,4 @@
-import { widgetFactory } from 'https://unpkg.com/@startinblox/core@0.10/dist/widgets/widget-factory.js';
+import { widgetFactory } from 'https://cdn.skypack.dev/@startinblox/core@0.13';
const HublSearchUsers = widgetFactory(
'hubl-search-users',
diff --git a/src/components/hubl-status.js b/src/components/hubl-status.js
index 7a94718..57296f0 100644
--- a/src/components/hubl-status.js
+++ b/src/components/hubl-status.js
@@ -1,6 +1,5 @@
-import { widgetFactory } from 'https://unpkg.com/@startinblox/core@0.10/dist/widgets/widget-factory.js';
-import { importCSS } from 'https://unpkg.com/@startinblox/core@0.10/dist/libs/helpers.js';
-import SlimSelect from 'https://dev.jspm.io/slim-select@1.23';
+import { widgetFactory, Helpers } from 'https://cdn.skypack.dev/@startinblox/core@0.13';
+import SlimSelect from 'https://cdn.skypack.dev/slim-select@1.23';
const HublStatus = widgetFactory(
'hubl-status',
@@ -11,10 +10,10 @@ const HublStatus = widgetFactory(
name="\${name}">
+ \${value=="Public" ? 'selected' : ''} data-trans="hublStatus.public">Public
+ \${value=="Private" ? 'selected' : ''} data-trans="hublStatus.private">Privé
`,
'',
@@ -22,7 +21,7 @@ const HublStatus = widgetFactory(
let select = formWidget.querySelector('select');
if (!select) return;
const slimSelect = new SlimSelect({select: select});
- importCSS('https://dev.jspm.io/slim-select/dist/slimselect.min.css');
+ Helpers.importCSS('https://dev.jspm.io/slim-select/dist/slimselect.min.css');
select.addEventListener('change', () => slimSelect.render());
},
);
diff --git a/src/components/sentry.js b/src/components/sentry.js
new file mode 100644
index 0000000..e4349e4
--- /dev/null
+++ b/src/components/sentry.js
@@ -0,0 +1,8 @@
+if(typeof Sentry !== 'undefined') {
+ Sentry.init({
+ dsn: 'https://b4b29557689049a39168599577adb940@sentry.startinblox.com/4',
+ integrations: [new Sentry.Integrations.BrowserTracing()],
+ environment: document.location.hostname,
+ tracesSampleRate: 0.2,
+ });
+}
\ No newline at end of file
diff --git a/src/dependencies.pug b/src/dependencies.pug
index 515b158..d6cec94 100644
--- a/src/dependencies.pug
+++ b/src/dependencies.pug
@@ -1,46 +1,55 @@
+script(src="https://browser.sentry-cdn.com/5.25.0/bundle.tracing.min.js" defer)
+
+script(type="module" src="/components/sentry.js" defer)
script(type="module" src="/components/hubl-search-users.js" defer)
script(type="module" src="/components/hubl-status.js" defer)
script(type="module" src="/components/hubl-reactivity.js" defer)
-script(type="module" src="https://unpkg.com/@startinblox/core@0.10" defer)
+script(type="module" src="https://cdn.skypack.dev/@startinblox/core@0.13" defer)
//- script(type="module" src="/lib/sib-core/dist/index.js" defer)
-script(type="module" src="https://unpkg.com/@startinblox/oidc@0.9" defer)
-//- script(type="module" src="/lib/sib-oidc/index.js" defer)
+script(type="module" src="https://cdn.skypack.dev/@startinblox/oidc@0.11" defer)
+//- script(type="module" src="/lib/sib-auth/index.js" defer)
-script(type="module" src="https://unpkg.com/@startinblox/router@0.8" defer)
- //- script(type="module" src="/lib/solid-router/src/index.js" defer)
+script(type="module" src="https://cdn.skypack.dev/@startinblox/router@0.11" defer)
+//- script(type="module" src="/lib/sib-router/src/index.js" defer)
-script(type="module" src="https://unpkg.com/@startinblox/component-notifications@0.6.2" defer)
- //- script(type="module" src="/lib/sib-notifications/index.js" defer)
+script(type="module" src="https://cdn.skypack.dev/@startinblox/component-notifications@0.8" defer)
+//- script(type="module" src="/lib/sib-notifications/index.js" defer)
-if (endpoints.events || (endpoints.get && endpoints.get.events)) && (endpoints.typeevents || (endpoints.get && endpoints.get.typeevents))
- script(type="module" src="https://unpkg.com/@startinblox/component-event@1.1" defer)
+//- DISABLED - please migrate to dev.skypack.dev + upgrade to core@0.13
+//- if (endpoints.events || (endpoints.get && endpoints.get.events)) && (endpoints.typeevents || (endpoints.get && endpoints.get.typeevents))
+//- script(type="module" src="https://cdn.skypack.dev/@startinblox/component-event@1.2" defer)
//- script(type="module" src="/lib/sib-event-component/sib-event.js" defer)
-if (endpoints.resources || (endpoints.get && endpoints.get.resources)) && (endpoints.resourceskeywords || (endpoints.get && endpoints.get.resourceskeywords)) && (endpoints.resourcestypes || (endpoints.get && endpoints.get.resourcestypes))
- script(type="module" src="https://unpkg.com/@startinblox/component-resource@1.0" defer)
+//- DISABLED - please migrate to dev.skypack.dev + upgrade to core@0.13
+//- if (endpoints.resources || (endpoints.get && endpoints.get.resources)) && (endpoints.resourceskeywords || (endpoints.get && endpoints.get.resourceskeywords)) && (endpoints.resourcestypes || (endpoints.get && endpoints.get.resourcestypes))
+//- script(type="module" src="https://cdn.skypack.dev/@startinblox/component-resource@1.0" defer)
//- script(type="module" src="/lib/sib-resource/sib-resource.js" defer)
if endpoints.joboffers || (endpoints.get && endpoints.get.joboffers)
- script(type="module" src="https://unpkg.com/@startinblox/component-job-board@0.6" defer)
+ script(type="module" src="https://cdn.skypack.dev/@startinblox/component-job-board@1.2" defer)
//- script(type="module" src="/lib/solid-job-board/dist/index.js" defer)
if (endpoints.uploads || (endpoints.get && endpoints.get.uploads)) && (endpoints.skills || (endpoints.get && endpoints.get.skills)) && (endpoints.users || (endpoints.get && endpoints.get.users))
- script(type="module" src="https://unpkg.com/@startinblox/component-directory@0.7" defer)
+ script(type="module" src="https://cdn.skypack.dev/@startinblox/component-directory@1.2" defer)
//- script(type="module" src="/lib/solid-directory/dist/index.js" defer)
if endpoints.dashboards || (endpoints.get && endpoints.get.dashboards)
- script(type="module" src="https://unpkg.com/@startinblox/component-dashboard@0.3" defer)
+ script(type="module" src="https://cdn.skypack.dev/@startinblox/component-dashboard@0.6" defer)
//- script(type="module" src="/lib/solid-dashboard/dist/index.js" defer)
if endpoints.users || (endpoints.get && endpoints.get.users)
- script(type="module" src="https://unpkg.com/@startinblox/component-chat@0.8" defer)
+ script(type="module" src="https://cdn.skypack.dev/@startinblox/component-chat@1.4" defer)
//- script(type="module" src="/lib/solid-xmpp-chat/dist/index.js" defer)
-if endpoints.polls || (endpoints.get && endpoints.get.polls)
- script(type="module" src="https://unpkg.com/@startinblox/component-poll@1.0" defer)
- //- script(type="module" src="/lib/sib-event-component/sib-event.js" defer)
+//- DISABLED - please migrate to dev.skypack.dev + upgrade to core@0.13
+//- if endpoints.polls || (endpoints.get && endpoints.get.polls)
+ //- script(type="module" src="https://cdn.skypack.dev/@startinblox/component-poll@1.0" defer)
+ //- script(type="module" src="/lib/sib-polls-component/index.js" defer)
+
+//- swal2 does not work with skypack
+script(src="https://cdn.jsdelivr.net/npm/sweetalert2@10")
script(src="/scripts/index.js" defer)
diff --git a/src/header.pug b/src/header.pug
index 1320e54..420990c 100644
--- a/src/header.pug
+++ b/src/header.pug
@@ -1,6 +1,9 @@
-.logo
- solid-link(next='dashboard')
- img(src=`${clientLogo || '/images/logo.png'}` style=`max-height:${clientLogoHeight || '32px'}`)
+.header-left
+ .logo
+ solid-link(next='dashboard')
+ img(src=`${clientLogo || '/images/logo.webp'}` style=`max-height:${clientLogoHeight || '74px'}`)
+
+ span.beta-tag(data-trans='header.beta')
solid-notifications.notLoggedIn(
nested-field="inbox"
@@ -8,8 +11,8 @@ solid-notifications.notLoggedIn(
)
//- Templates for notifications from circles and from other users
-include views/circle/page-circle-notifications.pug
-include views/user/page-user-notifications.pug
+include views/notifications/message-circle.pug
+include views/notifications/message-private.pug
include templates/hubl-user-avatar.pug
@@ -27,18 +30,18 @@ details#user-controls.notLoggedIn
ul
if (endpoints.uploads || (endpoints.get && endpoints.get.uploads)) && (endpoints.skills || (endpoints.get && endpoints.get.skills)) && (endpoints.users || (endpoints.get && endpoints.get.users))
li
- solid-link(next='profile') Mon profil
+ solid-link(next='profile' data-trans='header.myProfile')
li
- solid-link(next='admin') Administration
+ solid-link(next='admin' data-trans='header.admin')
li
- solid-link(next='about') A propos
- button(role='log out' onclick="document.querySelector('sib-auth').logout();") Se déconnecter
+ solid-link(next='about' data-trans='header.about')
+ button(role='log out' onclick="document.querySelector('sib-auth').logout();" data-trans='header.logOut')
-button.loggedIn(role='log in' onclick="document.querySelector('sib-auth').login();") Se connecter
+button.loggedIn(role='log in' onclick="document.querySelector('sib-auth').login();" data-trans='header.logIn')
button.notLoggedIn.mobile-menu-icon.icon-menu#toggleMainMenu
-sib-auth(style='display:none!important')
+sib-auth(style='display:none!important', auto-login)
sib-auth-provider(
data-authority=`${authority}`
data-id=`${authorityName || "authority"}`
diff --git a/src/images/favicon.png b/src/images/favicon.png
deleted file mode 100644
index e715278..0000000
Binary files a/src/images/favicon.png and /dev/null differ
diff --git a/src/images/favicon.webp b/src/images/favicon.webp
new file mode 100644
index 0000000..d16fe68
Binary files /dev/null and b/src/images/favicon.webp differ
diff --git a/src/images/hubl-icon-192.png b/src/images/hubl-icon-192.png
new file mode 100644
index 0000000..efe199b
Binary files /dev/null and b/src/images/hubl-icon-192.png differ
diff --git a/src/images/hubl-icon-512.png b/src/images/hubl-icon-512.png
new file mode 100644
index 0000000..3b3e059
Binary files /dev/null and b/src/images/hubl-icon-512.png differ
diff --git a/src/images/logo.png b/src/images/logo.png
deleted file mode 100644
index ea256f2..0000000
Binary files a/src/images/logo.png and /dev/null differ
diff --git a/src/images/logo.webp b/src/images/logo.webp
new file mode 100644
index 0000000..a7f0c09
Binary files /dev/null and b/src/images/logo.webp differ
diff --git a/src/index.pug b/src/index.pug
index dcdbd14..0fd12f3 100644
--- a/src/index.pug
+++ b/src/index.pug
@@ -9,11 +9,11 @@ html(lang="en")
if clientFavicon
link(rel="icon" type="image/png" href=`${clientFavicon}`)
else
- link(rel="icon" type="image/png" href="/images/favicon.png")
+ link(rel="icon" type="image/webp" href="/images/favicon.webp")
include dependencies.pug
if clientCSS
link(rel='stylesheet', href=`${clientCSS}`)
-
+ link(rel="manifest" href="/manifest.webmanifest")
body
.wrapper
@@ -27,15 +27,15 @@ html(lang="en")
main#viewport.content.notLoggedIn
if endpoints.dashboards || (endpoints.get && endpoints.get.dashboards)
- #dashboard(hidden).no-sidebar.with-padding
+ #dashboard(hidden, data-view="dashboard").no-sidebar.with-padding
include page-dashboard.pug
if publicDirectory && (endpoints.users || (endpoints.get && endpoints.get.users))
- #members(hidden).no-sidebar.with-padding
+ #members(hidden, data-view="members", no-render).no-sidebar.with-padding
include page-directory.pug
if endpoints.joboffers || (endpoints.get && endpoints.get.joboffers)
- #job-offers(hidden).no-sidebar.with-padding
+ #job-offers(hidden, data-view="job-offers", no-render).no-sidebar.with-padding
if (endpoints.post && endpoints.post.joboffers) && (endpoints.get && endpoints.get.joboffers)
hubl-reactivity(data-src=`${endpoints.post.joboffers}current/` target-src=`${endpoints.get.joboffers}`)
hubl-reactivity(data-src=`${endpoints.post.joboffers}expired/` target-src=`${endpoints.get.joboffers}`)
@@ -49,7 +49,7 @@ html(lang="en")
include page-job-offers.pug
if endpoints.projects || (endpoints.get && endpoints.get.projects)
- #project(hidden).with-sidebar
+ #project(hidden, data-view="project", no-render).with-sidebar
if (endpoints.post && endpoints.post.projects) && (endpoints.get && endpoints.get.projects)
hubl-reactivity(data-src=`${endpoints.post.projects}joinable/` target-src=`${endpoints.get.projects}`)
hubl-reactivity(data-src=`${endpoints.post.projects}` target-src=`${endpoints.get.projects}`)
@@ -61,7 +61,7 @@ html(lang="en")
include page-project.pug
if endpoints.circles || (endpoints.get && endpoints.get.circles)
- #circle(hidden).with-sidebar
+ #circle(hidden, data-view="circle", no-render).with-sidebar
if (endpoints.post && endpoints.post.circles) && (endpoints.get && endpoints.get.circles)
hubl-reactivity(data-src=`${endpoints.post.circles}joinable/` target-src=`${endpoints.get.circles}`)
hubl-reactivity(data-src=`${endpoints.post.circles}` target-src=`${endpoints.get.circles}`)
@@ -72,29 +72,29 @@ html(lang="en")
hubl-reactivity(bind-user nested-field="circles" target-src=`${endpoints.circles || endpoints.get.circles}joinable/`)
include page-circle.pug
if endpoints.users || (endpoints.get && endpoints.get.users)
- #messages(hidden).with-sidebar
+ #messages(hidden, data-view="messages", no-render).with-sidebar
include page-messages.pug
if endpoints.polls || (endpoints.get && endpoints.get.polls)
- #polls(hidden).with-sidebar
+ #polls(hidden, data-view="polls", no-render).with-sidebar
include page-polls.pug
if endpoints.events || (endpoints.get && endpoints.get.events)
- #events(hidden)
+ #events(hidden, data-view="events", no-render)
include page-events.pug
if endpoints.resources || (endpoints.get && endpoints.get.resources)
- #resources(hidden)
+ #resources(hidden, data-view="resources", no-render)
include page-resources.pug
- #admin(hidden).with-sidebar
+ #admin(hidden, data-view="admin", no-render).with-sidebar
include page-admin.pug
- #about(hidden).no-sidebar.with-padding
+ #about(data-view="about", no-render).no-sidebar.with-padding
include page-about.pug
if (endpoints.skills || (endpoints.get && endpoints.get.skills)) && (endpoints.uploads || (endpoints.post && endpoints.post.uploads)) && (endpoints.users || (endpoints.post && endpoints.post.users))
- #profile(hidden).no-sidebar
+ #profile(hidden, data-view="profile", no-render).no-sidebar
include page-profile.pug
if analytics
diff --git a/src/locales/en.json b/src/locales/en.json
new file mode 100644
index 0000000..7b06fc0
--- /dev/null
+++ b/src/locales/en.json
@@ -0,0 +1,208 @@
+{
+ "header": {
+ "beta": "Beta",
+ "myProfile": "My profile",
+ "admin": "Administration",
+ "about": "About",
+ "logOut": "Logout",
+ "logIn": "Log-in"
+ },
+ "menuLeft": {
+ "emptyCircleProject": {
+ "notPartOf": "You're not part of",
+ "createNew": "To create a new one, you can go in the",
+ "adminPanel": "administration panel",
+ "project": "project",
+ "circle": "circle"
+ },
+ "dashboard": "Dashboard",
+ "events": "Events",
+ "gov": "Governance",
+ "resources": "Resources",
+ "jobBoard": "Job offers",
+ "profileDirectory": "Profiles directory",
+ "projects": "Projects",
+ "circles": "Circles",
+ "messages": "Messages",
+ "search": "Search..."
+ },
+ "about": {
+ "title": "About",
+ "card1": {
+ "subTitle": "This application is developed by Startin'blox",
+ "paragraph1": "Startin'blox is a cooperative that develops open source tools to easily and cheaply build federated and interoperable applications based on the latest web standards pushed by the SOLID project.",
+ "paragraph2": "Its mission is to empower users by enabling them to regain control of their digital tools and benefit from a network effect within a chosen ecosystem in order to emancipate themselves from large platforms."
+ },
+ "card2": {
+ "title": "Contact us",
+ "paragraph-1": "You want to contribute, report a bug, suggest an improvement, work with us?",
+ "link": "Contact"
+ }
+ },
+ "admin": {
+ "menuRight": {
+ "fold": "Fold the menu",
+ "community": "Communities",
+ "circles": "Circles",
+ "projects": "Projects"
+ }
+ },
+ "dashboard": {
+ "title": "Dashboard"
+ },
+ "circle": {
+ "menuRight": {
+ "buttonMobile": "MENU",
+ "fold": "Fold the menu",
+ "chat": "Chat",
+ "information": "Information",
+ "resources": "Resources",
+ "events": "Events",
+ "polls": "Polls"
+ },
+ "create": {
+ "backlink": "Back",
+ "title": " Create a circle",
+ "labelStatus": "Statut du circle",
+ "labelName": "Circle name *",
+ "labelDescription": "Circle headline *",
+ "buttonSubmit": "Save"
+ },
+ "edit": {
+ "buttonDelete": "Remove",
+ "backlink": "Back",
+ "title": "Edit your circle",
+ "labelStatus": "Circle status",
+ "labelName": "Circle name *",
+ "labelOwner": "Admin *",
+ "labelDescription": "Circle headline *",
+ "subTitle": "Members list :",
+ "tableHeader1": "Name",
+ "tableHeader2": "Access",
+ "buttonSubmit": "Save",
+ "buttonAddMember": "Add a member"
+ },
+ "list": {
+ "title": "Administration",
+ "buttonMobile": "MENU",
+ "subTitle": "Circles",
+ "buttonCreate": " Create a circle",
+ "tableHeader1": "Name",
+ "tableHeader2": "Admins",
+ "tableHeader3": "Join",
+ "buttonQuit": "Leave",
+ "buttonJoin": "Join"
+ },
+ "left": {
+ "paragraphQuit": "You left this circle.",
+ "paragraphJoin": "To join it again, go to the panel",
+ "paragraphContact": "or contact an admin.",
+ "admin": "administration"
+ },
+ "profile": {
+ "creationDate": "Creation date : ",
+ "buttonModify": "Edit and add a member",
+ "buttonAdd": "Add a member",
+ "buttonDelete": "Remove the circle",
+ "buttonQuit": "Leave the circle",
+ "buttonJoin": "Join the circle",
+ "subTitle": "Members :"
+ }
+ },
+ "communities": {
+ "title": "Administration",
+ "menuMobile": "MENU",
+ "linkInvite": "Invite a new user",
+ "noPermission": "Member, no permission",
+ "subTitle": "Communities",
+ "tableHeader1": "Name",
+ "tableHeader2": "Action"
+ },
+ "project": {
+ "menuRight": {
+ "buttonMobile": "MENU",
+ "fold": "Fold the menu",
+ "chat": "Chat",
+ "information": "Information"
+ },
+ "create": {
+ "backlink": "Back",
+ "title": " Create a nouveau project",
+ "labelName": "Project name*",
+ "labelCustomer": "Customer name*",
+ "labelCaptain": "Project captain*",
+ "buttonSubmit": "Save"
+ },
+ "edit": {
+ "buttonDelete": "Remove",
+ "backlink": "Back",
+ "title": "Edit your project",
+ "labelName": "Project name *",
+ "labelCustomer": "Customer name *",
+ "subTitle": "Team members :",
+ "tableHeader1": "Name",
+ "tableHeader2": "Access",
+ "buttonSubmit": "Save",
+ "buttonAddMember": "Add a member"
+ },
+ "modifyPicture": {
+ "backlink": "Back",
+ "title": "Modify the project picture"
+ },
+ "list": {
+ "title": "Administration",
+ "buttonMobile": "MENU",
+ "subTitle": "Projects",
+ "buttonCreate": "Create a new project",
+ "tableHeader1": "Name",
+ "tableHeader2": "Admins",
+ "tableHeader3": "Captains",
+ "tableHeader4": "Join",
+ "buttonQuit": "Leave",
+ "buttonJoin":"Join"
+ },
+ "left": {
+ "paragraphQuit": "You left this project.",
+ "paragraphJoin": "This is a private project. To join it again, go to the panel",
+ "paragraphContact": "and request an invitation.",
+ "admin": "administration"
+ },
+ "profile": {
+ "creationDate": "Creation date : ",
+ "buttonModify": "Edit and add a member",
+ "buttonAdd": "Add a member",
+ "buttonDelete": "Delete the project",
+ "buttonQuit": "Leave the project",
+ "buttonJoin": "Join the project",
+ "captain": "Captain :",
+ "subTitle": "Team :"
+ }
+ },
+ "user": {
+ "create": {
+ "backlink": "Back",
+ "title": "Invite a user to ",
+ "labelUsername": "Username*",
+ "labelUsernameTitle": "Alphanumeric characters only",
+ "labelEmail": "E-mail *",
+ "labelFirstname": "Firstname *",
+ "labelLastname": "Lastname *",
+ "buttonSubmit": "Invite"
+ }
+ },
+ "notification": {
+ "circle": {
+ "in": "in"
+ },
+ "private": {
+ "private": "in private"
+ }
+ },
+ "template-captain": {
+ "isLead": "Captain"
+ },
+ "hublStatus": {
+ "private": "Private",
+ "public": "Public"
+ }
+}
\ No newline at end of file
diff --git a/src/locales/es.json b/src/locales/es.json
new file mode 100644
index 0000000..577aea1
--- /dev/null
+++ b/src/locales/es.json
@@ -0,0 +1,208 @@
+{
+ "header": {
+ "beta": "Beta",
+ "myProfile": "Mi perfil",
+ "admin": "Administración",
+ "about": "Acerca de",
+ "logOut": "Cerrar sesión",
+ "logIn": "Iniciar sesión"
+ },
+ "menuLeft": {
+ "emptyCircleProject": {
+ "notPartOf": "No eres parte de ninguno",
+ "createNew": "Para crear uno nuevo, puede ir al ",
+ "adminPanel": "panel de administración",
+ "project": "proyecto",
+ "circle": "círculo"
+ },
+ "dashboard": "Panel de control",
+ "events": "Eventos",
+ "gov": "Gobernanza",
+ "resources": "Recursos",
+ "jobBoard": "Ofertas de trabajo",
+ "profileDirectory": "Directorio de miembrxs",
+ "projects": "Proyectos",
+ "circles": "Círculos",
+ "messages": "Mensajes",
+ "search": "Buscar..."
+ },
+ "about": {
+ "title": "Acerca de",
+ "card1": {
+ "subTitle": "Esta aplicación fue desarrollada por Startin'blox",
+ "paragraph1": "Startin'blox es una cooperativa que desarrolla herramientas gratuitas para construir de manera fácil y económica aplicaciones federadas e interoperables basadas en los últimos estándares web impulsados por el proyecto SOLID.",
+ "paragraph2": "Su misión es devolver el poder a los usuarios permitiéndoles recuperar el control de su herramienta digital y beneficiarse de un efecto de red dentro de un ecosistema elegido para emanciparse de las grandes plataformas."
+ },
+ "card2": {
+ "title": "Contactenos",
+ "paragraph-1": "¿Quieres contribuir, informar de un error, sugerir una mejora, trabajar con nosotrxs?",
+ "link": "Contacto"
+ }
+ },
+ "admin": {
+ "menuRight": {
+ "fold": "Contraer el menú",
+ "community": "Comunidades",
+ "circles": "Círculos",
+ "projects": "Proyectos"
+ }
+ },
+ "dashboard": {
+ "title": "Panel de control"
+ },
+ "circle": {
+ "menuRight": {
+ "buttonMobile": "MENÚ",
+ "fold": "Contraer el menú",
+ "chat": "Chat",
+ "information": "Información",
+ "resources": "Recursos",
+ "events": "Eventos",
+ "polls": "Encuentas"
+ },
+ "create": {
+ "backlink": "Atrás",
+ "title": "Crear un círculo",
+ "labelStatus": "Estado del círculo",
+ "labelName": "Nombre del círculo *",
+ "labelDescription": "Subtítulo del círculo *",
+ "buttonSubmit": "Guardar"
+ },
+ "edit": {
+ "buttonDelete": "Eliminar",
+ "backlink": "Atrás",
+ "title": "Modificá tu círculo",
+ "labelStatus": "Estado del círculo",
+ "labelName": "Nombre del círculo *",
+ "labelOwner": "Administrador/a *",
+ "labelDescription": "Subtítulo del círculo *",
+ "subTitle": "Listado de miembrxs: ",
+ "tableHeader1": "Nombre",
+ "tableHeader2": "Acceso",
+ "buttonSubmit": "Guardar",
+ "buttonAddMember": "Añadir miembrx"
+ },
+ "list": {
+ "title": "Administración",
+ "buttonMobile": "MENÚ",
+ "subTitle": "Círculos",
+ "buttonCreate": "Crear un círculo",
+ "tableHeader1": "Nombre",
+ "tableHeader2": "Administradorxs",
+ "tableHeader3": "Unirse",
+ "buttonQuit": "Salir",
+ "buttonJoin": "Unirse"
+ },
+ "left": {
+ "paragraphQuit": "Dejaste este círculo.",
+ "paragraphJoin": "Para volver a unirse, vaya al panel",
+ "paragraphContact": "o contacte un/a administrador/a",
+ "admin": "de administración"
+ },
+ "profile": {
+ "creationDate": "Fecha de creación: ",
+ "buttonModify": "Editar y agregar un/a miembrx",
+ "buttonAdd": "Agregar un/a miebro",
+ "buttonDelete": "Eliminar el círculo",
+ "buttonQuit": "Salir del círculo",
+ "buttonJoin": "Unirse al círculo",
+ "subTitle": "Miembrxs: "
+ }
+ },
+ "communities": {
+ "title": "Administración",
+ "menuMobile": "MENÚ",
+ "linkInvite": "Invita a un/a nuevx usuarix",
+ "noPermission": "Miembrx sin permiso",
+ "subTitle": "Comunidades",
+ "tableHeader1": "Nombre",
+ "tableHeader2": "Acción"
+ },
+ "project": {
+ "menuRight": {
+ "buttonMobile": "MENÚ",
+ "fold": "Contraer el menú",
+ "chat": "Chat",
+ "information": "Información"
+ },
+ "create": {
+ "backlink": "Atrás",
+ "title": "Crear un proyecto nuevo",
+ "labelName": "Nombre del proyecto *",
+ "labelCustomer": "Nombre del/la clientx *",
+ "labelCaptain": "Líder del proyecto *",
+ "buttonSubmit": "Guardar"
+ },
+ "edit": {
+ "buttonDelete": "Eliminar",
+ "backlink": "Atrás",
+ "title": "Modificar tu proyecto",
+ "labelName": "Nombre del proyecto *",
+ "labelCustomer": "Nombre del/la clientx *",
+ "subTitle": "Lista de miembrxs: ",
+ "tableHeader1": "Nombre",
+ "tableHeader2": "Acceso",
+ "buttonSubmit": "Guardar",
+ "buttonAddMember": "Añadir miembrx"
+ },
+ "modifyPicture": {
+ "backlink": "Atrás",
+ "title": "Cambiar la imagen del proyecto"
+ },
+ "list": {
+ "title": "Administración",
+ "buttonMobile": "MENÚ",
+ "subTitle": "Proyectos",
+ "buttonCreate": "Crear un proyecto nuevo",
+ "tableHeader1": "Nombre",
+ "tableHeader2": "Administradorxs",
+ "tableHeader3": "Líderes",
+ "tableHeader4": "Unirse",
+ "buttonQuit": "Salir",
+ "buttonJoin": "Unirse"
+ },
+ "left": {
+ "paragraphQuit": "Dejaste este proyecto.",
+ "paragraphJoin": "Este es un proyecto privado. Para volver a unirse, vaya al panel",
+ "paragraphContact": "y solicite una invitación.",
+ "admin": "de administración"
+ },
+ "profile": {
+ "creationDate": "Fecha de creación: ",
+ "buttonModify": "Editar y agregar un/a miembrx",
+ "buttonAdd": "Añadir miembrx",
+ "buttonDelete": "Eliminar el proyecto",
+ "buttonQuit": "Salir del proyecto",
+ "buttonJoin": "Unirse al proyecto",
+ "captain": "Líder : ",
+ "subTitle": "Equipo : "
+ }
+ },
+ "user": {
+ "create": {
+ "backlink": "Atrás",
+ "title": "Invitar a un/a usuarix",
+ "labelUsername": "Nombre de usuarix *",
+ "labelUsernameTitle": "Solo caracteres alfanuméricos",
+ "labelEmail": "E-mail *",
+ "labelFirstname": "Nombre *",
+ "labelLastname": "Apellido *",
+ "buttonSubmit": "Invitar"
+ }
+ },
+ "notification": {
+ "circle": {
+ "in": "dentro"
+ },
+ "private": {
+ "private": "en privado"
+ }
+ },
+ "template-captain": {
+ "isLead": "Líder"
+ },
+ "hublStatus": {
+ "private": "Privado",
+ "public": "Público"
+ }
+}
diff --git a/src/locales/fr.json b/src/locales/fr.json
new file mode 100644
index 0000000..cad2808
--- /dev/null
+++ b/src/locales/fr.json
@@ -0,0 +1,208 @@
+{
+ "header": {
+ "beta": "Beta",
+ "myProfile": "Mon profil",
+ "admin": "Administration",
+ "about": "A propos",
+ "logOut": "Se déconnecter",
+ "logIn": "Se connecter"
+ },
+ "menuLeft": {
+ "emptyCircleProject": {
+ "notPartOf": "Tu ne fais partie d'aucun",
+ "createNew": "Pour en créer un nouveau, tu peux te rendre dans le",
+ "adminPanel": "panneau d'administration",
+ "project": "projet",
+ "circle": "cercle"
+ },
+ "dashboard": "Tableau de bord",
+ "events": "Evènements",
+ "gov": "Gouvernance",
+ "resources": "Ressources",
+ "jobBoard": "Offres de mission",
+ "profileDirectory": "Annuaire des membres",
+ "projects": "Projets",
+ "circles": "Circles",
+ "messages": "Messages",
+ "search": "Rechercher..."
+ },
+ "about": {
+ "title": "A propos",
+ "card1": {
+ "subTitle": "Cette application est développée par Startin'blox",
+ "paragraph1": "Startin’blox est une coopérative qui développe des outils libres pour construire facilement et à moindre coût des applications fédérées et interopérables basées sur les derniers standards du web poussés par le projet SOLID.",
+ "paragraph2": "Sa mission est de redonner le pouvoir aux utilisateurs en leur permettant de reprendre la main sur leur outil numérique et de bénéficier d’un effet de réseau au sein d’un écosystème choisi afin de s’émanciper des grandes plateformes."
+ },
+ "card2": {
+ "title": "Contacte-nous",
+ "paragraph-1": "Tu veux contribuer, nous remonter un bug, nous suggérer une amélioration, travailler avec nous ?",
+ "link": "Contact"
+ }
+ },
+ "admin": {
+ "menuRight": {
+ "fold": "Replier le menu",
+ "community": "Communautés",
+ "circles": "Cercles",
+ "projects": "Projets"
+ }
+ },
+ "dashboard": {
+ "title": "Tableau de bord"
+ },
+ "circle": {
+ "menuRight": {
+ "buttonMobile": "MENU",
+ "fold": "Replier le menu",
+ "chat": "Chat",
+ "information": "Information",
+ "resources": "Resources",
+ "events": "Events",
+ "polls": "Polls"
+ },
+ "create": {
+ "backlink": "Retour",
+ "title": "Créer un cercle",
+ "labelStatus": "Statut du cercle",
+ "labelName": "Nom du cercle *",
+ "labelDescription": "Sous-titre du cercle *",
+ "buttonSubmit": "Enregistrer"
+ },
+ "edit": {
+ "buttonDelete": "Retirer",
+ "backlink": "Retour",
+ "title": "Modifie ton cercle",
+ "labelStatus": "Statut du cercle",
+ "labelName": "Nom du cercle *",
+ "labelOwner": "Administrateur ou administratrice *",
+ "labelDescription": "Sous-titre du cercle *",
+ "subTitle": "Liste des membres :",
+ "tableHeader1": "Nom",
+ "tableHeader2": "Accès",
+ "buttonSubmit": "Enregistrer",
+ "buttonAddMember": "Ajouter un membre"
+ },
+ "list": {
+ "title": "Administration",
+ "buttonMobile": "MENU",
+ "subTitle": "Cercles",
+ "buttonCreate": "Créer un cercle",
+ "tableHeader1": "Nom",
+ "tableHeader2": "Administrateurs",
+ "tableHeader3": "Rejoindre",
+ "buttonQuit": "Quitter",
+ "buttonJoin": "Rejoindre"
+ },
+ "left": {
+ "paragraphQuit": "Tu as quitté ce cercle.",
+ "paragraphJoin": "Pour le rejoindre à nouveau, rends-toi dans le panneau",
+ "paragraphContact": "ou contacte un administrateur.",
+ "admin": "d'administration"
+ },
+ "profile": {
+ "creationDate": "Date de création : ",
+ "buttonModify": "Modifier et ajouter un membre",
+ "buttonAdd": "Ajouter un membre",
+ "buttonDelete": "Supprimer le cercle",
+ "buttonQuit": "Quitter le cercle",
+ "buttonJoin": "Rejoindre le cercle",
+ "subTitle": "Membres :"
+ }
+ },
+ "communities": {
+ "title": "Administration",
+ "menuMobile": "MENU",
+ "linkInvite": "Inviter un nouvel utilisateur",
+ "noPermission": "Membre, aucune permission",
+ "subTitle": "Communautés",
+ "tableHeader1": "Nom",
+ "tableHeader2": "Action"
+ },
+ "project": {
+ "menuRight": {
+ "buttonMobile": "MENU",
+ "fold": "Replier le menu",
+ "chat": "Chat",
+ "information": "Information"
+ },
+ "create": {
+ "backlink": "Retour",
+ "title": "Créer un nouveau projet",
+ "labelName": "Nom du projet *",
+ "labelCustomer": "Nom du client*",
+ "labelCaptain": "Capitaine du projet*",
+ "buttonSubmit": "Enregistrer"
+ },
+ "edit": {
+ "buttonDelete": "Retirer",
+ "backlink": "Retour",
+ "title": "Modifie ton projet",
+ "labelName": "Nom du projet *",
+ "labelCustomer": "Nom du client *",
+ "subTitle": "Liste des membres :",
+ "tableHeader1": "Nom",
+ "tableHeader2": "Accès",
+ "buttonSubmit": "Enregistrer",
+ "buttonAddMember": "Ajouter un membre"
+ },
+ "modifyPicture": {
+ "backlink": "Retour",
+ "title": "Modifier l'image du projet"
+ },
+ "list": {
+ "title": "Administration",
+ "buttonMobile": "MENU",
+ "subTitle": "Projets",
+ "buttonCreate": "Créer un nouveau projet",
+ "tableHeader1": "Nom",
+ "tableHeader2": "Administrateurs",
+ "tableHeader3": "Capitaines",
+ "tableHeader4": "Rejoindre",
+ "buttonQuit": "Quitter",
+ "buttonJoin":"Rejoindre"
+ },
+ "left": {
+ "paragraphQuit": "Tu as quitté ce projet.",
+ "paragraphJoin": "Ceci est un projet privé. Pour le joindre à nouveau, rends-toi dans le panneau",
+ "paragraphContact": "et demande une invitation.",
+ "admin": "d'administration"
+ },
+ "profile": {
+ "creationDate": "Date de création : ",
+ "buttonModify": "Modifier et ajouter un membre",
+ "buttonAdd": "Ajouter un membre",
+ "buttonDelete": "Supprimer le projet",
+ "buttonQuit": "Quitter le projet",
+ "buttonJoin": "Rejoindre le projet",
+ "captain": "Capitaine :",
+ "subTitle": "Equipe :"
+ }
+ },
+ "user": {
+ "create": {
+ "backlink": "Retour",
+ "title": "Inviter un utilisateur à ",
+ "labelUsername": "Nom d'utilisateur*",
+ "labelUsernameTitle": "Caractères alphanumérique uniquement",
+ "labelEmail": "E-mail *",
+ "labelFirstname": "Prénom *",
+ "labelLastname": "Nom *",
+ "buttonSubmit": "Inviter"
+ }
+ },
+ "notification": {
+ "circle": {
+ "in": "dans"
+ },
+ "private": {
+ "private": "en privé"
+ }
+ },
+ "template-captain": {
+ "isLead": "Capitaine"
+ },
+ "hublStatus": {
+ "private": "Privé",
+ "public": "Public"
+ }
+}
\ No newline at end of file
diff --git a/src/menu-left.pug b/src/menu-left.pug
index e8a3b28..b3a7518 100644
--- a/src/menu-left.pug
+++ b/src/menu-left.pug
@@ -14,78 +14,85 @@ solid-widget(name='hubl-menu-publicprivate')
solid-widget(name='hubl-create')
template
- p.create Tu ne fais partie d'aucun ${value}.
+ p.create
+ span(data-trans="menuLeft.emptyCircleProject.notPartOf")
+ span ${value}.
br
- | Pour en créer un nouveau, tu peux te rendre dans le
- solid-link(next='admin') panneau d'administration
+ span(data-trans="menuLeft.emptyCircleProject.createNew")
+ span
+ solid-link(next="${value == 'projet' ? 'admin-projects' : 'admin-circles'}", data-trans="menuLeft.emptyCircleProject.adminPanel")
solid-widget(name='hubl-menu-fix-url-circle')
template
- solid-display(
- data-src='${value}'
- fields='status, name, jabberID, badge'
- value-badge='${value}'
- widget-status='hubl-menu-publicprivate'
- widget-badge='hubl-counter'
- widget-jabberID='hubl-menu-jabberid'
- widget-name='solid-display-div'
- order-by="name"
- )
+ solid-link(data-src="${value}" next="circle")
+ solid-display(
+ data-src='${value}'
+ fields='status, name, jabberID, badge'
+ value-badge='${value}'
+ widget-status='hubl-menu-publicprivate'
+ widget-badge='hubl-counter'
+ widget-jabberID='hubl-menu-jabberid'
+ widget-name='solid-display-div'
+ order-by="name"
+ )
solid-widget(name='hubl-menu-fix-url-project')
template
- solid-display(
- data-src='${value}'
- fields='status, project(customer.name, name, jabberID), badge'
- class-name='project-name'
- class-customer.name='project-customer'
- value-badge='${value}'
- widget-status='hubl-menu-publicprivate'
- widget-jabberID='hubl-menu-jabberid'
- widget-badge='hubl-counter'
- widget-name='solid-display-div'
- order-by="customer.name"
- )
+ solid-link(data-src="${value}" next="project")
+ solid-display(
+ data-src='${value}'
+ fields='status, project(customer.name, name, jabberID), badge'
+ class-name='project-name'
+ class-customer.name='project-customer'
+ value-badge='${value}'
+ widget-status='hubl-menu-publicprivate'
+ widget-jabberID='hubl-menu-jabberid'
+ widget-badge='hubl-counter'
+ widget-name='solid-display-div'
+ order-by="customer.name"
+ )
solid-router#navbar-router(default-route='dashboard')
if endpoints.dashboards || (endpoints.get && endpoints.get.dashboards)
solid-route.menu(name='dashboard')
- div.menu-label Tableau de bord
+ div.menu-label(data-trans="menuLeft.dashboard")
div.menu-icon.icon-home
div.divider
if publicDirectory && (endpoints.users || (endpoints.get && endpoints.get.users))
solid-route.menu(name='members')
- div.menu-label Annuaire des membres
+ div.menu-label(data-trans="menuLeft.profileDirectory")
div.menu-icon.icon-people
div.divider
if endpoints.joboffers || (endpoints.get && endpoints.get.joboffers)
solid-route.menu(name='job-offers', rdf-type='hd:joboffer')
- div.menu-label Offres de mission
+ div.menu-label(data-trans="menuLeft.jobBoard")
div.menu-icon.icon-briefcase
div.divider
if endpoints.resources || (endpoints.get && endpoints.get.resources)
solid-route.menu(name='resources')
- div.menu-label Ressources
+ div.menu-label(data-trans="menuLeft.resources")
div.menu-icon.icon-docs
div.divider
if endpoints.polls || (endpoints.get && endpoints.get.polls)
solid-route.menu(name='polls')
- div.menu-label Gouvernance
+ div.menu-label(data-trans="menuLeft.gov")
div.menu-icon.icon-bubbles
div.divider
if endpoints.events || (endpoints.get && endpoints.get.events)
solid-route.menu(name='events')
- div.menu-label Evènements
+ div.menu-label(data-trans="menuLeft.events")
div.menu-icon.icon-calendar
div.divider
if endpoints.projects || (endpoints.get && endpoints.get.projects)
- div
- solid-link(next='admin-project-list')
+ div.menu-wrapper
+ solid-link
+ //- (next='admin-project-list')
div.menu
div.menu-chevron
- div.menu-icon.icon-arrow-right-circle
- div.menu-label Projets
+ div.menu-icon.icon-arrow-up
+ //- div.menu-icon.icon-arrow-right-circle
+ div.menu-label(data-trans="menuLeft.projects")
div.menu-icon.icon-folder-alt
solid-route(name='project', rdf-type='hd:project', use-id='', hidden)
div.sub-menu.menu-notification
@@ -100,19 +107,21 @@ solid-router#navbar-router(default-route='dashboard')
fields='project'
loader-id='loader-projects'
empty-widget='hubl-create'
- empty-value='projet'
+ empty-value=''
+ data-trans="empty-value=menuLeft.emptyCircleProject.project"
widget-project='hubl-menu-fix-url-project'
- order-by='project.customer.name'
- next='project'
+ order-by="project.customer.name"
)
div.divider
if endpoints.circles || (endpoints.get && endpoints.get.circles)
- div
- solid-link(next='admin-circle-list')
+ div.menu-wrapper
+ solid-link
+ //- (next='admin-circle-list')
div.menu
div.menu-chevron
- div.menu-icon.icon-arrow-right-circle
- div.menu-label Cercles
+ div.menu-icon.icon-arrow-up
+ //- div.menu-icon.icon-arrow-right-circle
+ div.menu-label(data-trans="menuLeft.circles")
div.menu-icon.icon-folder-alt
solid-route(name='circle', rdf-type='hd:circle', use-id='', hidden)
div.sub-menu.menu-notification
@@ -127,10 +136,10 @@ solid-router#navbar-router(default-route='dashboard')
fields='circle'
loader-id='loader-circles'
empty-widget='hubl-create'
- empty-value='cercle'
+ empty-value=''
+ data-trans="empty-value=menuLeft.emptyCircleProject.circle"
widget-circle='hubl-menu-fix-url-circle'
- order-by='circle.name'
- next='circle'
+ order-by="circle.name"
)
div.divider
if endpoints.users || (endpoints.get && endpoints.get.users)
@@ -138,7 +147,7 @@ solid-router#navbar-router(default-route='dashboard')
div.menu
div.menu-chevron
div.menu-icon.icon-arrow-up
- div.menu-label Messages
+ div.menu-label(data-trans="menuLeft.messages")
div.menu-icon.icon-envelope-letter
solid-route(name='messages', rdf-type='foaf:user', use-id='', hidden)
div.sub-menu.menu-notification
@@ -152,7 +161,8 @@ solid-router#navbar-router(default-route='dashboard')
fields='name, chatProfile.jabberID, badge'
loader-id='loader-messages'
search-fields="name"
- search-label-name="Rechercher..."
+ search-label-name=""
+ data-trans="search-label-name=menuLeft.search"
search-widget-name="hubl-search-users"
widget-name='solid-display-div'
widget-badge='hubl-counter'
diff --git a/src/page-about.pug b/src/page-about.pug
index 0bad6cf..98870a6 100644
--- a/src/page-about.pug
+++ b/src/page-about.pug
@@ -1,17 +1,17 @@
.views-container
- h2 A propos
+ h2(data-trans='about.title')
div.flex-content-white
div
div
- h3 Cette application est développée par Startin'blox
- p Startin’blox est une coopérative qui développe des outils libres pour construire facilement et à moindre coût des applications fédérées et interopérables basées sur les derniers standards du web poussés par le projet SOLID.
- p Sa mission est de redonner le pouvoir aux utilisateurs en leur permettant de reprendre la main sur leur outil numérique et de bénéficier d’un effet de réseau au sein d’un écosystème choisi afin de s’émanciper des grandes plateformes.
+ h3(data-trans='about.card1.subTitle')
+ p(data-trans='about.card1.paragraph1')
+ p(data-trans='about.card1.paragraph2')
div
a(href="https://startinblox.com/fr/" target="_blank") https://startinblox.com/fr/
div
div
- h3 Contacte-nous
- p Tu veux contribuer, nous remonter un bug, nous suggérer une amélioration, travailler avec nous ?
+ h3(data-trans='about.card2.subTitle')
+ p(data-trans='about.card2.paragraph1')
div
- a(href="https://startinblox.com/fr/#home-contact" target="_blank").main-cta Contact
\ No newline at end of file
+ a(href="https://startinblox.com/fr/#home-contact" target="_blank" data-trans='about.card2.link').main-cta
\ No newline at end of file
diff --git a/src/page-admin.pug b/src/page-admin.pug
index 87697f8..b580127 100644
--- a/src/page-admin.pug
+++ b/src/page-admin.pug
@@ -1,27 +1,27 @@
.views-container.sidebar-is-closed
if endpoints.circles || (endpoints.get && endpoints.get.circles)
- #admin-circles(hidden)
+ #admin-circles(hidden, data-view="admin-circles")
include views/admin/page-admin-circles.pug
if endpoints.projects || (endpoints.get && endpoints.get.projects)
- #admin-projects(hidden)
+ #admin-projects(hidden, data-view="admin-projects")
include views/admin/page-admin-projects.pug
if (endpoints.users || (endpoints.get && endpoints.get.users))
- #admin-users(hidden)
- include views/admin/page-admin-users.pug
+ #admin-communities(hidden, data-view="admin-communities")
+ include views/admin/page-admin-communities.pug
nav.jsRightMenu(role='navigation')
solid-router(default-route='admin-circles')
ul
li.jsOffsiteToggle
- a Replier le menu
+ a(data-trans='admin.menuRight.fold')
if (endpoints.users || (endpoints.get && endpoints.get.users))
- solid-route.active-color(name='admin-users')
+ solid-route(name='admin-communities')
li
- a Utilisateurs
+ a(data-trans='admin.menuRight.community')
if endpoints.circles || (endpoints.get && endpoints.get.circles)
solid-route(name='admin-circles')
li
- a Cercles
+ a(data-trans='admin.menuRight.circles')
if endpoints.projects || (endpoints.get && endpoints.get.projects)
solid-route(name='admin-projects')
li
- a Projets
+ a(data-trans='admin.menuRight.projects')
diff --git a/src/page-circle.pug b/src/page-circle.pug
index 5ca2271..9d86a54 100644
--- a/src/page-circle.pug
+++ b/src/page-circle.pug
@@ -9,41 +9,41 @@
class-name='h1-like'
class-description='h1-aside description'
)
- button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle MENU
+ button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle(data-trans='circle.menuRight.buttonMobile')
div.content-box__height
solid-ac-checker(permission='acl:Read', bind-resources)
- #circle-chat(hidden)
+ #circle-chat(hidden, data-view="circle-chat")
include views/circle/page-circle-chat.pug
- #circle-information.content-box__height(hidden)
+ #circle-information.content-box__height(hidden, data-view="circle-information")
include views/circle/page-circle-profile.pug
- #circle-events(hidden)
+ #circle-events(hidden, data-view="circle-events")
include views/circle/page-circle-events.pug
- #circle-resources(hidden)
+ #circle-resources(hidden, data-view="circle-resources")
include views/circle/page-circle-resources.pug
- #circle-polls(hidden)
+ #circle-polls(hidden, data-view="circle-polls")
include views/circle/page-circle-polls.pug
nav.jsRightMenu(role='navigation')
solid-router(default-route='circle-chat')
ul
li.jsOffsiteToggle
- a Replier le menu
+ a(data-trans='circle.menuRight.fold')
solid-route(name='circle-chat')
li
- a Chat
+ a(data-trans='circle.menuRight.chat')
solid-route(name='circle-information')
li
- a Information
+ a(data-trans='circle.menuRight.information')
if (endpoints.resources || (endpoints.get && endpoints.get.resources)) && (endpoints.resourceskeywords || (endpoints.get && endpoints.get.resourceskeywords)) && (endpoints.resourcestypes || (endpoints.get && endpoints.get.resourcestypes))
solid-route(name='circle-resources' use-id)
li
- a Resources
+ a(data-trans='circle.menuRight.resources')
if (endpoints.events || (endpoints.get && endpoints.get.events)) && (endpoints.typeevents || (endpoints.get && endpoints.get.typeevents))
solid-route(name='circle-events' use-id)
li
- a Events
+ a(data-trans='circle.menuRight.events')
if endpoints.polls || (endpoints.get && endpoints.get.polls)
solid-route(name='circle-polls' use-id)
li
- a Polls
+ a(data-trans='circle.menuRight.polls')
diff --git a/src/page-dashboard.pug b/src/page-dashboard.pug
index 9a22752..3b3cae6 100644
--- a/src/page-dashboard.pug
+++ b/src/page-dashboard.pug
@@ -1,5 +1,5 @@
.views-container
- h1 Tableau de bord
+ h1(data-trans='dashboard.title')
solid-dashboard(
data-src=`${endpoints.dashboards || endpoints.get.dashboards}`
)
diff --git a/src/page-messages.pug b/src/page-messages.pug
index 21f7c6d..6bf8782 100644
--- a/src/page-messages.pug
+++ b/src/page-messages.pug
@@ -3,21 +3,23 @@
div.content-box__header
solid-display(
bind-resources
- fields='name, parenthesis, username, endParenthesis'
- value-parenthesis=" ("
- value-endParenthesis=")"
+ fields='avatar-container(account.picture), text(name, hyphen, at, username)'
+ value-hyphen=" - "
+ value-at="@"
- class-parenthesis='h1-like'
- class-endParenthesis='h1-like'
+ widget-account.picture='hubl-user-avatar'
+ class-text="avatar-text"
+ class-avatar-container="avatar-container"
+ class-account.picture='avatar'
class-name='h1-like'
- class-username='h1-like'
+ class-hypen='h1-like'
)
.chat-view
solid-xmpp-chat(
data-authentication='login',
data-auto-login='true',
- data-bosh-service-url=`${xmpp}`,
+ data-websocket-url=`${xmppWebsocket || 'wss://jabber.happy-dev.fr/xmpp-websocket'}`,
data-i18n='en',
bind-resources
)
diff --git a/src/page-project.pug b/src/page-project.pug
index 3c10265..9a9825d 100644
--- a/src/page-project.pug
+++ b/src/page-project.pug
@@ -13,25 +13,25 @@
value-const-title1='N°'
)
- button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle MENU
+ button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle(data-trans='project.menuRight.buttonMobile')
div.content-box__height
solid-ac-checker(permission='acl:Read', bind-resources)
- #project-chat(hidden)
+ #project-chat(hidden, data-view="project-chat")
include views/project/page-project-chat.pug
- #project-information.content-box__height(hidden)
+ #project-information.content-box__height(hidden, data-view="project-information")
include views/project/page-project-profile.pug
- #project-picture(hidden)
+ #project-picture(hidden, data-view="project-picture")
include views/project/page-project-picture.pug
nav.jsRightMenu(role='navigation')
solid-router(default-route='project-chat')
ul
li.jsOffsiteToggle
- a Replier le menu
+ a(data-trans='project.menuRight.fold')
solid-route(name='project-chat')
li
- a Chat
+ a(data-trans='project.menuRight.chat')
solid-route(name='project-information')
li
- a Information
+ a(data-trans='project.menuRight.information')
solid-route(name='project-picture' use-id)
\ No newline at end of file
diff --git a/src/page-user-profile.pug b/src/page-user-profile.pug
deleted file mode 100644
index aee271e..0000000
--- a/src/page-user-profile.pug
+++ /dev/null
@@ -1,71 +0,0 @@
-include templates/hubl-groups.pug
-
-.content-box.with-form.user-profile__container
-
- .section.user-bio
-
- solid-display.avatar-display(
- bind-user=''
- fields='account.picture'
- label-account.picture=''
- widget-account.picture='solid-display-img'
- )
-
- solid-display.name-diplay(
- bind-user=''
- fields='user-name-groups(name, groups), username'
-
- class-name='name'
-
- label-groups=''
- multiple-groups=''
- widget-groups='hubl-groups-name'
-
- class-username='username'
- )
-
- solid-form.info-form(
- bind-user=''
- fields='profile.bio, inline-1(profile.city, email), inline-2(profile.phone, profile.website), inline-3(profile.available), account.picture, instruction'
-
- class-profile.bio='form-label is-light'
- label-profile.bio='short description'
-
- class-profile.city='form-label is-light'
- label-profile.city='your cell'
-
- class-email='form-label is-light'
-
- class-profile.phone='form-label is-light'
- label-profile.phone='phone'
-
- class-profile.website='form-label is-light'
- label-profile.website='your website'
-
- class-profile.available='form-label is-light'
- label-profile.available='your availability'
-
- class-account.picture='form-label is-light'
- label-account.picture='your picture'
-
- widget-instruction='hubl-instruction'
- )
-
- .section.user-skills
-
- solid-form(
- bind-user=''
- range-skills=`${endpoints.skills || endpoints.get.skills}`
- fields='skills'
-
- class-skills='form-label is-dark'
- label-skills='Your main skills (4 max.):'
- multiple-skills='solid-multiple-select'
- widget-skills='solid-form-auto-completion'
- )
-
-
- solid-widget(name='hubl-instruction')
- template
- span Show us your most beautiful smile
- p Pictures help us to know ourselves and also to recognize ourselves, so don't be afraid to show your pretty face and avoid strange avatars.
diff --git a/src/scripts/firefox-scroll.js b/src/scripts/firefox-scroll.js
new file mode 100644
index 0000000..3b9bb18
--- /dev/null
+++ b/src/scripts/firefox-scroll.js
@@ -0,0 +1,60 @@
+document.addEventListener("DOMContentLoaded", () => {
+ const resizeChat = () => {
+ let isMobile = window.innerWidth < 993;
+ let isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
+ let isFirefoxMobile = navigator.platform.toLowerCase().indexOf("mobile") > -1 || navigator.platform.toLowerCase().indexOf("tablet") > -1;
+ let chatBox = Array.from(document.querySelectorAll("solid-xmpp-chat"))
+ .map((el) => el.shadowRoot ? el.shadowRoot.getElementById("conversejs") : false)
+ .filter((el) => el)
+ .pop();
+ if (chatBox) {
+ let chatTextArea = chatBox.querySelector(".message-form-container");
+ let ischatTextArea = setInterval(() => {
+ chatTextArea = chatBox.querySelector(".message-form-container");
+ if (chatTextArea) {
+ clearInterval(ischatTextArea);
+ if (
+ chatBox.getBoundingClientRect().height -
+ chatTextArea.getBoundingClientRect().height !=
+ chatTextArea.offsetTop
+ ) {
+ let viewportChat = Array.from(
+ document.querySelectorAll("#viewport .chat-view")
+ );
+ viewportChat.forEach(
+ (c) => (c.style.height = isMobile ? (isFirefox && isFirefoxMobile) ? "calc(100vh - 106px - 57px)" : "calc(100vh - 106px)" : "calc(100vh - 64px - 83px)")
+ );
+ }
+ }
+ }, 15);
+ }
+ };
+ resizeChat();
+
+ let isbody = setInterval(() => {
+ if (document.body) {
+ clearInterval(isbody);
+ resizeChat();
+ }
+ }, 50);
+
+ window.addEventListener("load", () => {
+ setTimeout(() => {
+ resizeChat();
+ }, 0);
+ });
+
+ let windowResizing;
+ window.addEventListener("resize", () => {
+ windowResizing = setTimeout(() => {
+ clearInterval(windowResizing);
+ resizeChat();
+ }, 50);
+ });
+
+ document.addEventListener("navigate", () => {
+ setTimeout(() => {
+ resizeChat();
+ }, 0);
+ });
+});
\ No newline at end of file
diff --git a/src/scripts/intl.js b/src/scripts/intl.js
new file mode 100644
index 0000000..9b098e7
--- /dev/null
+++ b/src/scripts/intl.js
@@ -0,0 +1,198 @@
+/*
+ js intl, inspired by danabr/jsI18n
+*/
+class JsI18n {
+
+ constructor() {
+ this.locale = ""; //Current locale
+ this.locales = new Array(); //Available locales
+ }
+
+ /*
+ Method for automatically detecting the language, does not work in every browser.
+ */
+ detectLanguage() {
+ if (localStorage.getItem('language') || (window.navigator.language !== null && window.navigator.language !== undefined)) {
+ this.setLocale(localStorage.getItem('language') || window.navigator.language.slice(0, 2));
+ } else {
+ console.error('Language not found');
+ this.setLocale('fr');
+ }
+ };
+
+ /*
+ Translates tag contents and
+ attributes depending on the
+ value of key.
+ */
+ translateTag(node, key) {
+ if (key.indexOf("=") == -1) { //Simple key
+ this.translateNodeContent(node, key);
+ } else { //Attribute/key pairs
+ var parts = key.split(";");
+
+ for (var i = 0; i < parts.length; i++) {
+ var pair = parts[i].split("=");
+ var attr = pair[0].toLowerCase().trim();
+ var k = pair[1].trim();
+
+ if (attr == "html") {
+ this.translateNodeContent(node, k);
+ } else {
+ if(node.tagName == "SOLID-DELETE") {
+ let button = node.querySelector('button');
+ if(button != null) {
+ this.translateNodeContent(button, k);
+ }
+ }
+ this.translateNodeContent(node.attributes[attr], k);
+ }
+ }
+ }
+ }
+
+ /**
+ Replace the content of the given node
+ if there is a translation for the given key.
+ **/
+ translateNodeContent(node, key) {
+ var translation = this.t(key);
+ if (node != null && translation != undefined) {
+ if (node.nodeType == 1) { //Element
+ try {
+ node.innerHTML = translation;
+ } catch (e) {
+ node.text = translation;
+ }
+ } else if (node.nodeType == 2) { //Attribute
+ node.value = translation;
+ }
+ }
+ }
+
+ /*
+ Helper for translating a node
+ and all its child nodes.
+ */
+ processNode(node) {
+ if (node != undefined) {
+ if (node.nodeType == 1) { //Element node
+
+ var key = node.attributes["data-trans"];
+ if (key != null) {
+ this.translateTag(node, key.nodeValue);
+ }
+ }
+
+ //Process child nodes
+ var children = node.childNodes;
+ for (var i = 0; i < children.length; i++) {
+ this.processNode(children[i]);
+ }
+ }
+ }
+
+ /*
+ Adds a locale to the list,
+ replacing the translations
+ if the locale is already defined.
+ */
+ addLocale(locale, translations) {
+ this.locales[locale.toString()] = translations;
+ }
+
+ /*
+ Sets the locale to use when translating.
+ */
+ setLocale(locale) {
+ try {
+ fetch(`/locales/${locale}.json`).then((result) => {
+ if (result.ok) {
+ result.json().then(e => {
+ this.addLocale(locale, e);
+ this.processPage();
+ }).catch(() => {
+ if (locale != "fr") {
+ console.warn(`Locale not found: ${locale}, fallback to french`);
+ this.setLocale("fr");
+ } else {
+ console.error("Language not found");
+ }
+ });
+ } else {
+ if (locale != "fr") {
+ console.warn(`Locale not found: ${locale}, fallback to french`);
+ this.setLocale("fr");
+ } else {
+ console.error("Language not found");
+ }
+ }
+ });
+ this.locale = locale;
+ } catch {
+ if (locale != "fr") {
+ console.warn(`Locale not found: ${locale}, fallback to french`);
+ this.setLocale("fr");
+ } else {
+ console.error("Language not found");
+ }
+ }
+ }
+
+ /*
+ Fetches the translation associated with the given key.
+ */
+ t(key) {
+ var translations = this.locales[this.locale];
+ if (translations != undefined) {
+ let translation = key.toString().split('.').reduce((o, i) => (o ? o[i] : undefined), translations);
+ if(typeof translation == "string") {
+ return translation;
+ } else {
+ return translations[key.toString()];
+ }
+ }
+ return undefined;
+ }
+
+ /*
+ Alias for JsI18n.t
+ */
+ translate(key) {
+ this.t(key);
+ }
+
+ /**
+ Replaces the contents of all tags
+ that have the data-trans attribute set.
+ **/
+ processPage() {
+ this.processNode(document.getElementsByTagName("html")[0]);
+ }
+}
+
+//Global
+jsI18n = new JsI18n;
+
+document.addEventListener("DOMContentLoaded", () => {
+
+ // Detect the lang & initialize, based on the browser or "language" item from localstorage
+ jsI18n.detectLanguage();
+
+ /*
+ recursivePopulate(DOMElement)
+ Will listen for the populate event of any sib element
+ Process the changed node every time it populate
+ Recursively add a populate listener for children elements
+ */
+ function recursivePopulate(element) {
+ Array.from(element.querySelectorAll('*')).forEach((e) => {
+ e.addEventListener("populate", (e) => {
+ recursivePopulate(e.target);
+ jsI18n.processNode(e.target);
+ });
+ });
+ }
+ // Process every children from document
+ recursivePopulate(document);
+});
\ No newline at end of file
diff --git a/src/scripts/login-element-visibility.js b/src/scripts/login-element-visibility.js
index cc0daf1..689dbb2 100644
--- a/src/scripts/login-element-visibility.js
+++ b/src/scripts/login-element-visibility.js
@@ -1,4 +1,4 @@
-document.addEventListener("DOMContentLoaded", function (event) {
+document.addEventListener("DOMContentLoaded", function () {
document
.querySelector("sib-auth")
.getUser()
@@ -10,8 +10,6 @@ document.addEventListener("DOMContentLoaded", function (event) {
document
.querySelector('.loggedIn')
.setAttribute("style", "display:none !important");
- } else {
- document.querySelector('sib-auth').login();
}
});
});
\ No newline at end of file
diff --git a/src/scripts/menu-toggle.js b/src/scripts/menu-toggle.js
new file mode 100644
index 0000000..8f96670
--- /dev/null
+++ b/src/scripts/menu-toggle.js
@@ -0,0 +1,11 @@
+document.addEventListener("DOMContentLoaded", () => {
+ const menuWrappers = Array.from(document.querySelectorAll(".menu-wrapper"));
+
+ //- Toggle sub-menus
+ menuWrappers.forEach(menuWrapper => {
+ const menu = menuWrapper.querySelector(".menu");
+ menu.addEventListener("click", e => {
+ menuWrapper.classList.toggle("is-closed");
+ });
+ });
+});
\ No newline at end of file
diff --git a/src/scripts/navigate-event.js b/src/scripts/navigate-event.js
index ba4eb0b..1ac1f3e 100644
--- a/src/scripts/navigate-event.js
+++ b/src/scripts/navigate-event.js
@@ -27,10 +27,10 @@ function closeUserControls() {
);
}
-document.addEventListener("DOMContentLoaded", function(event) {
+document.addEventListener("DOMContentLoaded", function() {
//- View change event
- window.addEventListener("navigate", event => {
+ window.addEventListener("navigate", () => {
closeLeftMenu();
closeUserControls();
});
@@ -63,7 +63,7 @@ document.addEventListener("DOMContentLoaded", function(event) {
}
};
- document.querySelector("#toggleMainMenu").addEventListener("click", event => {
+ document.querySelector("#toggleMainMenu").addEventListener("click", () => {
let leftMenu = document.querySelector("#main__menu");
if (leftMenu.hasAttribute("open")) {
closeLeftMenu();
@@ -75,7 +75,7 @@ document.addEventListener("DOMContentLoaded", function(event) {
const rightMenus = Array.from(document.querySelectorAll("nav.jsRightMenu"));
rightMenus.forEach(rightMenu => {
const btnRightMenu = rightMenu.querySelector("li.jsOffsiteToggle");
- btnRightMenu.addEventListener("click", e => {
+ btnRightMenu.addEventListener("click", () => {
if (rightMenu.hasAttribute("open")) {
closeRightMenu();
} else {
@@ -86,7 +86,7 @@ document.addEventListener("DOMContentLoaded", function(event) {
Array.from(document.querySelectorAll(".jsMobileSidebarOpenButton")).forEach(
el => {
- el.addEventListener("click", event => {
+ el.addEventListener("click", () => {
openRightMenu();
});
}
diff --git a/src/scripts/register-sw.js b/src/scripts/register-sw.js
new file mode 100644
index 0000000..c479a12
--- /dev/null
+++ b/src/scripts/register-sw.js
@@ -0,0 +1,11 @@
+// if('serviceWorker' in navigator) {
+ // var refreshing;
+ // navigator.serviceWorker.addEventListener('controllerchange', () => {
+ // if (refreshing) {
+ // return;
+ // }
+ // refreshing = true;
+ // window.location.reload();
+ // });
+ // navigator.serviceWorker.register('/sw.js');
+// }
\ No newline at end of file
diff --git a/src/scripts/save-feedback.js b/src/scripts/save-feedback.js
new file mode 100644
index 0000000..154bddf
--- /dev/null
+++ b/src/scripts/save-feedback.js
@@ -0,0 +1,19 @@
+document.addEventListener("DOMContentLoaded", () => {
+ const Toast = Swal.mixin({
+ toast: true,
+ position: 'top',
+ showConfirmButton: false,
+ timer: 3000,
+ timerProgressBar: true,
+ didOpen: (toast) => {
+ toast.addEventListener('mouseenter', Swal.stopTimer)
+ toast.addEventListener('mouseleave', Swal.resumeTimer)
+ }
+ })
+ document.addEventListener("save", () => {
+ Toast.fire({
+ icon: 'success',
+ title: 'Succès!'
+ })
+ });
+});
\ No newline at end of file
diff --git a/src/scripts/unreads-menu.js b/src/scripts/unreads-menu.js
index bd6abc7..e35c7e9 100644
--- a/src/scripts/unreads-menu.js
+++ b/src/scripts/unreads-menu.js
@@ -1,7 +1,7 @@
-document.addEventListener("DOMContentLoaded", function (event) {
+document.addEventListener("DOMContentLoaded", function () {
window.addEventListener('newMessage', event => {
let jid = event.detail.jid;
- Array.from(document.querySelectorAll('[data-jabberID="'+jid+'"]')).forEach(el => {
+ Array.from(document.querySelectorAll('[data-jabberID="' + jid + '"]')).forEach(el => {
el.parentElement.parentElement.classList.add('unread');
});
});
@@ -9,7 +9,12 @@ document.addEventListener("DOMContentLoaded", function (event) {
window.addEventListener('read', (event) => {
if (event.detail && event.detail.resource && event.detail.resource['@id']) {
const badge = document.querySelector(`solid-badge[data-src="${event.detail.resource['@id']}"]`);
- if (badge) badge.parentElement.parentElement.classList.remove('unread');
+ if (badge) {
+ badge.parentElement.parentElement.classList.remove('unread');
+ const project = badge.parentElement.parentElement.querySelector('.unread');
+ if (project) project.classList.remove('unread');
+ }
+
}
});
});
\ No newline at end of file
diff --git a/src/scripts/widget-extension.js b/src/scripts/widget-extension.js
index 13c2295..0c0339f 100644
--- a/src/scripts/widget-extension.js
+++ b/src/scripts/widget-extension.js
@@ -44,7 +44,7 @@ function recursiveAdaptWidgets(prefix, element, user) {
});
}
-document.addEventListener("DOMContentLoaded", function (event) {
+document.addEventListener("DOMContentLoaded", function () {
document
.querySelector("sib-auth")
.getUser()
diff --git a/src/styles/abstracts/_variables.scss b/src/styles/abstracts/_variables.scss
index 03b17c9..32468c1 100644
--- a/src/styles/abstracts/_variables.scss
+++ b/src/styles/abstracts/_variables.scss
@@ -102,6 +102,8 @@
--color-select-list: var(--color-secondary);
--color-select-add-button: var(--color-button-secondary);
--color-select-add-button-background: var(--color-button-white);
+ --color-add-button-background: var(--color-button-secondary);
+ --color-add-button: var(--color-white);
--color-label-light: var(--color-grey-6);
diff --git a/src/styles/base/about.scss b/src/styles/base/about.scss
index ead128a..ab2026a 100644
--- a/src/styles/base/about.scss
+++ b/src/styles/base/about.scss
@@ -1,6 +1,4 @@
#about{
- $main-color: rgb(236, 94, 92);
- $second-color: white;
h2,h3{
text-transform: uppercase;
}
@@ -37,10 +35,10 @@
}
.main-cta{
- background: $second-color none repeat scroll 0% 0%;
- border: 1px solid $main-color;
+ background: var(--color-white) none repeat scroll 0% 0%;
+ border: 1px solid var(--color-primary);
border-radius: 55px;
- color: $main-color;
+ color: var(--color-primary);
cursor: pointer;
font-weight: bold;
text-transform: uppercase;
@@ -51,8 +49,8 @@
}
.main-cta:hover{
- background: $main-color none repeat scroll 0% 0%;
- border : 1px solid $second-color;
- color: $second-color;
+ background: var(--color-primary) none repeat scroll 0% 0%;
+ border : 1px solid var(--color-primary);
+ color: var(--color-white);
}
}
\ No newline at end of file
diff --git a/src/styles/base/form.scss b/src/styles/base/form.scss
index 9234516..e5f0f12 100644
--- a/src/styles/base/form.scss
+++ b/src/styles/base/form.scss
@@ -1,3 +1,9 @@
+solid-form {
+ [data-id="error"] {
+ display: none !important; // Hide the default core message, english only with a weird message
+ }
+}
+
.form form {
display: block;
height: fit-content;
@@ -41,16 +47,14 @@
.form-label {
/*flex: 1 1 auto;*/
- label {
- display: flex;
- flex-direction: column; /* To align label and input vertically */
- font-weight: 600;
- margin-bottom: 0.8rem;
- margin-top: 1.8rem;
- text-transform: uppercase;
- }
+ display: flex;
+ flex-direction: column; /* To align label and input vertically */
+ font-weight: 600;
+ margin-bottom: 0.8rem;
+ margin-top: 1.8rem;
+ text-transform: uppercase;
- &.is-light label {
+ &.is-light {
color: var(--color-label-light);
}
}
@@ -130,11 +134,14 @@ textarea {
/* WIDGETS SIB (let in .content-box to override default styles) */
-solid-form-auto-completion,
+solid-form-dropdown-autocompletion,
+solid-form-dropdown-autocompletion-label,
+solid-form-multipleselect-autocompletion-label,
hubl-status {
.ss-main {
font-weight: normal;
+ margin-top: 0.8rem;
text-transform: none;
@@ -144,7 +151,6 @@ hubl-status {
border-radius: 0px;
color: var(--color-input-text);
font-weight: normal;
- margin-top: 0.8rem;
min-height: 4.6rem;
padding-left: 1.2rem;
@@ -179,6 +185,7 @@ hubl-status {
display: flex;
flex-direction: row;
margin-bottom: 2.6rem;
+ margin-top: 1.8rem;
}
label {
@@ -199,6 +206,7 @@ hubl-status {
width: 100%;
@include breakpoint(lg) {
+ height: 32px;
margin: auto 0 auto 2.2rem;
width: auto;
}
@@ -288,13 +296,13 @@ solid-form-file {
}
}
-/*solid-multiple-select {
+/*solid-form-multipleselect {
&.select-skills .ss-values .ss-disabled::before {
content: "Select skills";
}
- solid-form-auto-completion > label {
+ solid-form-dropdown-autocompletion-label > label {
display: flex;
flex-direction: column;
@@ -378,7 +386,8 @@ hubl-member-form {
margin-bottom: 1rem;
}
- solid-form-auto-completion {
+ solid-form-dropdown-autocompletion-label,
+ solid-form-multipleselect-autocompletion-label {
float: left;
}
diff --git a/src/styles/base/header.scss b/src/styles/base/header.scss
index 7966a19..cbc0b8f 100644
--- a/src/styles/base/header.scss
+++ b/src/styles/base/header.scss
@@ -26,6 +26,34 @@
}
}
+ .header-left {
+ flex-grow: 1;
+ position: relative;
+
+ .logo {
+ display: inline-block;
+ }
+
+ .beta-tag {
+ display: none;
+
+ @include breakpoint(lg) {
+ display: inline-block;
+ font-size: 1.4rem;
+ font-weight: 600;
+ line-height: 19px;
+ letter-spacing: 0.19px;
+ padding: 3px 13px 3px 15px;
+ border-radius: 3px;
+ background: var(--color-primary);
+ color: var(--color-white);
+ position: fixed;
+ top: 12px;
+ left: 267px;
+ }
+ }
+ }
+
>*:not(:first-child) {
margin-left: 2rem;
@@ -34,15 +62,15 @@
}
}
- .logo {
- flex: 1 0 0;
- align-items: stretch;
- }
-
- /* To remove the place taken by this element */
+ /* Fix: to remove the place taken by these elements */
solid-widget[name='hubl-user-avatar'] {
display: contents;
}
+
+ solid-notifications-template[data-rdf-type='hd:circle'],
+ solid-notifications-template[data-rdf-type='foaf:user'] {
+ position: absolute;
+ }
}
/* General styling for both notification and user's panel */
diff --git a/src/styles/base/main.scss b/src/styles/base/main.scss
index ea47ba9..ea7b12d 100644
--- a/src/styles/base/main.scss
+++ b/src/styles/base/main.scss
@@ -1,179 +1,190 @@
* {
- outline: none;
+ outline: none;
}
:root {
- font-size: 10px;
- font-family: Open Sans, sans-serif;
- --sib-notifications-theme: var(--color-primary);
- body {
- background-color: var(--color-main-background);
- box-sizing: border-box;
- color: var(--color-main-text);
- font-size: 1.6rem;
- /* Fix for viewport height bug in webkit for mobile */
- height: -webkit-fill-available;
- min-height: -webkit-fill-available;
- }
- .notLoggedIn {
- visibility: hidden;
- }
+ font-size: 10px;
+ font-family: Open Sans, sans-serif;
+ --sib-notifications-theme: var(--color-primary);
+
+ body {
+ background-color: var(--color-main-background);
+ box-sizing: border-box;
+ color: var(--color-main-text);
+ font-size: 1.6rem;
+ /* Fix for viewport height bug in webkit for mobile */
+ height: -webkit-fill-available;
+ min-height: -webkit-fill-available;
+ }
+
+ .notLoggedIn {
+ visibility: hidden;
+ }
}
-
/* Fix for solid-dashboard fixture */
-
solid-dashboard section {
- padding: 1rem !important;
- @include breakpoint(lg) {
- padding: 4.2rem !important;
- }
- .icon {
- display: inline-block;
- }
+ padding: 1rem !important;
+
+ @include breakpoint(lg) {
+ padding: 4.2rem !important;
+ }
+
+ .icon {
+ display: inline-block;
+ }
}
.wrapper {
- display: grid;
- grid-template-areas: "header" "content";
- @include breakpoint(lg) {
- grid-template-columns: 265px auto;
- grid-template-areas: "header header" "leftmenu content";
- }
+ display: grid;
+ grid-template-areas:
+ "header"
+ "content";
+
+ @include breakpoint(lg) {
+ grid-template-columns: 265px auto;
+ grid-template-areas:
+ "header header"
+ "leftmenu content";
+ }
}
.header {
- grid-area: header;
+ grid-area: header;
}
.left-menu {
- grid-area: leftmenu;
+ grid-area: leftmenu;
+
+ @include breakpoint(lg) {
+ height: calc(100vh - 83px); /* 83px = nav height */
+ position: sticky;
+ top: 0;
+ overflow-x: hidden;
+ overflow-y: scroll;
+ }
+
+ &.jsLeftMenu {
+ display: none;
+
@include breakpoint(lg) {
- height: calc(100vh - 83px);
- /* 83px = nav height */
- position: sticky;
- top: 0;
- overflow-x: hidden;
- overflow-y: auto;
+ display: block;
}
- &.jsLeftMenu {
- display: none;
- @include breakpoint(lg) {
- display: block;
- }
- }
- &.jsLeftMenu[open] {
- display: block;
- bottom: 0;
- box-shadow: 0 2px 8px 0 rgba(65, 69, 73, 0.5);
- width: 80vw;
- position: fixed;
- right: 0;
- top: 0;
- z-index: 1000;
- @include breakpoint(lg) {
- display: none;
- }
+ }
+
+ &.jsLeftMenu[open] {
+ display: block;
+ bottom: 0;
+ box-shadow: 0 2px 8px 0 rgba(65, 69, 73, 0.5);
+ width: 80vw;
+ position: fixed;
+ right: 0;
+ top: 0;
+ z-index: 1000;
+
+ @include breakpoint(lg) {
+ display: none;
}
+ }
}
.content {
- grid-area: content;
- @include breakpoint(lg) {
- position: sticky;
- top: 0;
- overflow-y: auto;
- height: calc(100vh - 83px);
- overflow-x: hidden;
- }
+ grid-area: content;
+
+ @include breakpoint(lg) {
+ position: sticky;
+ top: 0;
+ overflow-y: auto;
+ height: calc(100vh - 83px);
+ overflow-x: hidden;
+ }
}
+
/* Add scrollbar to the left and right menu, and to the content */
-
-nav,
-.views-container,
-.table-wrapper {
- overflow: auto;
- height: auto;
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: none;
+nav, .views-container, .table-wrapper {
+ overflow: auto;
+ height: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: none;
}
-
/* Custom scrollbar of the left-menu */
-
nav {
- scrollbar-width: thin;
- scrollbar-color: var(--color-scrollbar-left-track) var(--color-scrollbar-left-background);
- &::-webkit-scrollbar-track {
- background: var(--color-scrollbar-left-background);
- }
- &::-webkit-scrollbar-thumb {
- background-color: var(--color-scrollbar-left-track);
- border-radius: 6px;
- border: 3px solid var(--color-scrollbar-left-background);
- }
- &::-webkit-scrollbar {
- width: 11px;
- }
-}
+ scrollbar-width: thin;
+ scrollbar-color: var(--color-scrollbar-left-track) var(--color-scrollbar-left-background);
+ &::-webkit-scrollbar-track {
+ background: var(--color-scrollbar-left-background);
+ }
+
+ &::-webkit-scrollbar-thumb {
+ background-color: var(--color-scrollbar-left-track);
+ border-radius: 6px;
+ border: 3px solid var(--color-scrollbar-left-background);
+ }
+
+ &::-webkit-scrollbar {
+ width: 11px;
+ }
+}
/* Custom scrollbar of the content */
-
.views-container {
- scrollbar-width: thin;
- scrollbar-color: var(--color-scrollbar-right-track) var(--color-scrollbar-right-background);
- &::-webkit-scrollbar-track {
- background: var(--color-scrollbar-right-background);
- }
- &::-webkit-scrollbar-thumb {
- background-color: var(--color-scrollbar-right-track);
- border-radius: 6px;
- border: 3px solid var(--color-scrollbar-right-background);
- }
- &::-webkit-scrollbar {
- width: 11px;
- }
-}
+ scrollbar-width: thin;
+ scrollbar-color: var(--color-scrollbar-right-track) var(--color-scrollbar-right-background);
+ &::-webkit-scrollbar-track {
+ background: var(--color-scrollbar-right-background);
+ }
+
+ &::-webkit-scrollbar-thumb {
+ background-color: var(--color-scrollbar-right-track);
+ border-radius: 6px;
+ border: 3px solid var(--color-scrollbar-right-background);
+ }
+
+ &::-webkit-scrollbar {
+ width: 11px;
+ }
+}
/* Custom scrollbar of the table */
-
.table-wrapper {
- scrollbar-width: thin;
- scrollbar-color: var(--color-scrollbar-table-track) var(--color-scrollbar-table-background);
- &::-webkit-scrollbar-track {
- background-color: var(--color-scrollbar-table-background);
- border-radius: 10px;
- }
- &::-webkit-scrollbar {
- height: 5px;
- }
- &::-webkit-scrollbar-thumb {
- background-color: var(--color-scrollbar-table-track);
- border-radius: 10px;
- }
+ scrollbar-width: thin;
+ scrollbar-color: var(--color-scrollbar-table-track) var(--color-scrollbar-table-background);
+
+ &::-webkit-scrollbar-track {
+ background-color: var(--color-scrollbar-table-background);
+ border-radius: 10px;
+ }
+
+ &::-webkit-scrollbar {
+ height: 5px;
+ }
+
+ &::-webkit-scrollbar-thumb {
+ background-color: var(--color-scrollbar-table-track);
+ border-radius: 10px;
+ }
}
-
/* Quick fix. Will be removed later */
-
#admin-circles,
#admin-projects,
#admin-users {
- display: contents;
+ display: contents;
}
[hidden],
.hidden {
- display: none !important;
+ display: none !important;
}
img {
- max-height: 100%;
- max-width: 100%;
+ max-height: 100%;
+ max-width: 100%;
}
h1,
@@ -184,8 +195,9 @@ h3,
h4,
h5,
h6 {
- font-weight: bold;
- /*span {
+ font-weight: bold;
+
+ /*span {
font-weight: 400;
padding-left: 0.85rem;
@@ -195,75 +207,76 @@ h6 {
}*/
}
-h1,
-.h1-like {
- color: var(--color-h1);
- font-size: 2rem;
- text-transform: uppercase;
- &.without-margin {
- margin: 0;
- }
+h1, .h1-like {
+ color: var(--color-h1);
+ font-size: 2rem;
+ text-transform: uppercase;
+
+ &.without-margin {
+ margin: 0;
+ }
}
-h2,
-.h2-like {
- color: var(--color-h2);
- font-size: 1.8rem;
- text-transform: uppercase;
+h2, .h2-like {
+ color: var(--color-h2);
+ font-size: 1.8rem;
+ text-transform: uppercase;
}
.h2-like {
- display: block;
- margin: 14.94px 0;
- width: 100%;
+ display: block;
+ margin: 14.94px 0;
+ width: 100%;
}
h3 {
- color: var(--color-title);
- font-size: 1.7rem;
- margin: 0;
+ color: var(--color-title);
+ font-size: 1.7rem;
+ margin: 0;
}
h4 {
- font-size: 1.2rem;
+ font-size: 1.2rem;
}
h5 {
- font-size: 2rem;
+ font-size: 2rem;
}
.avatar {
- align-items: center;
- background-color: var(--color-avatar-background);
- border-radius: 50%;
- display: flex;
- justify-content: center;
- overflow: hidden;
- position: relative;
- img {
- background-color: white;
- height: 100%;
- left: 0;
- object-fit: cover;
- object-position: center;
- position: absolute;
- top: 0;
- width: 100%;
- }
- object {
- height: 45%;
- width: 45%;
- }
+ align-items: center;
+ background-color: var(--color-avatar-background);
+ border-radius: 50%;
+ display: flex;
+ justify-content: center;
+ overflow: hidden;
+ position: relative;
+
+ img {
+ background-color: white;
+ height: 100%;
+ left: 0;
+ object-fit: cover;
+ object-position: center;
+ position: absolute;
+ top: 0;
+ width: 100%;
+ }
+
+ object {
+ height: 45%;
+ width: 45%;
+ }
}
.customer-logo {
- box-sizing: border-box;
- display: flex;
- height: 8.5vh;
- justify-content: flex-end;
- margin-top: 20px;
- text-align: end;
- width: 15vw;
+ box-sizing: border-box;
+ display: flex;
+ height: 8.5vh;
+ justify-content: flex-end;
+ margin-top: 20px;
+ text-align: end;
+ width: 15vw;
}
.project-edit-logo {
@@ -372,97 +385,108 @@ h5 {
}
.content-box {
- @include window-style-modal();
- flex-direction: column;
- flex-grow: 1;
- margin: 2rem 1rem 5rem 2rem;
- &.full-width {
- background: var(--color-white);
- flex: 1;
- font-size: 1.6rem;
- margin: 0 auto;
- min-height: 100%;
- }
+ @include window-style-modal();
+ flex-direction: column;
+ flex-grow: 1;
+ margin: 2rem 1rem 5rem 2rem;
+
+ &.full-width {
+ background: var(--color-white);
+ flex: 1;
+ font-size: 1.6rem;
+ margin: 0 auto;
+ min-height: 100%;
+ }
}
-
/* Header inside circle, project view */
-
.content-box__header {
- border-bottom: 1px solid var(--color-content-header);
- padding: 1.8rem 0 1.4rem;
- margin: 0 1.6rem;
+ border-bottom: 1px solid var(--color-content-header);
+ padding: 1.8rem 0 1.4rem;
+ margin: 0 1.6rem;
+
+ @include breakpoint(lg) {
+ padding: 2rem;
+ margin: 0;
+ }
+
+ .mobile-sidebar-button {
+ float: right;
+ color: var(--color-secondary);
+ font-size: 1.8rem;
+ font-weight: bold!important;
+
+ &::before {
+ font-size: 2.2rem;
+ font-weight: normal;
+ margin-right: 1.2rem;
+ }
+
@include breakpoint(lg) {
- padding: 3rem;
- margin: 0;
+ display: none;
}
- .mobile-sidebar-button {
- float: right;
- color: var(--color-secondary);
+ }
+
+ solid-display {
+ @include breakpoint(sm) {
+ float: left;
+ }
+ }
+
+ /* For solid-display on project, circle, or private message view */
+ solid-display {
+ width: calc(100% - 94px); /* 94px = width of .mobile-sidebar-button */
+
+ div {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ width: calc(100% - 20px);
+
+ .h1-aside {
font-size: 1.8rem;
- font-weight: bold!important;
- &::before {
- font-size: 2.2rem;
- font-weight: normal;
- margin-right: 1.2rem;
- }
- @include breakpoint(lg) {
- display: none;
- }
- }
- solid-display {
- @include breakpoint(sm) {
- float: left;
- }
- }
- /* For solid-display on project, circle, or private message view */
- solid-display {
- width: calc(100% - 94px);
- /* 94px = width of .mobile-sidebar-button */
- div {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- width: calc(100% - 20px);
- .h1-aside {
- font-size: 1.8rem;
- &:not(:empty)::before {
- color: var(--color-grey-4);
- content: ' - ';
- font-size: 2rem;
- font-weight: bold;
- }
- }
- .description {
- color: var(--color-grey-4);
- }
- .name {
- color: var(--color-grey-4);
- font-weight: normal;
- }
+
+ &:not(:empty)::before {
+ color: var(--color-grey-4);
+ content: ' - ';
+ font-size: 2rem;
+ font-weight: bold;
}
+ }
+
+ .description {
+ color: var(--color-grey-4);
+
+ }
+
+ .name {
+ color: var(--color-grey-4);
+ font-weight: normal;
+ }
}
+ }
}
.content-box__height {
- min-height: calc(100vh - 50px - 56px);
- /* Heights of main header and sub-header */
- @include breakpoint(lg) {
- min-height: calc(100vh - 83px - 84px);
- }
+ min-height: calc(100vh - 50px - 56px); /* Heights of main header and sub-header */
+
+ @include breakpoint(lg) {
+ min-height: calc(100vh - 83px - 84px);
+ }
}
.content-box__info {
- flex-direction: column;
- padding: 1rem;
- @include breakpoint(lg) {
- padding: 3.2rem;
- }
- * {
- box-sizing: border-box;
- }
-}
+ flex-direction: column;
+ padding: 1rem;
+ @include breakpoint(lg) {
+ padding: 3.2rem;
+ }
+
+ * {
+ box-sizing: border-box;
+ }
+}
/*.modal {
color: var(--color-white);
@@ -488,94 +512,109 @@ h5 {
}*/
.admin-header {
+ /* Quick fix for alignment on mobile before admin content rework */
+ flex-direction: column;
+ align-items: flex-start;
+ margin-bottom: 20px;
+ /*end */
+
+ @include breakpoint(lg) {
+ flex-direction: row;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 5rem;
+ }
+
+ h3 {
/* Quick fix for alignment on mobile before admin content rework */
- flex-direction: column;
- align-items: flex-start;
margin-bottom: 20px;
- /*end */
+ /* end */
+
@include breakpoint(lg) {
- flex-direction: row;
- align-items: center;
- justify-content: space-between;
- margin-bottom: 5rem;
+ margin-top: 0;
}
- h3 {
- /* Quick fix for alignment on mobile before admin content rework */
- margin-bottom: 20px;
- /* end */
- @include breakpoint(lg) {
- margin-top: 0;
- }
- }
- solid-ac-checker,
- solid-link {
- width: 100%;
- @include breakpoint(lg) {
- width: auto;
- }
+ }
+
+ solid-ac-checker,
+ solid-link {
+ width: 100%;
+
+ @include breakpoint(lg) {
+ width: auto;
}
+ }
}
.backlink {
- @include icon('arrow-left-circle');
- color: var(--color-backlink);
- font-size: 1.5rem;
- margin: 2rem 0 0 2rem;
- text-decoration: underline;
- &::before {
- font-size: 2rem;
- margin-right: 1rem;
- text-decoration: none;
- }
- &.right {
- display: block;
- text-align: right;
- }
+ @include icon('arrow-left-circle');
+ color: var(--color-backlink);
+ font-size: 1.5rem;
+ margin: 2rem 0 0 2rem;
+ text-decoration: underline;
+
+ &::before {
+ font-size: 2rem;
+ margin-right: 1rem;
+ text-decoration: none;
+ }
+
+ &.right {
+ display: block;
+ text-align: right;
+ }
}
.centered {
- text-align: center;
+ text-align: center;
+}
+
+.block {
+ display: block;
}
.flex {
- display: flex;
+ display: flex;
}
.desktop-button__end {
- display: block;
- @include breakpoint(lg) {
- display: flex;
- justify-content: flex-end;
- }
+ display: block;
+
+ @include breakpoint(lg) {
+ display: flex;
+ justify-content: flex-end;
+ }
}
.space-between {
- justify-content: space-between;
- &.with-padding {
- padding-bottom: 1.4rem;
- }
+ justify-content: space-between;
+
+ &.with-padding {
+ padding-bottom: 1.4rem;
+ }
}
.mobile-vertical-align {
- flex-direction: column;
- @include breakpoint(lg) {
- flex-direction: row;
- }
+ flex-direction: column;
+
+ @include breakpoint(lg) {
+ flex-direction: row;
+ }
}
.word-spacing-left {
- margin-left: 0.60rem;
+ margin-left: 0.60rem;
}
.word-spacing-right {
- margin-right: 0.60rem;
+ margin-right: 0.60rem;
}
.mobile-margin__bottom {
- margin-bottom: 1rem;
- @include breakpoint(lg) {
- margin-bottom: 0;
- }
+ margin-bottom: 1rem;
+
+ @include breakpoint(lg) {
+ margin-bottom: 0;
+ }
}
// Other base components
@@ -584,6 +623,7 @@ h5 {
@import 'header';
@import 'menu-left';
@import 'user-thumb';
+
// Button global CSS
solid-delete,
solid-route,
@@ -592,179 +632,279 @@ button,
input[type='submit'],
a,
.button {
- background: none;
- border: none;
- cursor: pointer;
- display: inline-block;
- padding: 0;
- &.button {
- padding: 0.55rem 2.5rem;
- border-radius: 100em;
+ background: none;
+ border: none;
+ cursor: pointer;
+ display: inline-block;
+ padding: 0;
+
+ &.button {
+ padding: 0.55rem 2.5rem;
+ border-radius: 100em;
+
+ *,
+ & {
+ font-size: 1.4rem;
+ }
+
+ &.mobile-full-width {
+ margin-bottom: 1rem;
+ padding-left: 5rem;
+ width: -webkit-fill-available;
+ width: -moz-available;
+
+ @include breakpoint(lg) {
+ margin-bottom: 0;
+ padding-left: 2.5rem;
+ width: auto;
+ }
+
+ &::before {
+ margin-left: -2.6rem;
+
+ @include breakpoint(lg) {
+ margin-left: 0;
+ }
+ }
+ }
+
+ &.desktop-btn-margin__left {
+ margin: 0;
+
+ @include breakpoint(lg) {
+ margin-left: 2.2rem;
+ }
+ }
+
+ &.small {
+
+ *,
+ & {
+ font-size: 1rem;
+ }
+ }
+
+ &.text-bold {
+
+ *,
+ & {
+ font-weight: bold;
+ }
+ }
+
+ &.text-uppercase {
+
+ *,
+ & {
+ text-transform: uppercase;
+ }
+ }
+
+ &.rounded {
+ border-radius: 50%;
+ font-size: 1.8rem;
+ padding: 1rem;
+ height: 42px;
+ width: 42px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin: 0 auto;
+ }
+
+ &.button-link {
+ border-radius: 100em;
+
+ *,
+ & {
+ text-decoration: underline;
+ }
+
+ &:hover {
+ text-decoration: none;
+ }
+ }
+
+ &.with-icon::before {
+ font-size: 1.6rem;
+ margin-right: 1rem;
+ }
+
+ &.button-primary{
+ background-color: var(--color-white);
+
+ *,
+ & {
+ color: var(--color-primary);
+ }
+
+ &.bordered {
+ border: 1px solid var(--color-primary);
+ }
+
+ &:hover {
+ background-color: var(--color-primary);
+
*,
& {
- font-size: 1.4rem;
- }
- &.mobile-full-width {
- margin-bottom: 1rem;
- padding-left: 5rem;
- width: -webkit-fill-available;
- width: -moz-available;
- @include breakpoint(lg) {
- margin-bottom: 0;
- padding-left: 2.5rem;
- width: auto;
- }
- &::before {
- margin-left: -2.6rem;
- @include breakpoint(lg) {
- margin-left: 0;
- }
- }
- }
- &.desktop-btn-margin__left {
- margin: 0;
- @include breakpoint(lg) {
- margin-left: 2.2rem;
- }
- }
- &.small {
- *,
- & {
- font-size: 1rem;
- }
- }
- &.text-bold {
- *,
- & {
- font-weight: bold;
- }
- }
- &.text-uppercase {
- *,
- & {
- text-transform: uppercase;
- }
- }
- &.rounded {
- border-radius: 50%;
- font-size: 1.8rem;
- padding: 1rem;
- }
- &.button-link {
- border-radius: 100em;
- *,
- & {
- text-decoration: underline;
- }
- &:hover {
- text-decoration: none;
- }
- }
- &.with-icon::before {
- font-size: 1.6rem;
- margin-right: 1rem;
- }
- &.button-primary {
- background-color: var(--color-white);
- *,
- & {
- color: var(--color-primary);
- }
- &.bordered {
- border: 1px solid var(--color-primary);
- }
- &:hover {
- background-color: var(--color-primary);
- *,
- & {
- color: var(--color-white);
- }
- }
- }
- &.button-secondary {
- background-color: var(--color-white);
- *,
- & {
- color: var(--color-secondary);
- }
- &.bordered {
- border: 1px solid var(--color-secondary);
- }
- &:hover {
- background-color: var(--color-secondary);
- *,
- & {
- color: var(--color-white);
- }
- }
- }
- &.button-complementary {
- color: var(--color-complementary);
- background-color: var(--color-white);
- &.bordered {
- border: 1px solid var(--color-complementary);
- }
- &:hover {
- background-color: var(--color-complementary);
- color: var(--color-white);
- }
- }
- &.flex {
- display: flex;
- }
- &.reversed {
- &.button-primary {
- background-color: var(--color-primary);
- *,
- & {
- color: var(--color-white);
- }
- &:hover {
- background-color: var(--color-white);
- color: var(--color-primary);
- *,
- & {
- color: var(--color-primary);
- }
- &.bordered {
- border: 1px solid var(--color-primary);
- }
- }
- }
- &.button-secondary {
- background-color: var(--color-secondary);
- *,
- & {
- color: var(--color-white);
- }
- &:hover {
- background-color: var(--color-white);
- *,
- & {
- color: var(--color-secondary);
- }
- &.bordered {
- border: 1px solid var(--color-secondary);
- }
- }
- }
- &.button-complementary {
- background-color: var(--color-complementary);
- *,
- & {
- color: var(--color-white);
- }
- &:hover {
- background-color: var(--color-white);
- *,
- & {
- color: var(--color-complementary);
- }
- &.bordered {
- border: 1px solid var(--color-complementary);
- }
- }
- }
+ color: var(--color-white);
}
+ }
}
-}
\ No newline at end of file
+
+ &.button-disabled{
+ cursor: not-allowed;
+ background-color: var(--color-white);
+
+ *,
+ & {
+ color: var(--color-grey-3);
+ }
+
+ &.bordered {
+ border: 1px solid var(--color-grey-3);
+ }
+
+ &:hover {
+ background-color: var(--color-white);
+
+ *,
+ & {
+ color: var(--color-grey-3);
+ }
+ }
+ }
+
+ &.button-secondary {
+ background-color: var(--color-white);
+
+ *,
+ & {
+ color: var(--color-secondary);
+ }
+
+ &.bordered {
+ border: 1px solid var(--color-secondary);
+ }
+
+ &:hover {
+ background-color: var(--color-secondary);
+
+ *,
+ & {
+ color: var(--color-white);
+ }
+ }
+ }
+
+ &.button-complementary {
+ color: var(--color-complementary);
+ background-color: var(--color-white);
+
+ &.bordered {
+ border: 1px solid var(--color-complementary);
+ }
+
+ &:hover {
+ background-color: var(--color-complementary);
+ color: var(--color-white);
+ }
+ }
+
+ &.flex {
+ display: flex;
+ }
+
+ &.reversed {
+ &.button-primary {
+ background-color: var(--color-primary);
+
+ *,
+ & {
+ color: var(--color-white);
+ }
+
+ &:hover {
+ background-color: var(--color-white);
+ color: var(--color-primary);
+
+ *,
+ & {
+ color: var(--color-primary);
+ }
+
+ &.bordered {
+ border: 1px solid var(--color-primary);
+ }
+ }
+ }
+
+ &.button-disabled{
+ cursor: not-allowed;
+ background-color: var(--color-grey-3);
+
+ *,
+ & {
+ color: var(--color-white);
+ }
+
+ &.bordered {
+ border: 1px solid var(--color-white);
+ }
+
+ &:hover {
+ background-color: var(--color-grey-3);
+
+ *,
+ & {
+ color: var(--color-white);
+ }
+ }
+ }
+
+ &.button-secondary {
+ background-color: var(--color-secondary);
+
+ *,
+ & {
+ color: var(--color-white);
+ }
+
+ &:hover {
+ background-color: var(--color-white);
+
+ *,
+ & {
+ color: var(--color-secondary);
+ }
+
+ &.bordered {
+ border: 1px solid var(--color-secondary);
+ }
+ }
+ }
+
+ &.button-complementary {
+ background-color: var(--color-complementary);
+
+ *,
+ & {
+ color: var(--color-white);
+ }
+
+ &:hover {
+ background-color: var(--color-white);
+
+ *,
+ & {
+ color: var(--color-complementary);
+ }
+
+ &.bordered {
+ border: 1px solid var(--color-complementary);
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/styles/base/menu-left.scss b/src/styles/base/menu-left.scss
index acfdba4..a952da0 100644
--- a/src/styles/base/menu-left.scss
+++ b/src/styles/base/menu-left.scss
@@ -1,263 +1,302 @@
#main__menu {
- background-color: var(--color-menu-background);
- color: var(--color-menu-text);
- /*transition: flex-basis 0.5s ease-in-out;*/
- &.open {
- transform: translateX(0);
+ background-color: var(--color-menu-background);
+ color: var(--color-menu-text);
+ /*transition: flex-basis 0.5s ease-in-out;*/
+
+ &.open {
+ transform: translateX(0);
+ }
+
+ .unread {
+ font-weight: bolder;
+ }
+
+ solid-router {
+ .menu-wrapper {
+ .menu-icon.icon-arrow-up {
+ visibility: hidden;
+ }
+ @include breakpoint(lg) {
+ .menu-icon.icon-arrow-up {
+ visibility: visible;
+ }
+ &.is-closed {
+ .sub-menu {
+ display: none;
+ }
+
+ .menu-chevron {
+ transform: rotate(180deg);
+ }
+ }
+ }
}
- .unread {
- font-weight: bolder;
+
+ solid-link {
+ width: 100%;
}
- solid-router {
- .menu-wrapper {
- &.is-closed {
- .sub-menu {
- display: none;
- }
- .menu-chevron {
- transform: rotate(180deg);
- }
+
+ .menu {
+ cursor: pointer;
+ display: flex;
+ flex-direction: row-reverse;
+ font-weight: bold;
+ padding: 1.2rem;
+
+ &[active] {
+ background-color: var(--color-menu-highlight-primary);
+
+ .menu-icon:before {
+ background-color: var(--color-menu-icon-background-active);
+ }
+
+ .menu-notification>solid-display>div:first-child {
+ background-color: var(--color-menu-badge-background);
+ }
+ }
+
+ .menu-icon {
+ align-items: center;
+ display: flex;
+ justify-content: center;
+ flex-grow: 0;
+ flex-shrink: 0;
+ font-size: 1.7rem;
+ width: 3.2em;
+
+ &:before {
+ border-radius: 100%;
+ height: 1.9em;
+ line-height: 1.9em;
+ width: 1.9em;
+ }
+ }
+
+ .menu-label {
+ display: flex;
+ flex-direction: column;
+ flex-grow: 1;
+ flex-shrink: 0;
+ font-weight: 600;
+ justify-content: center;
+ letter-spacing: 0.017rem;
+ text-transform: uppercase;
+ width: 8em;
+ }
+
+ .menu-chevron {
+ align-items: center;
+ display: flex;
+ flex-grow: 0;
+ flex-shrink: 0;
+ justify-content: center;
+ width: 2em;
+ }
+
+ >solid-display {
+ display: block;
+ }
+ }
+
+ .sub-menu {
+
+ /* Ellipsis for project tab */
+
+ .project-tab>div>solid-display>div:nth-child(1) {
+
+ solid-set-default[name='project'] {
+ flex: 3;
+
+ .project-customer,
+ .project-name {
+ box-sizing: border-box;
+ display: block;
+ width: calc(80vw - 96px); /*96px = padding of the element + width and margin of counter */
+
+ @include breakpoint(lg) {
+ width: 150px;
}
+ }
+
+ .project-customer,
+ .project-name>div {
+
+ @include breakpoint(lg) {
+ display: block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ }
}
- solid-link {
- width: 100%;
+ }
+
+ /* Ellipsis for circle tab */
+
+ .circle-tab>div>solid-display>div {
+
+ solid-display-div[name='name'] {
+ flex: 3;
+
+ >div[name='name'] {
+ box-sizing: border-box;
+ padding-left: 0.2em;
+ width: calc(80vw - 96px); /*96px = padding of the element + width and margin of counter */
+
+ @include breakpoint(lg) {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ width: 150px;
+ }
+ }
}
- .menu {
+ }
+
+ /* Ellipsis for message tab */
+
+ .message-tab>div>solid-display>div>solid-display-div>div {
+ box-sizing: border-box;
+ width: calc(80vw - 96px); /*96px = padding of the element + width and margin of counter */
+
+ @include breakpoint(lg) {
+ width: 150px;
+ }
+ }
+
+ solid-display.nosub>solid-form[fields="name"]>hubl-search-users>input {
+ margin-left: 30px;
+ margin-bottom: 10px;
+ width: calc(80vw - 71px);
+ display: block;
+ background-color: var(--color-secondary);
+ color: var(--color-white);
+ border: 1px solid var(--color-grey-4);
+ border-radius: 3px;
+ padding: 4px;
+
+ @include breakpoint(lg) {
+ margin: auto;
+ margin-bottom: 10px;
+ width: auto;
+ }
+ }
+
+ solid-display.nosub>nav {
+ text-align: center;
+ overflow: hidden;
+ display: grid;
+ grid-template-columns: auto 50% auto;
+ grid-template-areas: "left middle right";
+
+ >* {
+ color: var(--color-white);
+ }
+
+ >[data-id="prev"] {
+ grid-area: left;
+ }
+
+ >[data-id="next"] {
+ grid-area: right;
+ }
+
+ >span {
+ grid-area: middle;
+ }
+ }
+
+ hubl-menu-publicprivate {
+ display: inline-block;
+ text-align: center;
+
+ div {
+ font-family: simple-line-icons;
+ width: 20px;
+ font-size: 0.8em;
+ padding-top: 0.1em;
+ }
+ }
+
+ >solid-display.nosub>div>solid-display>div {
+ padding: 1rem 1rem 1rem 3rem;
+ }
+
+ solid-display>div {
+
+ .create {
+ color: var(--color-white);
+ margin: 1rem 1rem 2.2rem 3.2rem;
+ }
+
+ &>solid-display {
+ &:last-child>div {
+ margin-bottom: 2.2rem;
+ }
+
+ >div {
+ color: var(--color-white);
cursor: pointer;
- display: flex;
- flex-direction: row-reverse;
- font-weight: bold;
- padding: 1.2rem;
- &[active] {
- background-color: var(--color-menu-highlight-primary);
- .menu-icon:before {
- background-color: var(--color-menu-icon-background-active);
- }
- .menu-notification>solid-display>div:first-child {
- background-color: var(--color-menu-badge-background);
- }
- }
- &[name="dashboard"][active] .menu-icon:before,
- &[name="members"][active] .menu-icon:before,
- &[name="resources"][active] .menu-icon:before,
- &[name="polls"][active] .menu-icon:before,
- &[name="events"][active] .menu-icon:before {
- background-color: transparent;
- }
- .menu-icon {
- align-items: center;
- display: flex;
- justify-content: center;
- flex-grow: 0;
- flex-shrink: 0;
- font-size: 1.7rem;
- width: 3.2em;
- &:before {
- border-radius: 100%;
- height: 1.9em;
- line-height: 1.9em;
- width: 1.9em;
- }
- }
- .menu-label {
- display: flex;
- flex-direction: column;
- flex-grow: 1;
- flex-shrink: 0;
- font-weight: 600;
- justify-content: center;
- letter-spacing: 0.017rem;
- text-transform: uppercase;
- width: 8em;
- }
- .menu-chevron {
- align-items: center;
- display: flex;
- flex-grow: 0;
- flex-shrink: 0;
- justify-content: center;
- width: 2em;
- }
- >solid-display {
- display: block;
- }
- &[name="events"],
- &[name="resources"],
- &[name="polls"],
- &[name="dashboard"],
- &[name="members"] {
- .menu-label {
- width: 9.9em;
- }
+
+ >hubl-menu-fix-url-circle>solid-link>solid-display>div,
+ >hubl-menu-fix-url-project>solid-link>solid-display>div {
+ padding: 1rem 1rem 1rem 3rem;
}
+ }
+
+ &[fields="project(customer.name, name), badge"]>div {
+ padding: 0;
+ }
}
- .sub-menu {
- /* Ellipsis for project tab */
- .project-tab>div>solid-display>div:nth-child(1) {
- solid-set-default[name='project'] {
- flex: 3;
- .project-customer,
- .project-name {
- box-sizing: border-box;
- display: block;
- width: calc(80vw - 96px);
- /*96px = padding of the element + width and margin of counter */
- @include breakpoint(lg) {
- width: 150px;
- }
- }
- .project-customer,
- .project-name>div {
- @include breakpoint(lg) {
- display: block;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
- }
- }
- }
- /* Ellipsis for circle tab */
- .circle-tab>div>solid-display>div {
- solid-display-div[name='name'] {
- flex: 3;
- >div[name='name'] {
- box-sizing: border-box;
- padding-left: 0.2em;
- width: calc(80vw - 96px);
- /*96px = padding of the element + width and margin of counter */
- @include breakpoint(lg) {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- width: 150px;
- }
- }
- }
- }
- /* Ellipsis for message tab */
- .message-tab>div>solid-display>div>solid-display-div>div {
- box-sizing: border-box;
- width: calc(80vw - 96px);
- /*96px = padding of the element + width and margin of counter */
- @include breakpoint(lg) {
- width: 150px;
- }
- }
- solid-display.nosub>solid-form[fields="name"]>hubl-search-users>input {
- margin-left: 30px!important;
- margin-bottom: 10px;
- width: calc(80vw - 71px);
- display: block;
- background-color: var(--color-secondary);
- color: var(--color-grey-6);
- border: 1px solid var(--color-grey-4);
- border-radius: 3px;
- padding: 4px;
- @include breakpoint(lg) {
- margin: auto;
- margin-bottom: 10px;
- width: auto;
- &::placeholder {
- color: var(--color-grey-6);
- }
- }
- }
- solid-display.nosub>nav {
- text-align: center;
- overflow: hidden;
- display: grid;
- grid-template-columns: auto 50% auto;
- grid-template-areas: "left middle right";
- >* {
- color: var(--color-grey-6);
- }
- >[data-id="prev"] {
- grid-area: left;
- }
- >[data-id="next"] {
- grid-area: right;
- }
- >span {
- grid-area: middle;
- }
- }
- hubl-menu-publicprivate {
- display: inline-block;
- text-align: center;
- div {
- font-family: simple-line-icons;
- width: 20px;
- font-size: 0.8em;
- padding-top: 0.1em;
- }
- }
- >solid-display.nosub>div>solid-display>div {
- padding: 1rem 1rem 1rem 3rem;
- }
- solid-display>div {
- .create {
- color: var(--color-white);
- margin: 1rem 1rem 2.2rem 3.2rem;
- }
- &>solid-display {
- &:last-child>div {
- margin-bottom: 2.2rem;
- }
- >div {
- color: var(--color-grey-6);
- cursor: pointer;
- >hubl-menu-fix-url-circle>solid-display>div,
- >hubl-menu-fix-url-project>solid-display>div {
- padding: 1rem 1rem 1rem 3rem;
- }
- }
- &[fields="project(customer.name, name), badge"]>div {
- padding: 0;
- }
- }
- &>solid-display[active]>div,
- &>solid-display>div>hubl-menu-fix-url-circle>solid-display[active]>div,
- &>solid-display>div>hubl-menu-fix-url-project>solid-display[active]>div {
- background-color: var(--color-menu-highlight-primary);
- color: var(--color-menu-text-active);
- font-weight: bold;
- }
- }
- &.menu-notification {
- >solid-display>div>solid-display>div>hubl-menu-fix-url-circle,
- >solid-display>div>solid-display>div>hubl-menu-fix-url-project {
- flex: 1;
- }
- >solid-display>div>solid-display>div,
- >solid-display>div>solid-display>div>hubl-menu-fix-url-circle>solid-display>div,
- >solid-display>div>solid-display>div>hubl-menu-fix-url-project>solid-display>div {
- display: flex;
- justify-content: space-between;
- }
- hubl-counter {
- height: 20px;
- width: 20px;
- margin-right: 1em;
- div.counter:not([data-nb-unread="0"]) {
- text-align: center;
- display: block;
- background-color: var(--sib-notifications-theme, gray);
- border-radius: 50%;
- font-size: 12px;
- line-height: 20px;
- width: 20px;
- height: 20px;
- padding-bottom: 0;
- color: var(--color-secondary);
- }
- }
- }
+
+ &>solid-display[active]>div,
+ &>solid-display>div>hubl-menu-fix-url-circle>solid-link>solid-display[active]>div,
+ &>solid-display>div>hubl-menu-fix-url-project>solid-link>solid-display[active]>div {
+ background-color: var(--color-menu-highlight-primary);
+ color: var(--color-menu-text-active);
+ font-weight: bold;
}
- .divider {
- height: 1px;
- background-color: var(--color-grey-11);
- opacity: 0.2;
+ }
+
+ &.menu-notification {
+
+ >solid-display>div>solid-display>div>hubl-menu-fix-url-circle,
+ >solid-display>div>solid-display>div>hubl-menu-fix-url-project {
+ flex: 1;
}
+
+ >solid-display>div>solid-display>div,
+ >solid-display>div>solid-display>div>hubl-menu-fix-url-circle>solid-link>solid-display>div,
+ >solid-display>div>solid-display>div>hubl-menu-fix-url-project>solid-link>solid-display>div {
+ display: flex;
+ justify-content: space-between;
+ }
+
+ hubl-counter {
+ height: 20px;
+ width: 20px;
+ margin-right: 1em;
+
+ div.counter:not([data-nb-unread="0"]) {
+ text-align: center;
+ display: block;
+ background-color: var(--sib-notifications-theme, gray);
+ border-radius: 50%;
+ font-size: 12px;
+ line-height: 20px;
+ width: 20px;
+ height: 20px;
+ padding-bottom: 0;
+ color: var(--color-secondary);
+ }
+ }
+ }
}
-}
\ No newline at end of file
+
+ .divider {
+ height: 1px;
+ background-color: var(--color-grey-11);
+ opacity: 0.2;
+ }
+ }
+}
diff --git a/src/styles/base/table.scss b/src/styles/base/table.scss
index 6ecc645..c6b7e37 100644
--- a/src/styles/base/table.scss
+++ b/src/styles/base/table.scss
@@ -46,13 +46,17 @@
&>* {
border-bottom: 1px solid var(--color-table-border);
display: table-cell;
+ text-align: center;
vertical-align: middle;
}
+ solid-multiple[name="user.communities"] {
+ text-align: left;
+ }
}
}
- &>solid-multiple {
- display: contents;
+ /*&>solid-multiple {
+ display: contents;*/
&>div {
display: contents;
@@ -68,7 +72,7 @@
}
}
}
- }
+ /*}*/
}
}
}
@@ -117,6 +121,14 @@
width: 280px;
}
+ .w450 {
+ width: 450px;
+ }
+
+ .w370 {
+ width: 370px;
+ }
+
.w230 {
width: 230px;
}
@@ -152,6 +164,10 @@
.desktop-btn-margin__left;
}
}
+
+ &.is-spaced {
+ padding: 0.8rem 2.2rem;
+ }
}
.cell-with-name {
@@ -163,23 +179,11 @@
/* Styles of elements inside cells */
-.user-thumb>div,
-[name='user-thumb'] {
- vertical-align: middle;
- text-align: left;
- @extend %user-thumb__grid;
- padding: 0 2.2rem;
-
- >.user-thumb__picture {
- @extend .user-thumb__picture;
- }
-
- >[name='sup'] {
- @extend %user-thumb__grid-sup;
- }
-
- >[name='sub'] {
- @extend %user-thumb__grid-inf;
+.table {
+
+ .user-thumb.is-spaced,
+ [name='user-thumb'] {
+ padding: 0.8rem 2.2rem;
}
}
diff --git a/src/styles/base/user-thumb.scss b/src/styles/base/user-thumb.scss
index 8814efb..569678f 100644
--- a/src/styles/base/user-thumb.scss
+++ b/src/styles/base/user-thumb.scss
@@ -35,6 +35,22 @@
color: var(--color-user-thumb-name);
font-weight: 600;
margin-right: 1rem;
+ text-align: left;
+}
+
+.user-thumb__send {
+ position: relative;
+ bottom: 7px;
+ left: -5px;
+
+ solid-link {
+ @include icon('speech');
+
+ &::before {
+ display: inline-block;
+ color: var(--color-primary);
+ }
+ }
}
.user-thumb__admin:not(:empty) {
@@ -50,8 +66,33 @@
content: '@';
}
}
+solid-multiple[name="user.communities"] {
+ * {
+ display: contents;
+ }
+
+ solid-display-value {
+ &:after {
+ content: ",";
+ margin-right: 5px;
+ }
+
+ display: inline-block!important;
+ }
+
+ >solid-display>div>solid-display:last-child>div>solid-display-value:after {
+ display: none;
+ }
+
+ >solid-display {
+ display: inline-block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ width: calc(50% - 22px - 0.5rem);
+ line-height: 22px;
+ }
-.user-thumb__city:not(:empty) {
@include mdi('atom');
align-items: center;
display: flex;
@@ -76,10 +117,16 @@
margin-right: 0.50rem;
}
}
+.user-thumb[name="classGroup"] {
+ display: block;
+ margin-top: 15px;
+}
/* Apply the grids to all user-thumbs */
.user-thumb>div,
+.user-thumb>[name='classGrid'],
[name='user-thumb'] {
+
@extend %user-thumb__grid;
>[name='sup'] {
@@ -90,9 +137,3 @@
@extend %user-thumb__grid-inf;
}
}
-
-/* Add extra spaces to user-thumbs that are inside a table */
-.user-thumb.is-spaced>div,
-[name='user-thumb'] {
- padding: 0.8rem 2.2rem;
-}
diff --git a/src/styles/components/comment.scss b/src/styles/components/comment.scss
index 0a4dc94..60add66 100644
--- a/src/styles/components/comment.scss
+++ b/src/styles/components/comment.scss
@@ -37,9 +37,9 @@
}
}
- solid-conversation.conversation {
+ sib-conversation.conversation {
- .solid-conversation {
+ .sib-conversation {
font-family: Open Sans;
[name='conversation-wrapper'] {
@@ -74,7 +74,7 @@
solid-ac-checker {
border-top: 1px solid $color-210-17-91;
- solid-form-textarea {
+ solid-form-textarea-label {
>label div {
color: $color-210-5-56;
diff --git a/src/styles/components/sidebar.scss b/src/styles/components/sidebar.scss
index 9454ebe..1e567ce 100644
--- a/src/styles/components/sidebar.scss
+++ b/src/styles/components/sidebar.scss
@@ -8,6 +8,10 @@
&.with-padding {
padding: 1.3rem;
+
+ @include breakpoint(lg) {
+ padding: 2.5rem;
+ }
}
}
@@ -82,7 +86,8 @@
>solid-route {
&[name*='circle'],
- &[name*='project'] {
+ &[name*='project'],
+ &[name*='communities'] {
>li::before {
font-size: 4rem;
@@ -116,16 +121,8 @@
@include ci('file');
}
- &[name='admin-users']>li::before {
- background-color: var(--color-secondary);
- content: '';
- display: inline-block;
- height: 40px;
- mask: url('/images/add-user.svg') 1% 1% / 1px 1px no-repeat;
- mask-size: cover;
- -webkit-mask: url('/images/add-user.svg') 1% 1% / 1px 1px no-repeat;
- -webkit-mask-size: cover;
- width: 40px;
+ &[name='admin-communities']>li {
+ @include ci('networking');
}
&[name='admin-circles']>li {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 9d456c1..72fdbba 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -26,4 +26,3 @@
@import 'layout/dashboard/index';
@import 'layout/polls/index';
}
-@import '../../client.sample.etuc.scss';
diff --git a/src/styles/layout/events/events.scss b/src/styles/layout/events/events.scss
index 23ab28e..be0ef78 100644
--- a/src/styles/layout/events/events.scss
+++ b/src/styles/layout/events/events.scss
@@ -7,20 +7,20 @@ solid-event section {
width: 100%;
font-family: "Facit";
font-weight: 400;
- color: #7A7F85;
+ color: var(--color-main-text);
solid-event {
- sib-display div {
+ solid-display div {
max-width: 1110px;
- sib-display {
+ solid-display {
margin: 0 0 20px 40px;
}
}
.red-button,
.event-type {
- background-color: #C4262E;
+ background-color: var(--color-add-button-background);
}
.black-button {
- background-color: #3A3A3A;
+ background-color: var(--highlight-font-color);
margin-left: 10%;
}
.event-type,
@@ -30,23 +30,23 @@ solid-event section {
#listevents,
#circle-listevents {
[name="name"],
- solid-display-link-event .mdi::before {
- color: #063B5C;
+ event-display-link-event .mdi::before {
+ color: var(--color-primary);
}
}
.event-place-name,
.nextevent-startdate,
- solid-display-link-event {
- color: #3A3A3A;
+ event-display-link-event {
+ color: var(--highlight-font-color);
}
- .sib-event {
+ .solid-event {
font-family: "Facit";
font-weight: 400;
.page-title {
font-family: "RefrigeratorDelxW01Bold";
font-size: 3.2rem;
line-height: 3.8rem;
- color: #063B5C;
+ color: var(--color-primary);
}
}
#default-listevents,
@@ -56,22 +56,21 @@ solid-event section {
width: max-content;
height: max-content;
padding: 5px 20px;
- color: #063B5C;
+ color: var(--color-primary);
}
- sib-form {
- sib-form-dropdown {
- margin-left: 15px;
- label div {
+ .headline h2 {
+ float: left;
+ margin-top: 35px;
+ color: var(--color-primary);
+ text-transform: none;
+ font-family: "RefrigeratorDelxW01Bold";
+ font-size: 2.4rem;
+ }
+ solid-form {
+ solid-form-dropdown-label {
+ label {
height: 2.5rem;
}
- &::before {
- font-family: "RefrigeratorDelxW01Bold";
- font-size: 2.4rem;
- line-height: 29px;
- color: #063B5C;
- top: -40px;
- content: "Research an event";
- }
}
}
[name="name"] {
@@ -79,7 +78,7 @@ solid-event section {
font-size: 1.8rem;
line-height: 2.6rem;
letter-spacing: 0.32px;
- color: #063B5C;
+ color: var(--color-primary);
padding: 5px;
max-width: 250px;
margin: 5px auto;
@@ -90,12 +89,12 @@ solid-event section {
width: max-content;
height: max-content;
}
- solid-display-location-events {
+ event-display-location-events {
padding: 5px;
}
}
.eventdetail {
- sib-display div {
+ solid-display div {
display: block;
}
.mdi::before {
@@ -108,10 +107,10 @@ solid-event section {
font-family: "RefrigeratorDelxW01Bold";
font-size: 3.2rem;
line-height: 3.8rem;
- color: #063B5C;
+ color: var(--color-primary);
display: block;
}
- color: #063B5C;
+ color: var(--color-primary);
.event-type {
width: max-content;
padding: 5px 20px;
@@ -124,12 +123,12 @@ solid-event section {
font-size: 1.6rem;
line-height: 2.6rem;
}
- solid-display-link-event a {
+ event-display-link-event a {
font-size: 1.6rem;
}
}
.newevent label div,
- .newevent sib-form-file div label {
+ .newevent solid-form-file-label div label {
line-height: 2.2rem;
text-transform: uppercase;
color: var(--form-title);
@@ -165,7 +164,7 @@ solid-event section {
background-color: #f0f3f6;
}
-#circle-events solid-event .events sib-form sib-form-dropdown select {
+#circle-events solid-event .events solid-form solid-form-dropdown-label select {
background-color: #f0f3f6;
}
diff --git a/src/styles/layout/job-offers/job-offers.scss b/src/styles/layout/job-offers/job-offers.scss
index 80e6b89..b120517 100644
--- a/src/styles/layout/job-offers/job-offers.scss
+++ b/src/styles/layout/job-offers/job-offers.scss
@@ -180,7 +180,7 @@ solid-job-board {
}
}
- .solid-conversation,
+ .sib-conversation,
.conversation > div {
display: flex;
flex-direction: column-reverse;
diff --git a/src/styles/layout/polls/_index.scss b/src/styles/layout/polls/_index.scss
index 572a53f..381e936 100644
--- a/src/styles/layout/polls/_index.scss
+++ b/src/styles/layout/polls/_index.scss
@@ -1 +1 @@
-@import '_polls.scss';
\ No newline at end of file
+@import 'polls.scss';
\ No newline at end of file
diff --git a/src/styles/layout/polls/_polls.scss b/src/styles/layout/polls/polls.scss
similarity index 81%
rename from src/styles/layout/polls/_polls.scss
rename to src/styles/layout/polls/polls.scss
index 3b9385d..4ef2db4 100644
--- a/src/styles/layout/polls/_polls.scss
+++ b/src/styles/layout/polls/polls.scss
@@ -12,27 +12,25 @@ solid-poll > div {
margin: auto;
.headline {
h2 {
- margin: 0 40px;
font-family: "RefrigeratorDelxW01Bold";
font-size: 2.4rem;
- line-height: 3.8rem;
- color: #063B5C;
+ color: var(--color-primary);
+ float: left;
+ margin-top: 5px;
}
- .add-poll {
- solid-link {
- float: right;
- margin-top: 10px;
- display: initial;
- margin-right: 75px;
- position: relative;
- z-index: 1;
+ solid-link {
+ display:flex;
+ justify-content: end;
+ margin-top: 30px;
+ margin-right: 70px;
+ z-index: 1;
+ position: relative;
+ .add-poll {
+ background-color: var(--color-add-button-background);
+ color: var(--color-add-button);
box-shadow: 0px 0px 4px 1px #CACACA;
- height: 2rem;
- font-size: 1.4rem;
text-transform: uppercase;
font-weight: 700;
- padding: 0.55rem 2.5rem;
- width: max-content;
line-height: 20px;
&::before {
font-family: "material-design-icons";
@@ -52,9 +50,12 @@ solid-poll > div {
display: block;
border-bottom: solid 1px #cacaca;
height: 90px;
- width: 650px;
- margin: 16px 25px 25px;
+ margin: 30px 25px 25px;
max-width: 85%;
+ solid-form-dropdown-label label {
+ font-size: 1.4rem;
+ font-family: "Facit";
+ }
solid-form-placeholder-text {
margin-left: 15px;
input {
@@ -69,7 +70,7 @@ solid-poll > div {
height: 100%;
max-width: 1100px;
margin: auto;
- solid-display {
+ > solid-display {
width: 320px;
height: 520px;
margin: 0 0 20px 40px;
@@ -84,7 +85,7 @@ solid-poll > div {
*[name="body"] {
padding: 10px;
/*size of tags of poll card*/
- etuc-display-votetags {
+ poll-display-votetags {
>div {
width: 64px;
height: 24px;
@@ -101,7 +102,7 @@ solid-poll > div {
}
[name="title"] {
font-family: "RefrigeratorDelxW01Bold";
- color: #063B5C;
+ color: var(--color-primary);
font-size: 1.8rem;
font-weight: 600;
text-transform: uppercase;
@@ -112,7 +113,7 @@ solid-poll > div {
}
[name="hostingOrganisation"],
[name="endDate"] {
- color: #3A3A3A;
+ color: var(--highlight-font-color);
font-family: Facit;
font-size: 14px;
letter-spacing: 0;
@@ -122,7 +123,7 @@ solid-poll > div {
&::before {
content: '\e037';
font-family: 'simple-line-icons';
- color: #C4262E;
+ color: var(--color-secondary);
height: 22px;
width: 24px;
font-size: 16px;
@@ -136,11 +137,11 @@ solid-poll > div {
display: flex;
flex-direction: row;
margin-top: 10px;
- solid-display-div [name="dateImage"]::before {
+ div [name="dateImage"]::before {
display: inline-block;
font: normal normal normal 24px/1 "Material Design Icons";
content: "\F6AF";
- color: #C4262E;
+ color: var(--color-secondary);
height: 22px;
width: 24px;
font-size: 20px;
@@ -149,7 +150,7 @@ solid-poll > div {
}
}
[name="shortDescription"] {
- color: #7A7F85;
+ color: var(--color-main-text);
font-family: Facit;
font-size: 14px;
letter-spacing: 0;
@@ -174,6 +175,7 @@ solid-poll > div {
h1 {
font-size: 3.2rem;
line-height: 3.8rem;
+ margin: 20px auto;
}
h2 {
font-size: 26px;
@@ -186,7 +188,7 @@ solid-poll > div {
solid-display.topline {
>div:first-of-type {
*[name="right"] {
- etuc-display-votetags {
+ poll-display-votetags {
>div {
width: 64px;
height: 24px;
@@ -200,15 +202,15 @@ solid-poll > div {
}
[name="hostingOrganisation"],
[name="dateLine"] {
- color: #3A3A3A;
+ color: var(--highlight-font-color);
font-family: Facit;
font-size: 16px;
font-weight: bold;
}
- [name="dateLine"] solid-set-default {
+ [name="dateLine"] solid-set-default {
display: flex;
margin-top: 7px;
- solid-display-date {
+ solid-display-value, solid-display-date-value {
margin-left: 7px;
}
}
@@ -216,24 +218,24 @@ solid-poll > div {
margin-left: 0;
[name="hostingOrganisation"]::before {
content: '\e037';
- font-family: 'simple-line-icons';
+ font-family: "simple-line-icons";
font-weight: 400;
- color: #C4262E;
+ color: var(--color-secondary);
margin-right: 10px;
font-size: 16px;
}
}
- solid-display-div [name="dateImage"]::before {
+ div [name="dateImage"]::before {
font-family: "Material Design Icons";
font-weight: 400;
content: "\F6AF";
- color: #C4262E;
+ color: var(--color-secondary);
font-size: 20px;
}
[name="shortDescription"],
[name="longDescription"] {
margin: 20px 0;
- color: #7A7F85;
+ color: var(--color-main-text);
font-family: Facit;
}
[name="shortDescription"] {
@@ -255,7 +257,7 @@ solid-poll > div {
font-weight: 400;
font-size: 20px;
margin-right: 10px;
- color: #3A3A3A;
+ color: var(--highlight-font-color);
}
.vote-section > h3::before {
content:"\F004";
@@ -278,16 +280,15 @@ solid-poll > div {
div[name="progressBar"] div .progressBarValue {
margin: 0;
}
- #poll-votes-form input[type="submit"] {
+ .poll-votes-form input[type="submit"] {
height: 38px;
- width: 149px;
border-radius: 19px;
box-shadow: 0 0 7px 0 rgba(0,0,0,0.15);
}
- #poll-votes-form input[type="submit"]:disabled {
+ .poll-votes-form input[type="submit"]:disabled {
opacity: 0.3;
}
- #unavailablePoll {
+ .unavailablePoll {
font-style: italic;
}
.progressBarValue {
@@ -297,7 +298,7 @@ solid-poll > div {
}
.send-share,
.back-to-list {
- background-color: #3A3A3A;
+ background-color: var(--highlight-font-color);
padding: 5px 25px;
font-size: 1.4rem;
&::before {
@@ -378,9 +379,9 @@ solid-poll > div {
background-color: #f0f3f6;;
}
#circles-add-survey, #default-add-survey {
- background-color: white;
- padding: 50px 0;
- margin: -20px auto;
+ background-color: white;
+ padding: 50px 0;
+ margin: -20px auto;
h2 {
font-family: "RefrigeratorDelxW01Bold";
font-size: 3.2rem;
@@ -390,7 +391,7 @@ solid-poll > div {
}
p {
margin-top: 10px;
- color: #7A7F85;
+ color: var(--color-main-text);
font-family: Facit;
font-size: 16px;
}
@@ -406,12 +407,14 @@ solid-poll > div {
height: 110px;
}
solid-form-label-text,
- solid-form-textarea {
+ solid-form-textarea,
+ solid-form-label-textarea,
+ solid-form-textarea-label {
display: block;
margin: 15px 0;
padding: 0;
}
- label > div, solid-form-file-image > div label, solid-form-auto-completion[name="tags"] > label::before {
+ label > div, solid-form-file-image > div label, solid-form-dropdown-autocompletion[name="tags"] > label::before {
margin-bottom: 5px;
margin-top: 20px;
color: var(--form-title);
@@ -451,18 +454,18 @@ solid-poll > div {
display: flex;
width: 100%;
justify-content: space-between;
- custom-choix {
+ poll-custom-choice {
width: calc(100% - 45px);
solid-form-label-text[name="name"] {
margin-bottom: 0;
}
}
button {
- border: 1px solid var(--main-color);
+ border: 1px solid var(--color-primary);
background-color: transparent;
border-radius: 15px;
font-size: 24px;
- color: var(--main-color);
+ color: var(--color-primary);
padding: 0;
height: 30px;
width: 30px;
@@ -480,7 +483,7 @@ solid-poll > div {
font-weight: bold;
font-size: 13px;
margin: 10px 0;
- color: var(--main-color);
+ color: var(--color-primary);
&::before {
content: "\F419";
font-family: Material Design Icons;
@@ -495,7 +498,7 @@ solid-poll > div {
margin-top: 10px;
.ss-multi-selected .ss-values .ss-value {
border-radius: 14px;
- background-color: #C4262E;
+ background-color: var(--color-secondary);
padding: 5px 10px;
font-size: 11px;
}
@@ -510,6 +513,24 @@ solid-poll > div {
text-transform: uppercase;
}
}
+ .poll-footer {
+ .back-to-list {
+ background-color: var(--highlight-font-color);
+ padding: 5px 25px;
+ font-size: 1.4rem;
+ margin-left: 10%;
+ border-radius: 15px;
+ color: white;
+ &::before {
+ font-family: "Material Design Icons";
+ font-weight: 400;
+ font-size: 20px;
+ vertical-align: middle;
+ color: white;
+ content: "\F04D";
+ }
+ }
+ }
}
}
diff --git a/src/styles/layout/resources/resources.scss b/src/styles/layout/resources/resources.scss
index 2378154..652daab 100644
--- a/src/styles/layout/resources/resources.scss
+++ b/src/styles/layout/resources/resources.scss
@@ -3,27 +3,27 @@
width: 100%;
font-family: "Facit";
font-weight: 400;
- color: #7A7F85;
+ color: var(--content-font-color);
solid-resource {
- sib-display div {
+ solid-display div {
max-width: 1110px;
- sib-display {
+ solid-display {
margin: 0 0 20px 40px;
}
}
- .sib-resource {
+ .solid-resource {
font-family: "Facit";
.page-title {
font-family: "RefrigeratorDelxW01Bold";
font-size: 3.2rem;
line-height: 3.8rem;
- color: #063B5C;
+ color: var(--color-primary);
}
.red-button {
- background-color: #C4262E;
+ background-color: var(--color-add-button-background);
}
.black-button {
- background-color: #3A3A3A;
+ background-color: var(--highlight-font-color);
margin-left: 10%;
}
.lnk-newresource {
@@ -33,23 +33,22 @@
position: relative;
}
.listresources .lnk-newkeyword {
- top: 133px;
+ top: 155px;
left: 220px;
.button.thin-button.mdi {
padding: 5px 20px;
}
}
- .resources {
- margin-top: -35px;
- sib-form {
- &::before {
- content: "Research a resource";
- font-family: "RefrigeratorDelxW01Bold";
- color: #063B5C;
- font-size: 2.4rem;
- line-height: 3.8rem;
- top: -10px;
- }
+ .listresources {
+ .headline h2 {
+ float: left;
+ margin-top: 5px;
+ color: var(--color-primary);
+ text-transform: none;
+ font-family: "RefrigeratorDelxW01Bold";
+ font-size: 2.4rem;
+ }
+ solid-form {
select {
width: 150px;
}
@@ -61,14 +60,16 @@
width: max-content;
height: max-content;
padding: 10px 30px;
- color: #063B5C;
+ color: var(--color-primary);
}
- sib-display sib-display {
+ solid-display solid-display {
[name="name"] {
font-family: "RefrigeratorDelxW01Bold";
- color: #063B5C;
+ color: var(--color-primary);
}
- [name="link"] a {
+ [name="link"] a, [name="document"] a {
+ width: 75%;
+ margin-bottom: 10px;
padding-left: 35px;
position: relative;
&::before {
@@ -84,7 +85,7 @@
font-family: "RefrigeratorDelxW01Bold";
font-size: 3.2rem;
line-height: 3.8rem;
- color: #063B5C;
+ color: var(--color-primary);
}
[name="infotext"] {
justify-content: flex-start;
@@ -97,7 +98,7 @@
}
}
.newresource label div,
- .newresource sib-form-file div label {
+ .newresource solid-form-file div label {
line-height: 2.2rem;
text-transform: uppercase;
color: var(--form-title);
@@ -108,11 +109,11 @@
.newresource select,
.newresource textarea,
.newresource input,
- .newresource sib-multiple-select .ss-main .ss-multi-selected {
+ .newresource solid-multiple-select .ss-main .ss-multi-selected {
background-color: var(--form-inputs-background);
}
.newresource input[type="submit"] {
- background-color: #3C3F57;
+ background-color: var(--form-submit-button);
}
.newresource input[type="file"] {
background-color: transparent;
@@ -124,7 +125,7 @@
}
}
@media (max-width: 991px) {
- .sib-resource {
+ .solid-resource {
margin-top: 65px;
}
}
@@ -134,7 +135,7 @@
background-color: #f0f3f6;
}
-#circle-resources .resources sib-form sib-form-dropdown select {
+#circle-resources .resources solid-form solid-form-dropdown select {
background-color: #f0f3f6;
}
diff --git a/src/styles/layout/user/_index.scss b/src/styles/layout/user/_index.scss
index 5158e8e..865c281 100644
--- a/src/styles/layout/user/_index.scss
+++ b/src/styles/layout/user/_index.scss
@@ -1 +1 @@
-@import 'user-profile';
+@import 'messages';
diff --git a/src/styles/layout/user/messages.scss b/src/styles/layout/user/messages.scss
new file mode 100644
index 0000000..db9e071
--- /dev/null
+++ b/src/styles/layout/user/messages.scss
@@ -0,0 +1,16 @@
+.avatar-container {
+ display: inline-block;
+ margin-right: 10px;
+
+ .avatar {
+ height: 40px;
+ width: 40px;
+ }
+}
+.avatar-text {
+ position: absolute;
+ top: 7.5rem;
+ @include breakpoint(lg) {
+ top: 2.8rem;
+ }
+}
\ No newline at end of file
diff --git a/src/styles/layout/user/user-profile.scss b/src/styles/layout/user/user-profile.scss
deleted file mode 100644
index 8a2be67..0000000
--- a/src/styles/layout/user/user-profile.scss
+++ /dev/null
@@ -1,76 +0,0 @@
-/*.user-profile__container {
-
- .user-bio {
- display: grid;
- grid-gap: 1rem;
- grid-template-areas: "avatar name"
- "avatar information";
- grid-template-columns: minmax(300px, 400px) 2fr;
-
- .avatar-display {
- grid-area: avatar;
- overflow: hidden;
- position: relative;
-
- img {
- border-radius: 50%;
- height: 300px;
- object-fit: cover;
- overflow: hidden;
- object-position: center;
- width: 300px;
- }
- }
-
- .name-diplay {
- grid-area: name;
-
- [name='user-name-groups'] {
- align-items: baseline;
- align-self: end;
- display: flex;
-
- solid-multiple {
- display: flex;
- padding-left: 1.4rem;
-
- hubl-groups-name {
- @extend %tag-role;
- }
- }
- }
- }
-
- .info-form {
- grid-area: information; */
-
- /* ces styles disparaitront lorsque l'on aura la fonctionnalité pour uploader une photo */
- /*[name="account.picture"] {
- margin-bottom: 1rem;
- }
-
- hubl-instruction {
- margin-left: 1rem;
-
- span {
- color: $color-233-18-29;
- font-weight: bold;
- }
-
- p {
- margin-left: 1rem;
- }
- }*/
- /* Fin commentaire sur upload photos */
- /*}
-
- [name^="inline-"] {
- display: flex;
- justify-content: flex-start;
-
- >*:not(:last-child) {
- margin-right: 3rem;
- }
- }
- }
-}*/
diff --git a/src/sw.js b/src/sw.js
new file mode 100644
index 0000000..a61d59b
--- /dev/null
+++ b/src/sw.js
@@ -0,0 +1,113 @@
+const CACHE_NAME = 'hubl-store';
+
+self.addEventListener('install', function (e) {
+ self.skipWaiting();
+ e.waitUntil(
+ caches.open(CACHE_NAME).then(function (cache) {
+ return cache.addAll([
+ '/locales/es.json',
+ '/locales/fr.json',
+ '/scripts/index.js',
+ '/syles/index.css',
+ '/index.html',
+ '/'
+ ]);
+ })
+ );
+});
+
+self.addEventListener('activate', function (e) {
+ // invalidate older versions
+ e.waitUntil(
+ caches.keys()
+ .then(function (keyList) {
+ return Promise.all(keyList.map(function (key) {
+ if (key !== CACHE_NAME && key !== (CACHE_NAME + "-cdn") && key !== (CACHE_NAME + "-api")) {
+ return caches.delete(key);
+ }
+ }));
+ }));
+ self.clients.claim();
+});
+
+self.addEventListener('fetch', function (event) {
+ let requestURL = new URL(event.request.url);
+ if (requestURL.origin == location.origin) {
+ // Static asset, cache then network
+ event.respondWith(
+ caches.open(CACHE_NAME).then(function (cache) {
+ return cache.match(event.request).then(function (response) {
+ var fetchPromise = fetch(event.request).then(function (networkResponse) {
+ cache.put(event.request, networkResponse.clone());
+ return networkResponse;
+ });
+ return response || fetchPromise;
+ });
+ }),
+ );
+ } else {
+ if (
+ event.request.method == 'POST' ||
+ event.request.method == 'PUT'
+ ) {
+ // disabled: lead to cors errors
+ // // POST/PUT to api, rewrite the cache
+ // event.respondWith(
+ // caches.open(CACHE_NAME + '-api').then(function (cache) {
+ // return fetch(event.request).then(function (response) {
+ // cache.put(event.request, response.clone());
+ // return response;
+ // })
+ // }));
+ // api: no cache
+ event.respondWith(fetch(event.request));
+ } else if (
+ /matomo/.test(requestURL.origin) ||
+ /sentry/.test(requestURL.origin) ||
+ /jabber/.test(requestURL.origin) ||
+ /xmpp/.test(requestURL.origin)
+ ) {
+ // analytics, always distant
+ event.respondWith(fetch(event.request));
+ } else {
+ if (
+ /unpkg/.test(requestURL.origin) ||
+ /skypack/.test(request.origin) ||
+ /jspm/.test(requestURL.origin) ||
+ /jsdeliver/.test(requestURL.origin) ||
+ /cdn/.test(requestURL.origin) ||
+ /googleapis/.test(requestURL.origin)
+ ) {
+ // cdn: cache then network
+ event.respondWith(
+ caches.open(CACHE_NAME + '-cdn').then(function (cache) {
+ return cache.match(event.request).then(function (response) {
+ var fetchPromise = fetch(event.request).then(function (networkResponse) {
+ cache.put(event.request, networkResponse.clone());
+ return networkResponse;
+ });
+ return response || fetchPromise;
+ });
+ }),
+ );
+ } else {
+ // disabled: lead to cors errors
+ // // api: distant then cache
+ // event.respondWith(
+ // fetch(event.request)
+ // .then((response) => {
+ // caches.open(CACHE_NAME + '-api').then(function (cache) {
+ // cache.put(event.request, response.clone());
+ // return response;
+ // });
+ // })
+ // .catch(() => {
+ // return caches.match(event.request);
+ // })
+ // );
+ // api: no cache
+ event.respondWith(fetch(event.request));
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/src/templates/hubl-captain.pug b/src/templates/hubl-captain.pug
index 4b2bc9b..5a5248c 100644
--- a/src/templates/hubl-captain.pug
+++ b/src/templates/hubl-captain.pug
@@ -11,5 +11,6 @@ solid-widget(name='hubl-captain')
class-is_lead='user-thumb__lead'
widget-account.picture='hubl-user-avatar'
- value-is_lead='Capitaine'
+ value-is_lead=''
+ data-trans='value-is_lead=template-captain.isLead'
)
diff --git a/src/templates/hubl-circle-team.pug b/src/templates/hubl-circle-team.pug
deleted file mode 100644
index 2aff831..0000000
--- a/src/templates/hubl-circle-team.pug
+++ /dev/null
@@ -1,20 +0,0 @@
-include hubl-user-avatar.pug
-
-solid-widget(name='hubl-circle-team-template')
- template
- solid-display.user-thumb.is-spaced(
- data-src='${await value.user}'
- fields='account.picture, sup(name, isadmin), sub(profile.city)'
- value-isadmin='${await value.is_admin}'
-
- class-account.picture='avatar user-thumb__picture'
- class-name='user-thumb__name'
- class-isadmin='user-thumb__admin'
- class-profile.city='user-thumb__city'
-
- widget-account.picture='hubl-user-avatar'
- widget-isadmin='hubl-circle-user-admin'
- )
-
-solid-widget(name='hubl-circle-user-admin')
- template ${(await value) != "false" ? "Administrateur" : ""}
diff --git a/src/templates/hubl-project-team.pug b/src/templates/hubl-project-team.pug
deleted file mode 100644
index f8334c7..0000000
--- a/src/templates/hubl-project-team.pug
+++ /dev/null
@@ -1,22 +0,0 @@
-include hubl-user-avatar.pug
-
-solid-widget(name='hubl-project-team')
- template
- solid-display.user-thumb.is-spaced(
- data-src='${await value}'
- fields='user.account.picture, sup(user.name, isadmin), sub(user.profile.city, name)'
- value-isadmin='${await value.is_admin}'
-
- class-user.account.picture='avatar user-thumb__picture'
-
- class-user.name='user-thumb__name'
- class-isadmin='user-thumb__admin'
- class-user.profile.city='user-thumb__city'
- class-name='user-thumb__lead'
-
- widget-user.account.picture='hubl-user-avatar'
- widget-isadmin='hubl-project-user-admin'
- )
-
-solid-widget(name='hubl-project-user-admin')
- template ${(await value) == "false" ? "" : "Administrateur"}
diff --git a/src/views/admin/page-admin-circles-create.pug b/src/views/admin/page-admin-circles-create.pug
index 4ce3474..e01c335 100644
--- a/src/views/admin/page-admin-circles-create.pug
+++ b/src/views/admin/page-admin-circles-create.pug
@@ -1,7 +1,7 @@
div.content-box__info.flex
- solid-link(class="backlink right", next='admin-circle-list') Retour
+ solid-link(class="backlink right", next='admin-circle-list' data-trans='circle.create.backlink')
- h1.centered Créer un cercle
+ h1.centered(data-trans='circle.create.title')
div#loader-circles-create.loader.loader-top
div
@@ -13,19 +13,24 @@ div.content-box__info.flex
data-src=`${endpoints.circles || endpoints.post.circles}`
fields='status, name, description'
+ required-status
+ required-name
+ required-description
loader-id='loader-circles-create'
class-status='form-label is-light is-full-width color'
class-name='form-label is-light is-full-width input-text-like'
class-description='form-label is-light is-full-width input-text-like'
- label-status='Statut du cercle'
- label-name='Nom du cercle *'
- label-description='Sous-titre du cercle *'
+ label-status=''
+ label-name=''
+ label-description=''
widget-status='hubl-status'
next='circle'
- submit-button='Enregistrer'
+ submit-button=''
+
+ data-trans='label-status=circle.create.labelStatus;label-name=circle.create.labelName;label-description=circle.create.labelDescription;submit-button=circle.create.buttonSubmit'
)
diff --git a/src/views/admin/page-admin-circles.pug b/src/views/admin/page-admin-circles.pug
index b545c7b..c9b5965 100644
--- a/src/views/admin/page-admin-circles.pug
+++ b/src/views/admin/page-admin-circles.pug
@@ -5,17 +5,17 @@
solid-route(name='circle-left')
div.content-box__header.flex.space-between
- h1.without-margin Administration
- button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle MENU
+ h1.without-margin(data-trans='circle.list.title')
+ button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle(data-trans='circle.list.buttonMobile')
include ../circle/page-circle-left.pug
- #admin-circle-list.content-box__height(hidden)
+ #admin-circle-list.content-box__height(hidden, data-view="admin-circle-list")
include ../../templates/hubl-user-avatar.pug
solid-widget(name='hubl-circle-owner')
template
- solid-display.user-thumb.is-spaced(
+ solid-display.user-thumb.block.is-spaced(
data-src='${await value}'
fields='account.picture, sup(name), sub(username)'
@@ -31,27 +31,29 @@
div.admin-header.flex
- h3 Cercles
+ h3(data-trans='circle.list.subTitle')
- solid-link(
- class='button text-bold text-uppercase reversed button-primary bordered with-icon icon-plus'
- next='admin-circle-create'
- ) Créer un cercle
+ solid-ac-checker(data-src=`${endpoints.circles || (endpoints.post && endpoints.post.circles)}`, permission='acl:Append')
+ solid-link(
+ class='button text-bold text-uppercase reversed button-primary bordered with-icon icon-plus'
+ next='admin-circle-create' data-trans='circle.list.buttonCreate'
+ )
.table-wrapper
.table
div.table-header.grey-color
- div.w280 Nom
- div.w280 Administrateurs
- div.w280 Rejoindre
+ div.w280(data-trans='circle.list.tableHeader1')
+ div.w280(data-trans='circle.list.tableHeader2')
+ div.w280(data-trans='circle.list.tableHeader3')
solid-widget(name='hubl-admin-circle-leave-button')
template
solid-delete(
class='circle-leave button text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
data-src="${src}"
- data-label='Quitter'
+ data-label=''
+ data-trans='data-label=circle.list.buttonQuit'
)
hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}` target-src='${src}')
hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}joinable/` target-src='${src}')
@@ -70,7 +72,7 @@
class-circle.name='w280 border cell-with-name'
class-circle.owner='w280 border cell-with-id-card'
- class-leaveButton='w280 border cell-with-buttons'
+ class-leaveButton='w280 border cell-with-buttons is-spaced'
action-leaveButton="joinButton"
widget-leaveButton="hubl-admin-circle-leave-button"
@@ -89,6 +91,7 @@
widget-user.username='solid-form-hidden'
submit-button='Rejoindre'
+ data-trans='submit-button=circle.list.buttonJoin'
)
hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}` target-src='${value}')
hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}joinable/` target-src='${value}')
@@ -108,7 +111,7 @@
class-owner='w280 border cell-with-id-card'
widget-owner='hubl-circle-owner'
- class-members='w280 border cell-with-buttons'
+ class-members='w280 border cell-with-buttons is-spaced'
widget-members="hubl-admin-circle-join-button"
order-by="name"
@@ -120,5 +123,5 @@
div
div
- #admin-circle-create.content-box__height(hidden)
+ #admin-circle-create.content-box__height(hidden, data-view="admin-circle-create")
include page-admin-circles-create.pug
diff --git a/src/views/admin/page-admin-communities.pug b/src/views/admin/page-admin-communities.pug
new file mode 100644
index 0000000..7883571
--- /dev/null
+++ b/src/views/admin/page-admin-communities.pug
@@ -0,0 +1,54 @@
+.content-box.flex.full-width.with-form
+ solid-router(default-route='admin-communities-list', hidden)
+ solid-route(name='admin-communities-list')
+ solid-route(name='admin-users-create', use-id)
+
+ div.content-box__header.flex.space-between
+ h1.without-margin(data-trans='communities.title')
+ button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle(data-trans='communities.menuMobile')
+
+ solid-widget(name='hubl-action-community')
+ template
+ solid-ac-checker(data-src="${value}", nested-field="members", permission='acl:Append')
+ solid-link(
+ class='button text-bold text-uppercase reversed button-primary bordered with-icon icon-plus'
+ data-src="${value}"
+ next="admin-users-create"
+ data-trans='communities.linkInvite'
+ )
+ solid-ac-checker(data-src="${value}", nested-field="members", no-permission='acl:Append')
+ div.button.text-bold.text-uppercase.button-disabled(data-trans='communities.noPermission')
+
+ #admin-communities-list.content-box__height(hidden, data-view="admin-communities-list")
+ div.content-box__info.flex
+ div.admin-header.flex
+ h3(data-trans='communities.subTitle')
+
+ .table-wrapper
+ .table
+ div.table-header.grey-color
+ div.w450(data-trans='communities.tableHeader1')
+ div.w370(data-trans='communities.tableHeader2')
+
+ solid-display(
+ class='table-body'
+ bind-user
+ nested-field='communities'
+ fields='community.name, community'
+ loader-id='loader-admin-community'
+
+ class-community.name='w450 border cell-with-name'
+ class-community='w370 border cell-with-buttons is-spaced'
+ widget-community='hubl-action-community'
+
+ order-asc='community.name'
+ )
+
+ div#loader-admin-community.loader.loader-top
+ div
+ div
+ div
+ div
+
+ #admin-users-create.content-box__height(hidden, data-view="admin-users-create")
+ include page-admin-users-create.pug
diff --git a/src/views/admin/page-admin-projects-create.pug b/src/views/admin/page-admin-projects-create.pug
index 1bec5c3..44169ce 100644
--- a/src/views/admin/page-admin-projects-create.pug
+++ b/src/views/admin/page-admin-projects-create.pug
@@ -1,18 +1,7 @@
div.content-box__info.flex
- solid-link(class="backlink right" next='admin-project-list') Retour
+ solid-link(class="backlink right" next='admin-project-list' data-trans='project.create.backlink')
- solid-widget(name="hubl-admin-project-add-user")
- template
- solid-form(
- data-holder
- fields='user, project'
- range-user=`${endpoints.users || endpoints.get.users}`
- value-project='${src}'
- widget-project='solid-form-hidden'
- naked
- )
-
- h1.centered Créer un nouveau projet
+ h1.centered(data-trans='project.create.title')
div#loader-projects-create.loader.loader-top
div
@@ -24,27 +13,33 @@ div.content-box__info.flex
data-src=`${endpoints.projects || endpoints.post.projects}`
fields='status, line-1(customer.name, name), line-2(captain)'
+ required-status
+ required-customer.name
+ required-name
+ required-captain
loader-id='loader-projects-create'
- label-status='Statut du cercle*'
+ label-status=''
widget-status='solid-form-hidden'
class-status='form-label is-light is-full-width'
value-status="Private"
- label-customer.name='Nom du client*'
+ label-customer.name=''
class-customer.name='form-label is-light is-half-width input-text-like'
- label-name='Nom du projet*'
+ label-name=''
class-name='form-label is-light is-half-width input-text-like'
- label-captain='Capitaine du projet*'
+ label-captain=''
range-captain=`${endpoints.users || endpoints.get.users}`
class-captain='form-label is-light is-half-width'
- widget-captain='solid-form-auto-completion'
+ widget-captain='solid-form-dropdown-autocompletion-label'
class='input-text-like'
next='project'
- submit-button='Enregistrer'
+ submit-button=''
+
+ data-trans='label-status=project.create.labelStatus;label-customer.name=project.create.labelCustomer;label-name=project.create.labelName;label-captain=project.create.labelCaptain;submit-button=project.create.buttonSubmit'
)
diff --git a/src/views/admin/page-admin-projects.pug b/src/views/admin/page-admin-projects.pug
index c0268b6..04bef98 100644
--- a/src/views/admin/page-admin-projects.pug
+++ b/src/views/admin/page-admin-projects.pug
@@ -5,37 +5,40 @@
solid-route(name='project-left')
div.content-box__header.flex.space-between
- h1.without-margin Administration
- button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle MENU
+ h1.without-margin(data-trans='project.list.title')
+ button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle(data-trans='project.list.buttonMobile')
- #project-left(hidden)
+ #project-left(hidden, data-view="project-left")
include ../project/page-project-left.pug
- #admin-project-list.content-box__height(hidden)
+ #admin-project-list.content-box__height(hidden, data-view="admin-project-list")
include ../../templates/hubl-user-avatar.pug
div.content-box__info.flex
div.admin-header.flex
- h3 Projets
- solid-link(
- class='button text-bold text-uppercase reversed button-primary bordered with-icon icon-plus'
- next='admin-project-create'
- ) Créer un nouveau projet
+ h3(data-trans='project.list.subTitle')
+ solid-ac-checker(data-src=`${endpoints.projects || (endpoints.post && endpoints.post.projects)}`, permission='acl:Append')
+ solid-link(
+ class='button text-bold text-uppercase reversed button-primary bordered with-icon icon-plus'
+ next='admin-project-create'
+ data-trans='project.list.buttonCreate'
+ )
.table-wrapper
.table
div.table-header.grey-color
- div.w280 Nom
- div.w280 Administrateurs
- div.w280 Capitaines
- div.w230 Rejoindre
+ div.w280(data-trans='project.list.tableHeader1')
+ div.w280(data-trans='project.list.tableHeader2')
+ div.w280(data-trans='project.list.tableHeader3')
+ div.w230(data-trans='project.list.tableHeader4')
solid-widget(name="hubl-admin-project-leave-button")
template
solid-delete(
class='button text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
data-src="${src}"
- data-label='Quitter'
+ data-label=''
+ data-trans='data-label=project.list.buttonQuit'
)
hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}` target-src='${src}')
hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}joinable/` target-src='${src}')
@@ -46,7 +49,7 @@
solid-widget(name='hubl-project-captain')
template
- solid-display.user-thumb.is-spaced(
+ solid-display.user-thumb.block.is-spaced(
data-src='${await value}'
fields='account.picture, sup(name), sub(username)'
@@ -73,7 +76,8 @@
solid-delete(
class='button text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
data-src="${src}"
- data-label='Quitter'
+ data-label=''
+ data-trans='data-label=project.list.buttonQuit'
)
solid-display(
@@ -87,7 +91,7 @@
class-project.name='w280 cell border cell-with-name'
class-project.members='w280 cell border cell-with-id-card'
class-project.captain='w280 cell border cell-with-id-card'
- class-leaveButton='w230 cell border cell-with-buttons'
+ class-leaveButton='w230 cell border cell-with-buttons is-spaced'
action-leaveButton="joinButton"
widget-leaveButton="hubl-admin-project-leave-button"
@@ -108,7 +112,8 @@
value-user.username='hubl-workaround-493'
widget-user.username='solid-form-hidden'
- submit-button='Rejoindre'
+ submit-button=''
+ data-trans='submit-button=project.list.buttonJoin'
)
hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}` target-src='${src}')
hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}joinable/` target-src='${src}')
@@ -127,7 +132,7 @@
class-name='w280 cell border cell-with-name'
class-members='w280 cell border cell-with-id-card'
class-captain='w280 cell border cell-with-id-card'
- class-joinButton='w230 cell border cell-with-buttons'
+ class-joinButton='w230 cell border cell-with-buttons is-spaced'
action-joinButton="joinButton" # Workaround: I need members two times
widget-joinButton="hubl-admin-project-join-button"
@@ -144,5 +149,5 @@
div
div
- #admin-project-create(hidden)
- include page-admin-projects-create.pug
\ No newline at end of file
+ #admin-project-create(hidden, data-view="admin-project-create")
+ include page-admin-projects-create.pug
diff --git a/src/views/admin/page-admin-users-create.pug b/src/views/admin/page-admin-users-create.pug
index 03b4661..66e7c47 100644
--- a/src/views/admin/page-admin-users-create.pug
+++ b/src/views/admin/page-admin-users-create.pug
@@ -1,7 +1,19 @@
div.content-box__info.flex
- solid-link(class='backlink right', next='admin-users-list') Retour
+ solid-link(class='backlink right', next='admin-communities-list' data-trans='user.create.backlink')
- h1.centered Ajouter un utilisateur à la plateforme
+ solid-display.h1-like.centered(
+ bind-resources
+ fields='text, name'
+ value-text=''
+ data-trans='value-text=user.create.title'
+ loader-id='loader-users-title'
+ )
+
+ div#loader-users-title.loader.loader
+ div
+ div
+ div
+ div
div#loader-users-create.loader.loader-top
div
@@ -9,26 +21,45 @@ div.content-box__info.flex
div
div
- solid-form.form.button-register(
- data-src=`${endpoints.users || endpoints.post.users}`
+ solid-widget(name='hubl-username-field')
+ template
+ label(data-trans='user.create.labelUsername')
+ input(type="text" title='' pattern="[a-zA-Z0-9]+" label="" data-trans='title=user.create.labelUsernameTitle;label=user.create.labelUsername' name="username" required value="\${value}" data-holder)
- fields='line-1(first_name, last_name), line-2(username, email), line-3(password)'
+ solid-widget(name='hubl-email-field')
+ template
+ label(data-trans='user.create.labelEmail')
+ input(type="email" label='' data-trans='label=user.create.labelEmail' name="email" required value="\${value}" data-holder)
+
+ solid-form.form.button-register#selected-community(
+ bind-resources
+ nested-field='members'
+
+ fields='line-1(user.first_name, user.last_name), line-2(user.username, user.email), user.password'
+ required-user.first_name
+ required-user.last_name
+ required-user.username
+ required-user.email
loader-id='loader-users-create'
- class-first_name='form-label is-light is-half-width input-text-like'
- class-last_name='form-label is-light is-half-width input-text-like'
- class-username='form-label is-light is-half-width input-text-like'
- class-email='form-label is-light is-half-width input-text-like'
+ class-user.first_name='form-label is-light is-half-width input-text-like'
+ class-user.last_name='form-label is-light is-half-width input-text-like'
+ class-user.username='form-label is-light is-half-width input-text-like'
+ class-user.email='form-label is-light is-half-width input-text-like'
- label-first_name='Prénom *'
- label-last_name='Nom *'
- label-username='Nom d\'utilisateur *'
- label-email='E-mail *'
+ label-user.first_name=''
+ label-user.last_name=''
+ label-user.username=''
+ label-user.email=''
- value-password=''
- widget-password='solid-form-hidden'
+ value-user.password=''
+ widget-user.password='solid-form-hidden'
- next='admin-users-list'
+ widget-user.username='hubl-username-field'
+ widget-user.email='hubl-email-field'
- submit-button='Enregistrer'
+ next='admin-communities-list'
+
+ submit-button=''
+ data-trans='label-user.first_name=user.create.labelFirstname;label-user.last_name=user.create.labelLastname;label-user.username=user.create.labelUsername;label-user.email=user.create.labelEmail;submit-button=user.create.buttonSubmit'
)
diff --git a/src/views/admin/page-admin-users-edit.pug b/src/views/admin/page-admin-users-edit.pug
deleted file mode 100644
index 13a9e9a..0000000
--- a/src/views/admin/page-admin-users-edit.pug
+++ /dev/null
@@ -1,36 +0,0 @@
-div.content-box__info.flex
- solid-link(class='backlink right', next='admin-users-list') Retour
-
- h1.centered
- span Modifier un utilisateur
-
- div#loader-users-edit.loader.loader-top
- div
- div
- div
- div
-
- solid-display(
- bind-resources=''
- fields='name'
- loader-id='loader-users-edit'
- )
-
- solid-form.form.button-register(
- bind-resources=''
-
- fields='line-1(first_name, last_name), line-2(email)'
- loader-id='loader-users-edit'
-
- class-first_name='form-label is-light is-half-width input-text-like'
- class-last_name='form-label is-light is-half-width input-text-like'
- class-email='form-label is-light is-full-width input-text-like'
-
- label-first_name='Prénom *'
- label-last_name='Nom *'
- label-email='E-mail *'
-
- next='admin-user-list'
-
- submit-button='Enregistrer'
- )
diff --git a/src/views/admin/page-admin-users.pug b/src/views/admin/page-admin-users.pug
deleted file mode 100644
index 5494220..0000000
--- a/src/views/admin/page-admin-users.pug
+++ /dev/null
@@ -1,67 +0,0 @@
-.content-box.flex.full-width.with-form
- solid-router(default-route='admin-users-list', hidden)
- solid-route(name='admin-users-list')
- solid-route(name='admin-users-create')
- solid-route(name='admin-users-edit')
-
- div.content-box__header.flex.space-between
- h1.without-margin Administration
- button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle MENU
-
- solid-widget(name='hubl-solid-action-custom')
- template
- solid-ac-checker(data-src="${src}", permission='acl:Write')
- solid-link(
- class='button rounded reversed button-primary bordered icon-pencil'
- data-src="${src}"
- next="${value}"
- )
-
-
- #admin-users-list.content-box__height(hidden)
- div.content-box__info.flex
- div.admin-header.flex
- h3 Utilisateurs
- solid-ac-checker(data-src=`${endpoints.users || endpoints.post.users}`, permission='acl:Append')
- solid-link(
- class='button text-bold text-uppercase reversed button-primary bordered with-icon icon-plus'
- next='admin-users-create'
- ) Ajouter un utilisateur
-
- .table-wrapper
- .table
- div.table-header.grey-color
- div.w280 Nom
- div.w70
-
- solid-display(
- class='table-body'
- data-src=`${endpoints.users || endpoints.get.users}`
- fields='cell-1(user-thumb(account.picture, sup(name), sub(username))), actions'
- loader-id='loader-admin-users'
-
- class-account.picture='avatar user-thumb__picture'
- class-name='user-thumb__name'
- class-username='user-thumb__username'
- class-profile.city='user-thumb__city'
- widget-account.picture='hubl-user-avatar'
-
- label-actions='Edit'
- action-actions='admin-users-edit'
- class-actions='w70 border cell-with-buttons'
- widget-actions='hubl-solid-action-custom'
-
- order-by='username'
- )
-
- div#loader-admin-users.loader.loader-top
- div
- div
- div
- div
-
- #admin-users-create.content-box__height(hidden)
- include page-admin-users-create.pug
-
- #admin-users-edit.content-box__height(hidden)
- include page-admin-users-edit.pug
diff --git a/src/views/circle/page-circle-chat.pug b/src/views/circle/page-circle-chat.pug
index baee3eb..6431898 100644
--- a/src/views/circle/page-circle-chat.pug
+++ b/src/views/circle/page-circle-chat.pug
@@ -2,7 +2,7 @@
solid-xmpp-chat(
data-authentication='login',
data-auto-login='true',
- data-bosh-service-url=`${xmpp}`,
+ data-websocket-url=`${xmppWebsocket || 'wss://jabber.happy-dev.fr/xmpp-websocket'}`,
data-i18n='en',
bind-resources
)
\ No newline at end of file
diff --git a/src/views/circle/page-circle-edit.pug b/src/views/circle/page-circle-edit.pug
index 41e4903..c56d36a 100644
--- a/src/views/circle/page-circle-edit.pug
+++ b/src/views/circle/page-circle-edit.pug
@@ -2,49 +2,20 @@ div.content-box__info
include ../../templates/hubl-user-avatar.pug
- solid-widget(name='hubl-user-groups')
- template ${await value.name}
-
- solid-widget(name='hubl-team-template-edit')
+ solid-widget(name="circle-edit-members-delete")
template
- solid-display.user-thumb.is-spaced(
- class='w280 cell border cell-with-id-card user-thumb'
- data-src='${await value.user}'
- fields='account.picture, sup(name, groups), sub(profile.city)'
-
- class-account.picture='user-thumb__picture avatar'
- class-name='user-thumb__name'
- class-groups='user-thumb__groups'
- class-profile.city='user-thumb__city'
-
- widget-account.picture='hubl-user-avatar'
-
- multiple-groups=''
- widget-groups='hubl-user-groups'
- )
-
- solid-ac-checker(
- class='w162 cell border'
- permission="acl:Delete"
- data-src="${value['@id']}"
- )
+ solid-ac-checker(permission="acl:Delete" data-src="${src}")
solid-delete(
class='button text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
- data-src="${value['@id']}"
- data-label='Retirer'
+ data-src="${src}"
+ data-label=''
+ data-trans='data-label=circle.edit.buttonDelete'
)
- //- Only to show the table grid
- solid-ac-checker(
- class='w162 cell border'
- no-permission="acl:Delete"
- data-src="${value['@id']}"
- )
-
- solid-link(class="backlink right", bind-resources, next='circle-profile') Retour
+ solid-link(class="backlink right", bind-resources, next='circle-profile' data-trans='circle.edit.backlink')
solid-ac-checker(permission='acl:Write', bind-resources)
- h1 Modifie ton cercle
+ h1(data-trans='circle.edit.title')
div#loader-circle-edit.loader.loader-top
div
@@ -56,29 +27,35 @@ div.content-box__info
bind-resources
fields='status, line-1(name, owner), description'
+ required-status
+ required-name
+ required-owner
+ required-description
range-owner=`${endpoints.users || endpoints.get.users}`
- label-status='Statut du cercle'
+ label-status=''
widget-status='hubl-status'
- label-name='Nom du cercle'
- label-owner='Administrateur ou administratrice'
- label-description='Sous-titre du cercle *'
+ label-name=''
+ label-owner=''
+ label-description=''
class-name='form-label is-light is-half-width input-text-like'
class-owner='form-label is-light is-half-width member-select color'
class-description='form-label is-light is-full-width input-text-like'
class-status='form-label is-light is-full-width member-select color'
- widget-owner='solid-form-auto-completion'
+ widget-owner='solid-form-dropdown-autocompletion-label'
partial=''
submit-button='Enregistrer'
next='circle-information'
+
+ data-trans='label-name=circle.edit.labelStatus;label-name=circle.edit.labelName;label-owner=circle.edit.labelOwner;label-description=circle.edit.labelDescription;submit-button=circle.edit.buttonSubmit'
)
- h2 Liste des membres :
+ h2(data-trans='circle.edit.subTitle')
solid-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
solid-form.block.select-add(
@@ -87,27 +64,42 @@ div.content-box__info
fields='user'
range-user=`${endpoints.users || endpoints.get.users}`
- class-user='team form-label is-light'
- label-user=''
- widget-user='solid-form-auto-completion'
+ class-user='team'
+ widget-user='solid-form-dropdown-autocompletion'
- submit-button='Ajouter un membre'
+ submit-button=''
+ data-trans='submit-button=circle.edit.buttonAddMember'
)
.table-wrapper
.table
div.table-header.grey-color
- div.w280 Nom
- div.w162 Accès
+ div.w280(data-trans='circle.edit.tableHeader1')
+ div.w162(data-trans='circle.edit.tableHeader2')
- //-class='table-body'
solid-display(
class='table-body'
bind-resources
- fields='members'
+ nested-field='members'
+ fields='classGroup(classGrid(user.account.picture, sup(user.name, user.groups), sub(user.communities))), self'
loader-id='loader-circle-edit'
- multiple-members=''
- widget-members='hubl-team-template-edit'
+ class-classGroup='w280 cell border cell-with-id-card user-thumb is-spaced'
+ class-user.account.picture='user-thumb__picture avatar'
+ class-user.name='user-thumb__name'
+ class-user.groups='user-thumb__groups'
+ multiple-user.communities
+ multiple-user.communities-fields="community.name"
+
+ widget-user.account.picture='hubl-user-avatar'
+
+ multiple-user.groups
+ multiple-user.groups-fields='name'
+
+ action-self='self'
+ widget-self='circle-edit-members-delete'
)
+ //- Only to show the table grid
+ div.w162.cell.border
+
diff --git a/src/views/circle/page-circle-left.pug b/src/views/circle/page-circle-left.pug
index 5ecf22c..afd0751 100644
--- a/src/views/circle/page-circle-left.pug
+++ b/src/views/circle/page-circle-left.pug
@@ -1,5 +1,10 @@
-#circle-left(hidden)
+#circle-left(hidden, data-view="circle-left")
div.content-box__info.flex(style="padding: 15px")
- p Tu as quitté ce cercle.
- p Pour le rejoindre à nouveau, rends-toi dans le panneau administration ou contacte un administrateur.
+ p(data-trans='circle.left.paragraphQuit')
+ p
+ span(data-trans='circle.left.paragraphJoin')
+ span
+ solid-link(next="admin-circle-list" data-trans='circle.left.admin')
+ span
+ span(data-trans='circle.left.paragraphContact')
\ No newline at end of file
diff --git a/src/views/circle/page-circle-profile.pug b/src/views/circle/page-circle-profile.pug
index 3a699ed..35f5f48 100644
--- a/src/views/circle/page-circle-profile.pug
+++ b/src/views/circle/page-circle-profile.pug
@@ -2,8 +2,11 @@ solid-router(default-route='circle-profile', hidden)
solid-route(name='circle-profile')
solid-route(name='circle-edit')
-#circle-profile(hidden)
- include ../../templates/hubl-circle-team.pug
+#circle-profile(hidden, data-view="circle-profile")
+
+ solid-widget(name='hubl-circle-team-contact')
+ template
+ solid-link(data-src='\${value}', next='messages')
.content-box__info.flex
@@ -21,15 +24,16 @@ solid-router(default-route='circle-profile', hidden)
class-title='word-spacing-right'
- value-title='Date de création : '
+ value-title=''
+ data-trans='value-title=circle.profile.creationDate'
- widget-creationDate='solid-display-date'
+ widget-creationDate='solid-display-value-date'
)
solid-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
solid-ac-checker(permission='acl:Delete', bind-resources)
- solid-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='circle-edit' bind-resources) Modifier et ajouter un membre
+ solid-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='circle-edit' bind-resources data-trans='circle.profile.buttonModify')
solid-ac-checker(no-permission='acl:Delete', bind-resources)
- solid-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='circle-edit' bind-resources) Ajouter un membre
+ solid-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='circle-edit' bind-resources data-trans='circle.profile.buttonAdd')
div.flex.desktop-button__end
@@ -37,7 +41,9 @@ solid-router(default-route='circle-profile', hidden)
solid-delete(
class='button mobile-full-width text-bold text-uppercase button-primary bordered with-icon icon-trash'
bind-resources
- data-label='Supprimer le cercle'
+ data-label=''
+ data-trans='data-label=circle.profile.buttonDelete'
+ next='admin-circles'
)
solid-widget(name='hubl-circle-leave-button')
@@ -46,7 +52,8 @@ solid-router(default-route='circle-profile', hidden)
solid-delete(
class='button mobile-full-width desktop-btn-margin__left text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
data-src="${src}"
- data-label='Quitter le cercle'
+ data-label=''
+ data-trans='data-label=circle.profile.buttonQuit'
next='circle-left'
)
@@ -61,7 +68,8 @@ solid-router(default-route='circle-profile', hidden)
value-user.username='hubl-workaround-493'
widget-user.username='solid-form-hidden'
- submit-button='Rejoindre le cercle'
+ submit-button=''
+ data-trans='submit-button=circle.profile.buttonJoin'
)
solid-display(
@@ -78,16 +86,32 @@ solid-router(default-route='circle-profile', hidden)
hubl-inherit-user-id="search-value-user"
)
- h2 Membres :
+ h2(data-trans='circle.profile.subTitle')
+
+ solid-widget(name='hubl-circle-user-admin')
+ template ${value ? "Administrateur" : ""}
solid-display.block(
bind-resources
- fields='members'
+ nested-field='members'
loader-id='loader-circle-profile'
+ fields='classGroup(user.account.picture, sup(user.name, user, is_admin), sub(user.communities))'
- multiple-members=''
- widget-members='hubl-circle-team-template'
+ widget-user='hubl-circle-team-contact'
+
+ class-classGroup='user-thumb is-spaced'
+ class-user.account.picture='avatar user-thumb__picture'
+ class-user.name='user-thumb__name'
+ class-user='user-thumb__send'
+ class-is_admin='user-thumb__admin'
+ multiple-user.communities
+ multiple-user.communities-fields="community.name"
+
+ widget-classGroup='solid-set-div'
+ widget-user.account.picture='hubl-user-avatar'
+ widget-is_admin='hubl-circle-user-admin'
)
-#circle-edit.content-box__height(hidden)
+
+#circle-edit.content-box__height(hidden, data-view="circle-edit")
include page-circle-edit.pug
diff --git a/src/views/job-offer/page-job-offer-create.pug b/src/views/job-offer/page-job-offer-create.pug
deleted file mode 100644
index 113c06b..0000000
--- a/src/views/job-offer/page-job-offer-create.pug
+++ /dev/null
@@ -1,27 +0,0 @@
-.content-box.with-padding.with-form
- h1 Post a new job offer
-
- solid-form(
- data-src=`${endpoints.joboffers || endpoints.post.joboffers}`
- range-skills=`${endpoints.skills || endpoints.get.skills}`
-
- fields='title, description, skills, closingDate'
-
- class-title='field form-label is-light is-expanded'
- label-title='Title*'
-
- class-description='field form-label is-light is-expanded'
- label-description='Description*'
- widget-description='solid-form-textarea'
-
- class-skills='form-label is-dark select-skills'
- label-skills='The required skills for this mission:*'
- multiple-skills='solid-multiple-select'
- widget-skills='solid-form-auto-completion'
-
- class-closingDate='form-label is-dark'
- label-closingDate='Publication end date:*'
- widget-closingDate='solid-form-date'
-
- next='job-offers'
- )
diff --git a/src/views/job-offer/page-job-offer-edit.pug b/src/views/job-offer/page-job-offer-edit.pug
deleted file mode 100644
index 5693c91..0000000
--- a/src/views/job-offer/page-job-offer-edit.pug
+++ /dev/null
@@ -1,27 +0,0 @@
-.content-box.with-padding.with-form
- h1 Edit your job offer
-
- solid-form(
- bind-resources
- range-skills=`${endpoints.skills || endpoints.get.skills}`
-
- fields='title, description, skills, closingDate'
-
- class-title='field form-label is-light is-expanded'
- label-title='Title*'
-
- class-description='field form-label is-light is-expanded'
- label-description='Description*'
- widget-description='solid-form-textarea'
-
- class-skills='form-label is-dark select-skills'
- label-skills='The required skills for this mission:*'
- multiple-skills='solid-multiple-select'
- widget-skills='solid-form-auto-completion'
-
- class-closingDate='form-label is-dark'
- label-closingDate='Publication end date:*'
- widget-closingDate='solid-form-date'
-
- next='job-offers'
- )
diff --git a/src/views/circle/page-circle-notifications.pug b/src/views/notifications/message-circle.pug
similarity index 85%
rename from src/views/circle/page-circle-notifications.pug
rename to src/views/notifications/message-circle.pug
index 239c674..e0136ff 100644
--- a/src/views/circle/page-circle-notifications.pug
+++ b/src/views/notifications/message-circle.pug
@@ -4,7 +4,8 @@ solid-notifications-template(data-rdf-type='hd:circle')
| ${await author['account.foaf:depiction'] ? `` : ``}
.solid-notification__content
.solid-notification__title ${await author.name}
- span.solid-notification__title__side dans
+ span.solid-notification__title__side
+ span(data-trans='notification.circle.in')
span.solid-notification__title__icon ${(await object.status) == 'Public' ? '#' : ''}
| ${await object.name}
p.solid-notification__summary ${summary}
diff --git a/src/views/user/page-user-notifications.pug b/src/views/notifications/message-private.pug
similarity index 75%
rename from src/views/user/page-user-notifications.pug
rename to src/views/notifications/message-private.pug
index ee785d9..9825d74 100644
--- a/src/views/user/page-user-notifications.pug
+++ b/src/views/notifications/message-private.pug
@@ -4,5 +4,5 @@ solid-notifications-template(data-rdf-type='foaf:user')
| ${await author['account.foaf:depiction'] ? `` : ``}
.solid-notification__content
.solid-notification__title ${await author.name}
- span.solid-notification__title__side en privé
+ span.solid-notification__title__side(data-trans='notification.private.private')
p.solid-notification__summary ${summary}
\ No newline at end of file
diff --git a/src/views/project/page-project-chat.pug b/src/views/project/page-project-chat.pug
index add91ab..01a10e6 100644
--- a/src/views/project/page-project-chat.pug
+++ b/src/views/project/page-project-chat.pug
@@ -2,7 +2,7 @@
solid-xmpp-chat(
data-authentication='login',
data-auto-login='true',
- data-bosh-service-url=`${xmpp}`,
+ data-websocket-url=`${xmppWebsocket || 'wss://jabber.happy-dev.fr/xmpp-websocket'}`,
data-i18n='en',
bind-resources
)
diff --git a/src/views/project/page-project-edit.pug b/src/views/project/page-project-edit.pug
index 82a6c1a..f6498bc 100644
--- a/src/views/project/page-project-edit.pug
+++ b/src/views/project/page-project-edit.pug
@@ -1,11 +1,21 @@
div.content-box__info
include ../../templates/hubl-user-avatar.pug
+
+ solid-widget(name="project-edit-members-delete")
+ template
+ solid-ac-checker(permission="acl:Delete" data-src="${src}")
+ solid-delete(
+ class='button text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
+ data-src="${src}"
+ data-label=''
+ data-trans='data-label=project.edit.buttonDelete'
+ )
- solid-link(class='backlink right', bind-resources, next='project-profile') Retour
+ solid-link(class='backlink right', bind-resources, next='project-profile' data-trans='project.edit.backlink')
solid-ac-checker(permission='acl:Write', bind-resources)
- h1 Modifie ton projet
+ h1(data-trans='project.edit.title')
div#loader-project-edit.loader.loader-top
div
@@ -17,21 +27,24 @@ div.content-box__info
bind-resources
fields='line-1(customer.name, name)'
+ required-customer.name
+ required-name
-
- label-name='Nom du projet*'
+ label-name=''
class-name='form-label is-light is-half-width input-text-like'
- label-customer.name='Nom du client*'
+ label-customer.name=''
class-customer.name='form-label is-light is-half-width input-text-like'
partial=""
submit-button='Enregistrer'
next='project-information'
+
+ data-trans='label-name=project.edit.labelName;label-customer.name=project.edit.labelCustomer;submit-button=project.edit.buttonSubmit'
)
- h2 Liste des membres :
+ h2(data-trans='project.edit.subTitle')
solid-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
solid-form.block.select-add(
@@ -40,26 +53,40 @@ div.content-box__info
fields='user'
range-user=`${endpoints.users || endpoints.get.users}`
- class-user='team form-label is-light'
+ class-user='team'
label-user=''
- widget-user='solid-form-auto-completion'
+ widget-user='solid-form-dropdown-autocompletion'
- submit-button='Ajouter un membre'
+ submit-button=''
+ data-trans='submit-button=project.edit.buttonAddMember'
)
.table-wrapper
.table
div.table-header.grey-color
- div.w280 Nom
- div.w162 Accès
+ div.w280(data-trans='project.edit.tableHeader1')
+ div.w162(data-trans='project.edit.tableHeader2')
//-class='table-body'
solid-display(
class='table-body'
bind-resources
- fields='members'
+ nested-field='members'
+ fields='classGroup(classGrid(user.account.picture, sup(user.name, user.groups), sub(user.communities))), self'
loader-id='loader-project-edit'
- multiple-members=''
- widget-members='hubl-team-template-edit'
+ class-classGroup='w280 cell border cell-with-id-card user-thumb is-spaced'
+ class-user.account.picture='user-thumb__picture avatar'
+ class-user.name='user-thumb__name'
+ class-user.groups='user-thumb__groups'
+ multiple-user.communities
+ multiple-user.communities-fields="community.name"
+
+ widget-user.account.picture='hubl-user-avatar'
+
+ multiple-user.groups
+ multiple-user.groups-fields='name'
+
+ action-self='self'
+ widget-self='project-edit-members-delete'
)
diff --git a/src/views/project/page-project-left.pug b/src/views/project/page-project-left.pug
index baac307..c202289 100644
--- a/src/views/project/page-project-left.pug
+++ b/src/views/project/page-project-left.pug
@@ -1,5 +1,10 @@
#project-left
div.content-box__info.flex(style="padding: 15px")
- p Tu as quitté ce projet.
- p Ceci est un projet privé. Pour le rejoindre, rends-toi dans le panneau administration et demande une invitation.
+ p(data-trans='circle.left.paragraphQuit')
+ p
+ span(data-trans='project.left.paragraphJoin')
+ span
+ solid-link(next="admin-project-list" data-trans='project.left.admin')
+ span
+ span(data-trans='project.left.paragraphContact')
diff --git a/src/views/project/page-project-picture.pug b/src/views/project/page-project-picture.pug
index 7bea1d9..0de842c 100644
--- a/src/views/project/page-project-picture.pug
+++ b/src/views/project/page-project-picture.pug
@@ -1,8 +1,8 @@
div.content-box__info
- solid-link(class='backlink right', bind-resources, next='project-edit') Retour
+ solid-link(class='backlink right', bind-resources, next='project-edit' data-trans='project.modifyPicture.backlink')
- h1 Modifier l'image du projet
+ h1(data-trans='project.modifyPicture.title')
solid-picture.project-edit-picture(
bind-resources
diff --git a/src/views/project/page-project-profile.pug b/src/views/project/page-project-profile.pug
index a81fd3e..fce9844 100644
--- a/src/views/project/page-project-profile.pug
+++ b/src/views/project/page-project-profile.pug
@@ -2,9 +2,12 @@ solid-router(default-route='project-profile', hidden)
solid-route(name='project-profile')
solid-route(name='project-edit')
-#project-profile(hidden)
+#project-profile(hidden, data-view="project-profile")
include ../../templates/hubl-captain.pug
- include ../../templates/hubl-project-team.pug
+
+ solid-widget(name='hubl-project-team-contact')
+ template
+ solid-link(data-src='\${value}', next='messages')
.content-box__info.flex
@@ -22,22 +25,25 @@ solid-router(default-route='project-profile', hidden)
class-title='word-spacing-right'
- value-title='Date de création : '
+ value-title=''
+ data-trans='value-title=project.profile.creationDate'
- widget-creationDate='solid-display-date'
+ widget-creationDate='solid-display-value-date'
)
solid-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
solid-ac-checker(permission='acl:Delete', bind-resources)
- solid-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='project-edit' bind-resources) Modifier et ajouter un membre
+ solid-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='project-edit' bind-resources data-trans='project.profile.buttonModify')
solid-ac-checker(no-permission='acl:Delete', bind-resources)
- solid-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='project-edit' bind-resources) Ajouter un membre
+ solid-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='project-edit' bind-resources data-trans='project.profile.buttonAdd')
div.flex.desktop-button__end
solid-ac-checker(permission='acl:Delete', bind-resources)
solid-delete(
class='button mobile-full-width text-bold text-uppercase button-primary bordered with-icon icon-trash'
bind-resources
- data-label='Supprimer le projet'
+ data-label=''
+ data-trans='data-label=project.profile.buttonDelete'
+ next='admin-projects'
)
solid-widget(name='hubl-project-leave-button')
@@ -45,7 +51,8 @@ solid-router(default-route='project-profile', hidden)
solid-delete(
class='button mobile-full-width desktop-btn-margin__left text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
data-src="${src}"
- data-label='Quitter le projet'
+ data-label=''
+ data-trans='data-label=project.profile.buttonQuit'
next='project-left'
)
@@ -70,22 +77,39 @@ solid-router(default-route='project-profile', hidden)
bind-resources
fields='label-captain, captain'
- value-label-captain='Capitaine :'
+ value-label-captain=''
+ data-trans='value-label-captain=project.profile.captain',
class-label-captain='h2-like'
widget-captain='hubl-captain'
)
br
- h2 Equipe :
+ h2(data-trans:'project.profile.subTitle')
+
+ solid-widget(name='hubl-project-user-admin')
+ template ${value ? "Administrateur" : ""}
solid-display.block(
bind-resources
- fields='members'
+ nested-field='members'
+ fields='classGroup(user.account.picture, sup(user.name, user, is_admin), sub(user.communities, name))'
- multiple-members
- widget-members='hubl-project-team'
+ widget-user='hubl-project-team-contact'
+
+ class-classGroup='user-thumb is-spaced'
+ class-user.account.picture='avatar user-thumb__picture'
+ class-user.name='user-thumb__name'
+ class-user='user-thumb__send'
+ class-is_admin='user-thumb__admin'
+ multiple-user.communities
+ multiple-user.communities-fields="community.name"
+ class-name='user-thumb__lead'
+
+ widget-classGroup='solid-set-div'
+ widget-user.account.picture='hubl-user-avatar'
+ widget-is_admin='hubl-project-user-admin'
)
-#project-edit.content-box__height(hidden)
+#project-edit.content-box__height(hidden, data-view="project-edit")
include page-project-edit.pug