From 874a8c636fb199e855903d0c7a887a2d100f41cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Fri, 28 Sep 2018 21:17:08 +0200 Subject: [PATCH 01/27] reset --- .gitignore | 15 - .gitmodules | 12 - .htaccess | 8 - Makefile | 49 - README.md | 24 - config-sample.pug | 4 - dist/css/.gitkeep | 0 dist/lib/sib-chat | 1 - dist/lib/sib-core | 1 - dist/lib/sib-oidc-client-config.json | 8 - dist/lib/sib-oidc-client.js | 61 - dist/lib/sib-router | 1 - dist/lib/webcomponentsjs | 1 - index.pug | 2 - oidc-client-config.json | 10 - package-lock.json | 2030 ------------------- package.json | 18 - preprod.sh | 18 - prod.sh | 10 - router.php | 11 - src/fonts/bebas/bebas.eot | Bin 25334 -> 0 bytes src/fonts/bebas/bebas.svg | 2807 -------------------------- src/fonts/bebas/bebas.ttf | Bin 25168 -> 0 bytes src/fonts/bebas/bebas.woff | Bin 12644 -> 0 bytes src/js/hd-app.js | 61 - src/pug/calendar.pug | 6 - src/pug/channel-chat.pug | 1 - src/pug/channel-create.pug | 7 - src/pug/channel-edit.pug | 7 - src/pug/channel-profile.pug | 36 - src/pug/channel.pug | 15 - src/pug/channels.pug | 7 - src/pug/client-creation.pug | 5 - src/pug/dashboard.pug | 24 - src/pug/dependencies-dev.pug | 17 - src/pug/dependencies-prod.pug | 34 - src/pug/drive.pug | 2 - src/pug/header.pug | 8 - src/pug/html.pug | 51 - src/pug/job-offers.pug | 40 - src/pug/member-chat.pug | 1 - src/pug/member-edit.pug | 97 - src/pug/member-profile.pug | 13 - src/pug/member.pug | 12 - src/pug/members.pug | 73 - src/pug/menu.pug | 39 - src/pug/project-chat.pug | 1 - src/pug/project-create.pug | 7 - src/pug/project-edit.pug | 7 - src/pug/project-profile.pug | 16 - src/pug/project.pug | 15 - src/pug/projects.pug | 27 - src/pug/search.pug | 26 - src/scss/_channel.scss | 62 - src/scss/_channels.scss | 24 - src/scss/_chat.scss | 17 - src/scss/_classes.scss | 18 - src/scss/_dashboard.scss | 5 - src/scss/_edit-profile.scss | 39 - src/scss/_fonts.scss | 8 - src/scss/_forms.scss | 102 - src/scss/_header.scss | 10 - src/scss/_job-offers.scss | 14 - src/scss/_member.scss | 123 -- src/scss/_members.scss | 127 -- src/scss/_menu.scss | 127 -- src/scss/_mixins.scss | 103 - src/scss/_project.scss | 19 - src/scss/_projects.scss | 36 - src/scss/_search.scss | 35 - src/scss/_styles.scss | 36 - src/scss/_variables.scss | 30 - src/scss/main.scss | 23 - src/server/admin.py | 10 - src/server/models.py | 83 - src/server/urls.py | 40 - 76 files changed, 6837 deletions(-) delete mode 100644 .gitignore delete mode 100644 .gitmodules delete mode 100644 .htaccess delete mode 100644 Makefile delete mode 100644 README.md delete mode 100644 config-sample.pug delete mode 100644 dist/css/.gitkeep delete mode 160000 dist/lib/sib-chat delete mode 160000 dist/lib/sib-core delete mode 100644 dist/lib/sib-oidc-client-config.json delete mode 100644 dist/lib/sib-oidc-client.js delete mode 160000 dist/lib/sib-router delete mode 160000 dist/lib/webcomponentsjs delete mode 100644 index.pug delete mode 100644 oidc-client-config.json delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100755 preprod.sh delete mode 100755 prod.sh delete mode 100644 router.php delete mode 100644 src/fonts/bebas/bebas.eot delete mode 100644 src/fonts/bebas/bebas.svg delete mode 100644 src/fonts/bebas/bebas.ttf delete mode 100644 src/fonts/bebas/bebas.woff delete mode 100644 src/js/hd-app.js delete mode 100644 src/pug/calendar.pug delete mode 100644 src/pug/channel-chat.pug delete mode 100644 src/pug/channel-create.pug delete mode 100644 src/pug/channel-edit.pug delete mode 100644 src/pug/channel-profile.pug delete mode 100644 src/pug/channel.pug delete mode 100644 src/pug/channels.pug delete mode 100644 src/pug/client-creation.pug delete mode 100644 src/pug/dashboard.pug delete mode 100644 src/pug/dependencies-dev.pug delete mode 100644 src/pug/dependencies-prod.pug delete mode 100644 src/pug/drive.pug delete mode 100644 src/pug/header.pug delete mode 100644 src/pug/html.pug delete mode 100644 src/pug/job-offers.pug delete mode 100644 src/pug/member-chat.pug delete mode 100644 src/pug/member-edit.pug delete mode 100644 src/pug/member-profile.pug delete mode 100644 src/pug/member.pug delete mode 100644 src/pug/members.pug delete mode 100644 src/pug/menu.pug delete mode 100644 src/pug/project-chat.pug delete mode 100644 src/pug/project-create.pug delete mode 100644 src/pug/project-edit.pug delete mode 100644 src/pug/project-profile.pug delete mode 100644 src/pug/project.pug delete mode 100644 src/pug/projects.pug delete mode 100644 src/pug/search.pug delete mode 100644 src/scss/_channel.scss delete mode 100644 src/scss/_channels.scss delete mode 100644 src/scss/_chat.scss delete mode 100644 src/scss/_classes.scss delete mode 100644 src/scss/_dashboard.scss delete mode 100644 src/scss/_edit-profile.scss delete mode 100644 src/scss/_fonts.scss delete mode 100644 src/scss/_forms.scss delete mode 100644 src/scss/_header.scss delete mode 100644 src/scss/_job-offers.scss delete mode 100644 src/scss/_member.scss delete mode 100644 src/scss/_members.scss delete mode 100644 src/scss/_menu.scss delete mode 100644 src/scss/_mixins.scss delete mode 100644 src/scss/_project.scss delete mode 100644 src/scss/_projects.scss delete mode 100644 src/scss/_search.scss delete mode 100644 src/scss/_styles.scss delete mode 100644 src/scss/_variables.scss delete mode 100644 src/scss/main.scss delete mode 100644 src/server/admin.py delete mode 100644 src/server/models.py delete mode 100644 src/server/urls.py diff --git a/.gitignore b/.gitignore deleted file mode 100644 index cfb2a61..0000000 --- a/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -# Folders -.git -node_modules -bower_components -dist/css/* -!dist/css/.gitkeep -dist/html/* -!dist/html/.gitkeep - - -# Files -index.html -config.pug -issues.md -oidc-client-preprod-config.json diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 375c2df..0000000 --- a/.gitmodules +++ /dev/null @@ -1,12 +0,0 @@ -[submodule "dist/lib/webcomponentsjs"] - path = dist/lib/webcomponentsjs - url = https://github.com/webcomponents/webcomponentsjs -[submodule "dist/lib/sib-core"] - path = dist/lib/sib-core - url = git@git.happy-dev.fr:startinblox/sib-core.git -[submodule "dist/lib/sib-router"] - path = dist/lib/sib-router - url = git@git.happy-dev.fr:startinblox/sib-router.git -[submodule "dist/lib/sib-chat"] - path = dist/lib/sib-chat - url = git@git.happy-dev.fr:startinblox/sib-chat.git diff --git a/.htaccess b/.htaccess deleted file mode 100644 index 5c88e4c..0000000 --- a/.htaccess +++ /dev/null @@ -1,8 +0,0 @@ - - RewriteEngine On - RewriteBase / - RewriteRule \. - [L] - RewriteCond %{REQUEST_FILENAME} !-f - RewriteCond %{REQUEST_FILENAME} !-d - RewriteRule . /index.html [L] - diff --git a/Makefile b/Makefile deleted file mode 100644 index 7819c28..0000000 --- a/Makefile +++ /dev/null @@ -1,49 +0,0 @@ -default: build - -config.pug: - @cp -n config-sample.pug config.pug - -node_modules: - npm install - -install: node_modules - git submodule update --init --recursive - -update: - cd dist/lib/sib-chat; \ - git pull origin master - cd dist/lib/sib-core; \ - git pull origin master - cd dist/lib/sib-router; \ - git pull origin master - -dist/css/hd-app.css: $(wildcard src/scss/*.scss) - npx node-sass src/scss/main.scss dist/css/hd-app.css --source-map true || touch dist/css/hd-app.css - -index.html: config.pug index.pug $(wildcard src/pug/*.pug) - npx pug --pretty index.pug || touch index.html - -build: index.html dist/css/hd-app.css - -prod: - npx pug index.pug - npx node-sass src/scss/main.scss dist/css/hd-app.css --output-style compressed - -watch: - @echo 'watching for change' - @echo 'press ctrl+C to stop' - @while true; do \ - $(MAKE) build --silent; \ - sleep 0.5; \ - done - -serve: dist/css/hd-app.css - php -S 127.0.0.1:8080 router.php - -dev-mt: watch serve - -dev: - @$(MAKE) dev-mt -j --no-print-directory - - -.PHONY: default install build build-prod watch serve diff --git a/README.md b/README.md deleted file mode 100644 index 83cb325..0000000 --- a/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# HD app -HD app is the magic tool that allows the Happy Dev network to thrive in a decentralized way. - -## Install - -clone then: - -* `make install` - -## Build - -Compile html & css: - -* `make build` - -or compile html & css on change: - -* `make watch` - -## Run server - -require PHP - -* `make serve` diff --git a/config-sample.pug b/config-sample.pug deleted file mode 100644 index daacfc9..0000000 --- a/config-sample.pug +++ /dev/null @@ -1,4 +0,0 @@ -- var dn = process.env.DN || 'http://127.0.0.1:8080' -- var sdn = process.env.SDN || 'http://127.0.0.1:8000' -- var cdn = process.env.CDN || 'http://127.0.0.1:8080' -- var v = Date.now() \ No newline at end of file diff --git a/dist/css/.gitkeep b/dist/css/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/dist/lib/sib-chat b/dist/lib/sib-chat deleted file mode 160000 index 24192a8..0000000 --- a/dist/lib/sib-chat +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 24192a89c1bc19f7faa06546ba1b798ad717e04b diff --git a/dist/lib/sib-core b/dist/lib/sib-core deleted file mode 160000 index e493387..0000000 --- a/dist/lib/sib-core +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e493387102088c9d7c4cd03ce5d4edbc3a26cdcc diff --git a/dist/lib/sib-oidc-client-config.json b/dist/lib/sib-oidc-client-config.json deleted file mode 100644 index 5c0cf62..0000000 --- a/dist/lib/sib-oidc-client-config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "authority": "http://localhost:8000/openid/", - "client_id": "598550", - "redirect_uri": "http://oidc-client.local/user-manager-sample.html", - "response_type": "id_token token", - "scope": "openid profile email", - "loadUserInfo": true -} diff --git a/dist/lib/sib-oidc-client.js b/dist/lib/sib-oidc-client.js deleted file mode 100644 index 030b221..0000000 --- a/dist/lib/sib-oidc-client.js +++ /dev/null @@ -1,61 +0,0 @@ -if (typeof Oidc == "undefined") { - throw new Error("You are missing the `oidc-client-js` lib"); -} - - -// Var declarations -var sib = {}; -sib.oidc = {}; - - -// Setup User Manager -sib.oidc._setup = function(settings) { - if (typeof sib.oidc._manager == "undefined") { - sib.oidc._manager = new Oidc.UserManager(settings); - } -} - - -// Retrieve User from sessionStorage, or fetch it -sib.oidc._getUser = function() { - sib.oidc._manager.getUser() - .then(function(user) { - if (user == null) { - sib.oidc._manager.signinRedirectCallback() - .then() - .catch(function(error) { - sib.oidc._manager.signinRedirect({state: "dummy data"}) - .then() - .catch(function(error) { - console.log(error); - }); - }); - } - else { - sib.oidc.user = user; - } - }) - .catch(function(error) { - console.log(error); - }); -} - - -// Connect to OIDC provider -sib.oidc._connect = function(settings) { - sib.oidc._setup(settings); - sib.oidc._getUser(); - - - // When user loaded... - sib.oidc._manager.events.addUserLoaded(function(user) { - sib.oidc._getUser(); - }); -} - - -// Entry point -fetch("./oidc-client-config.json") - .then(response => response.json()) - .then(settings => sib.oidc._connect(settings)); - diff --git a/dist/lib/sib-router b/dist/lib/sib-router deleted file mode 160000 index 04ea601..0000000 --- a/dist/lib/sib-router +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 04ea601abf2fe9d65603867450cb39106f5d06e8 diff --git a/dist/lib/webcomponentsjs b/dist/lib/webcomponentsjs deleted file mode 160000 index bdd5203..0000000 --- a/dist/lib/webcomponentsjs +++ /dev/null @@ -1 +0,0 @@ -Subproject commit bdd5203993f19ca08568638afd96f8f9c3959ea1 diff --git a/index.pug b/index.pug deleted file mode 100644 index 23c8c6a..0000000 --- a/index.pug +++ /dev/null @@ -1,2 +0,0 @@ -include config.pug -include src/pug/html.pug \ No newline at end of file diff --git a/oidc-client-config.json b/oidc-client-config.json deleted file mode 100644 index 6141b66..0000000 --- a/oidc-client-config.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "authority": "https://test-paris.happy-dev.fr/openid/", - "client_id": "125356", - "redirect_uri": "http://127.0.0.1:8080", - "response_type": "id_token token", - "scope": "openid profile email", - "automaticSilentRenew": true, - "silent_redirect_uri": "http://127.0.0.1:8080", - "loadUserInfo": true -} diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 3fc4acc..0000000 --- a/package-lock.json +++ /dev/null @@ -1,2030 +0,0 @@ -{ - "name": "hd-app", - "version": "0.1.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@types/babel-types": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.4.tgz", - "integrity": "sha1-v9Ww0NG6E+NR3/ZbblJ4O4FoJsg=", - "dev": true - }, - "@types/babylon": { - "version": "6.16.3", - "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.3.tgz", - "integrity": "sha1-wpN4E6ify155oABi/EqLFD5yN7s=", - "dev": true, - "requires": { - "@types/babel-types": "*" - } - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=", - "dev": true - }, - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - }, - "acorn-globals": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", - "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", - "dev": true, - "requires": { - "acorn": "^4.0.4" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } - } - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=", - "dev": 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": "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "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=", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "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=", - "dev": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha1-8OAD2cqef1nHpQiUXXsu+aBKVC8=", - "dev": true - }, - "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=", - "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "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=", - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "bootstrap": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.1.3.tgz", - "integrity": "sha1-DrNxryyESOjCEEEdDLgkpkCaEr4=" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "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" - } - }, - "character-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", - "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", - "dev": true, - "requires": { - "is-regex": "^1.0.3" - } - }, - "clean-css": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", - "integrity": "sha1-LUEe92uFabbQyEBo2r6FsKpeXBc=", - "dev": true, - "requires": { - "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "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=", - "dev": true - }, - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.18.0.tgz", - "integrity": "sha1-K/Bj3e58eJEXaYGizHmOV1S8aXA=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "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=", - "dev": true - }, - "constantinople": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz", - "integrity": "sha1-1F7XJPV9PRBQABen06iJwTga5kc=", - "dev": true, - "requires": { - "@types/babel-types": "^7.0.0", - "@types/babylon": "^6.16.2", - "babel-types": "^6.26.0", - "babylon": "^6.18.0" - } - }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha1-+XJgj/DOrWi4QaFqky0LGDeRgU4=", - "dev": 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=", - "dev": true - }, - "cropper": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cropper/-/cropper-4.0.0.tgz", - "integrity": "sha1-d6DB+JiQSfa5qRN6y4Zdyloen2I=", - "requires": { - "cropperjs": "^1.3.4" - } - }, - "cropperjs": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/cropperjs/-/cropperjs-1.4.1.tgz", - "integrity": "sha1-Qdn82H+dnNLh3PJ8NmgMrHpIzWs=" - }, - "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "doctypes": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", - "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "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=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", - "dev": true - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "font-awesome": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz", - "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "1.0.6", - "mime-types": "^2.1.12" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "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" - } - }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha1-xEFzPhO5J6yMD/C0w7Az8ogSkko=", - "dev": true, - "requires": { - "globule": "^1.0.0" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=", - "dev": true - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha1-OWCDLT8VdBCDQtr9OmezMsCWnfE=", - "dev": true, - "requires": { - "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" - } - }, - "globule": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "integrity": "sha1-Xf+xsZHyLSB5epNptJ6rTpg5aW0=", - "dev": true, - "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "dev": true, - "requires": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "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": "sha1-l/I2l3vW4SVAiTD/bePuxigewEc=", - "dev": true - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", - "dev": true - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "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=", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-expression": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", - "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=", - "dev": true, - "requires": { - "acorn": "~4.0.2", - "object-assign": "^4.0.1" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } - } - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "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=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "^1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "jquery": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", - "integrity": "sha1-lYzinoHJeQ8xvneS311NlfxX+8o=" - }, - "js-base64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", - "integrity": "sha1-dIkR+wT0imDEdxs3XKxFqA3xHAM=", - "dev": true - }, - "js-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", - "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", - "dev": true - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "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=", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jstransformer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", - "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", - "dev": true, - "requires": { - "is-promise": "^2.0.0", - "promise": "^7.0.1" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "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=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha1-G3eTz3JZ6jj7NmHU04syYK+K5Oc=", - "dev": true - }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.mergewith": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", - "integrity": "sha1-Y5BX5ybDr72z59QnQcqo1uQzWSc=", - "dev": true - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha1-oRdc80lt/IQ2wVbDNLSVWZK85pw=", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "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" - } - }, - "mime-db": { - "version": "1.36.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", - "integrity": "sha1-UCBHjbPH/pOq17vMTc+GnEM2M5c=", - "dev": true - }, - "mime-types": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", - "integrity": "sha1-kwy3GdVx6QNzhSD4RwkRVIyizBk=", - "dev": true, - "requires": { - "mime-db": "~1.36.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } - } - }, - "nan": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", - "integrity": "sha1-V042Dk2VSrFpZuwQLAwEn9lhoJk=", - "dev": true - }, - "node-sass": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.3.tgz", - "integrity": "sha1-9AfPPWb3gwi7HjRrJPpChwMZYiQ=", - "dev": true, - "requires": { - "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.assign": "^4.2.0", - "lodash.clonedeep": "^4.3.2", - "lodash.mergewith": "^4.6.0", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.10.0", - "node-gyp": "^3.8.0", - "npmlog": "^4.0.0", - "request": "2.87.0", - "sass-graph": "^2.2.4", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "dependencies": { - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha1-VAMEJhwzDoDQ1e3OJTpoyzlkIYw=", - "dev": true, - "requires": { - "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" - } - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true - } - } - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize.css": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.0.tgz", - "integrity": "sha512-iXcbM3NWr0XkNyfiSBsoPezi+0V92P9nj84yVV1/UZxRUrGczgX/X91KMAGM0omWLY2+2Q1gKD/XRn4gQRDB2A==" - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", - "dev": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "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=", - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": 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=", - "dev": true - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, - "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=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "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=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=", - "dev": true - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=", - "dev": true - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", - "dev": true, - "requires": { - "asap": "~2.0.3" - } - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "pug": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.3.tgz", - "integrity": "sha1-ccuoJTfJWl6rftBGluQiH1Oqh44=", - "dev": true, - "requires": { - "pug-code-gen": "^2.0.1", - "pug-filters": "^3.1.0", - "pug-lexer": "^4.0.0", - "pug-linker": "^3.0.5", - "pug-load": "^2.0.11", - "pug-parser": "^5.0.0", - "pug-runtime": "^2.0.4", - "pug-strip-comments": "^1.0.3" - } - }, - "pug-attrs": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.3.tgz", - "integrity": "sha1-owlflw5kFR972tlX7vVftdeQXRU=", - "dev": true, - "requires": { - "constantinople": "^3.0.1", - "js-stringify": "^1.0.1", - "pug-runtime": "^2.0.4" - } - }, - "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=", - "dev": true, - "requires": { - "chalk": "^1.0.0", - "commander": "^2.8.1", - "mkdirp": "^0.5.1", - "pug": "^2.0.0-alpha7" - } - }, - "pug-code-gen": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.1.tgz", - "integrity": "sha1-CVHsgyJddNjPxHan+Zolm199BQw=", - "dev": true, - "requires": { - "constantinople": "^3.0.1", - "doctypes": "^1.1.0", - "js-stringify": "^1.0.1", - "pug-attrs": "^2.0.3", - "pug-error": "^1.3.2", - "pug-runtime": "^2.0.4", - "void-elements": "^2.0.1", - "with": "^5.0.0" - } - }, - "pug-error": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.2.tgz", - "integrity": "sha1-U659nSm7A89WRJOgJhCfVMR/XyY=", - "dev": true - }, - "pug-filters": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.0.tgz", - "integrity": "sha1-JxZVVbwEwjbkqisDZiRt+gIbYm4=", - "dev": true, - "requires": { - "clean-css": "^4.1.11", - "constantinople": "^3.0.1", - "jstransformer": "1.0.0", - "pug-error": "^1.3.2", - "pug-walk": "^1.1.7", - "resolve": "^1.1.6", - "uglify-js": "^2.6.1" - } - }, - "pug-lexer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.0.0.tgz", - "integrity": "sha1-IQwYRX7y4XYCQnQMXmR715TOwng=", - "dev": true, - "requires": { - "character-parser": "^2.1.1", - "is-expression": "^3.0.0", - "pug-error": "^1.3.2" - } - }, - "pug-linker": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.5.tgz", - "integrity": "sha1-npp65ABWgtAn3uuWsAD4juuDoC8=", - "dev": true, - "requires": { - "pug-error": "^1.3.2", - "pug-walk": "^1.1.7" - } - }, - "pug-load": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.11.tgz", - "integrity": "sha1-5kjlftET/iwfRdV4WOorrWvAFSc=", - "dev": true, - "requires": { - "object-assign": "^4.1.0", - "pug-walk": "^1.1.7" - } - }, - "pug-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.0.tgz", - "integrity": "sha1-45Stmz/KkxI5QK/4hcBuRKt+aOQ=", - "dev": true, - "requires": { - "pug-error": "^1.3.2", - "token-stream": "0.0.1" - } - }, - "pug-runtime": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.4.tgz", - "integrity": "sha1-4XjhvaaKsujArPybztLFT9iM61g=", - "dev": true - }, - "pug-strip-comments": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.3.tgz", - "integrity": "sha1-8VWVkiBu3G+FMQ2s9K+0igJa9Z8=", - "dev": true, - "requires": { - "pug-error": "^1.3.2" - } - }, - "pug-walk": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.7.tgz", - "integrity": "sha1-wA1cUSi6xYBr7BXSt+fNq+QlMfM=", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "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=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", - "dev": true, - "requires": { - "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" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha1-MvACNc0I1IK00NaNuTqCnA7VdW4=", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.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.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "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=", - "dev": true - }, - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha1-gvHsGaQjrB+9CAsLqwa6NuhKeiY=", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", - "dev": true - }, - "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", - "dev": true, - "requires": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^7.0.0" - } - }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, - "requires": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - } - }, - "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha1-ff3YgUvbfKvHvg+x1zTPtmyUBHc=", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha1-BaW01xU6GVvJLDxCW2nzsqlSTII=", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha1-LHrmEFbHFKW5ubKyr30xHvXHj+k=", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", - "integrity": "sha1-4qMDI2ysVLBAMfp6WnnH5wHfhS8=", - "dev": true - }, - "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", - "dev": true, - "requires": { - "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" - } - }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha1-WsF0zdXNcmEEqgwLK9g4FdjVNd4=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": 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": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "dev": true, - "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", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1" - } - }, - "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 - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } - }, - "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=", - "dev": true - }, - "token-stream": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz", - "integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo=", - "dev": true - }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha1-7GDO44rGdQY//JelwYlwV47oNlU=", - "dev": true, - "requires": { - "punycode": "^1.4.1" - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha1-+BO1qMhrQNpZYGcisUTjIleZ9H0=", - "dev": true, - "requires": { - "glob": "^7.1.2" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "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=", - "dev": true, - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=", - "dev": true - }, - "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": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, - "with": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", - "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=", - "dev": true, - "requires": { - "acorn": "^3.1.0", - "acorn-globals": "^3.0.0" - } - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } - } - }, - "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=", - "dev": true, - "requires": { - "camelcase": "^3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index c4b7444..0000000 --- a/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "hd-app", - "version": "0.1.0", - "engines": { - "node": ">= 0.10.0" - }, - "devDependencies": { - "node-sass": "^4.9.3", - "pug-cli": "^1.0.0-alpha6" - }, - "dependencies": { - "bootstrap": "^4.0.0", - "cropper": "^4.0.0", - "font-awesome": "^4.7.0", - "jquery": "^3.3.1", - "normalize.css": "^8.0.0" - } -} diff --git a/preprod.sh b/preprod.sh deleted file mode 100755 index 23a7f5c..0000000 --- a/preprod.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -export DN="https://staging-app.happy-dev.fr" -export SDN="https://test-paris.happy-dev.fr" -export CDN="https://staging-app.happy-dev.fr/dist/lib" - -make -B build - -# ssh staging-app@ssh-staging-app.happy-dev.fr "rm -R staging-app.happy-dev.fr" -ssh staging-app@ssh-staging-app.happy-dev.fr "mkdir -p staging-app.happy-dev.fr/src/fonts; cd staging-app.happy-dev.fr; mkdir -p dist/css;" - -echo sync... -rsync -u index.html staging-app@ssh-staging-app.happy-dev.fr:~/staging-app.happy-dev.fr/ -rsync -u .htaccess staging-app@ssh-staging-app.happy-dev.fr:~/staging-app.happy-dev.fr/ -rsync -u oidc-client-preprod-config.json staging-app@ssh-staging-app.happy-dev.fr:~/staging-app.happy-dev.fr/oidc-client-config.json -rsync -r dist/* staging-app@ssh-staging-app.happy-dev.fr:~/staging-app.happy-dev.fr/dist/ -rsync -r src/fonts/* staging-app@ssh-staging-app.happy-dev.fr:~/staging-app.happy-dev.fr/src/fonts/ -rsync -r src/js/* staging-app@ssh-staging-app.happy-dev.fr:~/staging-app.happy-dev.fr/src/js/ -echo ...done \ No newline at end of file diff --git a/prod.sh b/prod.sh deleted file mode 100755 index d1aa5ed..0000000 --- a/prod.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -export DN="https://app.happy-dev.fr" -export SDN="https://hd-ldp.happy-dev.fr" -make prod -ssh hd-app@ssh-hd-app.alwaysdata.net "rm -R hd-app; mkdir hd-app; cd hd-app; mkdir -p src/fonts; mkdir -p dist/css;" -scp index.html hd-app@ssh-hd-app.alwaysdata.net:~/hd-app/ -scp .htaccess hd-app@ssh-hd-app.alwaysdata.net:~/hd-app/ -scp -r dist/css/ hd-app@ssh-hd-app.alwaysdata.net:~/hd-app/dist/ -scp -r src/fonts/ hd-app@ssh-hd-app.alwaysdata.net:~/hd-app/src/ -scp -r src/js/ hd-app@ssh-hd-app.alwaysdata.net:~/hd-app/src/ diff --git a/router.php b/router.php deleted file mode 100644 index 5e68a2e..0000000 --- a/router.php +++ /dev/null @@ -1,11 +0,0 @@ -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

w{JskkLy|))U`4Q z&IiHy;5l0P4j>NdS{VfAgP)+4Z$M_>hRhyUwUVSEFvWwF0xR-h6~Kx-SO{1JfOQC1 zkrfZ2H2~R7c(4#gk_QW+H3WPXYR;0b5qQ2@>%JB;w~R4?0Np!;LFpI}&!|T$@4M zAsZgTyl|ZCINpegrvXa*(h1s|aV6}-r2U?57uqp~?DiV0u@-AYu|_A>=)xNG<_+0y zC+O(|WUuP>n_^bKE-8LMNz&=Z8YC$J$Zi1k;Kz^@O~?Ew1GqFvp%{VeH&I#!)NeqR z;dSHB0P-I|S{?!Pw*h*;E-ijw;0KNUy0io!-vMadk0C97&^Z7)`$1>FE-eAwh6kW^ zGBA1r@?HU~o&i=rfW$lk%x=RhD|&Nr7mH8nsmc8*l&~T8rE$ zPMaFJQM5ymTNU_|h}`hQEb*h@$;BeKDqv9sEXd|i^i~Bdrbcg7z=EQ;D)1x`y^R8c zqlkiY;{Dh;Wn-=_{w(ggz>PfEz84_XuY-Dduw^emI$sCnHEEO9KVZc#>Z##6Z3h=lQjhBMPC5Xlgfn^DJ7>3RTfngXr7lzJ-p>siC z7>2Zl!M`y07Y6^r(6=!3EeH(5z%U35!;sVxMB;YnT@@m6HzM&;MB*ig#0!BTL2ix5 zV7Z4Ow+A7&SFxG#@3CCSbYA==mLGqN6~w;@ES;<*K8pEHVClpfPUgXV8R9E1u5#R0 zp!A~*;HpGl5cgFmt5JsH2Vf&#fmL}O_VIP-;VZz*$(qpLjB+uqCAgO2z6Il#;kpF( z%TczWT!CvP`r2{73gv2)Yp~{8tP{n0ow&MCPXi`iymH?P=%aY*TP&>n5l>CVQ}ft7 z*al6m6Yo>q6UX;QlsnzYRJ&3|#HN(~ed<@U#O*J8-l^mtO^*cHn6To_64A z2aa~&N8BsKQ(nVU-hlQ!0Q??+&JP1eJMgmuKRfWV12;Qxv%?m=3jFNA&kp?Tz|Ric z?7)jSRS4)_19Wdd>mC4J4*-^I^yHz%1xk>un7ZRg>^9EbX^^DR4kL_MyEgt^%`<^= z^WvX_Y&o#gbE-CC>JB5ZyEu1eLAwgtQLM#UQLLqUA*|7bwYpLIK*JY6!>1rW#fClQLNXA_10m%F09v$^~irxRN#U>%i#VyfYuGI zaN?VCSrpGw1mlDh(5}_3`%l8h4JjZlxS`WdP=+!K^e;%=kcJXK|5HH!b4bIZx-`54 z$lcIoC!lvjBHWM&H+0zvsc-`Wx9&gPkP0`X!VRf#L!X_H3^(-I32fYujuK$xBt*T*{ru#P z-~&KHd$03%1R;1&ZC4-xnv3lUJ^(bde?Na$um(`Z6FY1${{NE*y=vV*a^1)yatTWk6I4K3I|K$pU<~_=AAz7FgM*0oid_ z*khX9ArCZ7?r@)wyK?kQlR2!V${b3Pxe%;3$(<@=m^V$vaG#K|OE7ktd||#SUnohw z)?giyF~nq;MbKu)zX*u0gH`>u4)GxsVwW-wsO|6zCopf)UV3o+0Ioc$$qZEdSpZM0Wsw;h@z9ad@*_wEfcy+ zG@MGmi_wngme5K1_rX>~1PqclA9>hD*cX?cD`l^`?mdC}^#A98N5AO9KO*_RMw>-_ diff --git a/src/fonts/bebas/bebas.svg b/src/fonts/bebas/bebas.svg deleted file mode 100644 index fd2265e..0000000 --- a/src/fonts/bebas/bebas.svg +++ /dev/null @@ -1,2807 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/fonts/bebas/bebas.ttf b/src/fonts/bebas/bebas.ttf deleted file mode 100644 index d5cab64380a80e79016b93b302ad46d7358d8779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25168 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 diff --git a/src/fonts/bebas/bebas.woff b/src/fonts/bebas/bebas.woff deleted file mode 100644 index ebd62d592e7ff4cfed3020332d996b90ff24dc8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12644 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 O(-;7vnZf`p2LC^-w-1v5 diff --git a/src/js/hd-app.js b/src/js/hd-app.js deleted file mode 100644 index a38a099..0000000 --- a/src/js/hd-app.js +++ /dev/null @@ -1,61 +0,0 @@ -document.addEventListener("DOMContentLoaded", function(event) { - // Constants declaration - const navBar = document.querySelector("#navbar"); - const searchBar = document.querySelector("#search-bar"); - const searchView = document.querySelector("#search-view"); - const searchInput = searchBar.querySelector("#search-input"); - const btnToggle = document.querySelector(".btn-toggle"); - - - // Shortcuts - window.addEventListener("keydown", function(e) { - // CTRL + K triggers the search feature - if ((e.keyCode == 75 || e.keyCode == 80) && (e.ctrlKey === true || e.metaKey === true)) { - e.preventDefault(); - e.stopPropagation(); - openSearchBar(); - } - - // Escape key - else if (e.keyCode == 27 && navBar.classList.contains("search-mode")) { - closeSearchBar(); - } - }); - - searchBar.querySelector("#close-search-icon").addEventListener("click", emptySearchBar); - - function openSearchBar(e) { - navBar.classList.add("search-mode"); - searchBar.querySelector("#search-input").focus(); - searchView.classList.add("search-mode"); - } - - function closeSearchBar(e) { - navBar.classList.remove("search-mode"); - searchView.classList.remove("search-mode"); - } - - function emptySearchBar(e) { - searchInput.value = ''; - openSearchBar(); - searchInput.focus; - } - - - // Synchronizes the search input with the s - searchInput.addEventListener("keyup", (e) => { - searchView.querySelectorAll("ldp-form input[type=text]").forEach((el) => { - el.value = searchInput.value; - }); - }); - - - btnToggle.addEventListener('click', e => { - navBar.classList.toggle('open'); - e.stopPropagation(); - }); - - window.addEventListener('click', e=>{ - navBar.classList.remove('open'); - }); -}); diff --git a/src/pug/calendar.pug b/src/pug/calendar.pug deleted file mode 100644 index bc172f3..0000000 --- a/src/pug/calendar.pug +++ /dev/null @@ -1,6 +0,0 @@ -#calendar(style='display: none') - h1.page-title Agenda - ldp-calendar( - data-src='http://lucky.alwaysdata.net/api/events/', - style='display: block; height: 300px; width: 500px;' - ) diff --git a/src/pug/channel-chat.pug b/src/pug/channel-chat.pug deleted file mode 100644 index d892ccf..0000000 --- a/src/pug/channel-chat.pug +++ /dev/null @@ -1 +0,0 @@ -#channel-chat.chat-view(style='display: none', bind-resources='') diff --git a/src/pug/channel-create.pug b/src/pug/channel-create.pug deleted file mode 100644 index 5e7b303..0000000 --- a/src/pug/channel-create.pug +++ /dev/null @@ -1,7 +0,0 @@ -#channel-create(style='display: none') - sib-form( - data-src=`${sdn}/channels/`, - range-owner=`${sdn}/members/`, - widget-members='sib-form-multiple-dropdown', - range-members=`${sdn}/members/` - ) diff --git a/src/pug/channel-edit.pug b/src/pug/channel-edit.pug deleted file mode 100644 index 9244226..0000000 --- a/src/pug/channel-edit.pug +++ /dev/null @@ -1,7 +0,0 @@ -#channel-edit(style='display: none') - sib-form( - range-owner=`${sdn}/members/`, - widget-members='sib-form-multiple-dropdown', - range-members=`${sdn}/members/`, - bind-resources='' - ) diff --git a/src/pug/channel-profile.pug b/src/pug/channel-profile.pug deleted file mode 100644 index bd47756..0000000 --- a/src/pug/channel-profile.pug +++ /dev/null @@ -1,36 +0,0 @@ -script. - document.addEventListener("WebComponentsReady", function(event) { - class HDAppMember extends SIBWidget { - get template() { - return ` -

- `; - } - - render() { - store.get(this.value).then( (value) => { - this._value = value; - this.innerHTML = this.template; - }); - } - } - customElements.define("hdapp-member", HDAppMember); - }); - -#channel-profile(style='display: none') - sib-display( - data-fields='name, description, owner', - widget-owner='hdapp-member', - bind-resources='' - ) - h2.section.skills Participants - sib-display( - id-suffix='members', - data-fields='avatar, user', - widget-avatar='sib-display-img', - widget-user='hdapp-userinfo', - bind-resources='' - ) - diff --git a/src/pug/channel.pug b/src/pug/channel.pug deleted file mode 100644 index 728f3e8..0000000 --- a/src/pug/channel.pug +++ /dev/null @@ -1,15 +0,0 @@ -#channel(style='display: none') - sib-router#channel-router(default-route='channel-profile') - sib-route(name='channel-chat') - button Chat - sib-route(name='channel-profile') - button Info - sib-route(name='channel-edit') - button Éditer - sib-route(name='channel-create') - button Nouveau - #network-views-container - include channel-chat.pug - include channel-profile.pug - include channel-edit.pug - include channel-create.pug diff --git a/src/pug/channels.pug b/src/pug/channels.pug deleted file mode 100644 index 70d99f5..0000000 --- a/src/pug/channels.pug +++ /dev/null @@ -1,7 +0,0 @@ -#channels(style='display: none') - sib-display#channels-list( - data-src=`${sdn}/channels/`, - data-fields='name, description', - search-fields='name, description', - next='channel' - ) diff --git a/src/pug/client-creation.pug b/src/pug/client-creation.pug deleted file mode 100644 index d023504..0000000 --- a/src/pug/client-creation.pug +++ /dev/null @@ -1,5 +0,0 @@ -#client-create(style='display: none') - sib-form( - data-src=`${sdn}/clients/`, - data-fields='name, address, logo' - ) diff --git a/src/pug/dashboard.pug b/src/pug/dashboard.pug deleted file mode 100644 index 36c230f..0000000 --- a/src/pug/dashboard.pug +++ /dev/null @@ -1,24 +0,0 @@ -#dashboard(style='display: none') - //- form - .form-group - input#search-input.form-control.form-control-sm( - placeholder='Recherche', - aria-describedby='search-help', - autofocus='', - type='text' - ) - small#search-help.form-text.text-muted * parmi les membres, les projets et les groupes de discussion - - .list-condensed - ldp-display#to-user-profile( - data-src=`${sdn}/members/1/`, - set-name='firstname, name-separator, lastname', - value-name-separator=' ', - data-fields='avatar, name', - widget-avatar='ldp-display-img' - ) - script. - document.querySelector("#to-user-profile").addEventListener("click", () => { - document.getElementById("navbar-router").navigate("member"); - document.getElementById("member-page-router").navigate("member-detail"); - }); diff --git a/src/pug/dependencies-dev.pug b/src/pug/dependencies-dev.pug deleted file mode 100644 index bcb2147..0000000 --- a/src/pug/dependencies-dev.pug +++ /dev/null @@ -1,17 +0,0 @@ -// Stylesheets -//- link(rel='stylesheet', href=`${dn}/node_modules/bootstrap/dist/css/bootstrap.min.css`) -//- link(rel='stylesheet', href=`${dn}/node_modules/cropper/dist/cropper.min.css`) -link(rel='stylesheet', href=`${dn}/node_modules/font-awesome/css/font-awesome.min.css`) -link(rel='stylesheet', href=`${dn}/node_modules/normalize.css/normalize.css?v=${v}`) -link(rel='stylesheet', href=`${dn}/dist/css/hd-app.css?v=${v}`) -// Javascript -script(src=`${dn}/node_modules/jquery/dist/jquery.min.js`) -//- script(src=`${dn}/node_modules/bootstrap/dist/js/bootstrap.min.js`) -script(src=`${dn}/node_modules/cropper/dist/cropper.min.js`) -script(src=`${dn}/dist/lib/webcomponentsjs/webcomponents-loader.js`) -script(src=`${dn}/src/js/hd-app.js?v=${v}`) -//- script(src=`${dn}/dist/lib/sib-chat/3rdparty/sib-oidc-client.js?v=${v}`) -// Web components -link(rel='import', href=`${dn}/dist/lib/sib-core/sib-display.html?v=${v}`) -link(rel='import', href=`${dn}/dist/lib/sib-router/sib-router.html?v=${v}`) -//- link(rel='import', href=`${dn}/dist/lib/sib-chat/sib-chat.html`) diff --git a/src/pug/dependencies-prod.pug b/src/pug/dependencies-prod.pug deleted file mode 100644 index ac0d21e..0000000 --- a/src/pug/dependencies-prod.pug +++ /dev/null @@ -1,34 +0,0 @@ -// Stylesheets -//-link(rel='stylesheet', href='https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css', integrity='sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4', crossorigin='anonymous') -link(href='https://cdn.bootcss.com/cropper/4.0.0/cropper.min.css', rel='stylesheet') -link(rel='stylesheet', href='https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css') -link(rel='stylesheet', href=`${dn}/dist/css/hd-app.css?v=${v}`) - -// Javascript -script( - src='https://code.jquery.com/jquery-3.3.1.slim.min.js', - integrity='sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo', - crossorigin='anonymous') -script( - src='https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js', - integrity='sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ', - crossorigin='anonymous') -script( - src='https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js', - integrity='sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm', - crossorigin='anonymous') -script( - src='https://cdn.bootcss.com/cropper/4.0.0/cropper.min.js') -script( - src='https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/1.2.0/webcomponents-loader.js', - integrity='sha256-fUVqCtpScUF69qkFkeuHmcShr2N2UleRQJhRG4etHds=', - crossorigin='anonymous') -script( - src=`${dn}/src/js/hd-app.js?v=${v}`) -script( - src=`${cdn}/sib-chat/3rdparty/sib-oidc-client.js?v=${v}`) - -// Web components -link(rel='import', href=`${cdn}/sib-core/sib-display.html?v=${v}`) -link(rel='import', href=`${cdn}/sib-router/sib-router.html?v=${v}`) -link(rel='import', href=`${cdn}/sib-chat/sib-chat.html`) diff --git a/src/pug/drive.pug b/src/pug/drive.pug deleted file mode 100644 index 7c12325..0000000 --- a/src/pug/drive.pug +++ /dev/null @@ -1,2 +0,0 @@ -#drive(style='display: none') - h1.page-title Drive diff --git a/src/pug/header.pug b/src/pug/header.pug deleted file mode 100644 index 44c95b1..0000000 --- a/src/pug/header.pug +++ /dev/null @@ -1,8 +0,0 @@ -header#header - div#logo - | Happy Dev - - #search-bar - input#search-input(placeholder='ctrl + k', type='search') - i#search-icon.fa.fa-search(aria-hidden='true') - i#close-search-icon.fa.fa-times(aria-hidden='true') \ No newline at end of file diff --git a/src/pug/html.pug b/src/pug/html.pug deleted file mode 100644 index 6121a96..0000000 --- a/src/pug/html.pug +++ /dev/null @@ -1,51 +0,0 @@ -doctype html -html(lang='fr') - head - meta(charset='UTF-8') - meta(name='viewport', content='width=device-width, initial-scale=1.0') - meta(http-equiv='X-UA-Compatible', content='ie=edge') - title Happy Dev App - //- Prod/Dev setup - if (['https://app.happy-dev.fr', 'https://staging-app.happy-dev.fr'].includes(dn)) - include dependencies-prod.pug - else - include dependencies-dev.pug - body - include header.pug - div#subContainer - include menu.pug - main#mainContainer - //- include dashboard.pug - include members.pug - include member.pug - include job-offers.pug - //- include projects.pug - include project.pug - //- include client-creation.pug - //- include channels.pug - include channel.pug - //- include search.pug - sib-chat#chat-singleton(data-authentication='login', data-auto-login='true', data-bosh-service-url='https://jabber.happy-dev.fr/http-bind/', data-debug='false', data-locales-url='en', bind-resources='') - script. - // Move the chat singleton to the right view on "page load" - window.onload = function() { - if (window.location.pathname.indexOf("-chat") !== -1) { - var chatSingleton = document.querySelector("#chat-singleton"); - var pathnameParts = window.location.pathname.split("/"); - var viewName = pathnameParts[pathnameParts.length - 1]; - var view = document.getElementById(viewName); - console.log({chatSingleton,pathnameParts,viewName,view}); - - view.appendChild(chatSingleton); - chatSingleton.dataset.src = view.dataset.src; - } - } - - // Move the chat singleton to the right view on "navigate" - window.addEventListener('navigate', event => { - var chatSingleton = document.querySelector("#chat-singleton"); - var view = document.getElementById(event.detail.route); - - view.querySelector(".chat-view").appendChild(chatSingleton); - chatSingleton.dataset.src = view.dataset.src; - }); diff --git a/src/pug/job-offers.pug b/src/pug/job-offers.pug deleted file mode 100644 index 427d39a..0000000 --- a/src/pug/job-offers.pug +++ /dev/null @@ -1,40 +0,0 @@ -script. - document.addEventListener('WebComponentsReady', function(event) { - class HDAppAuthor extends SIBDisplayLookupList { - get parentElement() { - return 'div'; - } - getTemplate(value, index) { - var firstname, lastname; - if (typeof value == 'object') - if (Object.keys(value).length > 1) { - firstname = value.user.first_name; - lastname = value.user.last_name; - } else { - store.get(value).then(resource => { - this.value.push(resource); - this.render(); - }); - if (Array.isArray(this.value)) - this.value.splice(this.value.indexOf(value), 1); - else this.value = []; - return ''; - } - return `${firstname} ${lastname}`; - } - } - customElements.define('hdapp-author', HDAppAuthor); - }); - - -#job-offers(style='display: none') - div - h1 Job offers - sib-display#offers-list( - data-src=`${sdn}/job-offers/`, - data-fields='author, title, description, skills', - set-searchset='title, description', - widget-skills='sib-display-lookuplist', - widget-author='hdapp-author', - search-fields='searchset' - ) \ No newline at end of file diff --git a/src/pug/member-chat.pug b/src/pug/member-chat.pug deleted file mode 100644 index 52afa44..0000000 --- a/src/pug/member-chat.pug +++ /dev/null @@ -1 +0,0 @@ -#member-chat.chat-view(style='display: none', bind-resources='') diff --git a/src/pug/member-edit.pug b/src/pug/member-edit.pug deleted file mode 100644 index 83b1c5f..0000000 --- a/src/pug/member-edit.pug +++ /dev/null @@ -1,97 +0,0 @@ -// script. - class LDPFormImgUpload extends SIBWidget { - get template() { - return ` - `; - } - - render() { - store.get(this.value).then( (value) => { - this._value = value; - this.innerHTML = this.template; - }); - } - } - customElements.define("ldp-form-img-upload", LDPFormImgUpload); - widget-avatar="ldp-form-img-upload" - -#member-edit(style='display: none') - label.d-none(for='avatar-input') - img#avatar-preview(src='', style='width: 100%;') - input#avatar-input.d-none(accept='image/*', name='avatar', value='', type='file') - sib-form.edit-form( - data-fields='user, avatar, bio, cell, jabberID, number, pseudo, skills, website', - widget-user='hdapp-usereditinfo', - range-cell=`${sdn}/cells/`, widget-skills='sib-form-multiple-dropdown', - range-skills=`${sdn}/skills/`, - bind-resources='' - ) -#crop-modal - .crop-wrapper - img#crop-preview(src='') - .control-bar - button#cancel-img-cropping.btn.btn-link Annuler - i#rotate-img.fa.fa-undo(aria-hidden='true') - button#crop-img.btn.btn-link Valider - - -script. - // Constant declaration - const avatarPreview = document.querySelector("#avatar-preview"); - const avatarInput = document.querySelector("#avatar-input"); - const cropModal = document.querySelector("#crop-modal"); - const cropPreview = cropModal.querySelector("#crop-preview"); - const $cropPreview = $(cropPreview); - - // Triggers cropping on image upload - avatarInput.addEventListener("change", function(e) { - var img = avatarInput.files[0]; - var reader = new FileReader(); - - reader.onloadend = function () { - cropPreview.src = reader.result; - cropModal.classList.add("cropping-mode"); - } - - if (img) { - reader.readAsDataURL(img);//reads the data as a URL - } - }); - cropPreview.addEventListener("load", () => { - $cropPreview.cropper({ - aspectRatio: 1/1, - viewMode: 3, - zoomable: false, - }); - }); - - - // Rotate image - cropModal.querySelector("#rotate-img").addEventListener("click", () => { - $cropPreview.cropper("rotate", -90); - }); - - - // Cancel cropping - cropModal.querySelector("#cancel-img-cropping").addEventListener("click", () => { - closeCropping(); - }); - - // Shortcut - document.querySelector("body").addEventListener("keydown", function(e) { - // Escape key - if (e.keyCode == 27 && cropModal.classList.contains("cropping-mode")) { - closeCropping(); - } - }); - function closeCropping() { - cropModal.classList.remove("cropping-mode"); - avatarInput.value = null; - } - - - // Validating cropping - cropModal.querySelector("#crop-img").addEventListener("click", () => { - avatarPreview.src = $cropPreview.cropper("getCroppedCanvas").toDataURL() - closeCropping(); - }); diff --git a/src/pug/member-profile.pug b/src/pug/member-profile.pug deleted file mode 100644 index a8ace40..0000000 --- a/src/pug/member-profile.pug +++ /dev/null @@ -1,13 +0,0 @@ -#member-profile(style='display: none') - sib-display#member-info( - data-fields='header, cell, number, roles, website, skills', - set-header='avatar, user, pseudonym, bio' - set-pseudonym='before-pseudo, pseudo' - widget-avatar='sib-display-img', - widget-user='hdapp-userinfo', - widget-cell='hdapp-usercell', - widget-number='sib-display-tel', - widget-roles='sib-display-lookuplist', - widget-skills='sib-display-lookuplist', - bind-resources='' - ) diff --git a/src/pug/member.pug b/src/pug/member.pug deleted file mode 100644 index d815b25..0000000 --- a/src/pug/member.pug +++ /dev/null @@ -1,12 +0,0 @@ -#member(style='display: none') - sib-router#member-router(default-route='member-profile') - sib-route(name='member-chat') - div Chat - sib-route(name='member-profile') - div Voir - sib-route(name='member-edit') - div Éditer - #member-views-container - include member-chat.pug - include member-profile.pug - include member-edit.pug diff --git a/src/pug/members.pug b/src/pug/members.pug deleted file mode 100644 index d0f8556..0000000 --- a/src/pug/members.pug +++ /dev/null @@ -1,73 +0,0 @@ -script. - document.addEventListener("WebComponentsReady", function(event) { - class HDAppUserInfo extends SIBDisplayLookupList { - get parentElement() {return "div"} - getTemplate(value, index) { - var firstname, lastname, email; - - if(typeof value == "object") - if(Object.keys(value).length > 1) { - firstname = value.first_name; - lastname = value.last_name; - email = value.email; - } - else { - store.get(value).then(resource => { - this.value.push(resource); - this.render(); - }); - if(Array.isArray(this.value))this.value.splice(this.value.indexOf(value), 1); - else this.value = []; - return ''; - } - return `
${firstname} ${lastname}
`; - // + `
${email}
`; - } - } - customElements.define('hdapp-userinfo', HDAppUserInfo); - - class HDAppCell extends SIBDisplayLookupList { - get parentElement() {return "div"} - getTemplate(value, index) { - var city, country; - - if(typeof value == "object") - if(Object.keys(value).length > 1) { - city = value.city; - country = value.country; - } - else { - store.get(value).then(resource => { - this.value.push(resource); - this.render(); - }); - if(Array.isArray(this.value))this.value.splice(this.value.indexOf(value), 1); - else this.value = []; - return ''; - } - return `${city} ${country}`; - } - } - customElements.define("hdapp-usercell", HDAppCell); - }); - -#members.view(style='display: none') - div - h1 Members - sib-display#profiles-list( - data-src=`${sdn}/members/`, - data-fields='header, cell, skills', - set-header='avatar, user, pseudonym, bio' - set-pseudonym='before-pseudo, pseudo' - value-before-pseudo='@', - widget-avatar='sib-display-img', - widget-user='hdapp-userinfo', - widget-cell='hdapp-usercell', - widget-skills='sib-display-lookuplist', - set-searchset='user.first_name, user.last_name', - search-fields='searchset', - next='member' - ) - - - diff --git a/src/pug/menu.pug b/src/pug/menu.pug deleted file mode 100644 index 273c4a3..0000000 --- a/src/pug/menu.pug +++ /dev/null @@ -1,39 +0,0 @@ -.btn-toggle - i.fa.fa-bars -div - nav#navbar - sib-router#navbar-router(default-route='members') - div(hidden) - sib-route(name='member', id-prefix=`${sdn}/members/`) - sib-route(name='project', id-prefix=`${sdn}/projects/`) - sib-route(name='channel', id-prefix=`${sdn}/channels/`) - div#menu-items - sib-route(name='members') - div - i.fa.fa-users - | Membres - sib-route(name='job-offers') - div - i.fa.fa-handshake-o - | Job offers - div - div - i.fa.fa-tasks - | Projets - sib-display( - data-src=`${sdn}/projects/`, - data-fields='name', - next='project' - ) - div - div - i.fa.fa-tasks - | Channels - sib-display( - data-src=`${sdn}/channels/`, - data-fields='name', - next='channel' - ) - //- sib-route(name='client-create') - i.fa.fa-plus(aria-hidden='true') - | New client \ No newline at end of file diff --git a/src/pug/project-chat.pug b/src/pug/project-chat.pug deleted file mode 100644 index 5d59065..0000000 --- a/src/pug/project-chat.pug +++ /dev/null @@ -1 +0,0 @@ -#project-chat.chat-view(style='display: none', bind-resources='') diff --git a/src/pug/project-create.pug b/src/pug/project-create.pug deleted file mode 100644 index 69a9607..0000000 --- a/src/pug/project-create.pug +++ /dev/null @@ -1,7 +0,0 @@ -#project-create(style='display: none') - sib-form( - data-src=`${sdn}/projects/`, - range-client=`${sdn}/clients/`, - widget-team='sib-form-multiple-dropdown', - range-team=`${sdn}/members/` - ) diff --git a/src/pug/project-edit.pug b/src/pug/project-edit.pug deleted file mode 100644 index dd6c902..0000000 --- a/src/pug/project-edit.pug +++ /dev/null @@ -1,7 +0,0 @@ -#project-edit(style='display: none') - sib-form( - range-client=`${sdn}/clients/`, - widget-team='sib-form-multiple-dropdown', - range-team=`${sdn}/members/`, - bind-resources='' - ) diff --git a/src/pug/project-profile.pug b/src/pug/project-profile.pug deleted file mode 100644 index 2ac5023..0000000 --- a/src/pug/project-profile.pug +++ /dev/null @@ -1,16 +0,0 @@ -#project-profile(style='display: none') - sib-display( - data-fields='title, description, client', - set-title='number, name' - widget-client='hdapp-client', - bind-resources='' - ) - h3 Team - sib-display.members-list-condensed( - id-suffix='team', - data-fields='avatar, user', - widget-avatar='sib-display-img', - widget-user='hdapp-userinfo', - next='member', - bind-resources='' - ) diff --git a/src/pug/project.pug b/src/pug/project.pug deleted file mode 100644 index 3b873d3..0000000 --- a/src/pug/project.pug +++ /dev/null @@ -1,15 +0,0 @@ -#project(style='display: none') - sib-router#project-router(default-route='project-profile') - sib-route(name='project-chat') - div Chat - sib-route(name='project-profile') - div Voir - sib-route(name='project-edit') - div Éditer - sib-route(name='project-create') - div Nouveau - #project-views-container - include project-chat.pug - include project-profile.pug - include project-edit.pug - include project-create.pug diff --git a/src/pug/projects.pug b/src/pug/projects.pug deleted file mode 100644 index 273697d..0000000 --- a/src/pug/projects.pug +++ /dev/null @@ -1,27 +0,0 @@ -script. - document.addEventListener("WebComponentsReady", function(event) { - class HDAppClient extends SIBWidget { - get template() { - - return ``; - } - - render() { - store.get(this.value).then( (value) => { - this._value = value; - this.innerHTML = this.template; - }); - } - } - customElements.define("hdapp-client", HDAppClient); - }); - -#projects(style='display: none') - h1 Projects - sib-display( - data-src=`${sdn}/projects/`, - data-fields='number, client, name', - widget-client='hdapp-client', - search-fields='number, name', - next='project' - ) diff --git a/src/pug/search.pug b/src/pug/search.pug deleted file mode 100644 index 8d809aa..0000000 --- a/src/pug/search.pug +++ /dev/null @@ -1,26 +0,0 @@ -#search-view - .content.container-fluid - ldp-display#search-results-members.list-condensed( - data-src=`${sdn}/members/`, - set-name='firstname, name-separator, lastname', - value-name-separator=' ', - data-fields='avatar, name', - widget-avatar='ldp-display-img', - search-fields='firstname, lastname', - next='member' - ) - ldp-display#search-results-projects.list-condensed( - data-src=`${sdn}/projects/`, - set-title='number, after-num-separator, name', - value-after-num-separator=' - ', - data-fields='client, title', - widget-client='ldp-display-client', - search-fields='number, name', - next='project' - ) - ldp-display#search-results-channels( - data-src=`${sdn}/channels/`, - data-fields='name', - search-fields='name', - next='channel' - ) diff --git a/src/scss/_channel.scss b/src/scss/_channel.scss deleted file mode 100644 index ce76d22..0000000 --- a/src/scss/_channel.scss +++ /dev/null @@ -1,62 +0,0 @@ -#channel { - #channel-detail { - #channel-info { - display: block; - padding-top: 10px; - - div[name="name"] { - font-weight: bold; - } - } - - ldp-display-member { - img { - width: 50px; - border-radius: 100px; - } - - span { - padding-left: 5px; - } - } - - #chat-members { - ldp-display { - display: flex; - align-items: center; - margin-bottom: 10px; - - img { - width: 50px; - border-radius: 100px; - } - - div[name="name"] { - display: flex; - margin-left: 10px; - } - } - } - } - - div[name="admin"], - .section { - @extend %detail-section; - margin-top: 40px; - } -} - -@media (min-width: $sm-with) { - #channel { - #channel-detail { - #channel-info { - ldp-display-client { - display: block; - float: right; - width: 300px; - } - } - } - } -} - diff --git a/src/scss/_channels.scss b/src/scss/_channels.scss deleted file mode 100644 index d5f0e81..0000000 --- a/src/scss/_channels.scss +++ /dev/null @@ -1,24 +0,0 @@ -#channels { - #channels-list { - display: flex; - flex-direction: column; - - ldp-display { - @extend %td; - cursor: pointer; - display: flex; - align-items: center; - height: 65px; - - &:hover { - background-color: $hd-color-faded; - color: white; - } - - ldp-display-div[name="name"] { - width: 130px; - } - } - } -} - diff --git a/src/scss/_chat.scss b/src/scss/_chat.scss deleted file mode 100644 index c7e853d..0000000 --- a/src/scss/_chat.scss +++ /dev/null @@ -1,17 +0,0 @@ -sib-chat { - //position: absolute; - border: 5px dotted red; - top: 0; - bottom: 0; - left: 0; - right: 0; - margin: auto; - display: none; - min-height: 300px; -} - -.chat-view { - sib-chat { - display: block; - } -} diff --git a/src/scss/_classes.scss b/src/scss/_classes.scss deleted file mode 100644 index c1541d4..0000000 --- a/src/scss/_classes.scss +++ /dev/null @@ -1,18 +0,0 @@ -.list-condensed { - ldp-display { - display: flex; - align-items: center; - margin-bottom: 10px; - - img { - width: 50px; - border-radius: 100px; - } - - & > div[name="name"], - & > div[name="title"] { - display: flex; - margin-left: 10px; - } - } -} diff --git a/src/scss/_dashboard.scss b/src/scss/_dashboard.scss deleted file mode 100644 index c85ed58..0000000 --- a/src/scss/_dashboard.scss +++ /dev/null @@ -1,5 +0,0 @@ -#dashboard { - #to-user-profile { - cursor: pointer; - } -} diff --git a/src/scss/_edit-profile.scss b/src/scss/_edit-profile.scss deleted file mode 100644 index 4c01e67..0000000 --- a/src/scss/_edit-profile.scss +++ /dev/null @@ -1,39 +0,0 @@ -#crop-modal { - position: absolute; - z-index: 1111; - top: $menu-height; - bottom: 0px; - left: 0px; - right: 0px; - background-color: black; - display: none; - - &.cropping-mode { - display: block; - } - - .crop-wrapper { - img { - width: 100%; - } - } - - .control-bar { - display: flex; - justify-content: space-between; - color: white; - font-size: 30px; - - button { - text-transform: uppercase; - color: white; - font-size: 18px; - font-weight: bold; - } - - i { - padding-top: 4px; - } - } -} - diff --git a/src/scss/_fonts.scss b/src/scss/_fonts.scss deleted file mode 100644 index 54ad643..0000000 --- a/src/scss/_fonts.scss +++ /dev/null @@ -1,8 +0,0 @@ -@font-face { - font-family: 'bebas'; - src: url('../../src/fonts/bebas/bebas.eot'); /* IE9 Compat Modes */ - src: url('../../src/fonts/bebas/bebas.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../../src/fonts/bebas/bebas.woff') format('woff'), /* Pretty Modern Browsers */ - url('../../src/fonts/bebas/bebas.ttf') format('truetype'), /* Safari, Android, iOS */ - url('../../src/fonts/bebas/bebas.svg#svgFontName') format('svg'); /* Legacy iOS */ -} diff --git a/src/scss/_forms.scss b/src/scss/_forms.scss deleted file mode 100644 index 3f43337..0000000 --- a/src/scss/_forms.scss +++ /dev/null @@ -1,102 +0,0 @@ -ldp-display { - ldp-form { - display: block; - background-color: #F3F3F3; - padding: 15px; - box-sizing: content-box; - - form { - @extend %self-clear; - - ldp-form-text { - position: relative; - display: block; - margin-bottom: 1rem; - - &::before { - position: absolute; - top: 3px; - bottom: 0px; - left: 10px; - margin: auto; - font-family: FontAwesome; - content: "\f002"; - color: gray; - } - - label { - text-transform: capitalize; - display: none; - } - - input[type="text"] { - @extend %form-control; - @extend %form-control-sm; - - padding-left: 30px; - } - } - - input[type="submit"], - input[type="reset"] { - @extend %btn; - float: right; - } - - input[type="submit"] { - @extend %btn-primary; - } - - input[type="reset"] { - @extend %btn-link; - } - } - } -} - -ldp-form.edit-form { - ldp-form-text { - @extend %form-group; - - label { - text-transform: capitalize; - } - - input { - @extend %form-control; - @extend %form-control-sm; - } - } - - input[type="submit"] { - @extend %btn; - @extend %btn-primary; - } -} - -sib-form { - sib-form-text { - - label { - text-transform: capitalize; - } - - input { - margin-right: .5em; - padding: .375em .75em; - font-size: 1rem; - line-height: 1.5; - color: #495057; - background-color: #fff; - border: 1px solid #ced4da; - border-radius: .25rem; - vertical-align: top; - } - } - - input[type="submit"], input[type="reset"] { - @extend %btn; - @extend %btn-primary; - margin-right: .5em; - } -} \ No newline at end of file diff --git a/src/scss/_header.scss b/src/scss/_header.scss deleted file mode 100644 index 7cc635a..0000000 --- a/src/scss/_header.scss +++ /dev/null @@ -1,10 +0,0 @@ -#header{ - background-color: $col-alt-bg; - color: $col-alt-fg; - display: flex; - padding: 1em; -} - -#logo{ - flex: 1 1 0px; -} \ No newline at end of file diff --git a/src/scss/_job-offers.scss b/src/scss/_job-offers.scss deleted file mode 100644 index 0a3d1a8..0000000 --- a/src/scss/_job-offers.scss +++ /dev/null @@ -1,14 +0,0 @@ -#offers-list { - > div { - > sib-display { - display: block; - margin: 1em 0; - box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2); - background-color: #efefef; - padding: 0.5em 1em; - &:nth-child(odd) { - background-color: #e0e0e0; - } - } - } -} diff --git a/src/scss/_member.scss b/src/scss/_member.scss deleted file mode 100644 index e75ec9d..0000000 --- a/src/scss/_member.scss +++ /dev/null @@ -1,123 +0,0 @@ -%detail-section { - font-weight: bold; - font-size: 18px; -} - -#member-chat { - #conversejs { - margin: none; - } -} - -#profiles-list, -#member-info { - img { - display: block; - } - - &, - img { - width: 100%; - } - - div[name='name'] { - @extend %detail-section; - padding-top: 10px; - } - - div[name='name'], - div[name='location'] { - display: flex; - } -} - -#member-detail { - #member-info { - sib-display-mailto, - sib-display-tel { - display: block; - } - - a[name='email'], - a[name='number'] { - &::before { - font-family: FontAwesome; - padding-right: 4px; - color: black; - } - } - a[name='email'] { - &::before { - content: '\f0e0'; - } - } - a[name='number'] { - &::before { - content: '\f10b'; - font-size: 22px; - padding-left: 3px; - padding-right: 7px; - } - } - } - - .section { - position: relative; - - h2 { - @extend %detail-section; - margin-top: 40px; - } - } - - #member-skills { - display: flex; - flex-wrap: wrap; - - sib-display { - display: block; - background-color: $hd-color; - color: white; - border-radius: 100px; - padding: 3px 10px; - margin-bottom: 5px; - margin-right: 5px; - } - } -} - -@media (min-width: $sm-with) { - #member-detail { - #member-info { - sib-display-img { - display: block; - float: right; - width: 300px; - } - } - } -} - -#member-info { - @extend %member; -} - -.members-list-condensed{ - display: block; - img{ - width: 50px; - height: 50px; - border-radius: 100%; - object-fit: cover; - object-position: top; - } - label{ - display: none; - } - >div>sib-display>div{ - display: flex; - } - ul{ - padding-left: 1em; - } -} diff --git a/src/scss/_members.scss b/src/scss/_members.scss deleted file mode 100644 index c4c3926..0000000 --- a/src/scss/_members.scss +++ /dev/null @@ -1,127 +0,0 @@ -%member { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); - grid-gap: 1em; - label { - display: none; - } - > sib-display { - display: block; - position: relative; - box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2); - padding: 0.5em; - cursor: pointer; - - &::before, - &::after { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - transform: scale3d(0, 0, 1); - transition: transform 0.3s ease-out 0s; - background: #eac1; - content: ''; - pointer-events: none; - } - - &::before { - transform-origin: left top; - } - - &::after { - transform-origin: right bottom; - - background: #ace1; - } - - &:hover, - &:focus { - &::before, - &::after { - transform: scale3d(1, 1, 1); - } - } - } -} - -#profiles-list { - display: block; - sib-form { - display: block; - margin: 3em 0; - input[type='reset'] { - display: none; - } - } - div[name='header'] { - border-top: 2em solid $col-alt-bg; - border-bottom: 1px solid $col-alt-bg; - padding-bottom: 1em; - margin-bottom: 1em; - text-align: center; - } - - > div { - @extend %member; - } - sib-display-img { - display: block; - position: relative; - width: 80%; - height: 0; - padding-bottom: 80%; - margin: 10%; - img { - display: block; - position: absolute; - width: 100%; - height: 100%; - border-radius: 100%; - object-fit: cover; - object-position: center; - } - } - - hdapp-userinfo { - display: block; - color: $pal-black; - font-size: 1.1em; - margin: 0.5em; - ul, - li { - display: block; - margin: 0; - padding: 0; - list-style: none; - } - } - - div[name='pseudonym'] { - font-size: 0.8em; - div { - display: inline; - } - } -} -sib-display-lookuplist[name='skills'] { - ul, - li { - display: block; - margin: 0; - padding: 0; - list-style: none; - } - ul { - display: flex; - flex-wrap: wrap; - margin: 0 -0.25em; - } - li { - padding: 0.5em 1em; - border: 1px solid; - border-radius: 0.25em; - margin: 0.25em; - } -} diff --git a/src/scss/_menu.scss b/src/scss/_menu.scss deleted file mode 100644 index f5d3ff4..0000000 --- a/src/scss/_menu.scss +++ /dev/null @@ -1,127 +0,0 @@ -// #navbar{} -// #navbar-router{} - -.btn-toggle { - display: none; - position: absolute; - top: 0; - left: 0; - background-color: $col-alt-bg; - color: $col-alt-fg; - font-size: 1.5em; - padding: 0.5em; - cursor: pointer; -} - -#navbar { - background-color: $col-dark-bg; - color: $col-dark-fg; - max-width: 16rem; - position: sticky; - top: 0; - height: 100%; - max-height: 100vh; - &.open { - transform: translateX(0); - } - &:after { - //Shadow - $shadow-width: 4px; - $shadow-opacity: 0.35; - content: ''; - display: block; - position: absolute; - top: 0; - bottom: 0; - right: -$shadow-width; - width: $shadow-width; - background-image: linear-gradient( - to right, - rgba(0, 0, 0, $shadow-opacity), - transparent - ); - } -} - -@media (max-width: 32rem) { - .btn-toggle { - display: block; - } - #navbar { - transform: translateX(-100%); - transition: transform 0.5s ease; - position: absolute; - top: auto; - z-index: 1; - } - #header { - padding-left: 3rem; - } -} - -#menu-items { - > * { - display: block; - border-bottom: 1px solid rgba(white, 0.5); - sib-route { - display: block; - cursor: pointer; - } - &[active] { - background-color: $col-highlight-bg; - color: $col-highlight-fg; - } - > div { - width: max-content; - padding: 2em; - } - &[id-prefix] { - display: none; - } - > sib-display { - display: block; - font-size: 0.9em; - color: #aaa; - > div { - margin-bottom: 1.5em; - > sib-display { - cursor: pointer; - display: block; - padding: 0.5em 2em; - } - } - } - } -} - -/* sub menu (right menu) */ - -#mainContainer > div { - display: flex; - flex-direction: row-reverse; - align-items: flex-start; - > sib-router { - display: block; - background-color: #ccc; - sib-route { - display: block; - > div { - position: relative; - padding: 1em 2em; - border-bottom: 1px solid #888; - } - &[active] { - font-weight: bold; - > div:before { - content: '<'; - position: absolute; - transform: translateX(-150%); - } - } - } - } - > div { - margin: 0.5em; - flex: 1 1 0px; - } -} diff --git a/src/scss/_mixins.scss b/src/scss/_mixins.scss deleted file mode 100644 index 9b78149..0000000 --- a/src/scss/_mixins.scss +++ /dev/null @@ -1,103 +0,0 @@ -%title{ - color: $pal-black; -} - -// Bootstrap classes -%btn { - display: inline-block; - font-weight: 400; - text-align: center; - white-space: nowrap; - vertical-align: middle; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: 1px solid transparent; - padding: .375rem .75rem; - font-size: 1rem; - line-height: 1.5; - border-radius: 100em; - transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out; - - &:not(:disabled):not(.disabled) { - cursor: pointer; - } -} - -%btn-primary { - color: $col-highlight-fg; - background-color: $col-highlight-bg; - border-color: $col-highlight-bg; -} - -%btn-link { - font-weight: 400; - color: $col-highlight-bg; - background-color: transparent; -} - -%form-group { - display: block; - margin-bottom: 1rem; -} - -%form-control { - display: block; - width: 100%; - padding: .375rem .75rem; - font-size: 1rem; - line-height: 1.5; - color: #495057; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #ced4da; - border-radius: .25rem; - transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out; -} - -%form-control-sm { - padding: .25rem .5rem; - font-size: .875rem; - line-height: 1.5; - border-radius: .2rem; -} - -%td { - padding: .65rem; - vertical-align: top; - border-top: 1px solid #dee2e6; -} - -// Custom mixins -%self-clear { - &::after { - content: ""; - clear: both; - display: table; - } -} - -@mixin list-reset($deep:0) { - padding: 0; - margin: 0; - display: block; - list-style: none; - @if ($deep == 0) { - > li { - padding: 0; - margin: 0; - display: block; - list-style: none; - } - } @else { - ul, - ol, - li { - padding: 0; - margin: 0; - display: block; - list-style: none; - } - } -} diff --git a/src/scss/_project.scss b/src/scss/_project.scss deleted file mode 100644 index 59ba6cc..0000000 --- a/src/scss/_project.scss +++ /dev/null @@ -1,19 +0,0 @@ -#project-profile { - [name='title'] { - font-size: 1.5em; - padding: .5em 0; - margin-bottom: .5em; - border-bottom: 1px solid grey; - color: $pal-black; - sib-display-div, - div { - display: inline; - } - sib-display-div[name='number'] { - padding-right: 0.5em; - &:before { - content: '#'; - } - } - } -} diff --git a/src/scss/_projects.scss b/src/scss/_projects.scss deleted file mode 100644 index 3ace468..0000000 --- a/src/scss/_projects.scss +++ /dev/null @@ -1,36 +0,0 @@ -#projects { - #projects-list { - display: flex; - flex-direction: column; - - ldp-display { - @extend %td; - cursor: pointer; - display: flex; - align-items: center; - height: 65px; - - &:hover { - background-color: $hd-color-faded; - color: white; - } - - ldp-display-div[name="number"] { - width: 50px; - } - - ldp-display-client[name="client"] { - display: block; - width: 70px; - - img { - width: 50px; - } - } - - ldp-display-div[name="name"] { - width: 150px; - } - } - } -} diff --git a/src/scss/_search.scss b/src/scss/_search.scss deleted file mode 100644 index 7ab09bc..0000000 --- a/src/scss/_search.scss +++ /dev/null @@ -1,35 +0,0 @@ - -#search-bar{ - position: relative; -} - -#search-icon{ - pointer-events: none; -} - -#search-icon, -#close-search-icon{ - position: absolute; - right: .4em; - top: 50%; - transform: translateY(-50%); - margin: auto; - display: block; -} -#search-input { - -webkit-appearance: textfield; - border-radius: 10em; - padding: .2em .5em; - border: 1px solid $col-main-fg; - & ~ #close-search-icon{ - opacity: 0; - } - &:focus{ - & ~ #close-search-icon{ - opacity: 1; - } - & ~ #search-icon{ - visibility: hidden; - } - } -} \ No newline at end of file diff --git a/src/scss/_styles.scss b/src/scss/_styles.scss deleted file mode 100644 index eba619c..0000000 --- a/src/scss/_styles.scss +++ /dev/null @@ -1,36 +0,0 @@ -* { - box-sizing: border-box; -} - -html { - font-family: Trebuchet MS, Lucida Grande, Lucida Sans Unicode, Lucida Sans, - Tahoma, sans-serif; - font-size: 16px; - - background-color: $col-main-bg; - color: $col-main-fg; -} - -html, -body { - margin: 0; - padding: 0; -} - -html, -body { - height: 100%; -} - -#subContainer { - display: flex; - min-height: 100%; -} - -#mainContainer { - flex: 1 1 0px; -} - -h1,h2,h3,h4,h5,h6{ - color: $pal-black; -} \ No newline at end of file diff --git a/src/scss/_variables.scss b/src/scss/_variables.scss deleted file mode 100644 index 8710d47..0000000 --- a/src/scss/_variables.scss +++ /dev/null @@ -1,30 +0,0 @@ -// palette -$pal-white: #e8e8e8; -$pal-black: #222; -$pal-light-grey: #ddd; -$pal-dark-grey: #4a4a4a; -$pal-yellow: #fdc815; - -// color -$col-main-fg: $pal-dark-grey; -$col-main-bg: $pal-white; - -$col-alt-fg: $pal-dark-grey; -$col-alt-bg: $pal-light-grey; - -$col-dark-fg: $pal-white; -$col-dark-bg: $pal-dark-grey; - -$col-highlight-fg: $pal-black; -$col-highlight-bg: $pal-yellow; - -// other color -$hd-color: rgb(253, 200, 21); -$hd-color-faded: rgba(253, 200, 21, 0.8); -$twitter-color: grey; - -$menu-height: 43px; -$menu-font-size: 16px; -$vertical-menu-width: 50px; -$sm-with: 576px; -$md-with: 768px; \ No newline at end of file diff --git a/src/scss/main.scss b/src/scss/main.scss deleted file mode 100644 index bf69a30..0000000 --- a/src/scss/main.scss +++ /dev/null @@ -1,23 +0,0 @@ -// Generic -@import "variables"; -@import "fonts"; -@import "mixins"; -@import "classes"; -@import "styles"; -@import "forms"; - -// Specific -@import "header"; -@import "menu"; - -@import "dashboard"; -@import "members"; -@import "member"; -@import "job-offers"; -@import "edit-profile"; -@import "projects"; -@import "project"; -@import "channels"; -@import "channel"; -@import "search"; -@import "chat"; \ No newline at end of file diff --git a/src/server/admin.py b/src/server/admin.py deleted file mode 100644 index 0e80a93..0000000 --- a/src/server/admin.py +++ /dev/null @@ -1,10 +0,0 @@ -from django.contrib import admin -from .models import Member, Skill, Project, Client, Cell, Channel, Role - -admin.site.register(Member) -admin.site.register(Skill) -admin.site.register(Project) -admin.site.register(Client) -admin.site.register(Cell) -admin.site.register(Channel) -admin.site.register(Role) diff --git a/src/server/models.py b/src/server/models.py deleted file mode 100644 index 54ecdc5..0000000 --- a/src/server/models.py +++ /dev/null @@ -1,83 +0,0 @@ -from django.db import models -from django.contrib.auth.models import User -from django.db.models.signals import post_save -from django.dispatch import receiver - - -class Member(models.Model): - avatar = models.URLField(blank=True) - available = models.NullBooleanField(blank=True) - bio = models.CharField(max_length=255, blank=True, null=True) - cell = models.ForeignKey("Cell", on_delete=models.DO_NOTHING, blank=True, null=True) - jabberID = models.CharField(max_length=255, blank=True, null=True) - jabberRoom = models.NullBooleanField(blank=True) - user = models.OneToOneField(User, on_delete=models.CASCADE) - number = models.CharField(max_length=255, blank=True, null=True) - projects = models.ManyToManyField("Project", blank=True) - pseudo = models.CharField(max_length=255, blank=True, null=True) - roles = models.ManyToManyField("Role", blank=True) - skills = models.ManyToManyField("Skill", blank=True) - website = models.URLField(blank=True) - - def __str__(self): - return 'Profil de {} '.format(self.user.get_full_name()) - -@receiver(post_save, sender=User) -def create_user_profile(sender, instance, created, **kwargs): - if created: - Member.objects.create(user=instance) - else: - instance.member.save() - - -class Skill(models.Model): - name = models.CharField(max_length=255, default='') - - def __str__(self): - return self.name - - -class Role(models.Model): - name = models.CharField(max_length=255, default='') - - def __str__(self): - return self.name - - -class Project(models.Model): - name = models.CharField(max_length=255, default='') - number = models.PositiveIntegerField(default='0', blank=True) - client = models.ForeignKey("Client", on_delete=models.DO_NOTHING) - team = models.ManyToManyField("Member", blank=True) - - def __str__(self): - return self.name - - -class Client(models.Model): - name = models.CharField(max_length=255, default='') - address = models.CharField(max_length=255, default='') - logo = models.URLField() - - def __str__(self): - return self.name - - -class Cell(models.Model): - name = models.CharField(max_length=255, default='') - city = models.CharField(max_length=255, default='') - country = models.CharField(max_length=255, default='') - - def __str__(self): - return self.name - - -class Channel(models.Model): - name = models.CharField(max_length=255, default='') - description = models.CharField(max_length=255, default='') - members = models.ManyToManyField("Member", blank=True) - owner = models.ForeignKey("Member", related_name="owned_chatrooms", on_delete=models.DO_NOTHING) - - def __str__(self): - return self.name - diff --git a/src/server/urls.py b/src/server/urls.py deleted file mode 100644 index f006f79..0000000 --- a/src/server/urls.py +++ /dev/null @@ -1,40 +0,0 @@ -"""hdappserver URL Configuration - -The `urlpatterns` list routes URLs to views. For more information please see: - https://docs.djangoproject.com/en/1.11/topics/http/urls/ -Examples: -Function views - 1. Add an import: from my_app import views - 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') -Class-based views - 1. Add an import: from other_app.views import Home - 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') -Including another URLconf - 1. Import the include() function: from django.conf.urls import url, include - 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) -""" -from django.conf.urls import url, include -from django.contrib import admin -from django.views.generic import TemplateView -from djangoldp.views import LDPViewSet -from django.conf import settings -from .models import Member, Skill, Project, Client, Cell, Channel, Role -from .views import userinfocustom - -urlpatterns = [ - url(r'^$', TemplateView.as_view(template_name="index.html"), name="index"), - url(r'^accounts/', include('django.contrib.auth.urls')), - url(r'^admin/', admin.site.urls), - url(r'^channels/', LDPViewSet.urls(model=Channel, nested_field="members")), - url(r'^cells/', LDPViewSet.urls(model=Cell)), - url(r'^clients/', LDPViewSet.urls(model=Client)), - url(r'^members/', LDPViewSet.urls(model=Member, nested_field="skills")), - url(r'^projects/', LDPViewSet.urls(model=Project, nested_field="team")), - url(r'^skills/', LDPViewSet.urls(model=Skill)), - url(r'^openid/userinfo', userinfocustom), - url(r'^openid/', include('oidc_provider.urls', namespace='oidc_provider')), - url(r'^role/', LDPViewSet.urls(model=Role)), - url(r'^users/', LDPViewSet.urls(model=settings.AUTH_USER_MODEL)), -] - - From 324a5aa347a4352a4f89fb70cfe2ded51e56b0d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Fri, 28 Sep 2018 21:20:15 +0200 Subject: [PATCH 02/27] refactoring --- .babelrc | 12 ++ .gitignore | 8 ++ .gitmodules | 9 ++ Makefile | 56 ++++++++ README.md | 0 copy_lib.js | 20 +++ lib_list.txt | 3 + package.json | 20 +++ server.js | 22 +++ src/dependencies.pug | 27 ++++ src/index.pug | 36 +++++ src/menu.pug | 27 ++++ src/pages/channel-chat.pug | 2 + src/pages/channel-create.pug | 7 + src/pages/channel-edit.pug | 7 + src/pages/channel-profile.pug | 38 +++++ src/pages/channel.pug | 15 ++ src/pages/channels.pug | 7 + src/pages/job-offers.pug | 40 ++++++ src/pages/member-chat.pug | 2 + src/pages/member-edit.pug | 97 +++++++++++++ src/pages/member-profile.pug | 13 ++ src/pages/member.pug | 12 ++ src/pages/members.pug | 1 + src/pages/project-chat.pug | 2 + src/pages/project-create.pug | 7 + src/pages/project-edit.pug | 7 + src/pages/project-profile.pug | 16 +++ src/pages/project.pug | 15 ++ src/pages/projects.pug | 29 ++++ src/scripts/hd-app.js | 61 ++++++++ src/scripts/index.js | 15 ++ src/styles/functions.scss | 0 src/styles/icons.scss | 264 ++++++++++++++++++++++++++++++++++ src/styles/index.scss | 10 ++ src/styles/main.scss | 41 ++++++ src/styles/menu.scss | 133 +++++++++++++++++ src/styles/mixins.scss | 149 +++++++++++++++++++ src/styles/variables.scss | 17 +++ src/variables.pug | 2 + 40 files changed, 1249 insertions(+) create mode 100644 .babelrc create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 Makefile create mode 100644 README.md create mode 100644 copy_lib.js create mode 100644 lib_list.txt create mode 100644 package.json create mode 100644 server.js create mode 100644 src/dependencies.pug create mode 100644 src/index.pug create mode 100644 src/menu.pug create mode 100644 src/pages/channel-chat.pug create mode 100644 src/pages/channel-create.pug create mode 100644 src/pages/channel-edit.pug create mode 100644 src/pages/channel-profile.pug create mode 100644 src/pages/channel.pug create mode 100644 src/pages/channels.pug create mode 100644 src/pages/job-offers.pug create mode 100644 src/pages/member-chat.pug create mode 100644 src/pages/member-edit.pug create mode 100644 src/pages/member-profile.pug create mode 100644 src/pages/member.pug create mode 100644 src/pages/members.pug create mode 100644 src/pages/project-chat.pug create mode 100644 src/pages/project-create.pug create mode 100644 src/pages/project-edit.pug create mode 100644 src/pages/project-profile.pug create mode 100644 src/pages/project.pug create mode 100644 src/pages/projects.pug create mode 100644 src/scripts/hd-app.js create mode 100644 src/scripts/index.js create mode 100644 src/styles/functions.scss create mode 100644 src/styles/icons.scss create mode 100644 src/styles/index.scss create mode 100644 src/styles/main.scss create mode 100644 src/styles/menu.scss create mode 100644 src/styles/mixins.scss create mode 100644 src/styles/variables.scss create mode 100644 src/variables.pug diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..5877e72 --- /dev/null +++ b/.babelrc @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "@babel/preset-env", + { + "targets": { + "browsers": ["last 2 versions", "ie >= 9"] + } + } + ] + ] +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b3107b3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +/node_modules +/www/index.html +/www/styles/ +/www/scripts/ +/www/lib +!/www/lib/sib-core +!/www/lib/sib-router +!/www/lib/sib-chat \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..99cd617 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,9 @@ +[submodule "www/lib/sib-core"] + path = www/lib/sib-core + url = git@git.happy-dev.fr:startinblox/sib-core.git +[submodule "www/lib/sib-router"] + path = www/lib/sib-router + url = git@git.happy-dev.fr:startinblox/sib-router.git +[submodule "www/lib/sib-chat"] + path = www/lib/sib-chat + url = git@git.happy-dev.fr:startinblox/sib-chat.git diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ea0ad7f --- /dev/null +++ b/Makefile @@ -0,0 +1,56 @@ +SCRIPT_SRC := $(wildcard src/scripts/*.js) + +SCRIPT_DEST := $(SCRIPT_SRC:src/%=www/%) + +default: build + +clean: + git clean -fXd + + +install: node_modules copy_lib submodules + +submodules: + git submodule init + git submodule update + +build: www/index.html www/styles/index.css $(SCRIPT_DEST) + +watch: + @echo 'watching for change' + @echo 'press Ctrl+C to stop' + @while true; do \ + $(MAKE) --silent build; \ + sleep 0.5; \ + done + +serve: + node server + +# npm +node_modules: + npm install + +# vendor lib +copy_lib: + @node copy_lib.js + +# pug +www/index.html: src/index.pug $(wildcard src/*.pug src/*/*.pug) + @echo pug: $< ➜ $@ + @node_modules/.bin/pug --pretty $< --out $(dir $@) || touch $@ + +# sass +www/styles/index.css: src/styles/index.scss $(wildcard src/*.scss src/*/*.scss) + @echo sass: $< ➜ $@ + @node_modules/.bin/node-sass $< $@ --source-map true || touch $@ + +# babel +www/%.js: src/%.js + @echo babel: $< ➜ $@ + @mkdir -p $(dir $@) + @node_modules/.bin/babel $< --out-file $@ --source-maps || touch $@ + +.PHONY: default install submodules copy_lib build watch serve clean + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/copy_lib.js b/copy_lib.js new file mode 100644 index 0000000..4cc6932 --- /dev/null +++ b/copy_lib.js @@ -0,0 +1,20 @@ +const { basename, join, resolve } = require('path'); +const { readFileSync, lstatSync } = require('fs'); +const { exec } = require('child_process'); + +const distDir = 'www/lib'; + +const filelist = readFileSync('lib_list.txt', 'utf-8').split(/\r?\n/); + +exec(`mkdir -p ${distDir}`, () => { + filelist.forEach(path => { + path = resolve(path); + const filename = basename(path); + const dest = lstatSync(path).isDirectory() + ? distDir + : join(distDir, filename); + const cmd = `rsync -ru ${path} ${dest}`; + console.log(cmd); + exec(cmd); + }); +}); diff --git a/lib_list.txt b/lib_list.txt new file mode 100644 index 0000000..6127584 --- /dev/null +++ b/lib_list.txt @@ -0,0 +1,3 @@ +node_modules/normalize.css/normalize.css +node_modules/@webcomponents/webcomponentsjs +node_modules/@webcomponents/html-imports/src/html-imports.js \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..3cddfa8 --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "hd-app", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "@babel/core": "^7.1.0", + "@babel/preset-env": "^7.1.0", + "@babel/cli": "^7.1.0", + "node-sass": "^4.9.3", + "pug-cli": "^1.0.0-alpha6", + "browser-sync": "^2.24.7", + "express": "^4.16.3" + }, + "dependencies": { + "@webcomponents/html-imports": "^1.2.0", + "@webcomponents/webcomponentsjs": "^1.2.7", + "normalize.css": "^8.0.0", + "simple-line-icons": "^2.4.1" + } +} diff --git a/server.js b/server.js new file mode 100644 index 0000000..7637428 --- /dev/null +++ b/server.js @@ -0,0 +1,22 @@ +const port = 9000; +const distPath = 'www'; +// express server +const { join } = require('path'); +const express = require('express'); +const app = express(); +app + .use(express.static(distPath)) + .use('/src', express.static(join(__dirname, 'src'))) + .get(/^[^.]*$/, (req, rep) => + rep.sendFile(join(__dirname, distPath, '/index.html')), + ) + .listen(port); +// browser sync +const bs = require('browser-sync').create(); +bs.init({ + files: [distPath + '/**/*'], + proxy: `http://localhost:${port}`, + open: false, + notify: false, + //tunnel: true, +}); diff --git a/src/dependencies.pug b/src/dependencies.pug new file mode 100644 index 0000000..f0cbd56 --- /dev/null +++ b/src/dependencies.pug @@ -0,0 +1,27 @@ +// Scripts +script(src="lib/webcomponentsjs/webcomponents-loader.js") +//- script(src="lib/html-imports.js") + +//- script(src="https://unpkg.com/@webcomponents/webcomponentsjs@1.2.7/webcomponents-loader.js") + +script(src="scripts/index.js") + +// Stylesheets +link(rel='stylesheet', href='lib/normalize.css') +link(rel='stylesheet', href="styles/index.css") +link( + rel='stylesheet' + href='https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700,700i&subset=latin-ext' +) + +// Web components + +//- local +link(rel='import', href='lib/sib-core/sib-display.html') +link(rel='import', href='lib/sib-router/sib-router.html') + //-link(rel='import', href='lib/sib-chat/sib-chat.html') + +//- cdn + link(rel='import', href="https://cdn.happy-dev.fr/sib-core/sib-display.html") + link(rel='import', href="https://cdn.happy-dev.fr/sib-router/sib-router.html") + //- link(rel='import', href="https://cdn.happy-dev.fr/sib-chat/sib-chat.html") diff --git a/src/index.pug b/src/index.pug new file mode 100644 index 0000000..10d9265 --- /dev/null +++ b/src/index.pug @@ -0,0 +1,36 @@ +include variables.pug + +html(lang="en") + head + meta(charset="UTF-8") + title HD App + meta(name="viewport", content="width=device-width, initial-scale=1.0") + meta(http-equiv="X-UA-Compatible", content="ie=edge") + include dependencies.pug + body + header#header + #logo + img(src="img/logo.png" width=166/2 height=48/2) + #subContainer + include menu.pug + main#mainContainer + //- #dashboard(hidden) + include pages/dashboard.pug + #members(hidden) + include pages/members.pug + #member(hidden) + div include pages/member.pug + #job-offers(hidden) + include pages/job-offers.pug + #projects(hidden) + include pages/projects.pug + #project(hidden) + include pages/project.pug + //- #client-creation(hidden) + include pages/client-creation.pug + #channels(hidden) + include pages/channels.pug + #channel(hidden) + include pages/channel.pug + //- #search(hidden) + include pages/search.pug \ No newline at end of file diff --git a/src/menu.pug b/src/menu.pug new file mode 100644 index 0000000..b1613a0 --- /dev/null +++ b/src/menu.pug @@ -0,0 +1,27 @@ +.btn-toggle +div + nav#navbar + sib-router#navbar-router(default-route='members') + div(hidden) + div#menu-items + sib-route(name='members') + div.icon-people Membres + sib-route(hidden, name='member', id-prefix=`${sdn}/members/`) + sib-route(name='job-offers') + div.icon-briefcase Job offers + div + div.icon-folder-alt Projets + sib-display( + data-src=`${sdn}/projects/`, + data-fields='name', + next='project' + ) + sib-route(hidden, name='project', id-prefix=`${sdn}/projects/`) + div + div.icon-bubbles Channels + sib-display( + data-src=`${sdn}/channels/`, + data-fields='name', + next='channel' + ) + sib-route(hidden, name='channel', id-prefix=`${sdn}/channels/`) \ No newline at end of file diff --git a/src/pages/channel-chat.pug b/src/pages/channel-chat.pug new file mode 100644 index 0000000..2e54d66 --- /dev/null +++ b/src/pages/channel-chat.pug @@ -0,0 +1,2 @@ +#channel-chat.chat-view(style='display: none', bind-resources='') + sib-chat(data-authentication='login', data-auto-login='true', data-bosh-service-url='https://jabber.happy-dev.fr/http-bind/', data-debug='false', data-locales-url='en', bind-resources='') \ No newline at end of file diff --git a/src/pages/channel-create.pug b/src/pages/channel-create.pug new file mode 100644 index 0000000..5e7b303 --- /dev/null +++ b/src/pages/channel-create.pug @@ -0,0 +1,7 @@ +#channel-create(style='display: none') + sib-form( + data-src=`${sdn}/channels/`, + range-owner=`${sdn}/members/`, + widget-members='sib-form-multiple-dropdown', + range-members=`${sdn}/members/` + ) diff --git a/src/pages/channel-edit.pug b/src/pages/channel-edit.pug new file mode 100644 index 0000000..9244226 --- /dev/null +++ b/src/pages/channel-edit.pug @@ -0,0 +1,7 @@ +#channel-edit(style='display: none') + sib-form( + range-owner=`${sdn}/members/`, + widget-members='sib-form-multiple-dropdown', + range-members=`${sdn}/members/`, + bind-resources='' + ) diff --git a/src/pages/channel-profile.pug b/src/pages/channel-profile.pug new file mode 100644 index 0000000..b7dad0b --- /dev/null +++ b/src/pages/channel-profile.pug @@ -0,0 +1,38 @@ +script. + document.addEventListener('WebComponentsReady', function(event) { + document.addEventListener("HTMLImportsLoaded", function(event) { + class HDAppMember extends SIBWidget { + get template() { + return ` +
+ +
+ `; + } + + render() { + store.get(this.value).then( (value) => { + this._value = value; + this.innerHTML = this.template; + }); + } + } + customElements.define("hdapp-member", HDAppMember); + }); + }); + +#channel-profile(style='display: none') + sib-display( + data-fields='name, description, owner', + widget-owner='hdapp-member', + bind-resources='' + ) + h2.section.skills Participants + sib-display( + id-suffix='members', + data-fields='avatar, user', + widget-avatar='sib-display-img', + widget-user='hdapp-userinfo', + bind-resources='' + ) + diff --git a/src/pages/channel.pug b/src/pages/channel.pug new file mode 100644 index 0000000..e91ee19 --- /dev/null +++ b/src/pages/channel.pug @@ -0,0 +1,15 @@ +#channel(style='display: none') + sib-router#channel-router(default-route='channel-profile') + sib-route(name='channel-chat') + div Chat + sib-route(name='channel-profile') + div Info + sib-route(name='channel-edit') + div Éditer + sib-route(name='channel-create') + div Nouveau + #network-views-container + include channel-chat.pug + include channel-profile.pug + include channel-edit.pug + include channel-create.pug diff --git a/src/pages/channels.pug b/src/pages/channels.pug new file mode 100644 index 0000000..70d99f5 --- /dev/null +++ b/src/pages/channels.pug @@ -0,0 +1,7 @@ +#channels(style='display: none') + sib-display#channels-list( + data-src=`${sdn}/channels/`, + data-fields='name, description', + search-fields='name, description', + next='channel' + ) diff --git a/src/pages/job-offers.pug b/src/pages/job-offers.pug new file mode 100644 index 0000000..8835bce --- /dev/null +++ b/src/pages/job-offers.pug @@ -0,0 +1,40 @@ +script. + document.addEventListener('WebComponentsReady', function(event) { + document.addEventListener('HTMLImportsLoaded', function(event) { + class HDAppAuthor extends SIBDisplayLookupList { + get parentElement() { + return 'div'; + } + getTemplate(value, index) { + var firstname, lastname; + if (typeof value == 'object') + if (Object.keys(value).length > 1) { + firstname = value.user.first_name; + lastname = value.user.last_name; + } else { + store.get(value).then(resource => { + this.value.push(resource); + this.render(); + }); + if (Array.isArray(this.value)) + this.value.splice(this.value.indexOf(value), 1); + else this.value = []; + return ''; + } + return `${firstname} ${lastname}`; + } + } + customElements.define('hdapp-author', HDAppAuthor); + }); + }); + +div + h1 Job offers + sib-display#offers-list( + data-src=`${sdn}/job-offers/`, + data-fields='author, title, description, skills', + set-searchset='title, description', + widget-skills='sib-display-lookuplist', + widget-author='hdapp-author', + search-fields='searchset' + ) \ No newline at end of file diff --git a/src/pages/member-chat.pug b/src/pages/member-chat.pug new file mode 100644 index 0000000..92f71ee --- /dev/null +++ b/src/pages/member-chat.pug @@ -0,0 +1,2 @@ +#member-chat.chat-view(style='display: none', bind-resources='') + sib-chat(data-authentication='login', data-auto-login='true', data-bosh-service-url='https://jabber.happy-dev.fr/http-bind/', data-debug='false', data-locales-url='en', bind-resources='') diff --git a/src/pages/member-edit.pug b/src/pages/member-edit.pug new file mode 100644 index 0000000..598a586 --- /dev/null +++ b/src/pages/member-edit.pug @@ -0,0 +1,97 @@ +// script. + class LDPFormImgUpload extends SIBWidget { + get template() { + return ` + `; + } + + render() { + store.get(this.value).then( (value) => { + this._value = value; + this.innerHTML = this.template; + }); + } + } + customElements.define("ldp-form-img-upload", LDPFormImgUpload); + widget-avatar="ldp-form-img-upload" + +#member-edit(style='display: none') + label.d-none(for='avatar-input') + img#avatar-preview(src='', style='width: 100%;') + input#avatar-input.d-none(accept='image/*', name='avatar', value='', type='file') + sib-form.edit-form( + data-fields='user, avatar, bio, cell, jabberID, number, pseudo, skills, website', + widget-user='hdapp-usereditinfo', + range-cell=`${sdn}/cells/`, widget-skills='sib-form-multiple-dropdown', + range-skills=`${sdn}/skills/`, + bind-resources='' + ) +#crop-modal + .crop-wrapper + img#crop-preview(src='') + .control-bar + button#cancel-img-cropping.btn.btn-link Annuler + i#rotate-img.fa.fa-undo(aria-hidden='true') + button#crop-img.btn.btn-link Valider + + +//-script. + // Constant declaration + const avatarPreview = document.querySelector("#avatar-preview"); + const avatarInput = document.querySelector("#avatar-input"); + const cropModal = document.querySelector("#crop-modal"); + const cropPreview = cropModal.querySelector("#crop-preview"); + const $cropPreview = $(cropPreview); + + // Triggers cropping on image upload + avatarInput.addEventListener("change", function(e) { + var img = avatarInput.files[0]; + var reader = new FileReader(); + + reader.onloadend = function () { + cropPreview.src = reader.result; + cropModal.classList.add("cropping-mode"); + } + + if (img) { + reader.readAsDataURL(img);//reads the data as a URL + } + }); + cropPreview.addEventListener("load", () => { + $cropPreview.cropper({ + aspectRatio: 1/1, + viewMode: 3, + zoomable: false, + }); + }); + + + // Rotate image + cropModal.querySelector("#rotate-img").addEventListener("click", () => { + $cropPreview.cropper("rotate", -90); + }); + + + // Cancel cropping + cropModal.querySelector("#cancel-img-cropping").addEventListener("click", () => { + closeCropping(); + }); + + // Shortcut + document.querySelector("body").addEventListener("keydown", function(e) { + // Escape key + if (e.keyCode == 27 && cropModal.classList.contains("cropping-mode")) { + closeCropping(); + } + }); + function closeCropping() { + cropModal.classList.remove("cropping-mode"); + avatarInput.value = null; + } + + + // Validating cropping + cropModal.querySelector("#crop-img").addEventListener("click", () => { + avatarPreview.src = $cropPreview.cropper("getCroppedCanvas").toDataURL() + closeCropping(); + }); diff --git a/src/pages/member-profile.pug b/src/pages/member-profile.pug new file mode 100644 index 0000000..a8ace40 --- /dev/null +++ b/src/pages/member-profile.pug @@ -0,0 +1,13 @@ +#member-profile(style='display: none') + sib-display#member-info( + data-fields='header, cell, number, roles, website, skills', + set-header='avatar, user, pseudonym, bio' + set-pseudonym='before-pseudo, pseudo' + widget-avatar='sib-display-img', + widget-user='hdapp-userinfo', + widget-cell='hdapp-usercell', + widget-number='sib-display-tel', + widget-roles='sib-display-lookuplist', + widget-skills='sib-display-lookuplist', + bind-resources='' + ) diff --git a/src/pages/member.pug b/src/pages/member.pug new file mode 100644 index 0000000..d815b25 --- /dev/null +++ b/src/pages/member.pug @@ -0,0 +1,12 @@ +#member(style='display: none') + sib-router#member-router(default-route='member-profile') + sib-route(name='member-chat') + div Chat + sib-route(name='member-profile') + div Voir + sib-route(name='member-edit') + div Éditer + #member-views-container + include member-chat.pug + include member-profile.pug + include member-edit.pug diff --git a/src/pages/members.pug b/src/pages/members.pug new file mode 100644 index 0000000..27ac9fa --- /dev/null +++ b/src/pages/members.pug @@ -0,0 +1 @@ +div member \ No newline at end of file diff --git a/src/pages/project-chat.pug b/src/pages/project-chat.pug new file mode 100644 index 0000000..e2aebf9 --- /dev/null +++ b/src/pages/project-chat.pug @@ -0,0 +1,2 @@ +#project-chat.chat-view(style='display: none', bind-resources='') + sib-chat(data-authentication='login', data-auto-login='true', data-bosh-service-url='https://jabber.happy-dev.fr/http-bind/', data-debug='false', data-locales-url='en', bind-resources='') diff --git a/src/pages/project-create.pug b/src/pages/project-create.pug new file mode 100644 index 0000000..69a9607 --- /dev/null +++ b/src/pages/project-create.pug @@ -0,0 +1,7 @@ +#project-create(style='display: none') + sib-form( + data-src=`${sdn}/projects/`, + range-client=`${sdn}/clients/`, + widget-team='sib-form-multiple-dropdown', + range-team=`${sdn}/members/` + ) diff --git a/src/pages/project-edit.pug b/src/pages/project-edit.pug new file mode 100644 index 0000000..dd6c902 --- /dev/null +++ b/src/pages/project-edit.pug @@ -0,0 +1,7 @@ +#project-edit(style='display: none') + sib-form( + range-client=`${sdn}/clients/`, + widget-team='sib-form-multiple-dropdown', + range-team=`${sdn}/members/`, + bind-resources='' + ) diff --git a/src/pages/project-profile.pug b/src/pages/project-profile.pug new file mode 100644 index 0000000..2ac5023 --- /dev/null +++ b/src/pages/project-profile.pug @@ -0,0 +1,16 @@ +#project-profile(style='display: none') + sib-display( + data-fields='title, description, client', + set-title='number, name' + widget-client='hdapp-client', + bind-resources='' + ) + h3 Team + sib-display.members-list-condensed( + id-suffix='team', + data-fields='avatar, user', + widget-avatar='sib-display-img', + widget-user='hdapp-userinfo', + next='member', + bind-resources='' + ) diff --git a/src/pages/project.pug b/src/pages/project.pug new file mode 100644 index 0000000..3b873d3 --- /dev/null +++ b/src/pages/project.pug @@ -0,0 +1,15 @@ +#project(style='display: none') + sib-router#project-router(default-route='project-profile') + sib-route(name='project-chat') + div Chat + sib-route(name='project-profile') + div Voir + sib-route(name='project-edit') + div Éditer + sib-route(name='project-create') + div Nouveau + #project-views-container + include project-chat.pug + include project-profile.pug + include project-edit.pug + include project-create.pug diff --git a/src/pages/projects.pug b/src/pages/projects.pug new file mode 100644 index 0000000..ea6fd6d --- /dev/null +++ b/src/pages/projects.pug @@ -0,0 +1,29 @@ +script. + document.addEventListener('WebComponentsReady', function(event) { + document.addEventListener("HTMLImportsLoaded", function(event) { + class HDAppClient extends SIBWidget { + get template() { + + return ``; + } + + render() { + store.get(this.value).then( (value) => { + this._value = value; + this.innerHTML = this.template; + }); + } + } + customElements.define("hdapp-client", HDAppClient); + }); + }); + +#projects(style='display: none') + h1 Projects + sib-display( + data-src=`${sdn}/projects/`, + data-fields='number, client, name', + widget-client='hdapp-client', + search-fields='number, name', + next='project' + ) diff --git a/src/scripts/hd-app.js b/src/scripts/hd-app.js new file mode 100644 index 0000000..a38a099 --- /dev/null +++ b/src/scripts/hd-app.js @@ -0,0 +1,61 @@ +document.addEventListener("DOMContentLoaded", function(event) { + // Constants declaration + const navBar = document.querySelector("#navbar"); + const searchBar = document.querySelector("#search-bar"); + const searchView = document.querySelector("#search-view"); + const searchInput = searchBar.querySelector("#search-input"); + const btnToggle = document.querySelector(".btn-toggle"); + + + // Shortcuts + window.addEventListener("keydown", function(e) { + // CTRL + K triggers the search feature + if ((e.keyCode == 75 || e.keyCode == 80) && (e.ctrlKey === true || e.metaKey === true)) { + e.preventDefault(); + e.stopPropagation(); + openSearchBar(); + } + + // Escape key + else if (e.keyCode == 27 && navBar.classList.contains("search-mode")) { + closeSearchBar(); + } + }); + + searchBar.querySelector("#close-search-icon").addEventListener("click", emptySearchBar); + + function openSearchBar(e) { + navBar.classList.add("search-mode"); + searchBar.querySelector("#search-input").focus(); + searchView.classList.add("search-mode"); + } + + function closeSearchBar(e) { + navBar.classList.remove("search-mode"); + searchView.classList.remove("search-mode"); + } + + function emptySearchBar(e) { + searchInput.value = ''; + openSearchBar(); + searchInput.focus; + } + + + // Synchronizes the search input with the s + searchInput.addEventListener("keyup", (e) => { + searchView.querySelectorAll("ldp-form input[type=text]").forEach((el) => { + el.value = searchInput.value; + }); + }); + + + btnToggle.addEventListener('click', e => { + navBar.classList.toggle('open'); + e.stopPropagation(); + }); + + window.addEventListener('click', e=>{ + navBar.classList.remove('open'); + }); +}); diff --git a/src/scripts/index.js b/src/scripts/index.js new file mode 100644 index 0000000..482a879 --- /dev/null +++ b/src/scripts/index.js @@ -0,0 +1,15 @@ +document.addEventListener('DOMContentLoaded', function(event) { + // Constants declaration + const navBar = document.querySelector('#navbar'); + const btnToggle = document.querySelector('.btn-toggle'); + if (!navBar || !btnToggle) return; + + btnToggle.addEventListener('click', e => { + navBar.classList.toggle('open'); + e.stopPropagation(); + }); + + window.addEventListener('click', e => { + navBar.classList.remove('open'); + }); +}); diff --git a/src/styles/functions.scss b/src/styles/functions.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/styles/icons.scss b/src/styles/icons.scss new file mode 100644 index 0000000..434251a --- /dev/null +++ b/src/styles/icons.scss @@ -0,0 +1,264 @@ +@font-face { + font-family: 'simple-line-icons'; + src: url('../fonts/simple-line-icons.eot?23594131'); + src: url('../fonts/simple-line-icons.eot?23594131#iefix') + format('embedded-opentype'), + url('../fonts/simple-line-icons.woff2?23594131') format('woff2'), + url('../fonts/simple-line-icons.woff?23594131') format('woff'), + url('../fonts/simple-line-icons.ttf?23594131') format('truetype'), + url('../fonts/simple-line-icons.svg?23594131#simple-line-icons') + format('svg'); + font-weight: normal; + font-style: normal; +} +/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ +/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ +/* +@media screen and (-webkit-min-device-pixel-ratio:0) { + @font-face { + font-family: 'simple-line-icons'; + src: url('../font/simple-line-icons.svg?23594131#simple-line-icons') format('svg'); + } +} +*/ +%icon, +[class^='icon-']:before, +[class*=' icon-']:before { + font-family: 'simple-line-icons'; + font-style: normal; + font-weight: normal; + speak: none; + + display: inline-block; + text-decoration: inherit; + width: 1em; + margin-right: 0.2em; + text-align: center; + /* opacity: .8; */ + + /* For safety - reset parent styles, that can break glyph codes*/ + font-variant: normal; + text-transform: none; + + /* fix buttons height, for twitter bootstrap */ + line-height: 1em; + + /* Animation center compensation - margins should be symmetric */ + /* remove if not needed */ + margin-left: 0.2em; + + /* you can be more comfortable with increased icons size */ + /* font-size: 120%; */ + + /* Font smoothing. That was taken from TWBS */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + /* Uncomment for 3D effect */ + // text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); +} + +$icons: ( + user-female: '\e000', + people: '\e001', + user-follow: '\e002', + user-following: '\e003', + user-unfollow: '\e004', + user: '\e005', + trophy: '\e006', + speedometer: '\e007', + social-youtube: '\e008', + social-twitter: '\e009', + social-tumblr: '\e00a', + social-facebook: '\e00b', + social-dropbox: '\e00c', + social-dribbble: '\e00d', + shield: '\e00e', + screen-tablet: '\e00f', + screen-smartphone: '\e010', + screen-desktop: '\e011', + plane: '\e012', + notebook: '\e013', + mustache: '\e014', + mouse: '\e015', + magnet: '\e016', + magic-wand: '\e017', + hourglass: '\e018', + graduation: '\e019', + ghost: '\e01a', + game-controller: '\e01b', + fire: '\e01c', + eyeglass: '\e01d', + envelope-open: '\e01e', + envolope-letter: '\e01f', + energy: '\e020', + emotsmile: '\e021', + disc: '\e022', + cursor-move: '\e023', + crop: '\e024', + credit-card: '\e025', + chemistry: '\e026', + bell: '\e027', + badge: '\e028', + anchor: '\e029', + wallet: '\e02a', + vector: '\e02b', + speech: '\e02c', + puzzle: '\e02d', + printer: '\e02e', + present: '\e02f', + playlist: '\e030', + pin: '\e031', + picture: '\e032', + map: '\e033', + layers: '\e034', + handbag: '\e035', + globe-alt: '\e036', + globe: '\e037', + frame: '\e038', + folder-alt: '\e039', + film: '\e03a', + feed: '\e03b', + earphones-alt: '\e03c', + earphones: '\e03d', + drop: '\e03e', + drawar: '\e03f', + docs: '\e040', + directions: '\e041', + direction: '\e042', + diamond: '\e043', + cup: '\e044', + compass: '\e045', + call-out: '\e046', + call-in: '\e047', + call-end: '\e048', + calculator: '\e049', + bubbles: '\e04a', + briefcase: '\e04b', + book-open: '\e04c', + basket-loaded: '\e04d', + basket: '\e04e', + bag: '\e04f', + action-undo: '\e050', + action-redo: '\e051', + wrench: '\e052', + umbrella: '\e053', + trash: '\e054', + tag: '\e055', + support: '\e056', + size-fullscreen: '\e057', + size-actual: '\e058', + shuffle: '\e059', + share-alt: '\e05a', + share: '\e05b', + rocket: '\e05c', + question: '\e05d', + pie-chart: '\e05e', + pencil: '\e05f', + note: '\e060', + music-tone-alt: '\e061', + music-tone: '\e062', + microphone: '\e063', + loop: '\e064', + logout: '\e065', + login: '\e066', + list: '\e067', + like: '\e068', + home: '\e069', + grid: '\e06a', + graph: '\e06b', + equalizer: '\e06c', + dislike: '\e06d', + cursor: '\e06e', + control-start: '\e06f', + control-rewind: '\e070', + control-play: '\e071', + control-pause: '\e072', + control-forward: '\e073', + control-end: '\e074', + calender: '\e075', + bulb: '\e076', + chart: '\e077', + arrow-up-circle: '\e078', + arrow-right-circle: '\e079', + arrow-left-circle: '\e07a', + arrow-down-circle: '\e07b', + ban: '\e07c', + bubble: '\e07d', + camrecorder: '\e07e', + camera: '\e07f', + check: '\e080', + clock: '\e081', + close: '\e082', + cloud-download: '\e083', + cloud-upload: '\e084', + doc: '\e085', + envolope: '\e086', + eye: '\e087', + flag: '\e088', + folder: '\e089', + heart: '\e08a', + info: '\e08b', + key: '\e08c', + link: '\e08d', + lock: '\e08e', + lock-open: '\e08f', + magnifier: '\e090', + magnifier-add: '\e091', + magnifier-remove: '\e092', + paper-clip: '\e093', + paper-plane: '\e094', + plus: '\e095', + location-pin: '\e096', + power: '\e097', + refresh: '\e098', + reload: '\e099', + settings: '\e09a', + star: '\e09b', + symble-female: '\e09c', + symbol-male: '\e09d', + target: '\e09e', + volume-1: '\e09f', + volume-2: '\e0a0', + volume-off: '\e0a1', + phone: '\e600', + menu: '\e601', + options-vertical: '\e602', + options: '\e603', + arrow-down: '\e604', + arrow-left: '\e605', + arrow-right: '\e606', + arrow-up: '\e607', + paypal: '\e608', + social-instagram: '\e609', + social-linkedin: '\e60a', + social-pintarest: '\e60b', + social-github: '\e60c', + social-google: '\e60d', + social-reddit: '\e60e', + social-skype: '\e60f', + social-behance: '\e610', + social-foursqare: '\e611', + social-soundcloud: '\e612', + social-spotify: '\e613', + social-stumbleupon: '\e614', + minus: '\e615', + organization: '\e616', + exclamation: '\e617', + social-vkontakte: '\e618', + event: '\e619', + social-steam: '\e620', +); + + +@each $name, $code in $icons { + .icon-#{$name} { + &:before { + content: $code; + } + } +} +@mixin icon($code) { + @extend %icon; + @extend .icon-#{$code}; +} \ No newline at end of file diff --git a/src/styles/index.scss b/src/styles/index.scss new file mode 100644 index 0000000..ebca3ee --- /dev/null +++ b/src/styles/index.scss @@ -0,0 +1,10 @@ +@charset "UTF-8"; +@import + 'icons', + 'variables', + 'functions', + 'mixins', + 'main'; + +@import 'menu' + diff --git a/src/styles/main.scss b/src/styles/main.scss new file mode 100644 index 0000000..2ad4686 --- /dev/null +++ b/src/styles/main.scss @@ -0,0 +1,41 @@ +@import 'variables'; + +[hidden] { + display: none !important; +} + +html { + font-family: Open Sans, sans-serif; + font-size: 13px; + background-color: $color-grey-light; +} + +#header { + background-color: $color-white; + position: relative; + @include border-shadow(bottom); + border: solid $color-white; + border-width: 1px 0; +} + +#logo { + margin: 1.4em; +} + +html, +body { + height: 100%; +} + +#subContainer { + display: flex; + min-height: 100%; +} + +#mainContainer { + flex: 1 1 0px; +} + +h1,h2,h3,h4,h5,h6{ + color: $color-black; +} \ No newline at end of file diff --git a/src/styles/menu.scss b/src/styles/menu.scss new file mode 100644 index 0000000..499979f --- /dev/null +++ b/src/styles/menu.scss @@ -0,0 +1,133 @@ +// #navbar{} +// #navbar-router{} + +.btn-toggle { + @include icon('menu'); + display: none; + position: absolute; + top: 0; + left: 0; + background-color: $color-white; + color: $color-black; + font-size: 2em; + padding: 0.72em; + cursor: pointer; +} + +#navbar { + background-color: $color-white; + color: $color-grey; + max-width: 16rem; + position: sticky; + top: 0; + height: 100%; + max-height: 100vh; + &.open { + transform: translateX(0); + } + @include border-shadow(right); +} + +@media (max-width: 32rem) { + .btn-toggle { + display: block; + } + #navbar { + transform: translateX(-100%); + transition: transform 0.5s ease; + position: absolute; + top: auto; + z-index: 1; + } + #header { + padding-left: 5rem; + } +} + +#menu-items { + > * { + display: block; + border-top: 1px solid $color-grey; + &:last-child { + border-bottom: 1px solid $color-grey; + } + sib-route { + display: block; + cursor: pointer; + } + cursor: pointer; + &[active] { + color: $color-black; + > div:before { + background-color: $color-yellow-light; + transform: perspective(1000px) translateZ(1px) scale(0.8); + } + } + > div { + text-align: center; + text-transform: uppercase; + &:before { + display: block; + margin: -0.5em auto 0; + font-size: 2em; + border-radius: 100%; + padding: 0.7em; + transform: perspective(1000px) translateZ(1px) scale(1); + will-change: transform; + transition: + all .3s ease, + transform .3s cubic-bezier(0.175, 0.885, 0.32, 1.4); + } + width: max-content; + padding: 2em; + } + &[id-prefix] { + display: none; + } + > sib-display { + display: block; + font-size: 0.9em; + color: #aaa; + > div { + margin-bottom: 1.5em; + > sib-display { + cursor: pointer; + display: block; + padding: 0.5em 2em; + } + } + } + } +} + +/* sub menu (right menu) */ + +#mainContainer > div { + display: flex; + flex-direction: row-reverse; + align-items: flex-start; + > sib-router { + display: block; + background-color: #ccc; + sib-route { + display: block; + > div { + position: relative; + padding: 1em 2em; + border-bottom: 1px solid #888; + } + &[active] { + font-weight: bold; + > div:before { + content: '<'; + position: absolute; + transform: translateX(-150%); + } + } + } + } + > div { + margin: 0.5em; + flex: 1 1 0px; + } +} diff --git a/src/styles/mixins.scss b/src/styles/mixins.scss new file mode 100644 index 0000000..9f2722d --- /dev/null +++ b/src/styles/mixins.scss @@ -0,0 +1,149 @@ +@charset "UTF-8"; +@mixin debug { + $hsla: hsla(random(360), 100%, 50%, 0.3); + background-color: $hsla; +} +@mixin log($v) { + font-family: '__log__:#{$v}'; +} + +@mixin offset($corner: 1, $x: 0, $y: 0) { + // corner: + // 1-----2 + // | | + // | | + // 3-----4 + position: absolute; + @if ($corner == 1) { + top: $y; + left: $x; + } + @if ($corner == 2) { + top: $y; + right: $x; + } + @if ($corner == 3) { + bottom: $y; + left: $x; + } + @if ($corner == 4) { + bottom: $y; + right: $x; + } +} + +@mixin position($top: 0, $right: null, $bottom: null, $left: null) { + // --1-- + // | | + // 4 2 + // | | + // --3-- + @if ($right == null) { + $right: $top; + } + + @if ($bottom == null) { + $bottom: $top; + } + + @if ($left == null) { + $left: $right; + } + + position: absolute; + top: $top; + left: $left; + right: $right; + bottom: $bottom; +} + +@mixin pos($pos: 5, $position: absolute) { + // ╔═──┐ ╔═══╗ ┌──═╗ + // │ 1 │ │ 2 │ │ 3 │ + // └───┘ └───┘ └───┘ + // ╔═──┐ ╔═══╗ ┌──═╗ + // ║ 4 │ ║ 5 ║ │ 6 ║ + // ╚═──┘ ╚═══╝ └──═╝ + // ┌───┐ ┌───┐ ┌───┐ + // │ 7 │ │ 8 │ │ 9 │ + // ╚═──┘ ╚═══╝ └──═╝ + + $mod: ($pos - 1) % 3; + + position: $position; + @if ($pos <= 6) { + top: 0; + } + @if ($mod <= 1) { + left: 0; + } + @if ($mod >= 1) { + right: 0; + } + @if ($pos >= 4) { + bottom: 0; + } +} + +@mixin border-shadow($border: top, $size: 4px, $opacity: 0.05, $color: black) { + &:after { + content: ''; + position: absolute; + top: if(($border == bottom), auto, 0); + left: if(($border == right), auto, 0); + right: if(($border == left), auto, 0); + bottom: if(($border == top), auto, 0); + background-image: linear-gradient(to #{$border}, $color, transparent); + #{$border}: -$size; + opacity: $opacity; + @if($border == top or $border == bottom) { + height: $size; + }@else{ + width: $size; + } + } +} + +@mixin align($horizontal: center, $vertical: middle) { + text-align: $horizontal; + white-space: nowrap; + &:after, + > * { + display: inline-block; + vertical-align: $vertical; + } + &:after { + content: ''; + height: 100%; + width: 0; + visibility: hidden; + } + > * { + //text-align:left; + white-space: normal; + } +} + +@mixin list-reset($deep: 0) { + padding: 0; + margin: 0; + display: block; + list-style: none; + @if ($deep == 0) { + > li { + padding: 0; + margin: 0; + display: block; + list-style: none; + } + } @else { + ul, + ol, + li { + padding: 0; + margin: 0; + display: block; + list-style: none; + } + } +} diff --git a/src/styles/variables.scss b/src/styles/variables.scss new file mode 100644 index 0000000..ed98ad7 --- /dev/null +++ b/src/styles/variables.scss @@ -0,0 +1,17 @@ +$color-white: #fff; +$color-black: #36383B; +$color-grey: #898F95; +$color-grey-light: #F0F3F6; + +$color-yellow: #FFB700; +$color-yellow-light: #FFD759; + +%button{ + border-radius: 100em +} + +%button-yellow{ + @extend %button; + background-color: $color-yellow; + color: $color-white; +} \ No newline at end of file diff --git a/src/variables.pug b/src/variables.pug new file mode 100644 index 0000000..dd28afe --- /dev/null +++ b/src/variables.pug @@ -0,0 +1,2 @@ +- var sdn = process.env.SDN || 'http://127.0.0.1:8000' +- var cdn = process.env.CDN || 'https://cdn.happy-dev.fr' \ No newline at end of file From c106160a78ef9c9ffa6cbace6876f057f1f3fa06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Fri, 28 Sep 2018 21:24:25 +0200 Subject: [PATCH 03/27] add readme --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index e69de29..2e11c80 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,20 @@ +# HD app +HD app is the magic tool that allows the Happy Dev network to thrive in a decentralized way. + +## Install + +clone then: + +* `make install` + +## Build + +* `make build` + +or + +* `make watch` + +## Run server + +* `make serve` From 9ddc8d9814198f441816b9e2089d1a0bb91a677a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Fri, 28 Sep 2018 21:51:07 +0200 Subject: [PATCH 04/27] add logo --- package-lock.json | 6379 +++++++++++++++++++++++++++++++++++++++++++++ www/img/logo.png | Bin 0 -> 4018 bytes 2 files changed, 6379 insertions(+) create mode 100644 package-lock.json create mode 100644 www/img/logo.png diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..afd2d93 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6379 @@ +{ + "name": "hd-app", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/cli": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.1.0.tgz", + "integrity": "sha512-+OdtGZcJNH92CnDqwaPxh7P7gddFyhoiHV3GBzgKpYbxIJlQ4WDEiC8m+AMcueYzlI+bXqrYlIU/Pp17NaC0hg==", + "dev": true, + "requires": { + "chokidar": "^2.0.3", + "commander": "^2.8.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "lodash": "^4.17.10", + "mkdirp": "^0.5.1", + "output-file-sync": "^2.0.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + } + }, + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/core": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.1.0.tgz", + "integrity": "sha512-9EWmD0cQAbcXSc+31RIoYgEHx3KQ2CCSMDBhnXrShWvo45TMw+3/55KVxlhkG53kw9tl87DqINgHDgFVhZJV/Q==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.0.0", + "@babel/helpers": "^7.1.0", + "@babel/parser": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0", + "convert-source-map": "^1.1.0", + "debug": "^3.1.0", + "json5": "^0.5.0", + "lodash": "^4.17.10", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0.tgz", + "integrity": "sha512-/BM2vupkpbZXq22l1ALO7MqXJZH2k8bKVv8Y+pABFnzWdztDB/ZLveP5At21vLz5c2YtSE6p7j2FZEsqafMz5Q==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.10", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", + "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", + "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-call-delegate": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz", + "integrity": "sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-define-map": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz", + "integrity": "sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/types": "^7.0.0", + "lodash": "^4.17.10" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", + "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz", + "integrity": "sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", + "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", + "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz", + "integrity": "sha512-0JZRd2yhawo79Rcm4w0LwSMILFmFXjugG3yqf+P/UsKsRS1mJCmMwwlHDlMg7Avr9LrvSpp4ZSULO9r8jpCzcw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0", + "lodash": "^4.17.10" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", + "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz", + "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", + "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz", + "integrity": "sha512-BvcDWYZRWVuDeXTYZWxekQNO5D4kO55aArwZOTFXw6rlLQA8ZaDicJR1sO47h+HrnCiDFiww0fSPV0d713KBGQ==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", + "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", + "dev": true, + "requires": { + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-wrap-function": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.1.0.tgz", + "integrity": "sha512-R6HU3dete+rwsdAfrOzTlE9Mcpk4RjU3aX3gi9grtmugQY0u79X7eogUvfXA5sI81Mfq1cn6AgxihfN33STjJA==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helpers": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.1.0.tgz", + "integrity": "sha512-V1jXUTNdTpBn37wqqN73U+eBpzlLHmxA4aDaghJBggmzly/FpIJMHXse9lgdzQQT4gs5jZ5NmYxOL8G3ROc29g==", + "dev": true, + "requires": { + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.0.tgz", + "integrity": "sha512-SmjnXCuPAlai75AFtzv+KCBcJ3sDDWbIn+WytKw1k+wAtEy6phqI2RqKh/zAnw53i1NR8su3Ep/UoqaKcimuLg==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz", + "integrity": "sha512-Fq803F3Jcxo20MXUSDdmZZXrPe6BWyGcWBPPNB/M7WaUYESKDeKMOGIxEzQOjGSmW/NWb6UaPZrtTB2ekhB/ew==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/plugin-syntax-async-generators": "^7.0.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.0.0.tgz", + "integrity": "sha512-kfVdUkIAGJIVmHmtS/40i/fg/AGnw/rsZBCaapY5yjeO5RA9m165Xbw9KMOu2nqXP5dTFjEjHdfNdoVcHv133Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.0.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz", + "integrity": "sha512-14fhfoPcNu7itSen7Py1iGN0gEm87hX/B+8nZPqkdmANyyYWYMY2pjA3r8WXbWVKMzfnSNS0xY8GVS0IjXi/iw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz", + "integrity": "sha512-JPqAvLG1s13B/AuoBjdBYvn38RqW6n1TzrQO839/sIpqLpbnXKacsAgpZHzLD83Sm8SDXMkkrAvEnJ25+0yIpw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.0.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0.tgz", + "integrity": "sha512-tM3icA6GhC3ch2SkmSxv7J/hCWKISzwycub6eGsDrFDgukD4dZ/I+x81XgW0YslS6mzNuQ1Cbzh5osjIMgepPQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.2.0" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0.tgz", + "integrity": "sha512-im7ged00ddGKAjcZgewXmp1vxSZQQywuQXe2B1A7kajjZmDeY/ekMPmWr9zJgveSaQH0k7BcGrojQhcK06l0zA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz", + "integrity": "sha512-UlSfNydC+XLj4bw7ijpldc1uZ/HB84vw+U6BTuqMdIEmz/LDe63w/GHtpQMdXWdqQZFeAI9PjnHe/vDhwirhKA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz", + "integrity": "sha512-5A0n4p6bIiVe5OvQPxBnesezsgFJdHhSs3uFSvaPdMqtsovajLZ+G2vZyvNe10EzJBWWo3AcHGKhAFUxqwp2dw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz", + "integrity": "sha512-Wc+HVvwjcq5qBg1w5RG9o9RVzmCaAg/Vp0erHCKpAYV8La6I94o4GQAmFYNmkzoMO6gzoOSulpKeSSz6mPEoZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0.tgz", + "integrity": "sha512-2EZDBl1WIO/q4DIkIp4s86sdp4ZifL51MoIviLY/gG/mLSuOIEg7J8o6mhbxOTvUJkaN50n+8u41FVsr5KLy/w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz", + "integrity": "sha512-rNmcmoQ78IrvNCIt/R9U+cixUHeYAzgusTFgIAv+wQb9HJU4szhpDD6e5GCACmj/JP5KxuCwM96bX3L9v4ZN/g==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0.tgz", + "integrity": "sha512-AOBiyUp7vYTqz2Jibe1UaAWL0Hl9JUXEgjFvvvcSc9MVDItv46ViXFw2F7SVt1B5k+KWjl44eeXOAk3UDEaJjQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0.tgz", + "integrity": "sha512-GWEMCrmHQcYWISilUrk9GDqH4enf3UmhOEbNbNrlNAX1ssH3MsS1xLOS6rdjRVPgA7XXVPn87tRkdTEoA/dxEg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.10" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.1.0.tgz", + "integrity": "sha512-rNaqoD+4OCBZjM7VaskladgqnZ1LO6o2UxuWSDzljzW21pN1KXkB7BstAVweZdxQkHAujps5QMNOTWesBciKFg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.1.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0.tgz", + "integrity": "sha512-ubouZdChNAv4AAWAgU7QKbB93NU5sHwInEWfp+/OzJKA02E6Woh9RVoX4sZrbRwtybky/d7baTUqwFx+HgbvMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0.tgz", + "integrity": "sha512-Fr2GtF8YJSXGTyFPakPFB4ODaEKGU04bPsAllAIabwoXdFrPxL0LVXQX5dQWoxOjjgozarJcC9eWGsj0fD6Zsg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz", + "integrity": "sha512-00THs8eJxOJUFVx1w8i1MBF4XH4PsAjKjQ1eqN/uCH3YKwP21GCKfrn6YZFZswbOk9+0cw1zGQPHVc1KBlSxig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.1.3" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0.tgz", + "integrity": "sha512-w2vfPkMqRkdxx+C71ATLJG30PpwtTpW7DDdLqYt2acXU7YjztzeWW2Jk1T6hKqCLYCcEA5UQM/+xTAm+QCSnuQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.1.0.tgz", + "integrity": "sha512-uZt9kD1Pp/JubkukOGQml9tqAeI8NkE98oZnHZ2qHRElmeKCodbTZgOEUtujSCSLhHSBWbzNiFSDIMC4/RBTLQ==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0.tgz", + "integrity": "sha512-TlxKecN20X2tt2UEr2LNE6aqA0oPeMT1Y3cgz8k4Dn1j5ObT8M3nl9aA37LLklx0PBZKETC9ZAf9n/6SujTuXA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.1.0.tgz", + "integrity": "sha512-VxOa1TMlFMtqPW2IDYZQaHsFrq/dDoIjgN098NowhexhZcz3UGlvPgZXuE1jEvNygyWyxRacqDpCZt+par1FNg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0.tgz", + "integrity": "sha512-1NTDBWkeNXgpUcyoVFxbr9hS57EpZYXpje92zv0SUzjdu3enaRwF/l3cmyRnXLtIdyJASyiS6PtybK+CgKf7jA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.1.0.tgz", + "integrity": "sha512-wt8P+xQ85rrnGNr2x1iV3DW32W8zrB6ctuBkYBbf5/ZzJY99Ob4MFgsZDFgczNU76iy9PWsy4EuxOliDjdKw6A==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.1.0.tgz", + "integrity": "sha512-wtNwtMjn1XGwM0AXPspQgvmE6msSJP15CX2RVfpTSTNPLhKhaOjaIfBaVfj4iUZ/VrFSodcFedwtPg/NxwQlPA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0.tgz", + "integrity": "sha512-8EDKMAsitLkiF/D4Zhe9CHEE2XLh4bfLbb9/Zf3FgXYQOZyZYyg7EAel/aT2A7bHv62jwHf09q2KU/oEexr83g==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.1.0.tgz", + "integrity": "sha512-enrRtn5TfRhMmbRwm7F8qOj0qEYByqUvTttPEGimcBH4CJHphjyK1Vg7sdU7JjeEmgSpM890IT/efS2nMHwYig==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz", + "integrity": "sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.1.0.tgz", + "integrity": "sha512-/O02Je1CRTSk2SSJaq0xjwQ8hG4zhZGNjE8psTsSNPXyLRCODv7/PBozqT5AmQMzp7MI3ndvMhGdqp9c96tTEw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.1.0.tgz", + "integrity": "sha512-vHV7oxkEJ8IHxTfRr3hNGzV446GAb+0hgbA7o/0Jd76s+YzccdWuTU296FOCOl/xweU4t/Ya4g41yWz80RFCRw==", + "dev": true, + "requires": { + "@babel/helper-call-delegate": "^7.1.0", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz", + "integrity": "sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==", + "dev": true, + "requires": { + "regenerator-transform": "^0.13.3" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0.tgz", + "integrity": "sha512-g/99LI4vm5iOf5r1Gdxq5Xmu91zvjhEG5+yZDJW268AZELAu4J1EiFLnkSG3yuUsZyOipVOVUKoGPYwfsTymhw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0.tgz", + "integrity": "sha512-L702YFy2EvirrR4shTj0g2xQp7aNwZoWNCkNu2mcoU0uyzMl0XRwDSwzB/xp6DSUFiBmEXuyAyEN16LsgVqGGQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0.tgz", + "integrity": "sha512-LFUToxiyS/WD+XEWpkx/XJBrUXKewSZpzX68s+yEOtIbdnsRjpryDw9U06gYc6klYEij/+KQVRnD3nz3AoKmjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0.tgz", + "integrity": "sha512-vA6rkTCabRZu7Nbl9DfLZE1imj4tzdWcg5vtdQGvj+OH9itNNB6hxuRMHuIY8SGnEt1T9g5foqs9LnrHzsqEFg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0.tgz", + "integrity": "sha512-1r1X5DO78WnaAIvs5uC48t41LLckxsYklJrZjNKcevyz83sF2l4RHbw29qrCPr/6ksFsdfRpT/ZgxNWHXRnffg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz", + "integrity": "sha512-uJBrJhBOEa3D033P95nPHu3nbFwFE9ZgXsfEitzoIXIwqAZWk7uXcg06yFKXz9FSxBH5ucgU/cYdX0IV8ldHKw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.1.3" + } + }, + "@babel/preset-env": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.1.0.tgz", + "integrity": "sha512-ZLVSynfAoDHB/34A17/JCZbyrzbQj59QC1Anyueb4Bwjh373nVPq5/HMph0z+tCmcDjXDe+DlKQq9ywQuvWrQg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.1.0", + "@babel/plugin-proposal-json-strings": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.0.0", + "@babel/plugin-syntax-async-generators": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.1.0", + "@babel/plugin-transform-block-scoped-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.1.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-dotall-regex": "^7.0.0", + "@babel/plugin-transform-duplicate-keys": "^7.0.0", + "@babel/plugin-transform-exponentiation-operator": "^7.1.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.1.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-amd": "^7.1.0", + "@babel/plugin-transform-modules-commonjs": "^7.1.0", + "@babel/plugin-transform-modules-systemjs": "^7.0.0", + "@babel/plugin-transform-modules-umd": "^7.1.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.1.0", + "@babel/plugin-transform-parameters": "^7.1.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typeof-symbol": "^7.0.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "browserslist": "^4.1.0", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" + } + }, + "@babel/template": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.0.tgz", + "integrity": "sha512-yZ948B/pJrwWGY6VxG6XRFsVTee3IQ7bihq9zFpM00Vydu6z5Xwg0C3J644kxI9WOTzd+62xcIsQ+AT1MGhqhA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/traverse": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.0.tgz", + "integrity": "sha512-bwgln0FsMoxm3pLOgrrnGaXk18sSM9JNf1/nHC/FksmNGFbYnPWY4GYCfLxyP1KRmfsxqkRpfoa6xr6VuuSxdw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.0.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "debug": "^3.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + }, + "dependencies": { + "debug": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "@types/babel-types": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.4.tgz", + "integrity": "sha512-WiZhq3SVJHFRgRYLXvpf65XnV6ipVHhnNaNvE8yCimejrGglkg38kEj0JcizqwSHxmPSjcTlig/6JouxLGEhGw==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.3", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.3.tgz", + "integrity": "sha512-lyJ8sW1PbY3uwuvpOBZ9zMYKshMnQpXmeDHh8dj9j2nJm/xrW0FgB5gLSYOArj5X0IfaXnmhFoJnhS4KbqIMug==", + "dev": true, + "requires": { + "@types/babel-types": "*" + } + }, + "@webcomponents/html-imports": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webcomponents/html-imports/-/html-imports-1.2.0.tgz", + "integrity": "sha512-EIy8RqSfsoJ5Tk2wsfaSX4IKhXg8oYCq/xVEz8LEELXhv5tup/iZ/SInoz8SLtZGFP+vjUh2oRsgkUMhbrr0GQ==" + }, + "@webcomponents/webcomponentsjs": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@webcomponents/webcomponentsjs/-/webcomponentsjs-1.2.7.tgz", + "integrity": "sha512-011DyXjpQoZ7f6oMCpYTYgrzsWJ7+0fEbt6Y8KcfZZa3ZdJ/ttoMgeH75SqHDe7aNdolfMhCvrSNNgh9wcsgpA==" + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "dev": true, + "requires": { + "mime-types": "~2.1.18", + "negotiator": "0.6.1" + } + }, + "acorn": { + "version": "3.3.0", + "resolved": "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + }, + "acorn-globals": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", + "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", + "dev": true, + "requires": { + "acorn": "^4.0.4" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": 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==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": 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==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "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=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "async-each-series": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI=", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "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=", + "dev": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, + "axios": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", + "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", + "dev": true, + "requires": { + "follow-redirects": "^1.2.5", + "is-buffer": "^1.1.5" + } + }, + "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=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + }, + "dependencies": { + "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=", + "dev": true + } + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } + }, + "binary-extensions": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", + "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", + "dev": true + }, + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", + "dev": true + }, + "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=", + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.1", + "http-errors": "~1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "~2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "~1.6.15" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", + "dev": true + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", + "dev": true + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "dev": true, + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": ">= 1.3.1 < 2" + } + } + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "browser-sync": { + "version": "2.24.7", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.24.7.tgz", + "integrity": "sha512-NqXek0cPNEayQm77VGnD+qrwcVBTKMIQ9bdP6IWDRUTU1Bk7tZeq5QR3OG5Rr36Rao1t+Vx1QnfolHvvr5qsTA==", + "dev": true, + "requires": { + "browser-sync-ui": "v1.0.1", + "bs-recipes": "1.3.4", + "chokidar": "1.7.0", + "connect": "3.6.6", + "connect-history-api-fallback": "^1.5.0", + "dev-ip": "^1.0.1", + "easy-extender": "^2.3.4", + "eazy-logger": "3.0.2", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "3.0.1", + "http-proxy": "1.15.2", + "immutable": "3.8.2", + "localtunnel": "1.9.0", + "micromatch": "2.3.11", + "opn": "5.3.0", + "portscanner": "2.1.1", + "qs": "6.2.3", + "raw-body": "^2.3.2", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "serve-index": "1.9.1", + "serve-static": "1.13.2", + "server-destroy": "1.0.1", + "socket.io": "2.1.1", + "ua-parser-js": "0.7.17", + "yargs": "6.4.0" + }, + "dependencies": { + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + } + } + }, + "browser-sync-ui": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-1.0.1.tgz", + "integrity": "sha512-RIxmwVVcUFhRd1zxp7m2FfLnXHf59x4Gtj8HFwTA//3VgYI3AKkaQAuDL8KDJnE59XqCshxZa13JYuIWtZlKQg==", + "dev": true, + "requires": { + "async-each-series": "0.1.1", + "connect-history-api-fallback": "^1.1.0", + "immutable": "^3.7.6", + "server-destroy": "1.0.1", + "socket.io-client": "2.0.4", + "stream-throttle": "^0.1.3" + } + }, + "browserslist": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.1.1.tgz", + "integrity": "sha512-VBorw+tgpOtZ1BYhrVSVTzTt/3+vSE3eFUh0N2GCFK1HffceOaf32YS/bs6WiFhjDAblAFrx85jMy3BG9fBK2Q==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000884", + "electron-to-chromium": "^1.3.62", + "node-releases": "^1.0.0-alpha.11" + } + }, + "bs-recipes": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "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" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } + } + }, + "caniuse-lite": { + "version": "1.0.30000888", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000888.tgz", + "integrity": "sha512-vftg+5p/lPsQGpnhSo/yBuYL36ai/cyjLvU3dOPJY1kkKrekLWIy8SLm+wzjX0hpCUdFTasC4/ZT7uqw4rKOnQ==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "dev": true, + "requires": { + "is-regex": "^1.0.3" + } + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" + } + }, + "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==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "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=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.18.0.tgz", + "integrity": "sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ==", + "dev": true + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "~1.3.2", + "utils-merge": "1.0.1" + } + }, + "connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", + "dev": true + }, + "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=", + "dev": true + }, + "constantinople": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz", + "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==", + "dev": true, + "requires": { + "@types/babel-types": "^7.0.0", + "@types/babylon": "^6.16.2", + "babel-types": "^6.26.0", + "babylon": "^6.18.0" + } + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "dev": true + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": 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=", + "dev": true + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "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=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", + "dev": true + }, + "doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", + "dev": true + }, + "easy-extender": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "eazy-logger": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.0.2.tgz", + "integrity": "sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw=", + "dev": true, + "requires": { + "tfunk": "^3.0.1" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.72", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.72.tgz", + "integrity": "sha512-OFbXEC01Lq7A66e3UywkvWYNN00HO1I9MAPereGe0NIXrt2MeaovL1bbY+951HKG0euUdPBe0L7yfKxgqxBMMw==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "engine.io": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", + "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "engine.io-client": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.6.tgz", + "integrity": "sha512-hnuHsFluXnsKOndS4Hv6SvUrgdYx1pk2NqfaDMW+GWdgfU3+/V25Cj7I8a0x92idSpa5PIhJRKxPvp9mnoLsfg==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz", + "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.4", + "has-binary2": "~1.0.2" + } + }, + "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==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "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=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", + "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "express": { + "version": "4.16.3", + "resolved": "http://registry.npmjs.org/express/-/express-4.16.3.tgz", + "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.3", + "qs": "6.5.1", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "finalhandler": { + "version": "1.1.1", + "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" + } + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "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==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "dev": true, + "requires": { + "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" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "follow-redirects": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.8.tgz", + "integrity": "sha512-sy1mXPmv7kLAMKW/8XofG7o9T+6gAjzdZK4AJF6ryqQYUa/hnzgiypoeUecZ53x7XiqKNEpNqLtS97MshW2nxg==", + "dev": true, + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + }, + "dependencies": { + "combined-stream": { + "version": "1.0.6", + "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + } + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "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==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "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" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "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" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "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" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": 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", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "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" + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "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==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "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" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", + "dev": true + }, + "globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true, + "requires": { + "ajv": "^5.1.0", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "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=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "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==", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "dependencies": { + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + } + } + }, + "http-proxy": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz", + "integrity": "sha1-ZC/cr/5S00SNK9o7AHnpQJBk2jE=", + "dev": true, + "requires": { + "eventemitter3": "1.x.x", + "requires-port": "1.x.x" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=", + "dev": true + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "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=", + "dev": true + }, + "ipaddr.js": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", + "dev": true + }, + "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=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "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=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "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=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-expression": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", + "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=", + "dev": true, + "requires": { + "acorn": "~4.0.2", + "object-assign": "^4.0.1" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "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=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-number-like": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", + "dev": true, + "requires": { + "lodash.isfinite": "^3.3.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "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==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-base64": { + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", + "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==", + "dev": true + }, + "js-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.4.tgz", + "integrity": "sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow==", + "dev": true + }, + "js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "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=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", + "dev": true, + "requires": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "limiter": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.3.tgz", + "integrity": "sha512-zrycnIMsLw/3ZxTbW7HCez56rcFGecWTx5OZNplzcXUUmJLmoYArC6qdJzmAN5BWiNXGcpjhF9RQ1HSv5zebEw==", + "dev": true + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "localtunnel": { + "version": "1.9.0", + "resolved": "http://registry.npmjs.org/localtunnel/-/localtunnel-1.9.0.tgz", + "integrity": "sha512-wCIiIHJ8kKIcWkTQE3m1VRABvsH2ZuOkiOpZUofUCf6Q42v3VIZ+Q0YfX1Z4sYDRj0muiKL1bLvz1FeoxsPO0w==", + "dev": true, + "requires": { + "axios": "0.17.1", + "debug": "2.6.8", + "openurl": "1.1.1", + "yargs": "6.6.0" + }, + "dependencies": { + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "yargs": { + "version": "6.6.0", + "resolved": "http://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "dev": true, + "requires": { + "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": "^4.2.0" + } + } + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true, + "optional": true + }, + "lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", + "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "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" + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + }, + "mime-db": { + "version": "1.36.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", + "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==", + "dev": true + }, + "mime-types": { + "version": "2.1.20", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", + "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "dev": true, + "requires": { + "mime-db": "~1.36.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nan": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", + "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "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" + } + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + } + } + }, + "node-releases": { + "version": "1.0.0-alpha.12", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.0-alpha.12.tgz", + "integrity": "sha512-VPB4rTPqpVyWKBHbSa4YPFme3+8WHsOSpvbp0Mfj0bWsC8TEjt4HQrLl1hsBDELlp1nB4lflSgSuGTYiuyaP7Q==", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, + "node-sass": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.3.tgz", + "integrity": "sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==", + "dev": true, + "requires": { + "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.assign": "^4.2.0", + "lodash.clonedeep": "^4.3.2", + "lodash.mergewith": "^4.6.0", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.10.0", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "2.87.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "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" + } + }, + "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 + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "normalize.css": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.0.tgz", + "integrity": "sha512-iXcbM3NWr0XkNyfiSBsoPezi+0V92P9nj84yVV1/UZxRUrGczgX/X91KMAGM0omWLY2+2Q1gKD/XRn4gQRDB2A==" + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "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=", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-path": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", + "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "openurl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=", + "dev": true + }, + "opn": { + "version": "5.3.0", + "resolved": "http://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "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=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "output-file-sync": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-2.0.1.tgz", + "integrity": "sha512-mDho4qm7WgIXIGf4eYU1RHN2UU5tPfVYVSRwDJw0uTmj35DQUt/eNp19N7v6T3SrR0ESTEf2up2CGO73qI35zQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "is-plain-obj": "^1.1.0", + "mkdirp": "^0.5.1" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true, + "optional": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "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=", + "dev": true + }, + "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==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "portscanner": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz", + "integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=", + "dev": true, + "requires": { + "async": "1.5.2", + "is-number-like": "^1.0.3" + } + }, + "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=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "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==", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "requires": { + "asap": "~2.0.3" + } + }, + "proxy-addr": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.8.0" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "pug": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.3.tgz", + "integrity": "sha1-ccuoJTfJWl6rftBGluQiH1Oqh44=", + "dev": true, + "requires": { + "pug-code-gen": "^2.0.1", + "pug-filters": "^3.1.0", + "pug-lexer": "^4.0.0", + "pug-linker": "^3.0.5", + "pug-load": "^2.0.11", + "pug-parser": "^5.0.0", + "pug-runtime": "^2.0.4", + "pug-strip-comments": "^1.0.3" + } + }, + "pug-attrs": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.3.tgz", + "integrity": "sha1-owlflw5kFR972tlX7vVftdeQXRU=", + "dev": true, + "requires": { + "constantinople": "^3.0.1", + "js-stringify": "^1.0.1", + "pug-runtime": "^2.0.4" + } + }, + "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=", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "commander": "^2.8.1", + "mkdirp": "^0.5.1", + "pug": "^2.0.0-alpha7" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "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" + } + }, + "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 + } + } + }, + "pug-code-gen": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.1.tgz", + "integrity": "sha1-CVHsgyJddNjPxHan+Zolm199BQw=", + "dev": true, + "requires": { + "constantinople": "^3.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.1", + "pug-attrs": "^2.0.3", + "pug-error": "^1.3.2", + "pug-runtime": "^2.0.4", + "void-elements": "^2.0.1", + "with": "^5.0.0" + } + }, + "pug-error": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.2.tgz", + "integrity": "sha1-U659nSm7A89WRJOgJhCfVMR/XyY=", + "dev": true + }, + "pug-filters": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.0.tgz", + "integrity": "sha1-JxZVVbwEwjbkqisDZiRt+gIbYm4=", + "dev": true, + "requires": { + "clean-css": "^4.1.11", + "constantinople": "^3.0.1", + "jstransformer": "1.0.0", + "pug-error": "^1.3.2", + "pug-walk": "^1.1.7", + "resolve": "^1.1.6", + "uglify-js": "^2.6.1" + } + }, + "pug-lexer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.0.0.tgz", + "integrity": "sha1-IQwYRX7y4XYCQnQMXmR715TOwng=", + "dev": true, + "requires": { + "character-parser": "^2.1.1", + "is-expression": "^3.0.0", + "pug-error": "^1.3.2" + } + }, + "pug-linker": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.5.tgz", + "integrity": "sha1-npp65ABWgtAn3uuWsAD4juuDoC8=", + "dev": true, + "requires": { + "pug-error": "^1.3.2", + "pug-walk": "^1.1.7" + } + }, + "pug-load": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.11.tgz", + "integrity": "sha1-5kjlftET/iwfRdV4WOorrWvAFSc=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "pug-walk": "^1.1.7" + } + }, + "pug-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.0.tgz", + "integrity": "sha1-45Stmz/KkxI5QK/4hcBuRKt+aOQ=", + "dev": true, + "requires": { + "pug-error": "^1.3.2", + "token-stream": "0.0.1" + } + }, + "pug-runtime": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.4.tgz", + "integrity": "sha1-4XjhvaaKsujArPybztLFT9iM61g=", + "dev": true + }, + "pug-strip-comments": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.3.tgz", + "integrity": "sha1-8VWVkiBu3G+FMQ2s9K+0igJa9Z8=", + "dev": true, + "requires": { + "pug-error": "^1.3.2" + } + }, + "pug-walk": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.7.tgz", + "integrity": "sha1-wA1cUSi6xYBr7BXSt+fNq+QlMfM=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "qs": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", + "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", + "dev": true + }, + "randomatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", + "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true + }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "dev": true, + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "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=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "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" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz", + "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.3.tgz", + "integrity": "sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==", + "dev": true, + "requires": { + "private": "^0.1.6" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpu-core": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.2.0.tgz", + "integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^7.0.0", + "regjsgen": "^0.4.0", + "regjsparser": "^0.3.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.0.2" + } + }, + "regjsgen": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.4.0.tgz", + "integrity": "sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==", + "dev": true + }, + "regjsparser": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.3.0.tgz", + "integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "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=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.87.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.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.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "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=", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "resp-modifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=", + "dev": true, + "requires": { + "debug": "^2.2.0", + "minimatch": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", + "dev": true + }, + "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==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" + }, + "dependencies": { + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "requires": { + "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" + } + }, + "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=", + "dev": true, + "requires": { + "camelcase": "^3.0.0" + } + } + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "semver": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "dev": true + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true + } + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, + "server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "simple-line-icons": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/simple-line-icons/-/simple-line-icons-2.4.1.tgz", + "integrity": "sha1-t1vFoNh+UwkowszaVzUnS7JW8jQ=" + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "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==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socket.io": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", + "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", + "dev": true, + "requires": { + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.1.1", + "socket.io-parser": "~3.2.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "engine.io-client": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "socket.io-client": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", + "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.2.0", + "to-array": "0.1.4" + } + }, + "socket.io-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + } + } + } + }, + "socket.io-adapter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", + "dev": true + }, + "socket.io-client": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.4.tgz", + "integrity": "sha1-CRilUkBtxeVAs4Dc2Xr8SmQzL44=", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~2.6.4", + "engine.io-client": "~3.1.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.1.1", + "to-array": "0.1.4" + } + }, + "socket.io-parser": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.3.tgz", + "integrity": "sha512-g0a2HPqLguqAczs3dMECuA1RgoGFPyvDqcbaDEdCWY9g59kdUAz3YRmaJBNKXflrHNwB7Q12Gkf/0CZXfdHR7g==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "has-binary2": "~1.0.2", + "isarray": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "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" + } + }, + "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=", + "dev": true + }, + "spdx-correct": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.1.tgz", + "integrity": "sha512-hxSPZbRZvSDuOvADntOElzJpenIR7wXJkuoUcUtS0erbgt2fgeaoPIYretfKpslMhfFDY4k0MZ2F5CUzhBsSvQ==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", + "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sshpk": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "dev": true, + "requires": { + "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" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stream-throttle": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=", + "dev": true, + "requires": { + "commander": "^2.2.0", + "limiter": "^1.0.5" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": 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==", + "dev": true, + "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", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + }, + "tfunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz", + "integrity": "sha1-OORBT8ZJd9h6/apy+sttKfgve1s=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "object-path": "^0.9.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "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" + } + }, + "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 + } + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "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=", + "dev": true + }, + "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=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "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=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "token-stream": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz", + "integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo=", + "dev": true + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "dev": true, + "requires": { + "punycode": "^1.4.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "glob": "^7.1.2" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.18" + } + }, + "ua-parser-js": { + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", + "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==", + "dev": true + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "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=", + "dev": true, + "optional": true + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz", + "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz", + "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "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 + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", + "dev": true, + "optional": true + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": 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==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "window-size": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", + "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=", + "dev": true + }, + "with": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", + "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=", + "dev": true, + "requires": { + "acorn": "^3.1.0", + "acorn-globals": "^3.0.0" + } + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "6.4.0", + "resolved": "http://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz", + "integrity": "sha1-gW4ahm1VmMzzTlWW3c4i2S2kkNQ=", + "dev": true, + "requires": { + "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", + "window-size": "^0.2.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.1.0" + } + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "dev": true, + "requires": { + "camelcase": "^3.0.0" + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + } + } +} diff --git a/www/img/logo.png b/www/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d47b12090ca2650956f554ac22fccb7253c2aa2a GIT binary patch literal 4018 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 literal 0 HcmV?d00001 From cb7554f6c41d88a83ac5486add245a278d373044 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Fri, 28 Sep 2018 21:55:58 +0200 Subject: [PATCH 05/27] add icons font --- www/fonts/simple-line-icons.eot | Bin 0 -> 83520 bytes www/fonts/simple-line-icons.svg | 388 ++++++++++++++++++++++++++++++ www/fonts/simple-line-icons.ttf | Bin 0 -> 83316 bytes www/fonts/simple-line-icons.woff | Bin 0 -> 48692 bytes www/fonts/simple-line-icons.woff2 | Bin 0 -> 41472 bytes 5 files changed, 388 insertions(+) create mode 100644 www/fonts/simple-line-icons.eot create mode 100644 www/fonts/simple-line-icons.svg create mode 100644 www/fonts/simple-line-icons.ttf create mode 100644 www/fonts/simple-line-icons.woff create mode 100644 www/fonts/simple-line-icons.woff2 diff --git a/www/fonts/simple-line-icons.eot b/www/fonts/simple-line-icons.eot new file mode 100644 index 0000000000000000000000000000000000000000..66e8f53be116455883d1941728725a5084fdb882 GIT binary patch literal 83520 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 z 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%0As*TOWTcC+4eBc8B)%4js( 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 G$NgV003MP6 literal 0 HcmV?d00001 diff --git a/www/fonts/simple-line-icons.svg b/www/fonts/simple-line-icons.svg new file mode 100644 index 0000000..ed0de1b --- /dev/null +++ b/www/fonts/simple-line-icons.svg @@ -0,0 +1,388 @@ + + + +Copyright (C) 2018 by original authors @ fontello.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/www/fonts/simple-line-icons.ttf b/www/fonts/simple-line-icons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fabbda34a3922506c85d405b98cb793b6589ddf5 GIT binary patch literal 83316 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 Wg6504^<{SR?UMSPSSUt0?*9T{E(ZDl literal 0 HcmV?d00001 diff --git a/www/fonts/simple-line-icons.woff b/www/fonts/simple-line-icons.woff new file mode 100644 index 0000000000000000000000000000000000000000..052fed20f5f45c60fd0b15fbba04ce5215b6b934 GIT binary patch literal 48692 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 z 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 literal 0 HcmV?d00001 diff --git a/www/fonts/simple-line-icons.woff2 b/www/fonts/simple-line-icons.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c2c69aa59140ebfc1eed8007382d9aa65b17b211 GIT binary patch literal 41472 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 literal 0 HcmV?d00001 From a78b7ac388837b6277eb6cf2edcdffd45e66c181 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Fri, 28 Sep 2018 22:29:50 +0200 Subject: [PATCH 06/27] add submodules --- www/lib/sib-chat | 1 + www/lib/sib-core | 1 + www/lib/sib-router | 1 + 3 files changed, 3 insertions(+) create mode 160000 www/lib/sib-chat create mode 160000 www/lib/sib-core create mode 160000 www/lib/sib-router diff --git a/www/lib/sib-chat b/www/lib/sib-chat new file mode 160000 index 0000000..24192a8 --- /dev/null +++ b/www/lib/sib-chat @@ -0,0 +1 @@ +Subproject commit 24192a89c1bc19f7faa06546ba1b798ad717e04b diff --git a/www/lib/sib-core b/www/lib/sib-core new file mode 160000 index 0000000..ffe4cdc --- /dev/null +++ b/www/lib/sib-core @@ -0,0 +1 @@ +Subproject commit ffe4cdc86041a32e8a2cc7dbd60aafc9edd1eaf5 diff --git a/www/lib/sib-router b/www/lib/sib-router new file mode 160000 index 0000000..5bd3e54 --- /dev/null +++ b/www/lib/sib-router @@ -0,0 +1 @@ +Subproject commit 5bd3e541b92f4998af96b959a6304527824ed7f8 From 1c7e7f3e379ab9a831f39a0fcace3658f8e897b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Sat, 29 Sep 2018 00:09:27 +0200 Subject: [PATCH 07/27] move pages --- src/index.pug | 20 +++++++++---------- ...channel-chat.pug => page-channel-chat.pug} | 0 ...nel-create.pug => page-channel-create.pug} | 0 ...channel-edit.pug => page-channel-edit.pug} | 0 ...l-profile.pug => page-channel-profile.pug} | 0 src/{pages/channel.pug => page-channel.pug} | 8 ++++---- src/{pages/channels.pug => page-channels.pug} | 0 .../job-offers.pug => page-job-offers.pug} | 0 .../member-chat.pug => page-member-chat.pug} | 0 .../member-edit.pug => page-member-edit.pug} | 0 ...er-profile.pug => page-member-profile.pug} | 0 src/{pages/member.pug => page-member.pug} | 6 +++--- src/{pages/members.pug => page-members.pug} | 0 ...project-chat.pug => page-project-chat.pug} | 0 ...ect-create.pug => page-project-create.pug} | 0 ...project-edit.pug => page-project-edit.pug} | 0 ...t-profile.pug => page-project-profile.pug} | 0 src/{pages/project.pug => page-project.pug} | 8 ++++---- src/{pages/projects.pug => page-projects.pug} | 0 19 files changed, 21 insertions(+), 21 deletions(-) rename src/{pages/channel-chat.pug => page-channel-chat.pug} (100%) rename src/{pages/channel-create.pug => page-channel-create.pug} (100%) rename src/{pages/channel-edit.pug => page-channel-edit.pug} (100%) rename src/{pages/channel-profile.pug => page-channel-profile.pug} (100%) rename src/{pages/channel.pug => page-channel.pug} (70%) rename src/{pages/channels.pug => page-channels.pug} (100%) rename src/{pages/job-offers.pug => page-job-offers.pug} (100%) rename src/{pages/member-chat.pug => page-member-chat.pug} (100%) rename src/{pages/member-edit.pug => page-member-edit.pug} (100%) rename src/{pages/member-profile.pug => page-member-profile.pug} (100%) rename src/{pages/member.pug => page-member.pug} (72%) rename src/{pages/members.pug => page-members.pug} (100%) rename src/{pages/project-chat.pug => page-project-chat.pug} (100%) rename src/{pages/project-create.pug => page-project-create.pug} (100%) rename src/{pages/project-edit.pug => page-project-edit.pug} (100%) rename src/{pages/project-profile.pug => page-project-profile.pug} (100%) rename src/{pages/project.pug => page-project.pug} (70%) rename src/{pages/projects.pug => page-projects.pug} (100%) diff --git a/src/index.pug b/src/index.pug index 10d9265..ad00247 100644 --- a/src/index.pug +++ b/src/index.pug @@ -15,22 +15,22 @@ html(lang="en") include menu.pug main#mainContainer //- #dashboard(hidden) - include pages/dashboard.pug + include page-dashboard.pug #members(hidden) - include pages/members.pug + include page-members.pug #member(hidden) - div include pages/member.pug + div include page-member.pug #job-offers(hidden) - include pages/job-offers.pug + include page-job-offers.pug #projects(hidden) - include pages/projects.pug + include page-projects.pug #project(hidden) - include pages/project.pug + include page-project.pug //- #client-creation(hidden) - include pages/client-creation.pug + include page-client-creation.pug #channels(hidden) - include pages/channels.pug + include page-channels.pug #channel(hidden) - include pages/channel.pug + include page-channel.pug //- #search(hidden) - include pages/search.pug \ No newline at end of file + include page-search.pug \ No newline at end of file diff --git a/src/pages/channel-chat.pug b/src/page-channel-chat.pug similarity index 100% rename from src/pages/channel-chat.pug rename to src/page-channel-chat.pug diff --git a/src/pages/channel-create.pug b/src/page-channel-create.pug similarity index 100% rename from src/pages/channel-create.pug rename to src/page-channel-create.pug diff --git a/src/pages/channel-edit.pug b/src/page-channel-edit.pug similarity index 100% rename from src/pages/channel-edit.pug rename to src/page-channel-edit.pug diff --git a/src/pages/channel-profile.pug b/src/page-channel-profile.pug similarity index 100% rename from src/pages/channel-profile.pug rename to src/page-channel-profile.pug diff --git a/src/pages/channel.pug b/src/page-channel.pug similarity index 70% rename from src/pages/channel.pug rename to src/page-channel.pug index e91ee19..859b65f 100644 --- a/src/pages/channel.pug +++ b/src/page-channel.pug @@ -9,7 +9,7 @@ sib-route(name='channel-create') div Nouveau #network-views-container - include channel-chat.pug - include channel-profile.pug - include channel-edit.pug - include channel-create.pug + include page-channel-chat.pug + include page-channel-profile.pug + include page-channel-edit.pug + include page-channel-create.pug diff --git a/src/pages/channels.pug b/src/page-channels.pug similarity index 100% rename from src/pages/channels.pug rename to src/page-channels.pug diff --git a/src/pages/job-offers.pug b/src/page-job-offers.pug similarity index 100% rename from src/pages/job-offers.pug rename to src/page-job-offers.pug diff --git a/src/pages/member-chat.pug b/src/page-member-chat.pug similarity index 100% rename from src/pages/member-chat.pug rename to src/page-member-chat.pug diff --git a/src/pages/member-edit.pug b/src/page-member-edit.pug similarity index 100% rename from src/pages/member-edit.pug rename to src/page-member-edit.pug diff --git a/src/pages/member-profile.pug b/src/page-member-profile.pug similarity index 100% rename from src/pages/member-profile.pug rename to src/page-member-profile.pug diff --git a/src/pages/member.pug b/src/page-member.pug similarity index 72% rename from src/pages/member.pug rename to src/page-member.pug index d815b25..18946ae 100644 --- a/src/pages/member.pug +++ b/src/page-member.pug @@ -7,6 +7,6 @@ sib-route(name='member-edit') div Éditer #member-views-container - include member-chat.pug - include member-profile.pug - include member-edit.pug + include page-member-chat.pug + include page-member-profile.pug + include page-member-edit.pug diff --git a/src/pages/members.pug b/src/page-members.pug similarity index 100% rename from src/pages/members.pug rename to src/page-members.pug diff --git a/src/pages/project-chat.pug b/src/page-project-chat.pug similarity index 100% rename from src/pages/project-chat.pug rename to src/page-project-chat.pug diff --git a/src/pages/project-create.pug b/src/page-project-create.pug similarity index 100% rename from src/pages/project-create.pug rename to src/page-project-create.pug diff --git a/src/pages/project-edit.pug b/src/page-project-edit.pug similarity index 100% rename from src/pages/project-edit.pug rename to src/page-project-edit.pug diff --git a/src/pages/project-profile.pug b/src/page-project-profile.pug similarity index 100% rename from src/pages/project-profile.pug rename to src/page-project-profile.pug diff --git a/src/pages/project.pug b/src/page-project.pug similarity index 70% rename from src/pages/project.pug rename to src/page-project.pug index 3b873d3..ab0c0b4 100644 --- a/src/pages/project.pug +++ b/src/page-project.pug @@ -9,7 +9,7 @@ sib-route(name='project-create') div Nouveau #project-views-container - include project-chat.pug - include project-profile.pug - include project-edit.pug - include project-create.pug + include page-project-chat.pug + include page-project-profile.pug + include page-project-edit.pug + include page-project-create.pug diff --git a/src/pages/projects.pug b/src/page-projects.pug similarity index 100% rename from src/pages/projects.pug rename to src/page-projects.pug From b74f4f9871222bccb9853f0285af055a20fb16ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Sat, 29 Sep 2018 00:48:46 +0200 Subject: [PATCH 08/27] fix WebComponentsReady --- src/page-channel-profile.pug | 34 ++++++++++++------------- src/page-job-offers.pug | 48 +++++++++++++++++------------------- src/page-projects.pug | 26 +++++++++---------- 3 files changed, 51 insertions(+), 57 deletions(-) diff --git a/src/page-channel-profile.pug b/src/page-channel-profile.pug index b7dad0b..16dcde1 100644 --- a/src/page-channel-profile.pug +++ b/src/page-channel-profile.pug @@ -1,24 +1,22 @@ script. document.addEventListener('WebComponentsReady', function(event) { - document.addEventListener("HTMLImportsLoaded", function(event) { - class HDAppMember extends SIBWidget { - get template() { - return ` -

- -
- `; - } - - render() { - store.get(this.value).then( (value) => { - this._value = value; - this.innerHTML = this.template; - }); - } + class HDAppMember extends SIBWidget { + get template() { + return ` +
+ +
+ `; } - customElements.define("hdapp-member", HDAppMember); - }); + + render() { + store.get(this.value).then( (value) => { + this._value = value; + this.innerHTML = this.template; + }); + } + } + customElements.define("hdapp-member", HDAppMember); }); #channel-profile(style='display: none') diff --git a/src/page-job-offers.pug b/src/page-job-offers.pug index 8835bce..b1752c7 100644 --- a/src/page-job-offers.pug +++ b/src/page-job-offers.pug @@ -1,31 +1,29 @@ script. document.addEventListener('WebComponentsReady', function(event) { - document.addEventListener('HTMLImportsLoaded', function(event) { - class HDAppAuthor extends SIBDisplayLookupList { - get parentElement() { - return 'div'; - } - getTemplate(value, index) { - var firstname, lastname; - if (typeof value == 'object') - if (Object.keys(value).length > 1) { - firstname = value.user.first_name; - lastname = value.user.last_name; - } else { - store.get(value).then(resource => { - this.value.push(resource); - this.render(); - }); - if (Array.isArray(this.value)) - this.value.splice(this.value.indexOf(value), 1); - else this.value = []; - return ''; - } - return `${firstname} ${lastname}`; - } + class HDAppAuthor extends SIBDisplayLookupList { + get parentElement() { + return 'div'; } - customElements.define('hdapp-author', HDAppAuthor); - }); + getTemplate(value, index) { + var firstname, lastname; + if (typeof value == 'object') + if (Object.keys(value).length > 1) { + firstname = value.user.first_name; + lastname = value.user.last_name; + } else { + store.get(value).then(resource => { + this.value.push(resource); + this.render(); + }); + if (Array.isArray(this.value)) + this.value.splice(this.value.indexOf(value), 1); + else this.value = []; + return ''; + } + return `${firstname} ${lastname}`; + } + } + customElements.define('hdapp-author', HDAppAuthor); }); div diff --git a/src/page-projects.pug b/src/page-projects.pug index ea6fd6d..cc19e5a 100644 --- a/src/page-projects.pug +++ b/src/page-projects.pug @@ -1,21 +1,19 @@ script. document.addEventListener('WebComponentsReady', function(event) { - document.addEventListener("HTMLImportsLoaded", function(event) { - class HDAppClient extends SIBWidget { - get template() { + class HDAppClient extends SIBWidget { + get template() { - return ``; - } - - render() { - store.get(this.value).then( (value) => { - this._value = value; - this.innerHTML = this.template; - }); - } + return ``; } - customElements.define("hdapp-client", HDAppClient); - }); + + render() { + store.get(this.value).then( (value) => { + this._value = value; + this.innerHTML = this.template; + }); + } + } + customElements.define("hdapp-client", HDAppClient); }); #projects(style='display: none') From 72a47b9cb61f8c6cfaf68fc769b850f158a43ff7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Sat, 29 Sep 2018 02:22:00 +0200 Subject: [PATCH 09/27] style members & jobs --- .gitignore | 2 +- src/page-job-offers.pug | 3 +- src/page-members.pug | 73 ++++++++++++++++++- src/styles/content.scss | 146 ++++++++++++++++++++++++++++++++++++++ src/styles/icons.scss | 3 +- src/styles/index.scss | 15 ++-- src/styles/main.scss | 26 ++++++- src/styles/menu.scss | 11 ++- src/styles/mixins.scss | 4 +- src/styles/variables.scss | 20 +++--- 10 files changed, 271 insertions(+), 32 deletions(-) create mode 100644 src/styles/content.scss diff --git a/.gitignore b/.gitignore index b3107b3..b9179d0 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ /www/index.html /www/styles/ /www/scripts/ -/www/lib +/www/lib/ !/www/lib/sib-core !/www/lib/sib-router !/www/lib/sib-chat \ No newline at end of file diff --git a/src/page-job-offers.pug b/src/page-job-offers.pug index b1752c7..119aa34 100644 --- a/src/page-job-offers.pug +++ b/src/page-job-offers.pug @@ -27,7 +27,8 @@ script. }); div - h1 Job offers + h1 New offers + span // Here you can find and post offers sib-display#offers-list( data-src=`${sdn}/job-offers/`, data-fields='author, title, description, skills', diff --git a/src/page-members.pug b/src/page-members.pug index 27ac9fa..7ecd124 100644 --- a/src/page-members.pug +++ b/src/page-members.pug @@ -1 +1,72 @@ -div member \ No newline at end of file +script. + document.addEventListener("WebComponentsReady", function(event) { + class HDAppUserInfo extends SIBDisplayLookupList { + get parentElement() {return "div"} + getTemplate(value, index) { + var firstname, lastname, email; + + if(typeof value == "object") + if(Object.keys(value).length > 1) { + firstname = value.first_name; + lastname = value.last_name; + email = value.email; + } + else { + store.get(value).then(resource => { + this.value.push(resource); + this.render(); + }); + if(Array.isArray(this.value))this.value.splice(this.value.indexOf(value), 1); + else this.value = []; + return ''; + } + return `
${firstname} ${lastname}
`; + // + `
${email}
`; + } + } + customElements.define('hdapp-userinfo', HDAppUserInfo); + + class HDAppCell extends SIBDisplayLookupList { + get parentElement() {return "div"} + getTemplate(value, index) { + var city, country; + + if(typeof value == "object") + if(Object.keys(value).length > 1) { + city = value.city; + country = value.country; + } + else { + store.get(value).then(resource => { + this.value.push(resource); + this.render(); + }); + if(Array.isArray(this.value))this.value.splice(this.value.indexOf(value), 1); + else this.value = []; + return ''; + } + return `${city} ${country}`; + } + } + customElements.define("hdapp-usercell", HDAppCell); + }); + +div + h1 Members + sib-display#profiles-list( + data-src=`${sdn}/members/`, + data-fields='header, cell, skills', + set-header='avatar, user, pseudonym, bio' + set-pseudonym='before-pseudo, pseudo' + value-before-pseudo='@', + widget-avatar='sib-display-img', + widget-user='hdapp-userinfo', + widget-cell='hdapp-usercell', + widget-skills='sib-display-lookuplist', + set-searchset='user.first_name, user.last_name', + search-fields='searchset', + next='member' + ) + + + diff --git a/src/styles/content.scss b/src/styles/content.scss new file mode 100644 index 0000000..fec8bf4 --- /dev/null +++ b/src/styles/content.scss @@ -0,0 +1,146 @@ +// job offers +#offers-list { + > div { + > sib-display { + display: block; + margin: 1em 0; + @extend %shadow; + background-color: $color-white; + padding: 0.5em 1em; + &:nth-child(odd) { + background-color: $color-white; + } + } + } +} + +// members + +%member { + display: grid; + margin-top: 1em; + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + grid-gap: 1em; + label { + display: none; + } + > sib-display { + display: block; + position: relative; + background-color: $color-white; + @extend %shadow; + padding: 0.5em; + cursor: pointer; + + &::before, + &::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + transform: scale3d(0, 0, 1); + transition: transform 0.3s ease-out 0s; + background: #eac1; + content: ''; + pointer-events: none; + } + + &::before { + transform-origin: left top; + } + + &::after { + transform-origin: right bottom; + + background: #ace1; + } + + &:hover, + &:focus { + &::before, + &::after { + transform: scale3d(1, 1, 1); + } + } + } +} + +#profiles-list { + display: block; + sib-form { + display: block; + input[type='reset'] { + display: none; + } + } + div[name='header'] { + border-top: 2em solid $color-grey-light; + border-bottom: 1px solid $color-grey-light; + padding-bottom: 1em; + margin-bottom: 1em; + text-align: center; + } + + > div { + @extend %member; + } + sib-display-img { + display: block; + position: relative; + width: 80%; + height: 0; + padding-bottom: 80%; + margin: 10%; + img { + display: block; + position: absolute; + width: 100%; + height: 100%; + border-radius: 100%; + object-fit: cover; + object-position: center; + } + } + + hdapp-userinfo { + display: block; + color: $color-black; + font-size: 1.1em; + margin: 0.5em; + ul, + li { + display: block; + margin: 0; + padding: 0; + list-style: none; + } + } + + div[name='pseudonym'] { + font-size: 0.8em; + div { + display: inline; + } + } +} +sib-display-lookuplist[name='skills'] { + ul, + li { + display: block; + margin: 0; + padding: 0; + list-style: none; + } + ul { + display: flex; + flex-wrap: wrap; + margin: 0 -0.25em; + } + li { + padding: 0.5em 1em; + border: 1px solid; + border-radius: 0.25em; + margin: 0.25em; + } +} diff --git a/src/styles/icons.scss b/src/styles/icons.scss index 434251a..77bc56c 100644 --- a/src/styles/icons.scss +++ b/src/styles/icons.scss @@ -250,7 +250,6 @@ $icons: ( social-steam: '\e620', ); - @each $name, $code in $icons { .icon-#{$name} { &:before { @@ -261,4 +260,4 @@ $icons: ( @mixin icon($code) { @extend %icon; @extend .icon-#{$code}; -} \ No newline at end of file +} diff --git a/src/styles/index.scss b/src/styles/index.scss index ebca3ee..0b61e6f 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -1,10 +1,9 @@ @charset "UTF-8"; -@import - 'icons', - 'variables', - 'functions', - 'mixins', - 'main'; - -@import 'menu' +@import 'icons'; +@import 'variables'; +@import 'functions'; +@import 'mixins'; +@import 'main'; +@import 'content'; +@import 'menu'; diff --git a/src/styles/main.scss b/src/styles/main.scss index 2ad4686..5f930f5 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -8,6 +8,7 @@ html { font-family: Open Sans, sans-serif; font-size: 13px; background-color: $color-grey-light; + color: $color-grey; } #header { @@ -36,6 +37,25 @@ body { flex: 1 1 0px; } -h1,h2,h3,h4,h5,h6{ - color: $color-black; -} \ No newline at end of file +h1, +h2, +h3, +h4, +h5, +h6 { + color: $color-black; +} + +h1{ + font-size: 1.23em; + span{ + font-weight: normal; + } +} +h2{ + font-size: 1.16em; +} +h3{ + font-size: 1.12em; +} + diff --git a/src/styles/menu.scss b/src/styles/menu.scss index 499979f..168ec6d 100644 --- a/src/styles/menu.scss +++ b/src/styles/menu.scss @@ -47,9 +47,9 @@ #menu-items { > * { display: block; - border-top: 1px solid $color-grey; + border-top: 1px solid #ddd; &:last-child { - border-bottom: 1px solid $color-grey; + border-bottom: 1px solid #ddd; } sib-route { display: block; @@ -74,9 +74,8 @@ padding: 0.7em; transform: perspective(1000px) translateZ(1px) scale(1); will-change: transform; - transition: - all .3s ease, - transform .3s cubic-bezier(0.175, 0.885, 0.32, 1.4); + transition: all 0.3s ease, + transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.4); } width: max-content; padding: 2em; @@ -127,7 +126,7 @@ } } > div { - margin: 0.5em; + margin: 2.6em; flex: 1 1 0px; } } diff --git a/src/styles/mixins.scss b/src/styles/mixins.scss index 9f2722d..9d77e86 100644 --- a/src/styles/mixins.scss +++ b/src/styles/mixins.scss @@ -96,9 +96,9 @@ background-image: linear-gradient(to #{$border}, $color, transparent); #{$border}: -$size; opacity: $opacity; - @if($border == top or $border == bottom) { + @if ($border == top or $border == bottom) { height: $size; - }@else{ + } @else { width: $size; } } diff --git a/src/styles/variables.scss b/src/styles/variables.scss index ed98ad7..5f960a8 100644 --- a/src/styles/variables.scss +++ b/src/styles/variables.scss @@ -1,17 +1,21 @@ $color-white: #fff; -$color-black: #36383B; -$color-grey: #898F95; -$color-grey-light: #F0F3F6; +$color-black: #36383b; +$color-grey: #898f95; +$color-grey-light: #f0f3f6; -$color-yellow: #FFB700; -$color-yellow-light: #FFD759; +$color-yellow: #ffb700; +$color-yellow-light: #ffd759; -%button{ - border-radius: 100em +%button { + border-radius: 100em; } -%button-yellow{ +%button-yellow { @extend %button; background-color: $color-yellow; color: $color-white; +} + +%shadow{ + box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.05); } \ No newline at end of file From 51ccde0c0e3750ed5a49a725f4d44b53e8f4b29d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Fri, 5 Oct 2018 11:37:48 +0200 Subject: [PATCH 10/27] update --- Makefile | 19 ++-- package-lock.json | 5 ++ package.json | 1 + server.js | 2 +- src/dependencies.pug | 20 +++-- src/index.pug | 17 ++-- src/menu.pug | 7 +- src/page-channel-chat.pug | 2 - src/page-channel-create.pug | 7 -- src/page-channel-edit.pug | 7 -- src/page-channel-profile.pug | 36 -------- src/page-channel.pug | 15 ---- src/page-channels.pug | 7 -- src/page-job-offers.pug | 5 +- src/page-member-chat.pug | 4 +- src/page-member-edit.pug | 22 ++--- src/page-member-profile.pug | 25 +++--- src/page-member.pug | 30 ++++--- src/page-project-chat.pug | 4 +- src/page-project-create.pug | 2 +- src/page-project-edit.pug | 4 +- src/page-project-profile.pug | 6 +- src/page-project.pug | 29 +++--- src/page-projects.pug | 2 +- src/scripts/hd-app.js | 2 +- src/scripts/index.js | 3 +- src/styles/content.scss | 169 ++++++++++++----------------------- src/styles/functions.scss | 1 + src/styles/icons.scss | 6 +- src/styles/index.scss | 7 +- src/styles/main.scss | 156 +++++++++++++++++++++++++++----- src/styles/menu.scss | 52 +---------- src/styles/variables.scss | 19 ++-- src/variables.pug | 2 - www/img/logo.png | Bin 4018 -> 0 bytes www/lib/sib-core | 2 +- 36 files changed, 328 insertions(+), 369 deletions(-) delete mode 100644 src/page-channel-chat.pug delete mode 100644 src/page-channel-create.pug delete mode 100644 src/page-channel-edit.pug delete mode 100644 src/page-channel-profile.pug delete mode 100644 src/page-channel.pug delete mode 100644 src/page-channels.pug delete mode 100644 src/variables.pug delete mode 100644 www/img/logo.png diff --git a/Makefile b/Makefile index ea0ad7f..fbd0490 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,8 @@ +DIST_DIR := www + SCRIPT_SRC := $(wildcard src/scripts/*.js) -SCRIPT_DEST := $(SCRIPT_SRC:src/%=www/%) +SCRIPT_DEST := $(SCRIPT_SRC:src/%=$(DIST_DIR)/%) default: build @@ -14,7 +16,7 @@ submodules: git submodule init git submodule update -build: www/index.html www/styles/index.css $(SCRIPT_DEST) +build: $(DIST_DIR)/index.html $(DIST_DIR)/styles/index.css $(SCRIPT_DEST) watch: @echo 'watching for change' @@ -36,21 +38,22 @@ copy_lib: @node copy_lib.js # pug -www/index.html: src/index.pug $(wildcard src/*.pug src/*/*.pug) +$(DIST_DIR)/index.html: src/index.pug $(wildcard src/*.pug src/*/*.pug) @echo pug: $< ➜ $@ @node_modules/.bin/pug --pretty $< --out $(dir $@) || touch $@ # sass -www/styles/index.css: src/styles/index.scss $(wildcard src/*.scss src/*/*.scss) +$(DIST_DIR)/styles/index.css: src/styles/index.scss $(wildcard src/*.scss src/*/*.scss) @echo sass: $< ➜ $@ - @node_modules/.bin/node-sass $< $@ --source-map true || touch $@ + @node_modules/.bin/node-sass $< $@ --source-map true --source-map-contents || touch $@ # babel -www/%.js: src/%.js +$(DIST_DIR)/%.js: src/%.js @echo babel: $< ➜ $@ @mkdir -p $(dir $@) @node_modules/.bin/babel $< --out-file $@ --source-maps || touch $@ -.PHONY: default install submodules copy_lib build watch serve clean - +sync: + rsync -rv www/* staging-app@ssh-staging-app.happy-dev.fr:~/staging-app.happy-dev.fr/ +.PHONY: default install submodules copy_lib build watch serve clean \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index afd2d93..8e6f5e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3424,6 +3424,11 @@ "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", "dev": true }, + "include-media": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/include-media/-/include-media-1.4.9.tgz", + "integrity": "sha1-0AILe+PrLVSGiiCUNZXOOA4LxDs=" + }, "indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", diff --git a/package.json b/package.json index 3cddfa8..cab5aef 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "dependencies": { "@webcomponents/html-imports": "^1.2.0", "@webcomponents/webcomponentsjs": "^1.2.7", + "include-media": "^1.4.9", "normalize.css": "^8.0.0", "simple-line-icons": "^2.4.1" } diff --git a/server.js b/server.js index 7637428..eafd12a 100644 --- a/server.js +++ b/server.js @@ -6,7 +6,7 @@ const express = require('express'); const app = express(); app .use(express.static(distPath)) - .use('/src', express.static(join(__dirname, 'src'))) + // .use('/src', express.static(join(__dirname, 'src'))) .get(/^[^.]*$/, (req, rep) => rep.sendFile(join(__dirname, distPath, '/index.html')), ) diff --git a/src/dependencies.pug b/src/dependencies.pug index f0cbd56..deb579d 100644 --- a/src/dependencies.pug +++ b/src/dependencies.pug @@ -1,27 +1,29 @@ // Scripts -script(src="lib/webcomponentsjs/webcomponents-loader.js") +script(src="/lib/webcomponentsjs/webcomponents-loader.js") //- script(src="lib/html-imports.js") //- script(src="https://unpkg.com/@webcomponents/webcomponentsjs@1.2.7/webcomponents-loader.js") +script(src='/lib/sib-chat/3rdparty/sib-oidc-client.js') -script(src="scripts/index.js") +script(src="/scripts/index.js") // Stylesheets -link(rel='stylesheet', href='lib/normalize.css') -link(rel='stylesheet', href="styles/index.css") +link(rel='stylesheet', href='/lib/normalize.css') +link(rel='stylesheet', href='/styles/index.css') link( rel='stylesheet' - href='https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700,700i&subset=latin-ext' + href='https://fonts.googleapis.com/css?family=Open+Sans:300,400,400i,600,700&subset=latin-ext' ) +link(href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i" rel="stylesheet") // Web components //- local -link(rel='import', href='lib/sib-core/sib-display.html') -link(rel='import', href='lib/sib-router/sib-router.html') - //-link(rel='import', href='lib/sib-chat/sib-chat.html') +link(rel='import', href='/lib/sib-core/sib-display.html') +link(rel='import', href='/lib/sib-router/sib-router.html') +link(rel='import', href='/lib/sib-chat/sib-chat.html') //- cdn link(rel='import', href="https://cdn.happy-dev.fr/sib-core/sib-display.html") link(rel='import', href="https://cdn.happy-dev.fr/sib-router/sib-router.html") - //- link(rel='import', href="https://cdn.happy-dev.fr/sib-chat/sib-chat.html") + //- link(rel='import', href="https://cdn.happy-dev.fr/sib-chat/sib-chat.html") \ No newline at end of file diff --git a/src/index.pug b/src/index.pug index ad00247..63ec80d 100644 --- a/src/index.pug +++ b/src/index.pug @@ -1,4 +1,4 @@ -include variables.pug +include config.pug html(lang="en") head @@ -9,8 +9,7 @@ html(lang="en") include dependencies.pug body header#header - #logo - img(src="img/logo.png" width=166/2 height=48/2) + include header.pug #subContainer include menu.pug main#mainContainer @@ -19,18 +18,18 @@ html(lang="en") #members(hidden) include page-members.pug #member(hidden) - div include page-member.pug + include page-member.pug #job-offers(hidden) include page-job-offers.pug - #projects(hidden) + //-#projects(hidden) include page-projects.pug #project(hidden) include page-project.pug //- #client-creation(hidden) include page-client-creation.pug - #channels(hidden) - include page-channels.pug - #channel(hidden) - include page-channel.pug + //-#groups(hidden) + include page-groups.pug + #group(hidden) + include page-group.pug //- #search(hidden) include page-search.pug \ No newline at end of file diff --git a/src/menu.pug b/src/menu.pug index b1613a0..6989aa9 100644 --- a/src/menu.pug +++ b/src/menu.pug @@ -1,4 +1,3 @@ -.btn-toggle div nav#navbar sib-router#navbar-router(default-route='members') @@ -18,10 +17,10 @@ div ) sib-route(hidden, name='project', id-prefix=`${sdn}/projects/`) div - div.icon-bubbles Channels + div.icon-bubbles Groups sib-display( data-src=`${sdn}/channels/`, data-fields='name', - next='channel' + next='group' ) - sib-route(hidden, name='channel', id-prefix=`${sdn}/channels/`) \ No newline at end of file + sib-route(hidden, name='group', id-prefix=`${sdn}/channels/`) \ No newline at end of file diff --git a/src/page-channel-chat.pug b/src/page-channel-chat.pug deleted file mode 100644 index 2e54d66..0000000 --- a/src/page-channel-chat.pug +++ /dev/null @@ -1,2 +0,0 @@ -#channel-chat.chat-view(style='display: none', bind-resources='') - sib-chat(data-authentication='login', data-auto-login='true', data-bosh-service-url='https://jabber.happy-dev.fr/http-bind/', data-debug='false', data-locales-url='en', bind-resources='') \ No newline at end of file diff --git a/src/page-channel-create.pug b/src/page-channel-create.pug deleted file mode 100644 index 5e7b303..0000000 --- a/src/page-channel-create.pug +++ /dev/null @@ -1,7 +0,0 @@ -#channel-create(style='display: none') - sib-form( - data-src=`${sdn}/channels/`, - range-owner=`${sdn}/members/`, - widget-members='sib-form-multiple-dropdown', - range-members=`${sdn}/members/` - ) diff --git a/src/page-channel-edit.pug b/src/page-channel-edit.pug deleted file mode 100644 index 9244226..0000000 --- a/src/page-channel-edit.pug +++ /dev/null @@ -1,7 +0,0 @@ -#channel-edit(style='display: none') - sib-form( - range-owner=`${sdn}/members/`, - widget-members='sib-form-multiple-dropdown', - range-members=`${sdn}/members/`, - bind-resources='' - ) diff --git a/src/page-channel-profile.pug b/src/page-channel-profile.pug deleted file mode 100644 index 16dcde1..0000000 --- a/src/page-channel-profile.pug +++ /dev/null @@ -1,36 +0,0 @@ -script. - document.addEventListener('WebComponentsReady', function(event) { - class HDAppMember extends SIBWidget { - get template() { - return ` -
- -
- `; - } - - render() { - store.get(this.value).then( (value) => { - this._value = value; - this.innerHTML = this.template; - }); - } - } - customElements.define("hdapp-member", HDAppMember); - }); - -#channel-profile(style='display: none') - sib-display( - data-fields='name, description, owner', - widget-owner='hdapp-member', - bind-resources='' - ) - h2.section.skills Participants - sib-display( - id-suffix='members', - data-fields='avatar, user', - widget-avatar='sib-display-img', - widget-user='hdapp-userinfo', - bind-resources='' - ) - diff --git a/src/page-channel.pug b/src/page-channel.pug deleted file mode 100644 index 859b65f..0000000 --- a/src/page-channel.pug +++ /dev/null @@ -1,15 +0,0 @@ -#channel(style='display: none') - sib-router#channel-router(default-route='channel-profile') - sib-route(name='channel-chat') - div Chat - sib-route(name='channel-profile') - div Info - sib-route(name='channel-edit') - div Éditer - sib-route(name='channel-create') - div Nouveau - #network-views-container - include page-channel-chat.pug - include page-channel-profile.pug - include page-channel-edit.pug - include page-channel-create.pug diff --git a/src/page-channels.pug b/src/page-channels.pug deleted file mode 100644 index 70d99f5..0000000 --- a/src/page-channels.pug +++ /dev/null @@ -1,7 +0,0 @@ -#channels(style='display: none') - sib-display#channels-list( - data-src=`${sdn}/channels/`, - data-fields='name, description', - search-fields='name, description', - next='channel' - ) diff --git a/src/page-job-offers.pug b/src/page-job-offers.pug index 119aa34..04d5220 100644 --- a/src/page-job-offers.pug +++ b/src/page-job-offers.pug @@ -27,9 +27,10 @@ script. }); div + h1 New offers - span // Here you can find and post offers - sib-display#offers-list( + span Here you can find and post offers + sib-display#offers-list.limiter( data-src=`${sdn}/job-offers/`, data-fields='author, title, description, skills', set-searchset='title, description', diff --git a/src/page-member-chat.pug b/src/page-member-chat.pug index 92f71ee..cb5edf3 100644 --- a/src/page-member-chat.pug +++ b/src/page-member-chat.pug @@ -1,2 +1,2 @@ -#member-chat.chat-view(style='display: none', bind-resources='') - sib-chat(data-authentication='login', data-auto-login='true', data-bosh-service-url='https://jabber.happy-dev.fr/http-bind/', data-debug='false', data-locales-url='en', bind-resources='') +#member-chat.chat-view(bind-resources) + sib-chat(data-authentication='login', data-auto-login='true', data-bosh-service-url='https://jabber.happy-dev.fr/http-bind/', data-debug='false', data-locales-url='en', bind-resources) diff --git a/src/page-member-edit.pug b/src/page-member-edit.pug index 598a586..7898657 100644 --- a/src/page-member-edit.pug +++ b/src/page-member-edit.pug @@ -15,17 +15,17 @@ customElements.define("ldp-form-img-upload", LDPFormImgUpload); widget-avatar="ldp-form-img-upload" -#member-edit(style='display: none') - label.d-none(for='avatar-input') - img#avatar-preview(src='', style='width: 100%;') - input#avatar-input.d-none(accept='image/*', name='avatar', value='', type='file') - sib-form.edit-form( - data-fields='user, avatar, bio, cell, jabberID, number, pseudo, skills, website', - widget-user='hdapp-usereditinfo', - range-cell=`${sdn}/cells/`, widget-skills='sib-form-multiple-dropdown', - range-skills=`${sdn}/skills/`, - bind-resources='' - ) +label.d-none(for='avatar-input') + img#avatar-preview(src='', style='width: 100%;') +input#avatar-input.d-none(accept='image/*', name='avatar', value='', type='file') +sib-form.edit-form( + data-fields='user, avatar, bio, cell, jabberID, number, pseudo, skills, website', + widget-user='hdapp-usereditinfo', + range-cell=`${sdn}/cells/`, widget-skills='sib-form-multiple-dropdown', + range-skills=`${sdn}/skills/`, + bind-resources +) + #crop-modal .crop-wrapper img#crop-preview(src='') diff --git a/src/page-member-profile.pug b/src/page-member-profile.pug index a8ace40..fe21123 100644 --- a/src/page-member-profile.pug +++ b/src/page-member-profile.pug @@ -1,13 +1,12 @@ -#member-profile(style='display: none') - sib-display#member-info( - data-fields='header, cell, number, roles, website, skills', - set-header='avatar, user, pseudonym, bio' - set-pseudonym='before-pseudo, pseudo' - widget-avatar='sib-display-img', - widget-user='hdapp-userinfo', - widget-cell='hdapp-usercell', - widget-number='sib-display-tel', - widget-roles='sib-display-lookuplist', - widget-skills='sib-display-lookuplist', - bind-resources='' - ) +sib-display#member-info( + data-fields='header, cell, role, email, tel, roles, website, skills', + set-header='avatar, user, pseudonym, bio', + set-pseudonym='before-pseudo, pseudo', + widget-avatar='sib-display-img', + widget-user='hdapp-userinfo', + widget-cell='hdapp-usercell', + widget-number='sib-display-tel', + widget-roles='sib-display-lookuplist', + widget-skills='sib-display-lookuplist', + bind-resources +) diff --git a/src/page-member.pug b/src/page-member.pug index 18946ae..d2724ae 100644 --- a/src/page-member.pug +++ b/src/page-member.pug @@ -1,12 +1,18 @@ -#member(style='display: none') - sib-router#member-router(default-route='member-profile') - sib-route(name='member-chat') - div Chat - sib-route(name='member-profile') - div Voir - sib-route(name='member-edit') - div Éditer - #member-views-container - include page-member-chat.pug - include page-member-profile.pug - include page-member-edit.pug + +sib-router#member-router(default-route='member-chat') + sib-route(name='member-chat') + div Chat + sib-route(name='member-profile') + div Voir + sib-route(name='member-edit') + div Éditer +#member-views-container + sib-trigger(next="members" class="back") Back to directory + .limiter + #member-chat + include page-member-chat.pug + #member-profile + include page-member-profile.pug + #member-edit + include page-member-edit.pug +mucreokyordoriptyis7 \ No newline at end of file diff --git a/src/page-project-chat.pug b/src/page-project-chat.pug index e2aebf9..395fadb 100644 --- a/src/page-project-chat.pug +++ b/src/page-project-chat.pug @@ -1,2 +1,2 @@ -#project-chat.chat-view(style='display: none', bind-resources='') - sib-chat(data-authentication='login', data-auto-login='true', data-bosh-service-url='https://jabber.happy-dev.fr/http-bind/', data-debug='false', data-locales-url='en', bind-resources='') +#project-chat.chat-view + sib-chat(data-authentication='login', data-auto-login='true', data-bosh-service-url='https://jabber.happy-dev.fr/http-bind/', data-debug='false', data-locales-url='en', bind-resources) diff --git a/src/page-project-create.pug b/src/page-project-create.pug index 69a9607..0bc1f91 100644 --- a/src/page-project-create.pug +++ b/src/page-project-create.pug @@ -1,4 +1,4 @@ -#project-create(style='display: none') +#project-create sib-form( data-src=`${sdn}/projects/`, range-client=`${sdn}/clients/`, diff --git a/src/page-project-edit.pug b/src/page-project-edit.pug index dd6c902..df14b24 100644 --- a/src/page-project-edit.pug +++ b/src/page-project-edit.pug @@ -1,7 +1,7 @@ -#project-edit(style='display: none') +#project-edit sib-form( range-client=`${sdn}/clients/`, widget-team='sib-form-multiple-dropdown', range-team=`${sdn}/members/`, - bind-resources='' + bind-resources ) diff --git a/src/page-project-profile.pug b/src/page-project-profile.pug index 2ac5023..d0a5a55 100644 --- a/src/page-project-profile.pug +++ b/src/page-project-profile.pug @@ -1,9 +1,9 @@ -#project-profile(style='display: none') +#project-profile sib-display( data-fields='title, description, client', set-title='number, name' widget-client='hdapp-client', - bind-resources='' + bind-resources ) h3 Team sib-display.members-list-condensed( @@ -12,5 +12,5 @@ widget-avatar='sib-display-img', widget-user='hdapp-userinfo', next='member', - bind-resources='' + bind-resources ) diff --git a/src/page-project.pug b/src/page-project.pug index ab0c0b4..91f4703 100644 --- a/src/page-project.pug +++ b/src/page-project.pug @@ -1,15 +1,14 @@ -#project(style='display: none') - sib-router#project-router(default-route='project-profile') - sib-route(name='project-chat') - div Chat - sib-route(name='project-profile') - div Voir - sib-route(name='project-edit') - div Éditer - sib-route(name='project-create') - div Nouveau - #project-views-container - include page-project-chat.pug - include page-project-profile.pug - include page-project-edit.pug - include page-project-create.pug +sib-router#project-router(default-route='project-chat') + sib-route(name='project-chat') + div Chat + sib-route(name='project-profile') + div Voir + sib-route(name='project-edit') + div Éditer + sib-route(name='project-create') + div Nouveau +#project-views-container + include page-project-chat.pug + include page-project-profile.pug + include page-project-edit.pug + include page-project-create.pug diff --git a/src/page-projects.pug b/src/page-projects.pug index cc19e5a..880d10b 100644 --- a/src/page-projects.pug +++ b/src/page-projects.pug @@ -16,7 +16,7 @@ script. customElements.define("hdapp-client", HDAppClient); }); -#projects(style='display: none') +#projects h1 Projects sib-display( data-src=`${sdn}/projects/`, diff --git a/src/scripts/hd-app.js b/src/scripts/hd-app.js index a38a099..9d3c015 100644 --- a/src/scripts/hd-app.js +++ b/src/scripts/hd-app.js @@ -4,7 +4,7 @@ document.addEventListener("DOMContentLoaded", function(event) { const searchBar = document.querySelector("#search-bar"); const searchView = document.querySelector("#search-view"); const searchInput = searchBar.querySelector("#search-input"); - const btnToggle = document.querySelector(".btn-toggle"); + const btnToggle = document.querySelector("#button-toggle"); // Shortcuts diff --git a/src/scripts/index.js b/src/scripts/index.js index 482a879..78b0c18 100644 --- a/src/scripts/index.js +++ b/src/scripts/index.js @@ -1,7 +1,6 @@ document.addEventListener('DOMContentLoaded', function(event) { - // Constants declaration const navBar = document.querySelector('#navbar'); - const btnToggle = document.querySelector('.btn-toggle'); + const btnToggle = document.querySelector('#button-toggle'); if (!navBar || !btnToggle) return; btnToggle.addEventListener('click', e => { diff --git a/src/styles/content.scss b/src/styles/content.scss index fec8bf4..9d167ff 100644 --- a/src/styles/content.scss +++ b/src/styles/content.scss @@ -1,6 +1,7 @@ // job offers #offers-list { > div { + display: none; > sib-display { display: block; margin: 1em 0; @@ -10,88 +11,66 @@ &:nth-child(odd) { background-color: $color-white; } - } - } -} - -// members - -%member { - display: grid; - margin-top: 1em; - grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); - grid-gap: 1em; - label { - display: none; - } - > sib-display { - display: block; - position: relative; - background-color: $color-white; - @extend %shadow; - padding: 0.5em; - cursor: pointer; - - &::before, - &::after { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - transform: scale3d(0, 0, 1); - transition: transform 0.3s ease-out 0s; - background: #eac1; - content: ''; - pointer-events: none; - } - - &::before { - transform-origin: left top; - } - - &::after { - transform-origin: right bottom; - - background: #ace1; - } - - &:hover, - &:focus { - &::before, - &::after { - transform: scale3d(1, 1, 1); + sib-display-div[name=title]{ + display: block; + @extend h1; + background-color: red; } } } } -#profiles-list { - display: block; - sib-form { - display: block; - input[type='reset'] { - display: none; - } - } - div[name='header'] { - border-top: 2em solid $color-grey-light; - border-bottom: 1px solid $color-grey-light; - padding-bottom: 1em; - margin-bottom: 1em; - text-align: center; - } +// chat - > div { - @extend %member; +.chat-view { + padding: 1em; + border: 1px dashed green; + position: relative; + min-height: 300px; + > sib-chat { + @include pos(); } +} + + +.members-list-condensed { + display: block; + img { + width: 50px; + height: 50px; + border-radius: 100%; + object-fit: cover; + object-position: top; + } + label { + display: none; + } + > div > sib-display > div { + display: flex; + } + ul { + padding-left: 1em; + } +} + + +// member-profile && member +sib-display#member-info, +#profiles-list>div>sib-display{ + display: block; + position: relative; + background-color: $color-white; + @extend %shadow; + padding: 1em; + cursor: pointer; sib-display-img { + $width: 55%; display: block; position: relative; - width: 80%; + width: $width; + padding-bottom: $width; height: 0; - padding-bottom: 80%; - margin: 10%; + margin: 2em auto; img { display: block; position: absolute; @@ -102,45 +81,15 @@ object-position: center; } } +} - hdapp-userinfo { - display: block; - color: $color-black; - font-size: 1.1em; - margin: 0.5em; - ul, - li { - display: block; - margin: 0; - padding: 0; - list-style: none; - } - } - - div[name='pseudonym'] { - font-size: 0.8em; - div { - display: inline; - } - } -} -sib-display-lookuplist[name='skills'] { - ul, - li { - display: block; - margin: 0; - padding: 0; - list-style: none; - } - ul { - display: flex; - flex-wrap: wrap; - margin: 0 -0.25em; - } - li { - padding: 0.5em 1em; - border: 1px solid; - border-radius: 0.25em; - margin: 0.25em; +#profiles-list { + display: block; + > div { + display: grid; + margin-top: 1em; + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + grid-gap: 1em; } } + diff --git a/src/styles/functions.scss b/src/styles/functions.scss index e69de29..ab0c014 100644 --- a/src/styles/functions.scss +++ b/src/styles/functions.scss @@ -0,0 +1 @@ +// \ No newline at end of file diff --git a/src/styles/icons.scss b/src/styles/icons.scss index 77bc56c..48ea2c5 100644 --- a/src/styles/icons.scss +++ b/src/styles/icons.scss @@ -258,6 +258,8 @@ $icons: ( } } @mixin icon($code) { - @extend %icon; - @extend .icon-#{$code}; + &:before { + @extend %icon; + @extend .icon-#{$code}; + } } diff --git a/src/styles/index.scss b/src/styles/index.scss index 0b61e6f..f4d6f8a 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -1,9 +1,14 @@ @charset "UTF-8"; +@import 'functions'; +@import '../../node_modules/include-media/dist/include-media'; @import 'icons'; @import 'variables'; -@import 'functions'; @import 'mixins'; @import 'main'; +@import 'form'; @import 'content'; + +@import 'members'; @import 'menu'; + diff --git a/src/styles/main.scss b/src/styles/main.scss index 5f930f5..cbb7313 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -11,21 +11,83 @@ html { color: $color-grey; } +html, +body { + height: 100%; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + color: $color-black; + font-weight: 600; + margin: 0.67em 0; + span { + font-weight: 400; + padding-left: 0.5em; + &:before { + content: '// '; + } + } +} + +h1 { + font-size: 1.23em; +} +h2 { + font-size: 1.16em; +} +h3 { + font-size: 1.12em; +} + +.debug { + outline: 2px dotted red; +} + #header { background-color: $color-white; + color: $color-black; position: relative; @include border-shadow(bottom); border: solid $color-white; border-width: 1px 0; + display: flex; + align-items: center; + padding: 1em 0; + > * { + padding: 0 1rem; + } +} + +#button-toggle { + @include icon('menu'); + display: none; + color: $color-black; + font-size: 2em; + padding: 0.72em; + cursor: pointer; } #logo { - margin: 1.4em; + flex: 1 1 0px; } -html, -body { - height: 100%; +#notification { + @include icon(bell); + font-size: 1.5em; +} + +#profile { + > * { + vertical-align: middle; + } + img { + margin-right: 0.5em; + } } #subContainer { @@ -37,25 +99,79 @@ body { flex: 1 1 0px; } -h1, -h2, -h3, -h4, -h5, -h6 { - color: $color-black; +.limiter{ + display: block; + max-width: 650px; } +/* sub menu (right menu) */ -h1{ - font-size: 1.23em; - span{ - font-weight: normal; +#mainContainer > div { + display: flex; + flex-direction: row-reverse; + align-items: flex-start; + > sib-router { + display: block; + background-color: #ccc; + sib-route { + display: block; + > div { + position: relative; + padding: 1em 2em; + border-bottom: 1px solid #888; + } + &[active] { + font-weight: bold; + > div:before { + content: '<'; + position: absolute; + transform: translateX(-150%); + } + } + } + } + > div { + margin: 2.6em; + flex: 1 1 0px; } } -h2{ - font-size: 1.16em; -} -h3{ - font-size: 1.12em; + +#search-bar > div { + position: relative; } +#search-icon { + pointer-events: none; +} + +#search-icon, +#close-search-icon { + position: absolute; + right: 0.4em; + top: 50%; + transform: translateY(-50%); + margin: auto; + display: block; +} +#search-input { + -webkit-appearance: textfield; + border-radius: 10em; + padding: 0.4em 0.8em; + border: 1px solid $color-grey; + & ~ #close-search-icon { + opacity: 0; + } + &:focus { + & ~ #close-search-icon { + opacity: 1; + } + & ~ #search-icon { + visibility: hidden; + } + } +} + +sib-trigger.back { + display: block; + @include icon('arrow-left'); + @extend h1; +} diff --git a/src/styles/menu.scss b/src/styles/menu.scss index 168ec6d..8cef1ee 100644 --- a/src/styles/menu.scss +++ b/src/styles/menu.scss @@ -1,19 +1,6 @@ // #navbar{} // #navbar-router{} -.btn-toggle { - @include icon('menu'); - display: none; - position: absolute; - top: 0; - left: 0; - background-color: $color-white; - color: $color-black; - font-size: 2em; - padding: 0.72em; - cursor: pointer; -} - #navbar { background-color: $color-white; color: $color-grey; @@ -28,8 +15,8 @@ @include border-shadow(right); } -@media (max-width: 32rem) { - .btn-toggle { +@include media('width div { - display: flex; - flex-direction: row-reverse; - align-items: flex-start; - > sib-router { - display: block; - background-color: #ccc; - sib-route { - display: block; - > div { - position: relative; - padding: 1em 2em; - border-bottom: 1px solid #888; - } - &[active] { - font-weight: bold; - > div:before { - content: '<'; - position: absolute; - transform: translateX(-150%); - } - } - } - } - > div { - margin: 2.6em; - flex: 1 1 0px; - } -} diff --git a/src/styles/variables.scss b/src/styles/variables.scss index 5f960a8..2e7a115 100644 --- a/src/styles/variables.scss +++ b/src/styles/variables.scss @@ -1,3 +1,4 @@ +// colors $color-white: #fff; $color-black: #36383b; $color-grey: #898f95; @@ -6,16 +7,12 @@ $color-grey-light: #f0f3f6; $color-yellow: #ffb700; $color-yellow-light: #ffd759; -%button { - border-radius: 100em; +%shadow { + box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.15); } -%button-yellow { - @extend %button; - background-color: $color-yellow; - color: $color-white; -} - -%shadow{ - box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.05); -} \ No newline at end of file +$breakpoints: ( + phone: 480px, + tablet: 768px, + desktop: 1024px, +); diff --git a/src/variables.pug b/src/variables.pug deleted file mode 100644 index dd28afe..0000000 --- a/src/variables.pug +++ /dev/null @@ -1,2 +0,0 @@ -- var sdn = process.env.SDN || 'http://127.0.0.1:8000' -- var cdn = process.env.CDN || 'https://cdn.happy-dev.fr' \ No newline at end of file diff --git a/www/img/logo.png b/www/img/logo.png deleted file mode 100644 index d47b12090ca2650956f554ac22fccb7253c2aa2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4018 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 diff --git a/www/lib/sib-core b/www/lib/sib-core index ffe4cdc..be42b1c 160000 --- a/www/lib/sib-core +++ b/www/lib/sib-core @@ -1 +1 @@ -Subproject commit ffe4cdc86041a32e8a2cc7dbd60aafc9edd1eaf5 +Subproject commit be42b1cb02524a69e7009ee9f4a1144be29ed1e8 From 3fa8602e2cc4d983f989dfbc44ba7a665f62a6b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Fri, 5 Oct 2018 11:55:29 +0200 Subject: [PATCH 11/27] update --- src/config.pug | 3 + src/header.pug | 17 +++ src/page-group-chat.pug | 2 + src/page-group-create.pug | 7 ++ src/page-group-edit.pug | 7 ++ src/page-group-profile.pug | 36 ++++++ src/page-group.pug | 18 +++ src/page-groups.pug | 7 ++ src/page-member.pug | 3 +- src/styles/content.scss | 41 +++++-- src/styles/form.scss | 35 ++++++ src/styles/index.scss | 2 +- src/styles/members.scss | 222 ++++++++++++++++++++++++++++++++++++ www/.htaccess | 8 ++ www/images/logo.png | Bin 0 -> 4018 bytes www/images/user.png | Bin 0 -> 8208 bytes www/oidc-client-config.json | 11 ++ 17 files changed, 408 insertions(+), 11 deletions(-) create mode 100644 src/config.pug create mode 100644 src/header.pug create mode 100644 src/page-group-chat.pug create mode 100644 src/page-group-create.pug create mode 100644 src/page-group-edit.pug create mode 100644 src/page-group-profile.pug create mode 100644 src/page-group.pug create mode 100644 src/page-groups.pug create mode 100644 src/styles/form.scss create mode 100644 src/styles/members.scss create mode 100644 www/.htaccess create mode 100644 www/images/logo.png create mode 100644 www/images/user.png create mode 100644 www/oidc-client-config.json diff --git a/src/config.pug b/src/config.pug new file mode 100644 index 0000000..8a83ec0 --- /dev/null +++ b/src/config.pug @@ -0,0 +1,3 @@ +//- var sdn = process.env.SDN || 'http://127.0.0.1:8000' +- var sdn = process.env.SDN || 'https://test-paris.happy-dev.fr' +- var cdn = process.env.CDN || 'https://cdn.happy-dev.fr' \ No newline at end of file diff --git a/src/header.pug b/src/header.pug new file mode 100644 index 0000000..3f945f2 --- /dev/null +++ b/src/header.pug @@ -0,0 +1,17 @@ +#button-toggle +#logo + img(src="/images/logo.png" width=111 height=32) + +#search-bar + div + input#search-input(type='search') + i#search-icon.icon-magnifier(aria-hidden='true') + i#close-search-icon.icon-close(aria-hidden='true') + +#notification + +#profile + img(src="/images/user.png" width=43 height=43) + span + | Sophie + span.icon-arrow-down \ No newline at end of file diff --git a/src/page-group-chat.pug b/src/page-group-chat.pug new file mode 100644 index 0000000..6b6f711 --- /dev/null +++ b/src/page-group-chat.pug @@ -0,0 +1,2 @@ +#group-chat.chat-view(bind-resources) + sib-chat(data-authentication='login', data-auto-login='true', data-bosh-service-url='https://jabber.happy-dev.fr/http-bind/', data-debug='false', data-locales-url='en', bind-resources) \ No newline at end of file diff --git a/src/page-group-create.pug b/src/page-group-create.pug new file mode 100644 index 0000000..6fb9137 --- /dev/null +++ b/src/page-group-create.pug @@ -0,0 +1,7 @@ +#group-create + sib-form( + data-src=`${sdn}/channels/`, + range-owner=`${sdn}/members/`, + widget-members='sib-form-multiple-dropdown', + range-members=`${sdn}/members/` + ) diff --git a/src/page-group-edit.pug b/src/page-group-edit.pug new file mode 100644 index 0000000..452d565 --- /dev/null +++ b/src/page-group-edit.pug @@ -0,0 +1,7 @@ +#group-edit + sib-form( + range-owner=`${sdn}/members/`, + widget-members='sib-form-multiple-dropdown', + range-members=`${sdn}/members/`, + bind-resources + ) diff --git a/src/page-group-profile.pug b/src/page-group-profile.pug new file mode 100644 index 0000000..51b33da --- /dev/null +++ b/src/page-group-profile.pug @@ -0,0 +1,36 @@ +script. + document.addEventListener('WebComponentsReady', function(event) { + class HDAppMember extends SIBWidget { + get template() { + return ` +
+ +
+ `; + } + + render() { + store.get(this.value).then( (value) => { + this._value = value; + this.innerHTML = this.template; + }); + } + } + customElements.define("hdapp-member", HDAppMember); + }); + +#group-profile + sib-display( + data-fields='name, description, owner', + widget-owner='hdapp-member', + bind-resources + ) + h2.section.skills Participants + sib-display( + id-suffix='members', + data-fields='avatar, user', + widget-avatar='sib-display-img', + widget-user='hdapp-userinfo', + bind-resources + ) + diff --git a/src/page-group.pug b/src/page-group.pug new file mode 100644 index 0000000..5af3fa7 --- /dev/null +++ b/src/page-group.pug @@ -0,0 +1,18 @@ +sib-router#group-router(default-route='group-chat') + sib-route(name='group-chat') + div Chat + sib-route(name='group-profile') + div Info + sib-route(name='group-edit') + div Éditer + sib-route(name='group-create') + div Nouveau +#network-views-container + #group-chat + include page-group-chat.pug + #group-profile + include page-group-profile.pug + #group-edit + include page-group-edit.pug + #group-create + include page-group-create.pug diff --git a/src/page-groups.pug b/src/page-groups.pug new file mode 100644 index 0000000..575e18b --- /dev/null +++ b/src/page-groups.pug @@ -0,0 +1,7 @@ +#groups + sib-display#groups-list( + data-src=`${sdn}/channels/`, + data-fields='name, description', + search-fields='name, description', + next='group' + ) diff --git a/src/page-member.pug b/src/page-member.pug index d2724ae..926aed6 100644 --- a/src/page-member.pug +++ b/src/page-member.pug @@ -14,5 +14,4 @@ sib-router#member-router(default-route='member-chat') #member-profile include page-member-profile.pug #member-edit - include page-member-edit.pug -mucreokyordoriptyis7 \ No newline at end of file + include page-member-edit.pug \ No newline at end of file diff --git a/src/styles/content.scss b/src/styles/content.scss index 9d167ff..1d14b1a 100644 --- a/src/styles/content.scss +++ b/src/styles/content.scss @@ -1,7 +1,6 @@ // job offers #offers-list { > div { - display: none; > sib-display { display: block; margin: 1em 0; @@ -11,15 +10,44 @@ &:nth-child(odd) { background-color: $color-white; } - sib-display-div[name=title]{ + sib-display-div[name='title'] { display: block; - @extend h1; - background-color: red; + @extend h2; + } + label { + display: none; + } + hdapp-author { + ul { + @include list-reset(); + } } } } } +// skills +sib-display-lookuplist[name='skills'] { + ul, + li { + display: block; + margin: 0; + padding: 0; + list-style: none; + } + ul { + display: flex; + flex-wrap: wrap; + margin: 0 -0.25em; + } + li { + padding: 0.5em 1em; + border: 1px solid; + border-radius: 0.25em; + margin: 0.25em; + } +} + // chat .chat-view { @@ -32,7 +60,6 @@ } } - .members-list-condensed { display: block; img { @@ -53,10 +80,9 @@ } } - // member-profile && member sib-display#member-info, -#profiles-list>div>sib-display{ +#profiles-list > div > sib-display { display: block; position: relative; background-color: $color-white; @@ -92,4 +118,3 @@ sib-display#member-info, grid-gap: 1em; } } - diff --git a/src/styles/form.scss b/src/styles/form.scss new file mode 100644 index 0000000..99ea8cb --- /dev/null +++ b/src/styles/form.scss @@ -0,0 +1,35 @@ +//button, checkbox, color, date, datetime-local, email, file, hidden, image, month, number, password, radio, range, reset, search, submit, tel, text, time, url, week, datetime + + +sib-form{ + form{ + margin: -.5em; + >*{ + margin: .5em; + } + } + + // text like + input:not([type=button]):not([type=checkbox]):not([type=color]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=range]):not([type=reset]):not([type=submit]){ + padding: 0.5em; + border: none; + @extend %shadow; + } + + // button like + button, + input[type=button], + input[type=color], + input[type=file], + input[type=reset], + input[type=submit]{ + padding: 0.5em 1em; + border: none; + background-color: $color-yellow; + border-radius: 100em; + } + + input[type="reset"]{ + display: none; + } +} \ No newline at end of file diff --git a/src/styles/index.scss b/src/styles/index.scss index f4d6f8a..8a87e48 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -9,6 +9,6 @@ @import 'form'; @import 'content'; -@import 'members'; +// @import 'members'; @import 'menu'; diff --git a/src/styles/members.scss b/src/styles/members.scss new file mode 100644 index 0000000..81fc7a7 --- /dev/null +++ b/src/styles/members.scss @@ -0,0 +1,222 @@ + +// members +%img-circle { + $width: 55%; + display: block; + position: relative; + width: $width; + padding-bottom: $width; + height: 0; + margin: 2em auto; + img { + display: block; + position: absolute; + width: 100%; + height: 100%; + border-radius: 100%; + object-fit: cover; + object-position: center; + } +} + +%member { + sib-display-img { + @extend %img-circle; + } + display: block; + position: relative; + background-color: $color-white; + @extend %shadow; + padding: 0.5em; + cursor: pointer; + + &::before, + &::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + transform: scale3d(0, 0, 1); + transition: transform 0.3s ease-out 0s; + background: #eac1; + content: ''; + pointer-events: none; + } + + &::before { + transform-origin: left top; + } + + &::after { + transform-origin: right bottom; + + background: #ace1; + } + + &:hover, + &:focus { + &::before, + &::after { + transform: scale3d(1, 1, 1); + } + } +} + +#profiles-list { + display: block; + div[name='header'] { + border-top: 2em solid $color-grey-light; + border-bottom: 1px solid $color-grey-light; + padding-bottom: 1em; + margin: -0.5em; + padding: 0.5em; + margin-bottom: 1em; + text-align: center; + } + + > div { + display: grid; + margin-top: 1em; + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + grid-gap: 1em; + label { + display: none; + } + + > sib-display { + @extend %member; + } + } + + hdapp-userinfo { + display: block; + color: $color-black; + font-size: 1.1em; + margin: 0.5em; + ul, + li { + display: block; + margin: 0; + padding: 0; + list-style: none; + } + } + + div[name='pseudonym'] { + font-size: 0.8em; + div { + display: inline; + } + } +} + + +// member +%detail-section { + font-weight: bold; + font-size: 18px; +} + +#member-chat { + #conversejs { + margin: none; + } +} +#member-info { + background-color: $color-white; + padding: 1em; + @extend %shadow; +} + +#profiles-list, +#member-info { + img { + display: block; + } + + img { + width: 100%; + } + + div[name='name'] { + @extend %detail-section; + padding-top: 10px; + } + + div[name='name'], + div[name='location'] { + display: flex; + } +} + +#member-detail { + #member-info { + sib-display-mailto, + sib-display-tel { + display: block; + } + + a[name='email'], + a[name='number'] { + &::before { + font-family: FontAwesome; + padding-right: 4px; + color: black; + } + } + a[name='email'] { + &::before { + content: '\f0e0'; + } + } + a[name='number'] { + &::before { + content: '\f10b'; + font-size: 22px; + padding-left: 3px; + padding-right: 7px; + } + } + } + + .section { + position: relative; + + h2 { + @extend %detail-section; + margin-top: 40px; + } + } + + #member-skills { + display: flex; + flex-wrap: wrap; + + sib-display { + display: block; + background-color: $color-black; + color: $color-white; + border-radius: 100px; + padding: 3px 10px; + margin-bottom: 5px; + margin-right: 5px; + } + } +} + +@include media('width>phone') { + #member-detail { + #member-info { + sib-display-img { + display: block; + float: right; + width: 300px; + } + } + } +} + +#member-info { + @extend %member; +} diff --git a/www/.htaccess b/www/.htaccess new file mode 100644 index 0000000..5c88e4c --- /dev/null +++ b/www/.htaccess @@ -0,0 +1,8 @@ + + RewriteEngine On + RewriteBase / + RewriteRule \. - [L] + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + RewriteRule . /index.html [L] + diff --git a/www/images/logo.png b/www/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d47b12090ca2650956f554ac22fccb7253c2aa2a GIT binary patch literal 4018 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 literal 0 HcmV?d00001 diff --git a/www/images/user.png b/www/images/user.png new file mode 100644 index 0000000000000000000000000000000000000000..e8a30be62d01deaccc406d7062cccba51bd8b4d4 GIT binary patch literal 8208 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 Date: Fri, 5 Oct 2018 13:07:14 +0200 Subject: [PATCH 12/27] use sample files --- .gitignore | 2 ++ Makefile | 9 +++++++-- src/config.pug | 2 +- src/config.sample.pug | 3 +++ src/dependencies.pug | 5 ++--- www/oidc-client-config.json | 3 +-- www/oidc-client-config.sample.json | 10 ++++++++++ 7 files changed, 26 insertions(+), 8 deletions(-) create mode 100644 src/config.sample.pug create mode 100644 www/oidc-client-config.sample.json diff --git a/.gitignore b/.gitignore index b9179d0..03780aa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,10 @@ /node_modules +/src/config.pug /www/index.html /www/styles/ /www/scripts/ /www/lib/ +/www/oidc-client-config.json !/www/lib/sib-core !/www/lib/sib-router !/www/lib/sib-chat \ No newline at end of file diff --git a/Makefile b/Makefile index fbd0490..f593ba0 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ clean: git clean -fXd -install: node_modules copy_lib submodules +install: node_modules copy_lib copy_samples submodules submodules: git submodule init @@ -37,6 +37,11 @@ node_modules: copy_lib: @node copy_lib.js +# sample +copy_samples: + @cp -n src/config.sample.pug src/config.pug + @cp -n www/oidc-client-config.sample.json www/oidc-client-config.json + # pug $(DIST_DIR)/index.html: src/index.pug $(wildcard src/*.pug src/*/*.pug) @echo pug: $< ➜ $@ @@ -56,4 +61,4 @@ $(DIST_DIR)/%.js: src/%.js sync: rsync -rv www/* staging-app@ssh-staging-app.happy-dev.fr:~/staging-app.happy-dev.fr/ -.PHONY: default install submodules copy_lib build watch serve clean \ No newline at end of file +.PHONY: default install submodules copy_lib copy_samples build watch serve clean \ No newline at end of file diff --git a/src/config.pug b/src/config.pug index 8a83ec0..0e48b69 100644 --- a/src/config.pug +++ b/src/config.pug @@ -1,3 +1,3 @@ //- var sdn = process.env.SDN || 'http://127.0.0.1:8000' -- var sdn = process.env.SDN || 'https://test-paris.happy-dev.fr' +- var sdn = process.env.SDN || '127.0.0.1:8000' - var cdn = process.env.CDN || 'https://cdn.happy-dev.fr' \ No newline at end of file diff --git a/src/config.sample.pug b/src/config.sample.pug new file mode 100644 index 0000000..0e48b69 --- /dev/null +++ b/src/config.sample.pug @@ -0,0 +1,3 @@ +//- var sdn = process.env.SDN || 'http://127.0.0.1:8000' +- var sdn = process.env.SDN || '127.0.0.1:8000' +- var cdn = process.env.CDN || 'https://cdn.happy-dev.fr' \ No newline at end of file diff --git a/src/dependencies.pug b/src/dependencies.pug index deb579d..7791200 100644 --- a/src/dependencies.pug +++ b/src/dependencies.pug @@ -1,10 +1,9 @@ // Scripts +//- script(src="https://unpkg.com/@webcomponents/webcomponentsjs@1.2.7/webcomponents-loader.js") script(src="/lib/webcomponentsjs/webcomponents-loader.js") //- script(src="lib/html-imports.js") -//- script(src="https://unpkg.com/@webcomponents/webcomponentsjs@1.2.7/webcomponents-loader.js") script(src='/lib/sib-chat/3rdparty/sib-oidc-client.js') - script(src="/scripts/index.js") // Stylesheets @@ -26,4 +25,4 @@ link(rel='import', href='/lib/sib-chat/sib-chat.html') //- cdn link(rel='import', href="https://cdn.happy-dev.fr/sib-core/sib-display.html") link(rel='import', href="https://cdn.happy-dev.fr/sib-router/sib-router.html") - //- link(rel='import', href="https://cdn.happy-dev.fr/sib-chat/sib-chat.html") \ No newline at end of file + link(rel='import', href="https://cdn.happy-dev.fr/sib-chat/sib-chat.html") \ No newline at end of file diff --git a/www/oidc-client-config.json b/www/oidc-client-config.json index 5cbb8d8..83cabe4 100644 --- a/www/oidc-client-config.json +++ b/www/oidc-client-config.json @@ -7,5 +7,4 @@ "automaticSilentRenew": true, "silent_redirect_uri": "https://staging-app.happy-dev.fr", "loadUserInfo": true -} - +} \ No newline at end of file diff --git a/www/oidc-client-config.sample.json b/www/oidc-client-config.sample.json new file mode 100644 index 0000000..3fc26ae --- /dev/null +++ b/www/oidc-client-config.sample.json @@ -0,0 +1,10 @@ +{ + "authority": "https://test-paris.happy-dev.fr/openid/", + "client_id": "125356", + "redirect_uri": "http://127.0.0.1:3000", + "response_type": "id_token token", + "scope": "openid profile email", + "automaticSilentRenew": true, + "silent_redirect_uri": "http://127.0.0.1:3000", + "loadUserInfo": true +} \ No newline at end of file From 3166872dd7a4a7de680575c65bf2f31059f391a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Fri, 5 Oct 2018 13:12:34 +0200 Subject: [PATCH 13/27] --amend --- www/oidc-client-config.json | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 www/oidc-client-config.json diff --git a/www/oidc-client-config.json b/www/oidc-client-config.json deleted file mode 100644 index 83cabe4..0000000 --- a/www/oidc-client-config.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "authority": "https://test-paris.happy-dev.fr/openid/", - "client_id": "125356", - "redirect_uri": "https://staging-app.happy-dev.fr", - "response_type": "id_token token", - "scope": "openid profile email", - "automaticSilentRenew": true, - "silent_redirect_uri": "https://staging-app.happy-dev.fr", - "loadUserInfo": true -} \ No newline at end of file From 8d0688b503cef972f8b37883ddb4c6fa048f3933 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Fri, 5 Oct 2018 13:13:25 +0200 Subject: [PATCH 14/27] --amend --- src/config.pug | 3 --- src/config.sample.pug | 1 - 2 files changed, 4 deletions(-) delete mode 100644 src/config.pug diff --git a/src/config.pug b/src/config.pug deleted file mode 100644 index 0e48b69..0000000 --- a/src/config.pug +++ /dev/null @@ -1,3 +0,0 @@ -//- var sdn = process.env.SDN || 'http://127.0.0.1:8000' -- var sdn = process.env.SDN || '127.0.0.1:8000' -- var cdn = process.env.CDN || 'https://cdn.happy-dev.fr' \ No newline at end of file diff --git a/src/config.sample.pug b/src/config.sample.pug index 0e48b69..581bd1b 100644 --- a/src/config.sample.pug +++ b/src/config.sample.pug @@ -1,3 +1,2 @@ -//- var sdn = process.env.SDN || 'http://127.0.0.1:8000' - var sdn = process.env.SDN || '127.0.0.1:8000' - var cdn = process.env.CDN || 'https://cdn.happy-dev.fr' \ No newline at end of file From 4f60cdb875a56fac904edd07d761914394536f2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Fri, 5 Oct 2018 13:32:35 +0200 Subject: [PATCH 15/27] --amend --- src/config.sample.pug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.sample.pug b/src/config.sample.pug index 581bd1b..dd28afe 100644 --- a/src/config.sample.pug +++ b/src/config.sample.pug @@ -1,2 +1,2 @@ -- var sdn = process.env.SDN || '127.0.0.1:8000' +- var sdn = process.env.SDN || 'http://127.0.0.1:8000' - var cdn = process.env.CDN || 'https://cdn.happy-dev.fr' \ No newline at end of file From d6cd1a54ed51e1c3d6fc75c0ae45742ddc25fbc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Mon, 8 Oct 2018 10:49:31 +0200 Subject: [PATCH 16/27] style --- src/dependencies.pug | 4 ++-- src/menu.pug | 4 ++-- src/page-group-edit.pug | 2 +- src/page-member-edit.pug | 2 +- src/page-project-edit.pug | 2 +- src/styles/content.scss | 8 ++++++++ src/styles/form.scss | 4 +++- src/styles/icons.scss | 1 + src/styles/main.scss | 33 ++++++++++++++++++++++++++------ src/styles/variables.scss | 6 ++++++ www/lib/sib-chat | 2 +- www/test.html | 40 +++++++++++++++++++++++++++++++++++++++ 12 files changed, 93 insertions(+), 15 deletions(-) create mode 100644 www/test.html diff --git a/src/dependencies.pug b/src/dependencies.pug index 7791200..27d28ae 100644 --- a/src/dependencies.pug +++ b/src/dependencies.pug @@ -3,7 +3,7 @@ script(src="/lib/webcomponentsjs/webcomponents-loader.js") //- script(src="lib/html-imports.js") -script(src='/lib/sib-chat/3rdparty/sib-oidc-client.js') +//- script(src='/lib/sib-chat/3rdparty/sib-oidc-client.js') script(src="/scripts/index.js") // Stylesheets @@ -20,7 +20,7 @@ link(href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,6 //- local link(rel='import', href='/lib/sib-core/sib-display.html') link(rel='import', href='/lib/sib-router/sib-router.html') -link(rel='import', href='/lib/sib-chat/sib-chat.html') +//- link(rel='import', href='/lib/sib-chat/sib-chat.html') //- cdn link(rel='import', href="https://cdn.happy-dev.fr/sib-core/sib-display.html") diff --git a/src/menu.pug b/src/menu.pug index 6989aa9..7a4c898 100644 --- a/src/menu.pug +++ b/src/menu.pug @@ -4,12 +4,12 @@ div div(hidden) div#menu-items sib-route(name='members') - div.icon-people Membres + div.icon-people Members sib-route(hidden, name='member', id-prefix=`${sdn}/members/`) sib-route(name='job-offers') div.icon-briefcase Job offers div - div.icon-folder-alt Projets + div.icon-folder-alt Projects sib-display( data-src=`${sdn}/projects/`, data-fields='name', diff --git a/src/page-group-edit.pug b/src/page-group-edit.pug index 452d565..b575a69 100644 --- a/src/page-group-edit.pug +++ b/src/page-group-edit.pug @@ -1,5 +1,5 @@ #group-edit - sib-form( + sib-form.block( range-owner=`${sdn}/members/`, widget-members='sib-form-multiple-dropdown', range-members=`${sdn}/members/`, diff --git a/src/page-member-edit.pug b/src/page-member-edit.pug index 7898657..1d4ecc8 100644 --- a/src/page-member-edit.pug +++ b/src/page-member-edit.pug @@ -18,7 +18,7 @@ label.d-none(for='avatar-input') img#avatar-preview(src='', style='width: 100%;') input#avatar-input.d-none(accept='image/*', name='avatar', value='', type='file') -sib-form.edit-form( +sib-form.edit-form.block( data-fields='user, avatar, bio, cell, jabberID, number, pseudo, skills, website', widget-user='hdapp-usereditinfo', range-cell=`${sdn}/cells/`, widget-skills='sib-form-multiple-dropdown', diff --git a/src/page-project-edit.pug b/src/page-project-edit.pug index df14b24..325ad0b 100644 --- a/src/page-project-edit.pug +++ b/src/page-project-edit.pug @@ -1,5 +1,5 @@ #project-edit - sib-form( + sib-form.block( range-client=`${sdn}/clients/`, widget-team='sib-form-multiple-dropdown', range-team=`${sdn}/members/`, diff --git a/src/styles/content.scss b/src/styles/content.scss index 1d14b1a..54e84f7 100644 --- a/src/styles/content.scss +++ b/src/styles/content.scss @@ -118,3 +118,11 @@ sib-display#member-info, grid-gap: 1em; } } + + +// projects +#project-profile { + [name="title"]{ + + } +} \ No newline at end of file diff --git a/src/styles/form.scss b/src/styles/form.scss index 99ea8cb..a8beda0 100644 --- a/src/styles/form.scss +++ b/src/styles/form.scss @@ -1,6 +1,8 @@ //button, checkbox, color, date, datetime-local, email, file, hidden, image, month, number, password, radio, range, reset, search, submit, tel, text, time, url, week, datetime - +sib-form.block>form>*{ + display: block; +} sib-form{ form{ margin: -.5em; diff --git a/src/styles/icons.scss b/src/styles/icons.scss index 48ea2c5..ac9c733 100644 --- a/src/styles/icons.scss +++ b/src/styles/icons.scss @@ -250,6 +250,7 @@ $icons: ( social-steam: '\e620', ); + @each $name, $code in $icons { .icon-#{$name} { &:before { diff --git a/src/styles/main.scss b/src/styles/main.scss index cbb7313..5b420b8 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -99,7 +99,7 @@ h3 { flex: 1 1 0px; } -.limiter{ +.limiter { display: block; max-width: 650px; } @@ -110,21 +110,37 @@ h3 { flex-direction: row-reverse; align-items: flex-start; > sib-router { + font-family: monospace; + color: $color-black; display: block; - background-color: #ccc; + background-color: $color-grey-light2; sib-route { display: block; + cursor: pointer; > div { position: relative; - padding: 1em 2em; - border-bottom: 1px solid #888; + padding: 1.5em 3em; + border-bottom: 1px solid $color-grey; + } + &:hover { + background-color: $color-grey; } &[active] { font-weight: bold; + background-color: $color-black; + color: $color-yellow; > div:before { - content: '<'; - position: absolute; + opacity: 1; transform: translateX(-150%); + transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); + } + } + > div { + @include icon(arrow-left); + &:before { + position: absolute; + transform: translateX(-50%); + opacity: 0; } } } @@ -170,6 +186,11 @@ h3 { } } +sib-route, +sib-trigger { + cursor: pointer; +} + sib-trigger.back { display: block; @include icon('arrow-left'); diff --git a/src/styles/variables.scss b/src/styles/variables.scss index 2e7a115..27002aa 100644 --- a/src/styles/variables.scss +++ b/src/styles/variables.scss @@ -2,6 +2,7 @@ $color-white: #fff; $color-black: #36383b; $color-grey: #898f95; +$color-grey-light2: #d8d8d8; $color-grey-light: #f0f3f6; $color-yellow: #ffb700; @@ -11,6 +12,11 @@ $color-yellow-light: #ffd759; box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.15); } +%cadre { + @extend %shadow; + background-color: $color-white; +} + $breakpoints: ( phone: 480px, tablet: 768px, diff --git a/www/lib/sib-chat b/www/lib/sib-chat index 24192a8..ef607e3 160000 --- a/www/lib/sib-chat +++ b/www/lib/sib-chat @@ -1 +1 @@ -Subproject commit 24192a89c1bc19f7faa06546ba1b798ad717e04b +Subproject commit ef607e3aecf6f7091b2fee1fd327e181b376b24d diff --git a/www/test.html b/www/test.html new file mode 100644 index 0000000..a7a88ea --- /dev/null +++ b/www/test.html @@ -0,0 +1,40 @@ + + + + + [test] HD App + + + + + + + + + + + +
+

Job offers

+ +
+
+

Members

+ +
+ + \ No newline at end of file From 78551c45796af963fbf9c51d0c95a509953ce42d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Fri, 12 Oct 2018 19:11:13 +0200 Subject: [PATCH 17/27] add sib-oidc --- .gitignore | 3 ++- .gitmodules | 3 +++ Makefile | 11 +++++++---- src/dependencies.pug | 14 ++++++++++++-- src/header.pug | 4 ++-- src/page-members.pug | 13 +++++-------- src/page-project-profile.pug | 12 +++++++----- src/styles/content.scss | 27 +++++++++++++++++++++++---- src/styles/index.scss | 5 ++--- src/styles/main.scss | 5 +++++ www/images/user.jpg | Bin 0 -> 2567 bytes www/images/user.png | Bin 8208 -> 0 bytes www/lib/sib-core | 2 +- www/lib/sib-oidc | 1 + www/oidc-client-config.sample.json | 10 ---------- 15 files changed, 70 insertions(+), 40 deletions(-) create mode 100644 www/images/user.jpg delete mode 100644 www/images/user.png create mode 160000 www/lib/sib-oidc delete mode 100644 www/oidc-client-config.sample.json diff --git a/.gitignore b/.gitignore index 03780aa..5e6e5fb 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ /www/oidc-client-config.json !/www/lib/sib-core !/www/lib/sib-router -!/www/lib/sib-chat \ No newline at end of file +!/www/lib/sib-chat +!/www/lib/sib-oidc \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 99cd617..bd2c2be 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,6 @@ [submodule "www/lib/sib-chat"] path = www/lib/sib-chat url = git@git.happy-dev.fr:startinblox/sib-chat.git +[submodule "www/lib/sib-oidc"] + path = www/lib/sib-oidc + url = git@git.happy-dev.fr:startinblox/sib-oidc.git diff --git a/Makefile b/Makefile index f593ba0..130c744 100644 --- a/Makefile +++ b/Makefile @@ -40,7 +40,6 @@ copy_lib: # sample copy_samples: @cp -n src/config.sample.pug src/config.pug - @cp -n www/oidc-client-config.sample.json www/oidc-client-config.json # pug $(DIST_DIR)/index.html: src/index.pug $(wildcard src/*.pug src/*/*.pug) @@ -58,7 +57,11 @@ $(DIST_DIR)/%.js: src/%.js @mkdir -p $(dir $@) @node_modules/.bin/babel $< --out-file $@ --source-maps || touch $@ -sync: - rsync -rv www/* staging-app@ssh-staging-app.happy-dev.fr:~/staging-app.happy-dev.fr/ +buildprod: + export SDN="https://test-paris.happy-dev.fr"; \ + $(MAKE) $(DIST_DIR)/index.html -B -.PHONY: default install submodules copy_lib copy_samples build watch serve clean \ No newline at end of file +sync: + rsync -rv www/* staging-app@ssh-staging-app.happy-dev.fr:~/staging-app.happy-dev.fr/ --exclude=www/oidc-client-config.json + +.PHONY: default install submodules copy_lib copy_samples build watch serve clean sync buildprod \ No newline at end of file diff --git a/src/dependencies.pug b/src/dependencies.pug index 27d28ae..b017764 100644 --- a/src/dependencies.pug +++ b/src/dependencies.pug @@ -3,7 +3,17 @@ script(src="/lib/webcomponentsjs/webcomponents-loader.js") //- script(src="lib/html-imports.js") -//- script(src='/lib/sib-chat/3rdparty/sib-oidc-client.js') +script(src="https://cdn.happy-dev.fr/oidc-client/oidc-client.min.js") +script( + src="lib/sib-oidc/sib-oidc.js" + data-authority='https://test-paris.happy-dev.fr/openid/', + data-client_id='833925', + data-response_type='id_token token', + data-scope='openid profile email', + data-automaticSilentRenew='true', + data-loadUserInfo='true' +) + script(src="/scripts/index.js") // Stylesheets @@ -20,7 +30,7 @@ link(href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,6 //- local link(rel='import', href='/lib/sib-core/sib-display.html') link(rel='import', href='/lib/sib-router/sib-router.html') -//- link(rel='import', href='/lib/sib-chat/sib-chat.html') +link(rel='import', href='/lib/sib-chat/sib-chat.html') //- cdn link(rel='import', href="https://cdn.happy-dev.fr/sib-core/sib-display.html") diff --git a/src/header.pug b/src/header.pug index 3f945f2..36de081 100644 --- a/src/header.pug +++ b/src/header.pug @@ -11,7 +11,7 @@ #notification #profile - img(src="/images/user.png" width=43 height=43) + img(src="/images/user.jpg") span - | Sophie + | Paul span.icon-arrow-down \ No newline at end of file diff --git a/src/page-members.pug b/src/page-members.pug index 7ecd124..6ee5abc 100644 --- a/src/page-members.pug +++ b/src/page-members.pug @@ -1,5 +1,5 @@ script. - document.addEventListener("WebComponentsReady", function(event) { + document.addEventListener("WebComponentsReady", function(event) { class HDAppUserInfo extends SIBDisplayLookupList { get parentElement() {return "div"} getTemplate(value, index) { @@ -20,7 +20,7 @@ script. else this.value = []; return ''; } - return `
${firstname} ${lastname}
`; + return `
${firstname} ${lastname}
`; // + `
${email}
`; } } @@ -45,7 +45,7 @@ script. else this.value = []; return ''; } - return `${city} ${country}`; + return `${city} ${country}`; } } customElements.define("hdapp-usercell", HDAppCell); @@ -56,8 +56,8 @@ div sib-display#profiles-list( data-src=`${sdn}/members/`, data-fields='header, cell, skills', - set-header='avatar, user, pseudonym, bio' - set-pseudonym='before-pseudo, pseudo' + set-header='avatar, user, pseudonym, bio', + set-pseudonym='before-pseudo, pseudo', value-before-pseudo='@', widget-avatar='sib-display-img', widget-user='hdapp-userinfo', @@ -67,6 +67,3 @@ div search-fields='searchset', next='member' ) - - - diff --git a/src/page-project-profile.pug b/src/page-project-profile.pug index d0a5a55..b272a27 100644 --- a/src/page-project-profile.pug +++ b/src/page-project-profile.pug @@ -1,10 +1,12 @@ #project-profile sib-display( - data-fields='title, description, client', - set-title='number, name' + data-fields='title, description, client, team', + set-title='number, client, name', widget-client='hdapp-client', - bind-resources + widget-team='sib-display-lookuplist', + bind-resources, ) + h3 Team sib-display.members-list-condensed( id-suffix='team', @@ -12,5 +14,5 @@ widget-avatar='sib-display-img', widget-user='hdapp-userinfo', next='member', - bind-resources - ) + bind-resources, + ) \ No newline at end of file diff --git a/src/styles/content.scss b/src/styles/content.scss index 54e84f7..4124bfb 100644 --- a/src/styles/content.scss +++ b/src/styles/content.scss @@ -89,6 +89,10 @@ sib-display#member-info, @extend %shadow; padding: 1em; cursor: pointer; + + label { + // display: none; + } sib-display-img { $width: 55%; display: block; @@ -119,10 +123,25 @@ sib-display#member-info, } } - // projects #project-profile { - [name="title"]{ - + [name='title'] { + @extend h1; + > sib-display-div { + display: inline-block; + } + div[name='number'] { + padding-right: 0.5em; + &:before { + content: '#'; + } + } } -} \ No newline at end of file +} + +label { + @extend h2; + &:after { + content: ':'; + } +} diff --git a/src/styles/index.scss b/src/styles/index.scss index 8a87e48..6175744 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -9,6 +9,5 @@ @import 'form'; @import 'content'; -// @import 'members'; -@import 'menu'; - +@import 'members'; +@import 'menu'; \ No newline at end of file diff --git a/src/styles/main.scss b/src/styles/main.scss index 5b420b8..d767dd6 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -87,6 +87,11 @@ h3 { } img { margin-right: 0.5em; + width: 43px; + height: 43px; + object-fit: cover; + object-position: center; + border-radius: 100%; } } diff --git a/www/images/user.jpg b/www/images/user.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6edfb389e8d86beac7595571bb638c0013d10a6d GIT binary patch literal 2567 zcmaJ>X;f257Jh&Q-e026!1S zS+fKH0An9-8WR9?&~v|`9_$JDZNC@XnM*yxr9r}IX*^pD0Un?*3PSqu*)b3kVuO2k zcS4&1K+lRB94-xK_>(w7K9)U)!6xuUFdG0iyCsO&93CV^MnN%L0U7nIz8Qt&f@D;f zGXuvEQK49_ccK^yN(>0*B=R^!5aqT7xjBIZ3-BQ+8=1i0C6JI3$f$W;54 z5Gjw0`kYiaBM?ayiXo&k))B+O;qgcU0gHEXCJ^vwqyrA`V2^{1fWbSFoCzd{O~@}F z3XUcQqe)B}{Yxx(Mn=U-r6Q8OeSCa8Hr^2{6vx=(iA3U@hJynJMqng+1yXhbMj)|V zP@q8)j+iTwa)koqoFY3)7$+s8;7mU+fiL%qy->@@&BQG z{#Ud_%7p%t@Bb8*1n(6=_Do13j1zO=+2HVG(6tZk>cb@ zq!MW^E_4djkwBy^aA`tL93K)$7r5Y8E*|$y?p!hOMQ~&qBh0~Vudlyx(^UbTRS>BR4Ucgt5^H```g>w8yg#&o10r&TGVQFS65eecXwM`TW4qI z*qNFK0PvlG56vSuVPvWxM*b&hDc#stc`+ms?7H*eE;zb(#=6rV;eglCc|VPqK5OH2 zqRe#u?tW6}@nU^3+{uP|GFQ>xfqOOZ|ps9P1M+gwKJmixJF<4(Tbw*wI{>smhHnUzK zv*#&Bi|fUSM)e!+XF(r-U^xvhuhS%t(m9)p`XUmo4Z6NhI#BXPGqNpm+WT3_Xt*q{ z*wCNg)|PQjRJodV+ZK`5$ZS1)ZtIUmwWDUo_IHlnXb&+qk+lb&EVHw5@N(4|lAn{f z7q18G#vbKRL;02|509h`(WLLkb3C(>ffiGLWo*Tcp^V}Fb?P1Oz^W0q)?=#&Mw637 zYLZ>PR;)(dF>X7dmAzQ|yw~n%a5e6Aw=%dRA|{$uHC}YyT0md4OozIH+|;6ff3s<` zUE)qz+=^^%?C-rxb(K4dZ%G3XHd%fZD5X^XgTu-&X^<_?(vo+c8H%#x8L@O+R1Tk9 z^G;MHqwh6e-|8(_XPhd?M$5FC-?J4}?M@LYnYxZ@y`e0`=84sYGWz|WTo2{v$~@$5 z7T~)exU*I{Yzvp?%G~9Tl&QZe^uUu?S5+s8@_A~e^v}1r589$#4b^I7m-v@BOKZQo zrFqN%d6Pd$mRnqrT-e!}SeiQlgEr@(to_Db7M@XHz;})m`Gh+!`_I2#ZAkwS&svgx z92=#aeh+SI18sM$-7?VpCdMSUSafXiuy3iG@fx$yBRzQ<&q77|&kAxArE3CRTamqS zUz*&=Nxb81%i>6nu*Yl60+{kE7sVTGc~|@T1+!aBWyQO;*CJ%aiZdaZYUa=-7k1wZ z>s7MisqtoGiopSd4{IcXeXej!Z)L;SbbwtARLTpVs)S01$6i_V=J_pi9=(kr?3QXD z_zJMJv9W(tuHJsHk?dd5mqdS1T+UjLDhsmp+c>fH!>Mj7q~FuOg&#lg-5bT5-OjI7 zFVDTp0Vh`#4ArfB$|;Zq&ju6kZFDQYaedFq^0f5oJ1ad>-N=I%LhBsZWzjhk{;Khl zy0=F}Z8Khx-{;7XqJO4CMH}&`qZ2wknj;ERFY`;6QM{gh;PQCpy-4R> zH2IvW=26>9Gl}@OwYIL z!1Sb^e4-}QpNekX7Z+0P*mIot`0-4V#|#)`ug*|K`fT^qih)??KXPP9P3f zQje^-T17juLNnk!ykpmeX=85jY33nAowbsZ6=U9JvCopGK1NcH{Pod!%RP&Wy)O?L ze#$zt`fPsFifj4fvPM_hY89>?v0hh#y78bdMSe~6HlL;np;H#kDqHU|o<+YqdsZKD z%J5_LnLYX#`9a!+h{=@q#FZ~@O?6rNCmq^e?UuHkXr_&yI#6in5$KLuL@sPB74lHx?2nF(&C@C%PO_aJdCE2D3ZG5)r)jarCzgnNF0Jd?K zvpy}|WWdrfCxH3@D_j4wA&r!u4FEmNKHEXGDrMeu7eFlF3kYfCJ`duK{{rX%jN}ef TMp(_$xu@O7Gk{i3`6=b!0%cZ_A%ecwN)-1geM_onUC?PZqKa+lSTNlO$ZOR{AvE|IHj z#|CUCj%meF-~>nv1o|rhf*?Q)Cstrvk!;IS94m6vtU`&R8r!mHJGbx7?DTp4wsTJY zxNnzSks>LH3IgN+7x!U+x%d9Q=hwf#Bb;-N|BsjcK|R=*oNl*Ex7X#;rAwSTbDFc~ z&T{tbS+-hRIAdv)Bj%?jnVcA7VqyaAht%q$G{(l6o|&UusZlDG2*VH|#1G^<#cQnr zt=1+dPkf7~o<7RS(I|2zE|R7>LP~s3Gu{~C_Px8g=gvj3)$3Db2zwt1wtu2<liI5&>53ZZI6Cf2*DP$Tm;=vue=GZe@ zW4u;I*o-sJKEXf!?XU2bx4wg4{DoiU;KIT08G!Fe1KOQ7|KUIVJHGhYPhheET5EFa z7{ocwK~yT!?I%OK*Oa4>naK(6z5Q0+bkCja*|(qiwt0jOi=7t=5MT|YeHgT$-^F$} zAxUsTVFo=mJ2B6kKFzg_O`bS?jz>?Qqh}ny|K5Mjul(|Rz9+Nzt~9_pN2k~0W1sw6 zzVyY<((QKW4-%x5WSPMssn^PEZMNw4`UoK?mm)?=6?RS3IWRNM)Z{qjkp@x<92T4f zAqoHl1t2;AF9$yY>u|=P1XMIE%uF&B`ix12+hAGk98J z5X?@E^XotTHh%2Q4=^#m7q8Mp_z^-X5a8SkG{9PLt^h&E;?f$t5RAbfaYCVdO&A4K zDdMAdm%b^BXNR#5qb6lR{ti@r;ZH{%Oa2HDA`94m75}=eS1QLR; ze)X$7_hQA^&}2lWfpO3qiLR<14{rv&`(| z1X>EVZJXei-uZU6?>Pv538X9pvksH=8FYK(Rv@gylaeqDkfloTQjg<`_$-%h>`xo|c5Gb5;D_`QT|K=n7+IxNj^&LXwO9Ehw;quBdahi}DLw9|Nr7M>)&S9(| zNfR`X8-q25TC>L8d*<1*eVQM+_jbnTcM~)wKnRL7Lx6Q)bEM5tS|B_KJr#HalIWqExA=M47 zDd#KCKEnfRYwVbqc=Z6RciODAS`5;h!JtQbW0kF~7UfEnbdVyP!&i#bLT;f{DzSfd ziu>+dU}Acj(!?B2dWBjt^yoN9QnJNMoIG}nzj@@F^tv%K^)k25)oAwB%Sd)V_NUgELA%s9^O=fc9+|Z6=I{g98I;^!wAqzj@An-k61fO~KIKTPk zapX%>lrPeYB+IzGwnisTXvGOz-43lmMk~%KjWm%`Pzrstk_F1bL--+H5HY`VCsDnL zjH*SL1CR=YE-oFSn$y&`?O?UD#pfSA$~P`7vDmS^etw*Pc-KB=YmTJf!rBaH3}A7> zVe$-X47sPs9i&FlO>)+|ecGJ?&VkAE0&gKvN>HiA zf8jDKtrkm{ud#LYGRMxHX65Q7DuKsXIlxx}B^}NhD&-P6601XGsevptL8&6XBZnF= z%<{C49-Cr^G5q*F_Yqp3JB}P7jAPcIx@)n#R~L$?<|EP z9rYmy)(}=JyzTxUVRxfR+Ua1WBM8PRPfSyt-%Y7n#w7{y;zib1S6J%}IKSHB=!GRN zE^m+|Db^Zk~7O6Cm?_u+t$4{K+^0hT44*0_~cWC#{ z0p|H?&lr%J+SnuqZ*#QIou|DFmAPp~7Y-pCV+c>-Hma0eh=;HbhDhy3QAFlt*th`r@-b!)gtT_Lfc_-V}^S& z)Bqt74osFJm7+90hOX9#w(miYO(T2{oW;Zmr!QUQ%0`c+tpP_*o}rWEH0o7u-8F}= zB@aJ+iX=?|flv}D1$pj@w8J^VS_9<=q{fgt*ywiI?Dd#>DF9ABcY=qy%S6s&BkuBL zcZHsbAr}Z|!CFk3l4c2c?l3}8i9&>gKr2EmsZ}e5?AM)*yPd&u^&N*^viK=x(@H8UTIFlCNZVb{H z(%fKyG_yEoDf^PpS45si5Qc^GbE42gXTdP^2kHfWK>-paB~B}Z?+;C6n8c(R{q20r^=cL;|-3V{$3 zfnaH~MVw}YzV|!;X}6EJxW+Rlj+5p+Dr0lxxfxbzrikXENIlz$!4m>!C2^Kgj(k88 z1OdM17rXBq7(2B6>%L%^_Ya>*65|FP@O_;25J6a&i<6MWblV*Sj?sFFFb{bBfj#V+ zpW@8w8hWI}#X*;Lr&r*4-NKy1^A*k*=J)Pl$FAK7XOU>6lvwMq#&UIYliiaO&jTPO zlqPFD`Il#Cx3-Y#G-+yY^5zalzc*l`GhnnF0x(E2LQf-{KuJ|}WNw5%h85jV{f#Yf z07w#OujAHNah^m@DV$#_%47#F?$c^@@dPwNg_1sb?z5w+@pVqwgGZkF7Fn7P6?upN zpgoNr2HgF|H#1tV6+Ty9&qy6s6k2c-0MDE}#((_KhuK))z&ZreTT$(~|u&s5nl|^i?i>@`1(+ZIr z$PJJ~uSc)dp`;X%uqe-v3P>}k`aaGY&Rt%*q547&-vxNSW^8T;3rFrE&kR~hv;a3O z$fOetk^yO+<7-_2@X$kF;q-~q*G0YIv7OC%eiiw3uQOn?)uY)M!5BlD3viCDPM2P{ zL#5f|M)GsRrUzu3o0zRFTz^2`*~BSHI6aRFOXO=;v4b|=#0*kL*j@*dW;DZ)P)LNe zARNZ!fZ_PXE3{hOBAz=C!+yS6n1;PJ@swN7{l877G4-JI#R|-@U>)hW0R{_uQE9|U#PvkUfZXb%{5x*oV`;s`SD!fr!Xc%= z8i$ZWN9Qc#(=!}8e3+4PiGG&TPBR91PF1J)TA`%G7(+jfsg+6v04GkIxJgJM70$gh z0M1ylBx7rtWarv8%v9z*9C+;y`+m1kCOi^}kbo)Gf>ax5w z;L7S2GZQ0x?a8NTtz0Yo!1acPvq(Qg2LY|+Yg{;ciS|~Dyx+%VIpi6xy+zjPpn`~t zS64W{x`GrIj3dh|gE(Qc+vk~!i+u6PW29LI5~Kj_NrVt+Pcl9=!R`YG3BwY(F=WnQ ztsx&?))gFuC*=)|*HDlgHw!PGPi9_X**qst655+vgq0c>;+TEgsNrFuhY@Sn}-^2Q|i(LHb6KtCu!H=q_SfJyg#15kp6ZJYyNh-b~HIB|8rky67 z-`wPXe*H-1))__uO<60-VL(ay1fIfI z@_7I{oz4rlf4I>v1AwvQSw_FzE}BuLh%;B#nHeqf&{rQ}|J*o@#yA9JTyAkvF*$z*h=iD?Fu8N}+gO!!>~Cd1P7k0uf({EOJ<5 zutJb@yLg_Y=M3kUHu&^6p5l#1Zs84g)^R#VD21+$Ai@ZYLq>v;`5A&slC{g%Ff$c8 zGj&$i)_L;LGiYDo)dR{}qKzR=Vvb(C!oyD=#~6bOJd{=_XNr;;f!3OGrNp+$Nk(f` zDq#sFH3El}5+wveN}Mec5hL7S3|DDX)QoVl{X zfBoCfvAMolw72~bS*;aL4}mi=*6ZU{J;sbi9lcEH{1*9Ahs#TwoL$`@$qhmZGGkfp z_IUW&Q>?eUAO%Wmv?>}N0*f#iLF6-1ud{3S9>yy*YEekp*Z5kZr9>)?l&WaS50fS_ zGyw@P+H5dgDpL!>LRR_h0>89ISZh&IFg0Fd|Mp30l?p;CKK+fS`SVYHfqpzd_#t@F zu+Y(99eLKJ6ED)zZHzAvofNy=X4lLVd*-K^uGJ_9KAZ7?FFbji;}@^uD1?_pO)P8@5 z<)~C6=B6e&ymyW}4(?!XY7FiB{P`yz;!BS`iLv=mqePMFdJ)PiqoN9F%0pM--{V=UgLbo?yyd0vx3kb#Q?s-;HmHo$ zIC%IDcFgZUt779U4(r_W9bYGkLKF~AqNOJE{O19f7@ub(sxVnCqXLO|l{|Z?95PZ4 zvDT3pu-1^~7KdQGS*H~EoL^evzkTGRyyfn@Ik^7-I(HG{AE7##4|j1d66v7ioO9Lv_^YH zAHi9Nl&T;{e4qCEI*ri=_dW0cQ!{hJu22Dh#A1y_Ue^KPP(omxBL^DQ+Kpif4Nz{@ z*!hM-ocR1jE?-zC8PF%NLz^GQe}@>-@NU@H5ll4dH)PNN+6!2?aWjRHZ5D2YM z(&DT`NQE&Oo)$$0C_rk-v7wmf&iRBkb@LR9M0u9lM|Ez4%~K_BZqGT?X%i$Rq#qzX59xczp}OAmWD6!Mo+*_EXVFrSB?&G|$>MH7 zf=HOCm1stql9pt-Wu?_(wbh}QW*A#Ufg%zJq$nD&zV9(sZ`}0G8vqC)dHdUc4oOBB z=~o_26@qFMk|jmUOE}A*J78<8M{kglTZj|G@(YO{Pl-F#J1^KYRxekN47_ktL30x;P8cQ|w)s=IVtty6wRY^B6yHfS-ETPqJ%n zj=62yIDFe}EUzq)TgTM4IqHojT1pz_BHk}`dR*RY<9mHZN+s^vyYD5ZL|*ilFpT(> zU;RfM+P9Zbcm!4=5{t1=ua{9uB9x{SsDdapMS)?QAvT62FL=0iJYcoeDo6)ebcyp` zf-;VUi3WHs z`5jovkg<{ko=?3LFAE7a=FJImTL&Jg1jtWIzTit#8ta6NJ(@1ZI#D2*sh<8nry9x7DNBsNjVG z8@(bVYEN~Sm2-RvGA!IQ>WDV90 zha{xn;LH?v?%eT`!o$l9NxkVE@8bNk$N1Af{v$*$W};Ce@CpJ%2#KczLOP5soE=i5 zr9nAOoaJ1+wp@&?04~m{mjXs?!j6#$1{P~`8qE<>z$n4^c#U0qrnv9U-F)q_GxWL% z0L}UB{Mb+YIJI(_+&ZLS=-7&)CmU*=b2g5bLcKuXEa z{?vnh$bo(2wy5L^ zlCBt&%Z;TSr*z}ENZ*}B%fgwLeUJNZeH}B+=64kSWdQ&fX*Btb_x&q2IvcESEwj9F z1>-tr#Q;5ogU69Fc~h5$%LTQ&$wm( z9FHA6g;x&gWRAy9p1UEu@;vJG3L}jwUZ7FUNp{T7vAD6twN{%e?Jh!iG)fW8D5NqJ zHuQbUK}euIv=Z!{onxxeeAQzz06SZ~xANJaP6E^@@k*X_TkYUWv8{ zxYEyAkL8e7wAeHO=dcbgFRh^u?P2%MDP&OMbB`aRpQe<`5zVnWBaJH3(zf_6 zZC_xymvXtcMyEdjA(?KL*g0CK9tKDyaaQ1@Akdm>6tZi2hVd76xL->E0OscA_^S{9 zcmCpIf62!2&(mqA^g#$eN$k&S@?=-nVSvwq;me*L`>@hJl$(Nov%i`)L z&52RQw>3Zt+WnaB$|~JV+TX;~)7TUq5~stwUz^9;TlrbXpsfB85{Pz3%mn zFl=^v9J{nc62~07aFvmXCe86WYppijcArYwBS{j1`Y89@e?NB~T%a6!M81!&^$mi< z-6+x=o>J_aon~%g5?_CB$Dh8hQ)AW`{`#XI;Y&x4v+u6^`Qk&L;maTYFeR1JsMi>D zQ&yKZNsc~d+%dpSh)B~V#TmH z!l8tw7WvdlW%kW(XXIrj!C%e#zD|xxrTDp@`vvZMV1qNuZ65w&hD#E*20gOOF*-KF zj=eLqH@kG(U8E;yjMhO)t}U;V<(6G@6O=-a=gu!Nx_d7V+6XT?L4iqDAxPlM# zrDUSsWNv(%@p=O#U))ppZr5veaMC)*%Gw%_Kl&(t{=q-v?>_Y@(2|ixjqzrM;;@Hc zqt#}8qleUzTlUPN6&yQxiGE@@^v3)6*YEoml%k@{Mu3)*$d8yApJcMpAPT}8q{eHp zUh|`~*Vnb>Wj_7c&+?fse2(KMPauV5v(u*2>JSBr-Lp-!l00+#GK16*H5>fYFTIDK zedmwiDNW${jMp1XG#ZSQDzEvG+3V{E2EYr~=GGQhu3lmB+BG(}*6^goWC>T7)`?R? zsZ^#uKEdJJk1#zxMk$DheE$a~^b6Pj6#)KUUjGM#$e;5#-awTA0000 Date: Wed, 17 Oct 2018 23:04:03 +0200 Subject: [PATCH 18/27] add dot syntax --- Makefile | 13 +++++-- lib_list.txt | 4 +- package-lock.json | 81 +++++++++++++++++++++++++++++++++-------- package.json | 1 + src/dependencies.pug | 6 +-- src/page-members.pug | 6 ++- src/styles/content.scss | 25 ++++++++++++- src/styles/index.scss | 2 +- www/lib/sib-chat | 2 +- www/lib/sib-core | 2 +- www/test.html | 23 +++++++++--- 11 files changed, 130 insertions(+), 35 deletions(-) diff --git a/Makefile b/Makefile index 130c744..d69ef48 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ SCRIPT_DEST := $(SCRIPT_SRC:src/%=$(DIST_DIR)/%) default: build clean: - git clean -fXd + git clean -fXd -e !src/config.pug install: node_modules copy_lib copy_samples submodules @@ -37,7 +37,7 @@ node_modules: copy_lib: @node copy_lib.js -# sample +# samples copy_samples: @cp -n src/config.sample.pug src/config.pug @@ -57,11 +57,16 @@ $(DIST_DIR)/%.js: src/%.js @mkdir -p $(dir $@) @node_modules/.bin/babel $< --out-file $@ --source-maps || touch $@ -buildprod: +buildprod: build export SDN="https://test-paris.happy-dev.fr"; \ $(MAKE) $(DIST_DIR)/index.html -B +deploy: pull install bluid + +pull: + git pull + sync: rsync -rv www/* staging-app@ssh-staging-app.happy-dev.fr:~/staging-app.happy-dev.fr/ --exclude=www/oidc-client-config.json -.PHONY: default install submodules copy_lib copy_samples build watch serve clean sync buildprod \ No newline at end of file +.PHONY: default install submodules copy_lib copy_samples build watch serve clean sync buildprod pull deploy \ No newline at end of file diff --git a/lib_list.txt b/lib_list.txt index 6127584..c3495ec 100644 --- a/lib_list.txt +++ b/lib_list.txt @@ -1,3 +1,5 @@ node_modules/normalize.css/normalize.css node_modules/@webcomponents/webcomponentsjs -node_modules/@webcomponents/html-imports/src/html-imports.js \ No newline at end of file +node_modules/@webcomponents/html-imports/src/html-imports.js +node_modules/oidc-client/dist/oidc-client.min.js +node_modules/oidc-client/dist/oidc-client.js \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 8e6f5e9..55eff18 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1050,11 +1050,29 @@ "is-buffer": "^1.1.5" } }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "optional": true, + "requires": { + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "optional": true + } + } + }, "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=", - "dev": true, "requires": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" @@ -1841,8 +1859,7 @@ "core-js": { "version": "2.5.7", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", - "dev": true + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" }, "core-util-is": { "version": "1.0.2", @@ -2580,7 +2597,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -2601,12 +2619,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2621,17 +2641,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -2748,7 +2771,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -2760,6 +2784,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -2774,6 +2799,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -2781,12 +2807,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -2805,6 +2833,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -2885,7 +2914,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -2897,6 +2927,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -2982,7 +3013,8 @@ "safe-buffer": { "version": "5.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -3018,6 +3050,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -3037,6 +3070,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -3080,12 +3114,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -3844,6 +3880,11 @@ "verror": "1.10.0" } }, + "jsrsasign": { + "version": "8.0.12", + "resolved": "https://registry.npmjs.org/jsrsasign/-/jsrsasign-8.0.12.tgz", + "integrity": "sha1-Iqu5ZW00owuVMENnIINeicLlwxY=" + }, "jstransformer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", @@ -4432,6 +4473,15 @@ "isobject": "^3.0.1" } }, + "oidc-client": { + "version": "1.5.3-beta.1", + "resolved": "https://registry.npmjs.org/oidc-client/-/oidc-client-1.5.3-beta.1.tgz", + "integrity": "sha512-p4EcEuMuVV2mwcH59BSNE/0zNalksELSpOp/r7oH4vGppIwsE1cHvXhHqc4hX7jpfrxU7wYsEZ74ECNXXnZB5g==", + "requires": { + "babel-polyfill": ">=6.9.1", + "jsrsasign": "^8.0.12" + } + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -4995,8 +5045,7 @@ "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" }, "regenerator-transform": { "version": "0.13.3", diff --git a/package.json b/package.json index cab5aef..42612ea 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "@webcomponents/webcomponentsjs": "^1.2.7", "include-media": "^1.4.9", "normalize.css": "^8.0.0", + "oidc-client": "^1.5.3-beta.1", "simple-line-icons": "^2.4.1" } } diff --git a/src/dependencies.pug b/src/dependencies.pug index b017764..fd9f07a 100644 --- a/src/dependencies.pug +++ b/src/dependencies.pug @@ -3,9 +3,9 @@ script(src="/lib/webcomponentsjs/webcomponents-loader.js") //- script(src="lib/html-imports.js") -script(src="https://cdn.happy-dev.fr/oidc-client/oidc-client.min.js") +script(src="/lib/oidc-client.js") script( - src="lib/sib-oidc/sib-oidc.js" + src="/lib/sib-oidc/sib-oidc.js" data-authority='https://test-paris.happy-dev.fr/openid/', data-client_id='833925', data-response_type='id_token token', @@ -30,7 +30,7 @@ link(href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,6 //- local link(rel='import', href='/lib/sib-core/sib-display.html') link(rel='import', href='/lib/sib-router/sib-router.html') -link(rel='import', href='/lib/sib-chat/sib-chat.html') +//- link(rel='import', href='/lib/sib-chat/sib-chat.html') //- cdn link(rel='import', href="https://cdn.happy-dev.fr/sib-core/sib-display.html") diff --git a/src/page-members.pug b/src/page-members.pug index 6ee5abc..265c6ba 100644 --- a/src/page-members.pug +++ b/src/page-members.pug @@ -45,7 +45,7 @@ script. else this.value = []; return ''; } - return `${city} ${country}`; + return `${city} - ${country}`; } } customElements.define("hdapp-usercell", HDAppCell); @@ -55,13 +55,15 @@ div h1 Members sib-display#profiles-list( data-src=`${sdn}/members/`, - data-fields='header, cell, skills', + data-fields='header, footer' set-header='avatar, user, pseudonym, bio', + set-footer='cell, roles, skills', set-pseudonym='before-pseudo, pseudo', value-before-pseudo='@', widget-avatar='sib-display-img', widget-user='hdapp-userinfo', widget-cell='hdapp-usercell', + widget-roles='sib-display-lookuplist', widget-skills='sib-display-lookuplist', set-searchset='user.first_name, user.last_name', search-fields='searchset', diff --git a/src/styles/content.scss b/src/styles/content.scss index 4124bfb..aa2bba9 100644 --- a/src/styles/content.scss +++ b/src/styles/content.scss @@ -91,7 +91,7 @@ sib-display#member-info, cursor: pointer; label { - // display: none; + display: none; } sib-display-img { $width: 55%; @@ -111,6 +111,29 @@ sib-display#member-info, object-position: center; } } + + div[name='header'] { + border-top: 2em solid $color-grey-light; + border-bottom: 1px solid $color-grey-light; + padding-bottom: 1em; + margin: -0.5em; + padding: 0.5em; + margin-bottom: 1em; + text-align: center; + } + hdapp-userinfo { + @extend h1; + } + div[name='pseudonym'] { + div { + display: inline; + } + } + + ul{ + @include list-reset(); + } + } #profiles-list { diff --git a/src/styles/index.scss b/src/styles/index.scss index 6175744..8e0598b 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -9,5 +9,5 @@ @import 'form'; @import 'content'; -@import 'members'; +// @import 'members'; @import 'menu'; \ No newline at end of file diff --git a/www/lib/sib-chat b/www/lib/sib-chat index ef607e3..e34a92a 160000 --- a/www/lib/sib-chat +++ b/www/lib/sib-chat @@ -1 +1 @@ -Subproject commit ef607e3aecf6f7091b2fee1fd327e181b376b24d +Subproject commit e34a92abb9529af222b952302b8b25f4b1884905 diff --git a/www/lib/sib-core b/www/lib/sib-core index 2d4c97a..bed0a4d 160000 --- a/www/lib/sib-core +++ b/www/lib/sib-core @@ -1 +1 @@ -Subproject commit 2d4c97a40e02041b6001fdf51b0490d211144c75 +Subproject commit bed0a4d7b743d3e35ec016c880101e8496bc224f diff --git a/www/test.html b/www/test.html index a7a88ea..c305743 100644 --- a/www/test.html +++ b/www/test.html @@ -8,7 +8,8 @@ - + + -
+

Members

+ - \ No newline at end of file + From ac9fba3c3161e6ff10f4888f29fc6b9537bf9e92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Thu, 18 Oct 2018 20:06:43 +0200 Subject: [PATCH 19/27] fix chat --- Makefile | 1 + src/dependencies.pug | 2 +- src/page-member.pug | 4 ++-- src/page-members.pug | 2 +- src/scripts/index.js | 12 ++++++++++++ src/styles/content.scss | 6 ++++-- src/styles/main.scss | 2 +- src/styles/menu.scss | 6 ++---- www/lib/sib-core | 2 +- www/test.html | 4 ++-- 10 files changed, 27 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index d69ef48..9341e86 100644 --- a/Makefile +++ b/Makefile @@ -68,5 +68,6 @@ pull: sync: rsync -rv www/* staging-app@ssh-staging-app.happy-dev.fr:~/staging-app.happy-dev.fr/ --exclude=www/oidc-client-config.json + rsync -v www/.htaccess staging-app@ssh-staging-app.happy-dev.fr:~/staging-app.happy-dev.fr/ .PHONY: default install submodules copy_lib copy_samples build watch serve clean sync buildprod pull deploy \ No newline at end of file diff --git a/src/dependencies.pug b/src/dependencies.pug index fd9f07a..e9a65d6 100644 --- a/src/dependencies.pug +++ b/src/dependencies.pug @@ -30,7 +30,7 @@ link(href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,6 //- local link(rel='import', href='/lib/sib-core/sib-display.html') link(rel='import', href='/lib/sib-router/sib-router.html') -//- link(rel='import', href='/lib/sib-chat/sib-chat.html') +link(rel='import', href='/lib/sib-chat/sib-chat.html') //- cdn link(rel='import', href="https://cdn.happy-dev.fr/sib-core/sib-display.html") diff --git a/src/page-member.pug b/src/page-member.pug index 926aed6..410dbd5 100644 --- a/src/page-member.pug +++ b/src/page-member.pug @@ -8,10 +8,10 @@ sib-router#member-router(default-route='member-chat') div Éditer #member-views-container sib-trigger(next="members" class="back") Back to directory - .limiter + div #member-chat include page-member-chat.pug - #member-profile + #member-profile.limiter include page-member-profile.pug #member-edit include page-member-edit.pug \ No newline at end of file diff --git a/src/page-members.pug b/src/page-members.pug index 265c6ba..4df6383 100644 --- a/src/page-members.pug +++ b/src/page-members.pug @@ -65,7 +65,7 @@ div widget-cell='hdapp-usercell', widget-roles='sib-display-lookuplist', widget-skills='sib-display-lookuplist', - set-searchset='user.first_name, user.last_name', + set-searchset='pseudo', search-fields='searchset', next='member' ) diff --git a/src/scripts/index.js b/src/scripts/index.js index 78b0c18..a8538cc 100644 --- a/src/scripts/index.js +++ b/src/scripts/index.js @@ -11,4 +11,16 @@ document.addEventListener('DOMContentLoaded', function(event) { window.addEventListener('click', e => { navBar.classList.remove('open'); }); + + function resize() { + setTimeout(()=> + Array.from(document.querySelectorAll('.chat-view')).forEach(elm => { + elm.style.setProperty('--pos-top', elm.offsetTop + 'px'); + })); + } + window.addEventListener('resize', resize); + window.addEventListener('navigate', resize); + document.addEventListener('load', resize); + document.addEventListener('WebComponentsReady', resize); + resize(); }); diff --git a/src/styles/content.scss b/src/styles/content.scss index aa2bba9..e3c2ce5 100644 --- a/src/styles/content.scss +++ b/src/styles/content.scss @@ -52,9 +52,11 @@ sib-display-lookuplist[name='skills'] { .chat-view { padding: 1em; - border: 1px dashed green; position: relative; - min-height: 300px; + background-color: #fff; + @extend %shadow; + height: calc(100vh - 143px - 5em); + height: calc(100vh - var(--pos-top, 143px) - 5em); > sib-chat { @include pos(); } diff --git a/src/styles/main.scss b/src/styles/main.scss index d767dd6..f88559a 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -24,6 +24,7 @@ h5, h6 { color: $color-black; font-weight: 600; + padding: 0; margin: 0.67em 0; span { font-weight: 400; @@ -97,7 +98,6 @@ h3 { #subContainer { display: flex; - min-height: 100%; } #mainContainer { diff --git a/src/styles/menu.scss b/src/styles/menu.scss index 8cef1ee..1e13164 100644 --- a/src/styles/menu.scss +++ b/src/styles/menu.scss @@ -5,10 +5,8 @@ background-color: $color-white; color: $color-grey; max-width: 16rem; - position: sticky; - top: 0; - height: 100%; - max-height: 100vh; + position: relative; + min-height: 100%; &.open { transform: translateX(0); } diff --git a/www/lib/sib-core b/www/lib/sib-core index bed0a4d..97e4d27 160000 --- a/www/lib/sib-core +++ b/www/lib/sib-core @@ -1 +1 @@ -Subproject commit bed0a4d7b743d3e35ec016c880101e8496bc224f +Subproject commit 97e4d2773deb81d28ccbe6c65d82d316bb7ee022 diff --git a/www/test.html b/www/test.html index c305743..1f95e27 100644 --- a/www/test.html +++ b/www/test.html @@ -41,8 +41,8 @@

Members