diff --git a/.bowerrc b/.bowerrc deleted file mode 100644 index 24dc4049b..000000000 --- a/.bowerrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "registry": "https://registry.bower.io", - "directory": "res/bower_components" -} diff --git a/.dockerignore b/.dockerignore index 868d0d8a2..8c0d6c007 100644 --- a/.dockerignore +++ b/.dockerignore @@ -6,7 +6,6 @@ .idea/ node_modules/ npm-debug.log -res/bower_components/ res/build/ rethinkdb_data/ temp/ diff --git a/.gitignore b/.gitignore index 698630e88..2dddc0cb7 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,6 @@ /*.tgz /.env /node_modules/ -/res/bower_components/ /res/build/ /res/test_out/ /rethinkdb_data/ diff --git a/.npmignore b/.npmignore index 79482e3c9..2f0cb1e55 100644 --- a/.npmignore +++ b/.npmignore @@ -1,7 +1,6 @@ *.!sync .DS_Store /*.tgz -/.bowerrc /.dockerignore /.editorconfig /.env @@ -13,12 +12,10 @@ /.python-version /.travis.yml /Dockerfile -/bower.json /component.json /docker /gulpfile.js /npm-debug.log -/res/bower_components/ /res/test/ /res/web_modules/ /rethinkdb_data/ diff --git a/Dockerfile b/Dockerfile index 5a4cc9413..8c1123306 100644 --- a/Dockerfile +++ b/Dockerfile @@ -62,7 +62,6 @@ RUN set -x && \ npm install --python="/usr/bin/python3" --loglevel http && \ npm pack && \ tar xzf devicefarmer-stf-*.tgz --strip-components 1 -C /app && \ - bower cache clean && \ npm prune --production && \ mv node_modules /app && \ rm -rf ~/.node-gyp && \ diff --git a/Dockerfile-debian-armhf b/Dockerfile-debian-armhf index 0f331d5d5..68c185966 100644 --- a/Dockerfile-debian-armhf +++ b/Dockerfile-debian-armhf @@ -46,7 +46,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ echo '--- Assembling app' && \ echo 'npm pack' | su stf -s /bin/bash && \ tar xzf devicefarmer-stf-*.tgz --strip-components 1 -C /app && \ - echo '/tmp/build/node_modules/.bin/bower cache clean' | su stf -s /bin/bash && \ echo 'npm prune --production' | su stf -s /bin/bash && \ mv node_modules /app && \ chown -R root:root /app && \ diff --git a/Dockerfile-debian-x86_64 b/Dockerfile-debian-x86_64 index dfb8881b2..844604c8e 100644 --- a/Dockerfile-debian-x86_64 +++ b/Dockerfile-debian-x86_64 @@ -46,7 +46,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ echo '--- Assembling app' && \ echo 'npm pack' | su stf -s /bin/bash && \ tar xzf devicefarmer-stf-*.tgz --strip-components 1 -C /app && \ - echo '/tmp/build/node_modules/.bin/bower cache clean' | su stf -s /bin/bash && \ echo 'npm prune --production' | su stf -s /bin/bash && \ mv node_modules /app && \ chown -R root:root /app && \ diff --git a/README.md b/README.md index bda765dfa..2a0f09391 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,12 @@ ![Super short screencast showing usage](https://raw.githubusercontent.com/DeviceFarmer/stf/master/doc/7s_usage.gif) +## Contributors +Thank you to all the people who have already contributed to STF! + + + + ## Features * OS support diff --git a/bower.json b/bower.json deleted file mode 100644 index 1b195a3e2..000000000 --- a/bower.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "stf", - "version": "0.1.0", - "dependencies": { - "angular": "~1.5.0-rc.2", - "angular-cookies": "~1.5.0-rc.2", - "angular-route": "~1.5.0-rc.2", - "angular-sanitize": "~1.5.0-rc.2", - "angular-animate": "~1.5.0-rc.2", - "angular-touch": "~1.5.0-rc.2", - "lodash": "~3.10.1", - "oboe": "~2.1.2", - "ng-table": "~1.0.0-beta.9", - "angular-gettext": "~2.2.0", - "angular-ui-ace": "~0.2.3", - "angular-dialog-service": "~5.2.11", - "ng-file-upload": "~2.0.5", - "angular-growl-v2": "JanStevens/angular-growl-2#~0.7.9", - "underscore.string": "~3.2.3", - "bootstrap": "~3.3.6", - "font-lato-2-subset": "~0.4.0", - "packery": "~1.4.3", - "draggabilly": "~1.2.4", - "angular-elastic": "~2.5.1", - "angular-hotkeys": "chieffancypants/angular-hotkeys#~1.6.0", - "angular-borderlayout": "git://github.com/filearts/angular-borderlayout.git#7c9716aebd9260763f798561ca49d6fbfd4a5c67", - "angular-ui-bootstrap": "~1.1.1", - "ng-context-menu": "swimlane/ng-context-menu#~1.0.1", - "components-font-awesome": "~4.5.0", - "epoch": "~0.8.4", - "ng-epoch": "~1.0.7", - "eventEmitter": "~4.3.0", - "angular-ladda": "~0.3.1", - "d3": "~3.5.14", - "spin.js": "~2.3.2", - "angular-xeditable": "~0.1.9" - }, - "private": true, - "devDependencies": { - "angular-mocks": "~1.5.0-rc.2" - }, - "resolutions": { - "angular": "~1.5.0-rc.2", - "d3": "~3.5.5", - "spin.js": "~2.3.2", - "eventEmitter": "~4.3.0", - "epoch": "~0.8.4" - } -} diff --git a/doc/DEPLOYMENT.md b/doc/DEPLOYMENT.md index 600d091ed..8cc932636 100644 --- a/doc/DEPLOYMENT.md +++ b/doc/DEPLOYMENT.md @@ -1,6 +1,6 @@ # Deployment -So you've got STF running via `stf local` and now you'd like to deploy it to real servers. While there are of course various ways to set everything up, this document will focus on a [systemd](http://www.freedesktop.org/wiki/Software/systemd/) + [Docker](https://www.docker.com/) deployment. Even if you've got a different setup, you should be able to use the configuration files as a rough guide. You can also check some [Setup Examples](https://github.com/openstf/setup-examples) which uses [Vagrant](https://www.vagrantup.com/) and [Virtual Box](https://www.virtualbox.org/) to create a virtual setup. But before going there, it is highly recommended that you read this document thoroughly. +So you've got STF running via `stf local` and now you'd like to deploy it to real servers. While there are of course various ways to set everything up, this document will focus on a [systemd](http://www.freedesktop.org/wiki/Software/systemd/) + [Docker](https://www.docker.com/) deployment. Even if you've got a different setup, you should be able to use the configuration files as a rough guide. You can also check some [Setup Examples](https://github.com/devicefarmer/setup-examples) which uses [Vagrant](https://www.vagrantup.com/) and [Virtual Box](https://www.virtualbox.org/) to create a virtual setup. But before going there, it is highly recommended that you read this document thoroughly. STF consists of multiple independent processes communicating via [ZeroMQ](http://zeromq.org/) and [Protocol Buffers](https://github.com/google/protobuf). We call each process a "unit" to match systemd terminology. @@ -18,7 +18,7 @@ For this example deployment, the following assumptions will be made. You will ne * You have [Docker](https://www.docker.com/) running on each host * Each host has an `/etc/environment` (a la [CoreOS](https://coreos.com/)) file with `COREOS_PRIVATE_IPV4=MACHINE_IP_HERE`. This is used to load the machine IP address in configuration files. - You can create the file yourself or alternatively replace `${COREOS_PRIVATE_IPV4}` manually as required. -* You're deploying [openstf/stf:latest](https://registry.hub.docker.com/u/openstf/stf/). There's also a fixed tag for each release if you're feeling less adventurous. +* You're deploying [devicefarmer/stf:latest](https://registry.hub.docker.com/u/devicefarmer/stf/). There's also a fixed tag for each release if you're feeling less adventurous. * You want to access the app at https://stf.example.org/. Change to the actual URL you want to use. * You have RethinkDB running on `rethinkdb.stf.example.org`. Change to the actual address/IP where required. - You may also use SRV records by giving the url in `srv+tcp://rethinkdb-28015.skydns.stf.example.org` format. @@ -76,7 +76,7 @@ These external units are required for the actual STF units to work. You need to have a single `adbd.service` unit running on each host where you have devices connected. -The docker container comes with a default, insecure ADB key for convenience purposes, so that you won't have to accept a new ADB key on your devices each time the unit restarts. This is insecure because anyone in possession of the insecure key will then be able to access your device without any prompt, assuming they have physical access to it. This may or may not be a problem for you. See [sorccu/adb](https://registry.hub.docker.com/u/sorccu/adb/) for more information if you'd like to provide your own keys. +The docker container comes with a default, insecure ADB key for convenience purposes, so that you won't have to accept a new ADB key on your devices each time the unit restarts. This is insecure because anyone in possession of the insecure key will then be able to access your device without any prompt, assuming they have physical access to it. This may or may not be a problem for you. See [devicefarmer/adb](https://registry.hub.docker.com/u/devicefarmer/adb/) for more information if you'd like to provide your own keys. ```ini [Unit] @@ -88,7 +88,7 @@ Requires=docker.service TimeoutStartSec=0 Restart=always RestartSec=3 -ExecStartPre=/usr/bin/docker pull sorccu/adb:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/adb:latest ExecStartPre=-/usr/bin/docker kill %p ExecStartPre=-/usr/bin/docker rm %p ExecStart=/usr/bin/docker run --rm \ @@ -96,7 +96,7 @@ ExecStart=/usr/bin/docker run --rm \ --privileged \ -p 5037:5037 \ -v /dev/bus/usb:/dev/bus/usb \ - sorccu/adb:latest + devicefarmer/adb:latest ExecStop=/usr/bin/docker exec %p adb kill-server ``` @@ -168,7 +168,7 @@ Requires=docker.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/ambassador:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/ambassador:latest ExecStartPre=-/usr/bin/docker kill %p ExecStartPre=-/usr/bin/docker rm %p ExecStart=/usr/bin/docker run --rm \ @@ -176,7 +176,7 @@ ExecStart=/usr/bin/docker run --rm \ -e "AUTHKEY=YOUR_RETHINKDB_AUTH_KEY_HERE_IF_ANY" \ -p 28015 \ -e RETHINKDB_PORT_28015_TCP=tcp://rethinkdb.stf.example.org:28015 \ - openstf/ambassador:latest + devicefarmer/ambassador:latest ExecStop=-/usr/bin/docker stop -t 10 %p ``` @@ -202,7 +202,7 @@ BindsTo=rethinkdb-proxy-28015.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p-%i ExecStartPre=-/usr/bin/docker rm %p-%i ExecStart=/usr/bin/docker run --rm \ @@ -210,7 +210,7 @@ ExecStart=/usr/bin/docker run --rm \ --link rethinkdb-proxy-28015:rethinkdb \ -e "SECRET=YOUR_SESSION_SECRET_HERE" \ -p %i:3000 \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf app --port 3000 \ --auth-url https://stf.example.org/auth/mock/ \ --websocket-url wss://stf.example.org/ @@ -241,14 +241,14 @@ Requires=docker.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p-%i ExecStartPre=-/usr/bin/docker rm %p-%i ExecStart=/usr/bin/docker run --rm \ --name %p-%i \ -e "SECRET=YOUR_SESSION_SECRET_HERE" \ -p %i:3000 \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf auth-mock --port 3000 \ --app-url https://stf.example.org/ ExecStop=-/usr/bin/docker stop -t 10 %p-%i @@ -274,7 +274,7 @@ Requires=docker.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p-%i ExecStartPre=-/usr/bin/docker rm %p-%i ExecStart=/usr/bin/docker run --rm \ @@ -288,7 +288,7 @@ ExecStart=/usr/bin/docker run --rm \ -e "OAUTH_CALLBACK_URL=https://stf.example.org/auth/oauth/callback" \ -e "OAUTH_SCOPE=openid email" \ -p %i:3000 \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf auth-oauth2 --port 3000 \ --app-url https://stf.example.org/ ExecStop=-/usr/bin/docker stop -t 10 %p-%i @@ -318,7 +318,7 @@ Requires=docker.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p-%i ExecStartPre=-/usr/bin/docker rm %p-%i ExecStart=/usr/bin/docker run --rm \ @@ -329,7 +329,7 @@ ExecStart=/usr/bin/docker run --rm \ -e "SAML_ID_PROVIDER_ISSUER=YOUR_ID_PROVIDER_ISSUER" \ -e "SAML_ID_PROVIDER_CERT_PATH=/etc/id_provider.cert" \ -p %i:3000 \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf auth-saml2 --port 3000 \ --app-url https://stf.example.org/ ExecStop=-/usr/bin/docker stop -t 10 %p-%i @@ -356,7 +356,7 @@ BindsTo=rethinkdb-proxy-28015.service [Service] EnvironmentFile=/etc/environment Type=oneshot -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p ExecStartPre=-/usr/bin/docker rm %p ExecStart=/usr/bin/docker run --rm \ @@ -365,7 +365,7 @@ ExecStart=/usr/bin/docker run --rm \ -e "STF_ROOT_GROUP_NAME=YOUR_ROOT_GROUP_NAME_HERE" \ -e "STF_ADMIN_NAME=YOUR_ADMIN_NAME_HERE" \ -e "STF_ADMIN_EMAIL=YOUR_ADMIN_EMAIL_HERE" \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf migrate ``` @@ -387,13 +387,13 @@ BindsTo=rethinkdb-proxy-28015.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p-%i ExecStartPre=-/usr/bin/docker rm %p-%i ExecStart=/usr/bin/docker run --rm \ --name %p-%i \ --link rethinkdb-proxy-28015:rethinkdb \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf processor %p-%i \ --connect-app-dealer tcp://appside.stf.example.org:7160 \ --connect-dev-dealer tcp://devside.stf.example.org:7260 @@ -427,14 +427,14 @@ EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always RestartSec=3 -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p-%i ExecStartPre=-/usr/bin/docker rm %p-%i ExecStart=/usr/bin/docker run --rm \ --name %p-%i \ --link adbd:adbd \ -p 15000-25000:15000-25000 \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf provider \ --name "%H/%i" \ --connect-sub tcp://devside.stf.example.org:7250 \ @@ -467,13 +467,13 @@ BindsTo=rethinkdb-proxy-28015.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p ExecStartPre=-/usr/bin/docker rm %p ExecStart=/usr/bin/docker run --rm \ --name %p \ --link rethinkdb-proxy-28015:rethinkdb \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf reaper dev \ --connect-push tcp://devside.stf.example.org:7270 \ --connect-sub tcp://appside.stf.example.org:7150 \ @@ -499,13 +499,13 @@ Requires=docker.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p-%i ExecStartPre=-/usr/bin/docker rm %p-%i ExecStart=/usr/bin/docker run --rm \ --name %p-%i \ -p %i:3000 \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf storage-plugin-apk --port 3000 \ --storage-url https://stf.example.org/ ExecStop=-/usr/bin/docker stop -t 10 %p-%i @@ -529,13 +529,13 @@ Requires=docker.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p-%i ExecStartPre=-/usr/bin/docker rm %p-%i ExecStart=/usr/bin/docker run --rm \ --name %p-%i \ -p %i:3000 \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf storage-plugin-image --port 3000 \ --storage-url https://stf.example.org/ ExecStop=-/usr/bin/docker stop -t 10 %p-%i @@ -555,7 +555,7 @@ Requires=docker.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p-%i ExecStartPre=-/usr/bin/docker rm %p-%i ExecStartPre=/bin/mkdir -p /mnt/storage @@ -564,7 +564,7 @@ ExecStart=/usr/bin/docker run --rm \ --name %p-%i \ -v /mnt/storage:/data \ -p %i:3000 \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf storage-temp --port 3000 \ --save-dir /data ExecStop=-/usr/bin/docker stop -t 10 %p-%i @@ -588,13 +588,13 @@ Requires=docker.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p ExecStartPre=-/usr/bin/docker rm %p ExecStart=/usr/bin/docker run --rm \ --name %p \ --net host \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf triproxy app \ --bind-pub "tcp://*:7150" \ --bind-dealer "tcp://*:7160" \ @@ -620,13 +620,13 @@ Requires=docker.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p ExecStartPre=-/usr/bin/docker rm %p ExecStart=/usr/bin/docker run --rm \ --name %p \ --net host \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf triproxy dev \ --bind-pub "tcp://*:7250" \ --bind-dealer "tcp://*:7260" \ @@ -654,7 +654,7 @@ BindsTo=rethinkdb-proxy-28015.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p-%i ExecStartPre=-/usr/bin/docker rm %p-%i ExecStart=/usr/bin/docker run --rm \ @@ -662,7 +662,7 @@ ExecStart=/usr/bin/docker run --rm \ --link rethinkdb-proxy-28015:rethinkdb \ -e "SECRET=YOUR_SESSION_SECRET_HERE" \ -p %i:3000 \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf websocket --port 3000 \ --storage-url https://stf.example.org/ \ --connect-sub tcp://appside.stf.example.org:7150 \ @@ -688,7 +688,7 @@ BindsTo=rethinkdb-proxy-28015.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p-%i ExecStartPre=-/usr/bin/docker rm %p-%i ExecStart=/usr/bin/docker run --rm \ @@ -696,7 +696,7 @@ ExecStart=/usr/bin/docker run --rm \ --link rethinkdb-proxy-28015:rethinkdb \ -e "SECRET=YOUR_SESSION_SECRET_HERE" \ -p %i:3000 \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf api --port 3000 \ --connect-sub tcp://appside.stf.example.org:7150 \ --connect-push tcp://appside.stf.example.org:7170 \ @@ -731,14 +731,14 @@ BindsTo=rethinkdb-proxy-28015.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p ExecStartPre=-/usr/bin/docker rm %p ExecStart=/usr/bin/docker run --rm \ --name %p \ --link rethinkdb-proxy-28015:rethinkdb \ -e "SECRET=YOUR_SESSION_SECRET_HERE" \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf groups-engine \ --connect-sub tcp://appside.stf.example.org:7150 \ --connect-push tcp://appside.stf.example.org:7170 \ @@ -769,13 +769,13 @@ BindsTo=rethinkdb-proxy-28015.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p ExecStartPre=-/usr/bin/docker rm %p ExecStart=/usr/bin/docker run --rm \ --name %p \ --link rethinkdb-proxy-28015:rethinkdb \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf log-rethinkdb \ --connect-sub tcp://appside.stf.example.org:7150 ExecStop=-/usr/bin/docker stop -t 10 %p @@ -799,14 +799,14 @@ BindsTo=docker.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p ExecStartPre=-/usr/bin/docker rm %p ExecStart=/usr/bin/docker run --rm \ --name %p \ -e "HIPCHAT_TOKEN=YOUR_HIPCHAT_TOKEN_HERE" \ -e "HIPCHAT_ROOM=YOUR_HIPCHAT_ROOM_HERE" \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf notify-hipchat \ --connect-sub tcp://appside.stf.example.org:7150 ExecStop=-/usr/bin/docker stop -t 10 %p @@ -828,14 +828,14 @@ BindsTo=docker.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p ExecStartPre=-/usr/bin/docker rm %p ExecStart=/usr/bin/docker run --rm \ --name %p \ -e "SLACK_TOKEN=YOUR_SLACK_TOKEN_HERE" \ -e "SLACK_CHANNEL=YOUR_SLACK_CHANNEL_HERE" \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf notify-slack \ --connect-sub tcp://appside.stf.example.org:7150 ExecStop=-/usr/bin/docker stop -t 10 %p @@ -859,13 +859,13 @@ Requires=docker.service EnvironmentFile=/etc/environment TimeoutStartSec=0 Restart=always -ExecStartPre=/usr/bin/docker pull openstf/stf:latest +ExecStartPre=/usr/bin/docker pull devicefarmer/stf:latest ExecStartPre=-/usr/bin/docker kill %p-%i ExecStartPre=-/usr/bin/docker rm %p-%i ExecStart=/usr/bin/docker run --rm \ --name %p-%i \ -p %i:3000 \ - openstf/stf:latest \ + devicefarmer/stf:latest \ stf storage-s3 --port 3000 \ --bucket YOUR_S3_BUCKET_NAME_HERE \ --profile YOUR_AWS_CREDENTIALS_PROFILE \ diff --git a/docker-compose.yaml b/docker-compose.yaml index 19368236c..1074b4f39 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -3,7 +3,7 @@ version: "3" services: rethinkdb: container_name: rethinkdb - image: rethinkdb:2.3 + image: rethinkdb:2.4.2 restart: unless-stopped volumes: - "rethinkdb-data:/data" diff --git a/docker/armv7l/Dockerfile b/docker/armv7l/Dockerfile index f51758465..3ceb44d70 100644 --- a/docker/armv7l/Dockerfile +++ b/docker/armv7l/Dockerfile @@ -38,7 +38,6 @@ RUN set -xo pipefail && \ echo 'npm pack' | su stf -s /bin/sh && \ tar -xzf stf-*.tgz && \ mv package /app && \ - echo 'bower cache clean' | su stf -s /bin/sh && \ echo 'npm prune --production' | su stf -s /bin/sh && \ mv node_modules /app && \ chown -R root:root /app && \ diff --git a/gulpfile.js b/gulpfile.js index 888dca951..c8a60df89 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -25,8 +25,7 @@ var run = require('gulp-run') gulp.task('jsonlint', function() { return gulp.src([ - '.bowerrc' - , '.yo-rc.json' + '.yo-rc.json' , '*.json' ], {allowEmpty: true}) .pipe(jsonlint()) @@ -39,7 +38,6 @@ gulp.task('eslint', function() { return gulp.src([ 'lib/**/*.js' , 'res/**/*.js' - , '!res/bower_components/**' , '*.js' ]) // eslint() attaches the lint output to the "eslint" property @@ -201,7 +199,6 @@ gulp.task('webpack:others', function(callback) { gulp.task('pug', function() { return gulp.src([ './res/**/*.pug' - , '!./res/bower_components/**' ]) .pipe(pug({ locals: { @@ -219,7 +216,6 @@ gulp.task('translate:extract', gulp.series('pug', function() { return gulp.src([ './tmp/html/**/*.html' , './res/**/*.js' - , '!./res/bower_components/**' , '!./res/build/**' ]) .pipe(gettext.extract('stf.pot')) diff --git a/lib/cli/device/index.js b/lib/cli/device/index.js index c4e9f3702..a9bd8a89e 100644 --- a/lib/cli/device/index.js +++ b/lib/cli/device/index.js @@ -1,3 +1,7 @@ +/** +* Copyright © 2022 contains code contributed by Orange SA, authors: Denis Barbaron - Licensed under the Apache license 2.0 +**/ + module.exports.command = 'device' module.exports.builder = function(yargs) { @@ -92,6 +96,12 @@ module.exports.builder = function(yargs) { , type: 'string' , demand: true }) + .option('screen-frame-rate', { + describe: 'The frame rate (frames/s) to be used for screen transport on the network. ' + + 'Float value must be > 0.0 otherwise the default behavior is kept' + , type: 'number' + , default: process.env.SCREEN_FRAME_RATE || -1 + }) .option('screen-jpeg-quality', { describe: 'The JPG quality to use for the screen.' , type: 'number' @@ -164,6 +174,7 @@ module.exports.handler = function(argv) { , storageUrl: argv.storageUrl , adbHost: argv.adbHost , adbPort: argv.adbPort + , screenFrameRate: argv.screenFrameRate , screenJpegQuality: argv.screenJpegQuality , screenGrabber: argv.screenGrabber , screenPingInterval: argv.screenPingInterval diff --git a/lib/cli/please.js b/lib/cli/please.js index 4c7f7dd61..7818ac73e 100644 --- a/lib/cli/please.js +++ b/lib/cli/please.js @@ -1,2 +1,2 @@ -require('@devicefarmer/please-update-dependencies')(module) require('./') +require('@devicefarmer/please-update-dependencies')(module) diff --git a/lib/cli/provider/index.js b/lib/cli/provider/index.js index e9c189ed6..8a4b4bab7 100644 --- a/lib/cli/provider/index.js +++ b/lib/cli/provider/index.js @@ -1,3 +1,7 @@ +/** +* Copyright © 2022 contains code contributed by Orange SA, authors: Denis Barbaron - Licensed under the Apache license 2.0 +**/ + module.exports.command = 'provider [serial..]' module.exports.describe = 'Start a provider unit.' @@ -111,6 +115,12 @@ module.exports.builder = function(yargs) { , type: 'string' , default: ip() }) + .option('screen-frame-rate', { + describe: 'The frame rate (frames/s) to be used for screen transport on the network. ' + + 'Float value must be > 0.0 otherwise the default behavior is kept' + , type: 'number' + , default: process.env.SCREEN_FRAME_RATE || -1 + }) .option('screen-jpeg-quality', { describe: 'The JPG quality to use for the screen.' , type: 'number' @@ -194,7 +204,9 @@ module.exports.handler = function(argv) { , '--storage-url', argv.storageUrl , '--adb-host', argv.adbHost , '--adb-port', argv.adbPort + , '--screen-frame-rate', argv.screenFrameRate , '--screen-jpeg-quality', argv.screenJpegQuality + , '--screen-grabber', argv.screenGrabber , '--screen-ping-interval', argv.screenPingInterval , '--screen-ws-url-pattern', argv.screenWsUrlPattern , '--connect-url-pattern', argv.connectUrlPattern diff --git a/lib/units/app/index.js b/lib/units/app/index.js index ebd92063f..57b563abf 100644 --- a/lib/units/app/index.js +++ b/lib/units/app/index.js @@ -55,8 +55,6 @@ module.exports = function(options) { require('./middleware/webpack')(webpackServerConfig)) } - app.use('/static/bower_components', - serveStatic(pathutil.resource('bower_components'))) app.use('/static/app/data', serveStatic(pathutil.resource('data'))) app.use('/static/app/status', serveStatic(pathutil.resource('common/status'))) app.use('/static/app/browsers', browserIconMiddleware()) diff --git a/lib/units/auth/ldap.js b/lib/units/auth/ldap.js index c0f6b61cb..4f6fe0fa0 100644 --- a/lib/units/auth/ldap.js +++ b/lib/units/auth/ldap.js @@ -47,8 +47,6 @@ module.exports = function(options) { app.use(bodyParser.json()) app.use(csrf()) app.use(validator()) - app.use('/static/bower_components', - serveStatic(pathutil.resource('bower_components'))) app.use('/static/auth/ldap', serveStatic(pathutil.resource('auth/ldap'))) app.use(function(req, res, next) { diff --git a/lib/units/auth/mock.js b/lib/units/auth/mock.js index f3ed49323..eebac783f 100644 --- a/lib/units/auth/mock.js +++ b/lib/units/auth/mock.js @@ -69,8 +69,6 @@ module.exports = function(options) { app.use(bodyParser.json()) app.use(csrf()) app.use(validator()) - app.use('/static/bower_components', - serveStatic(pathutil.resource('bower_components'))) app.use('/static/auth/mock', serveStatic(pathutil.resource('auth/mock'))) app.use(function(req, res, next) { diff --git a/lib/units/device/plugins/forward/index.js b/lib/units/device/plugins/forward/index.js index 681c3654d..98ad63d73 100644 --- a/lib/units/device/plugins/forward/index.js +++ b/lib/units/device/plugins/forward/index.js @@ -72,7 +72,7 @@ module.exports = syrup.serial() ) return connectService(1) .then(function(out) { - var header = new Buffer(4) + var header = Buffer.alloc(4) header.writeUInt16LE(0, 0) header.writeUInt16LE(forward.devicePort, 2) out.write(header) diff --git a/lib/units/device/plugins/forward/util/reader.js b/lib/units/device/plugins/forward/util/reader.js index 411069f5f..427dfd399 100644 --- a/lib/units/device/plugins/forward/util/reader.js +++ b/lib/units/device/plugins/forward/util/reader.js @@ -5,7 +5,7 @@ var HEADER_SIZE = 4 function ForwardReader() { stream.Transform.call(this) - this._header = new Buffer(HEADER_SIZE) + this._header = Buffer.alloc(HEADER_SIZE) this._needLength = -HEADER_SIZE this._target = 0 } diff --git a/lib/units/device/plugins/forward/util/writer.js b/lib/units/device/plugins/forward/util/writer.js index 02e740c3a..727cab42a 100644 --- a/lib/units/device/plugins/forward/util/writer.js +++ b/lib/units/device/plugins/forward/util/writer.js @@ -18,7 +18,7 @@ ForwardWriter.prototype._transform = function(fullChunk, encoding, done) { do { length = Math.min(MAX_PACKET_SIZE, chunk.length) - header = new Buffer(HEADER_SIZE) + header = Buffer.alloc(HEADER_SIZE) header.writeUInt16LE(this._target, 0) header.writeUInt16LE(length, 2) @@ -33,7 +33,7 @@ ForwardWriter.prototype._transform = function(fullChunk, encoding, done) { } ForwardWriter.prototype._flush = function(done) { - var header = new Buffer(HEADER_SIZE) + var header = Buffer.alloc(HEADER_SIZE) header.writeUInt16LE(this._target, 0) header.writeUInt16LE(0, 2) diff --git a/lib/units/device/plugins/screen/stream.js b/lib/units/device/plugins/screen/stream.js index ccd46a8f6..9b8337600 100644 --- a/lib/units/device/plugins/screen/stream.js +++ b/lib/units/device/plugins/screen/stream.js @@ -1,3 +1,7 @@ +/** +* Copyright © 2022 contains code contributed by Orange SA, authors: Denis Barbaron - Licensed under the Apache license 2.0 +**/ + var util = require('util') var Promise = require('bluebird') @@ -26,6 +30,7 @@ module.exports = syrup.serial() .define(function(options, adb, minicap, display, screenOptions) { var log = logger.createLogger('device:plugins:screen:stream') log.info('ScreenGrabber option set to %s', options.screenGrabber) + log.info('ScreenFrameRate option set to %d', options.screenFrameRate) function FrameProducer(config, grabber) { EventEmitter.call(this) @@ -230,12 +235,23 @@ module.exports = syrup.serial() FrameProducer.prototype._startService = function() { log.info('Launching screen service %s', this.grabber) - return minicap.run(this.grabber, util.format( - '-S -Q %d -P %s' - , options.screenJpegQuality - , this.frameConfig.toString() - )) - .timeout(10000) + if (options.screenFrameRate <= 0.0) { + return minicap.run(this.grabber, util.format( + '-S -Q %d -P %s' + , options.screenJpegQuality + , this.frameConfig.toString() + )) + .timeout(10000) + } + else { + return minicap.run(this.grabber, util.format( + '-S -r %d -Q %d -P %s' + , options.screenFrameRate + , options.screenJpegQuality + , this.frameConfig.toString() + )) + .timeout(10000) + } } FrameProducer.prototype._readOutput = function(out) { diff --git a/lib/units/device/plugins/vnc/util/connection.js b/lib/units/device/plugins/vnc/util/connection.js index 1f53e85d9..2c9c283ad 100644 --- a/lib/units/device/plugins/vnc/util/connection.js +++ b/lib/units/device/plugins/vnc/util/connection.js @@ -120,14 +120,14 @@ VncConnection.prototype.end = function() { } VncConnection.prototype.writeFramebufferUpdate = function(rectangles) { - var chunk = new Buffer(4) + var chunk = Buffer.alloc(4) chunk[0] = VncConnection.SERVER_MESSAGE_FBUPDATE chunk[1] = 0 chunk.writeUInt16BE(rectangles.length, 2) this._write(chunk) rectangles.forEach(function(rect) { - var rchunk = new Buffer(12) + var rchunk = Buffer.alloc(12) rchunk.writeUInt16BE(rect.xPosition, 0) rchunk.writeUInt16BE(rect.yPosition, 2) rchunk.writeUInt16BE(rect.width, 4) @@ -171,19 +171,19 @@ VncConnection.prototype._writeServerVersion = function() { // Yes, we could just format the string instead. Didn't feel like it. switch (this._serverVersion) { case VncConnection.V3_003: - this._write(new Buffer('RFB 003.003\n')) + this._write(Buffer.from('RFB 003.003\n')) break case VncConnection.V3_007: - this._write(new Buffer('RFB 003.007\n')) + this._write(Buffer.from('RFB 003.007\n')) break case VncConnection.V3_008: - this._write(new Buffer('RFB 003.008\n')) + this._write(Buffer.from('RFB 003.008\n')) break } } VncConnection.prototype._writeSupportedSecurity = function() { - var chunk = new Buffer(1 + this._serverSupportedSecurity.length) + var chunk = Buffer.alloc(1 + this._serverSupportedSecurity.length) chunk[0] = this._serverSupportedSecurity.length this._serverSupportedSecurity.forEach(function(security, i) { @@ -197,12 +197,12 @@ VncConnection.prototype._writeSecurityResult = function(result, reason) { var chunk switch (result) { case VncConnection.SECURITYRESULT_OK: - chunk = new Buffer(4) + chunk = Buffer.alloc(4) chunk.writeUInt32BE(result, 0) this._write(chunk) break case VncConnection.SECURITYRESULT_FAIL: - chunk = new Buffer(4 + 4 + reason.length) + chunk = Buffer.alloc(4 + 4 + reason.length) chunk.writeUInt32BE(result, 0) chunk.writeUInt32BE(reason.length, 4) chunk.write(reason, 8, reason.length) @@ -213,7 +213,7 @@ VncConnection.prototype._writeSecurityResult = function(result, reason) { VncConnection.prototype._writeServerInit = function() { debug('server pixel format', this._serverPixelFormat) - var chunk = new Buffer(2 + 2 + 16 + 4 + this._serverName.length) + var chunk = Buffer.alloc(2 + 2 + 16 + 4 + this._serverName.length) chunk.writeUInt16BE(this._serverWidth, 0) chunk.writeUInt16BE(this._serverHeight, 2) chunk[4] = this._serverPixelFormat.bitsPerPixel @@ -459,15 +459,15 @@ VncConnection.prototype._unguardedRead = function() { } VncConnection.prototype._parseVersion = function(chunk) { - if (chunk.equals(new Buffer('RFB 003.008\n'))) { + if (chunk.equals(Buffer.from('RFB 003.008\n'))) { return VncConnection.V3_008 } - if (chunk.equals(new Buffer('RFB 003.007\n'))) { + if (chunk.equals(Buffer.from('RFB 003.007\n'))) { return VncConnection.V3_007 } - if (chunk.equals(new Buffer('RFB 003.003\n'))) { + if (chunk.equals(Buffer.from('RFB 003.003\n'))) { return VncConnection.V3_003 } diff --git a/lib/units/device/resources/minicap.js b/lib/units/device/resources/minicap.js index 7eed2b54c..b30370d64 100644 --- a/lib/units/device/resources/minicap.js +++ b/lib/units/device/resources/minicap.js @@ -1,4 +1,3 @@ -var fs = require('fs') var util = require('util') var path = require('path') @@ -68,8 +67,8 @@ module.exports = syrup.serial() , mode: 0755 }) } - - var client = deviceClient(adb, options.serial) + + let client = deviceClient(adb, options.serial) function removeResource(res) { return client.shell(['rm', '-f', res.dest]) @@ -99,7 +98,6 @@ module.exports = syrup.serial() return client.stat(res.dest) .timeout(5000) .then(function(stats) { - // Can't use fs.constants.S_IXUSR due to differences on Windows. return (stats.mode & 0x40) === 0x40 }) } diff --git a/lib/units/device/resources/service.js b/lib/units/device/resources/service.js index ff70cdda4..7b5787e11 100644 --- a/lib/units/device/resources/service.js +++ b/lib/units/device/resources/service.js @@ -78,7 +78,6 @@ module.exports = syrup.serial() // Uninstall first to make sure we don't have any certificate // issues. var client = deviceClient(adb, options.serial) - return client.uninstall(resource.pkg) .timeout(15000) .then(function() { diff --git a/lib/units/websocket/index.js b/lib/units/websocket/index.js index 3d10831bc..eb62659ef 100644 --- a/lib/units/websocket/index.js +++ b/lib/units/websocket/index.js @@ -561,7 +561,7 @@ module.exports = function(options) { ]) } catch(err) { - //workaround for https://github.com/openstf/stf/issues/1180 + // workaround for https://github.com/openstf/stf/issues/1180 log.error('input.touchMove had an error', err.stack) } }) diff --git a/lib/util/devutil.js b/lib/util/devutil.js index af93db6ed..4fe7729c8 100644 --- a/lib/util/devutil.js +++ b/lib/util/devutil.js @@ -168,7 +168,14 @@ devutil.makeIdentity = function(serial, properties) { else if (marketName) { var devices = androidDeviceList.getDevicesByDeviceId(marketName) if (devices.length > 0) { - marketName = devices[0].name + const deviceFilter = devices.filter(device => device.model === model) + + if (deviceFilter.length > 0) { + marketName = deviceFilter[0].name + } + else { + marketName = devices[0].name + } } } diff --git a/lib/util/vncauth.js b/lib/util/vncauth.js index 1b9ec5d9c..e06ca69cf 100644 --- a/lib/util/vncauth.js +++ b/lib/util/vncauth.js @@ -7,7 +7,7 @@ function reverseByteBits(b) { } function reverseBufferByteBits(b) { - var result = new Buffer(b.length) + var result = Buffer.alloc(b.length) for (var i = 0; i < result.length; ++i) { result[i] = reverseByteBits(b[i]) @@ -17,7 +17,7 @@ function reverseBufferByteBits(b) { } function normalizePassword(password) { - var key = new Buffer(8).fill(0) + var key = Buffer.alloc(8).fill(0) // Make sure the key is always 8 bytes long. VNC passwords cannot be // longer than 8 bytes. Shorter passwords are padded with zeroes. @@ -28,7 +28,7 @@ function normalizePassword(password) { function encrypt(challenge, password) { var key = normalizePassword(password) - var iv = new Buffer(0).fill(0) + var iv = Buffer.alloc(0).fill(0) // Note: do not call .final(), .update() is the one that gives us the // desired result. diff --git a/lib/wire/messagestream.js b/lib/wire/messagestream.js index 99e877e77..7db8b5106 100644 --- a/lib/wire/messagestream.js +++ b/lib/wire/messagestream.js @@ -68,7 +68,6 @@ DelimitingStream.prototype._transform = function(chunk, encoding, done) { lengthBytes.push(length) - // this.push(new Buffer(lengthBytes)) this.push(Buffer.from(lengthBytes)) this.push(chunk) diff --git a/package.json b/package.json index 0cc2d2a93..64fb6fe9f 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,10 @@ }, "scripts": { "test": "gulp test", - "prepare": "bower install && not-in-install && gulp build || in-install" + "prepare": "not-in-install && gulp build || in-install", + "test:unit": "gulp karma", + "test:e2e": "gulp protractor", + "lint": "gulp lint" }, "dependencies": { "@devicefarmer/adbkit": "^3.2.3", @@ -41,22 +44,40 @@ "@devicefarmer/please-update-dependencies": "^2.0.1", "@devicefarmer/stf-appstore-db": "^1.0.0", "@devicefarmer/stf-browser-db": "^1.0.2", - "@devicefarmer/stf-device-db": "^1.2.0", + "@devicefarmer/stf-device-db": "^1.3.0", "@devicefarmer/stf-syrup": "^1.0.2", "@devicefarmer/stf-wiki": "^1.0.0", "@julusian/jpeg-turbo": "^0.5.4", "@slack/client": "^3.5.4", "android-device-list": "^1.2.7", + "angular": "1.5.11", + "angular-animate": "1.5.11", + "angular-borderlayout": "https://github.com/filearts/angular-borderlayout#7c9716aebd9260763f798561ca49d6fbfd4a5c67", + "angular-cookies": "1.5.11", + "angular-elastic": "2.5.1", + "angular-gettext": "2.2.1", + "angular-growl-v2": "https://github.com/JanStevens/angular-growl-2#v0.7.9", + "angular-hotkeys": "1.6.0", + "angular-ladda": "0.3.3", + "angular-route": "1.5.11", + "angular-touch": "1.5.11", + "angular-ui-bootstrap": "1.1.2", + "angular-xeditable": "0.1.12", "aws-sdk": "^2.4.13", + "d3": "3.5.17", "basic-auth": "^1.0.3", + "bootstrap": "3.3.7", "bluebird": "^2.10.1", "body-parser": "^1.13.3", "bufferutil": "^4.0.3", "chalk": "~1.1.1", + "components-font-awesome": "4.7.0", "compression": "^1.5.2", "cookie-session": "^2.0.0-alpha.1", "csurf": "^1.7.0", "debug": "^2.2.0", + "draggabilly": "1.2.4", + "epoch-charting": "0.8.4", "eventemitter3": "^1.2.0", "express": "^4.14.0", "express-validator": "^2.20.8", @@ -73,8 +94,13 @@ "mime": "^1.3.4", "minimatch": "^3.0.3", "my-local-ip": "^1.0.0", + "ng-context-menu": "https://github.com/swimlane/ng-context-menu#93d825d981dc6f49bcaa861ef5a87fa9d1923f34", + "ng-file-upload": "2.2.2", + "ng-table": "1.0.0", + "oboe": "2.1.5", "openid": "^2.0.1", - "passport": "^0.4.1", + "passport": "^0.6.0", + "packery": "1.4.3", "passport-oauth2": "^1.1.2", "passport-saml": "^0.15.0", "protobufjs": "^3.8.2", @@ -93,15 +119,17 @@ "swagger-tools": "^0.10.4", "temp": "^0.8.1", "transliteration": "^2.2.0", + "underscore.string": "3.2.3", "url-join": "1.1.0", "utf-8-validate": "^5.0.0", "uuid": "^3.0.0", "ws": "^3.0.0", "yargs": "^6.6.0", "yauzl": "^2.10.0", - "zeromq": "^5.0.0" + "zeromq": "^5.2.8" }, "devDependencies": { + "angular-mocks": "1.5.11", "async": "^2.0.1", "bower": "^1.8.8", "chai": "^3.4.1", @@ -155,10 +183,12 @@ "then-jade": "^2.4.1", "url-loader": "^0.6.2", "webpack": "^3.1.0", - "webpack-dev-server": "^2.11.5" + "webpack-dev-server": "^2.11.5", + "zeromq": "5.2.8" }, "engines": { - "node": ">= 6.9" + "node": ">= 12", + "npm": ">=8.5.5" }, "externalDependencies": { "rethinkdb": ">= 2.2", diff --git a/res/app/components/stf/app-state/app-state-provider.js b/res/app/components/stf/app-state/app-state-provider.js index 665381778..ef74f2cc2 100644 --- a/res/app/components/stf/app-state/app-state-provider.js +++ b/res/app/components/stf/app-state/app-state-provider.js @@ -5,6 +5,9 @@ module.exports = function AppStateProvider() { }, user: { settings: {} + }, + device: { + platform: '' } } diff --git a/res/app/components/stf/device/enhance-device/enhance-device-service.js b/res/app/components/stf/device/enhance-device/enhance-device-service.js index 4346dffdb..bd5e9c69a 100644 --- a/res/app/components/stf/device/enhance-device/enhance-device-service.js +++ b/res/app/components/stf/device/enhance-device/enhance-device-service.js @@ -45,7 +45,8 @@ module.exports = function EnhanceDeviceServiceFactory($filter, AppState) { } function enhanceDevice(device) { - device.enhancedName = device.name || device.model || device.serial || 'Unknown' + device.enhancedName = device.marketName || device.name || device.model || device.serial + || 'Unknown' device.enhancedModel = device.model || 'Unknown' device.enhancedImage120 = '/static/app/devices/icon/x120/' + (device.image || '_default.jpg') device.enhancedImage24 = '/static/app/devices/icon/x24/' + (device.image || '_default.jpg') @@ -94,10 +95,15 @@ module.exports = function EnhanceDeviceServiceFactory($filter, AppState) { return url } + function enhanceDeviceAppState(device) { + AppState.device.platform = device.platform + } + service.enhance = function(device) { setState(device) enhanceDevice(device) enhanceDeviceDetails(device) + enhanceDeviceAppState(device) } return service diff --git a/res/app/components/stf/install/install-service.js b/res/app/components/stf/install/install-service.js index 3c7cd98ee..de56713cc 100644 --- a/res/app/components/stf/install/install-service.js +++ b/res/app/components/stf/install/install-service.js @@ -7,6 +7,7 @@ module.exports = function InstallService( , $http , $filter , StorageService +, AppState ) { var installService = Object.create(null) @@ -71,9 +72,9 @@ module.exports = function InstallService( installation.update(uploadResult.progress / 2, uploadResult.lastData) installation.manifest = uploadResult.body return control.install({ - href: installation.href - , manifest: installation.manifest - , launch: installation.launch + href: installation.href, + manifest: installation.manifest, + launch: installation.launch }) .progressed(function(result) { installation.update(50 + result.progress / 2, result.lastData) @@ -89,12 +90,13 @@ module.exports = function InstallService( installService.installFile = function(control, $files) { var installation = new Installation('uploading') + let isIOSPlatform = AppState.device.platform === 'iOS' $rootScope.$broadcast('installation', installation) return StorageService.storeFile('apk', $files, { filter: function(file) { - return /\.(apk|aab)$/i.test(file.name) + return isIOSPlatform ? /\.(ipa)$/i.test(file.name) : /\.(apk|aab)$/i.test(file.name) } - }) + }) .progressed(function(e) { if (e.lengthComputable) { installation.update(e.loaded / e.total * 100 / 2, 'uploading') @@ -103,23 +105,35 @@ module.exports = function InstallService( .then(function(res) { installation.update(100 / 2, 'processing') installation.href = res.data.resources.file.href - return $http.get(installation.href + '/manifest') - .then(function(res) { - if (res.data.success) { - installation.manifest = res.data.manifest - return control.install({ - href: installation.href - , manifest: installation.manifest - , launch: installation.launch - }) - .progressed(function(result) { - installation.update(50 + result.progress / 2, result.lastData) - }) - } - else { - throw new Error('Unable to retrieve manifest') - } + if(isIOSPlatform) { + installation.manifest = {'application': {'activities': {}}} + return control.install({ + href: installation.href, + manifest: installation.manifest, + launch: installation.launch }) + .progressed(function(result) { + installation.update(50 + result.progress / 2, result.lastData) + }) + } else { + return $http.get(installation.href + '/manifest') + .then(function(res) { + if (res.data.success) { + installation.manifest = res.data.manifest + return control.install({ + href: installation.href, + manifest: installation.manifest, + launch: installation.launch + }) + .progressed(function(result) { + installation.update(50 + result.progress / 2, result.lastData) + }) + } + else { + throw new Error('Unable to retrieve manifest') + } + }) + } }) .then(function() { installation.okay('installed') @@ -127,7 +141,7 @@ module.exports = function InstallService( .catch(function(err) { installation.fail(err.code || err.message) }) - } + } return installService } diff --git a/res/app/control-panes/advanced/run-js/run-js.pug b/res/app/control-panes/advanced/run-js/run-js.pug index da8388ef9..f7d0893a2 100644 --- a/res/app/control-panes/advanced/run-js/run-js.pug +++ b/res/app/control-panes/advanced/run-js/run-js.pug @@ -16,10 +16,10 @@ button(ng-click='saveDialog()', ng-disabled='!snippet.editorText').btn.btn-sm.btn-default-outline i.fa.fa-save span(translate) Save... - button(type='button', - ng-disabled='!hasSnippets()').btn.btn-sm.btn-default-outline.uib-dropdown-toggle + button(type='button', uib-dropdown-toggle, + ng-disabled='!hasSnippets()').btn.btn-sm.btn-default-outline span.caret - ul.uib-dropdown-menu.pull-right + ul(uib-dropdown-menu).pull-right li(ng-repeat='snip in snippets') a(ng-click='openSnippet(snip)').btn-link {{snip.name}} li.divider diff --git a/res/app/control-panes/dashboard/install/install.pug b/res/app/control-panes/dashboard/install/install.pug index 6eb0ff76e..dc7dc8271 100644 --- a/res/app/control-panes/dashboard/install/install.pug +++ b/res/app/control-panes/dashboard/install/install.pug @@ -58,7 +58,8 @@ span(ng-if='!showManifest') Show Manifest pre.manifest-text(ng-if='showManifest') {{ installation.manifest | json }} - alert(type='danger', close='clear()', ng-if='installation.error') + .alert.alert-danger.alert-dismissible(role="alert", ng-if='installation.error') strong(translate) Oops! - | + .button.close(type="button", data-dismiss="alert" aria-label="Close") + span(aria-hidden="true") × span {{ installation.error | installError | translate }} ({{ installation.error }}) diff --git a/res/app/control-panes/device-control/device-control.css b/res/app/control-panes/device-control/device-control.css index 2042be206..c8af56d7b 100644 --- a/res/app/control-panes/device-control/device-control.css +++ b/res/app/control-panes/device-control/device-control.css @@ -158,6 +158,8 @@ device-screen input { outline: none; pointer-events: none; opacity: 0; + top: -9999px; + left: -9999px; ime-mode: disabled; inputmode: verbatim; } diff --git a/res/app/device-list/device-list.pug b/res/app/device-list/device-list.pug index 7833ed850..8ca55c0b7 100644 --- a/res/app/device-list/device-list.pug +++ b/res/app/device-list/device-list.pug @@ -26,7 +26,7 @@ i.fa.fa-columns span(ng-bind='"Customize"|translate') - ul.uib-dropdown-menu(role='menu').pointer.stf-device-details-customize + ul(uib-dropdown-menu, role='menu').pointer.stf-device-details-customize li(ng-repeat='column in columns track by column.name', ng-hide='!adminMode && columnDefinitions[column.name].admin', ng-click='$event.stopPropagation()') diff --git a/res/app/settings/general/local/index.js b/res/app/settings/general/local/index.js index 037dba54f..2413d260a 100644 --- a/res/app/settings/general/local/index.js +++ b/res/app/settings/general/local/index.js @@ -1,4 +1,4 @@ -require('angular-bootstrap') +require('angular-ui-bootstrap') module.exports = angular.module('ui-local-settings', [ require('stf/settings').name, diff --git a/res/test/protractor.conf.js b/res/test/protractor.conf.js index af51561a2..896ea7131 100644 --- a/res/test/protractor.conf.js +++ b/res/test/protractor.conf.js @@ -69,7 +69,7 @@ module.exports.config = { browser.takeScreenshot().then(function(png) { var stream = fs.createWriteStream(dashboardReportDirectory + '/' + browserName + '-' + result.fullName + '.png') - stream.write(new Buffer(png, 'base64')) + stream.write(Buffer.from(png, 'base64')) stream.end() }) }) diff --git a/res/web_modules/epoch/index.js b/res/web_modules/epoch/index.js index c181a661e..c50e413bf 100644 --- a/res/web_modules/epoch/index.js +++ b/res/web_modules/epoch/index.js @@ -1,8 +1,8 @@ require('jquery') require('d3') -require('epoch/dist/css/epoch.min.css') -require('epoch/dist/js/epoch.min.js') +require('epoch-charting/dist/css/epoch.min.css') +require('epoch-charting/dist/js/epoch.min.js') require('ng-epoch') module.exports = { diff --git a/res/web_modules/font-lato-2-subset/css/font-lato-2.css b/res/web_modules/font-lato-2-subset/css/font-lato-2.css new file mode 100644 index 000000000..915b4f62f --- /dev/null +++ b/res/web_modules/font-lato-2-subset/css/font-lato-2.css @@ -0,0 +1,28 @@ +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 100; + src: local('Lato Hair'), local('Lato-Hair'), url(../font/LatoLatinHair-Regular.woff) format('woff'); + text-rendering: optimizeLegibility; +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 300; + src: local('Lato Light'), local('Lato-Light'), url(../font/LatoLatinLight-Regular.woff) format('woff'); + text-rendering: optimizeLegibility; +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 400; + src: local('Lato Regular'), local('Lato-Regular'), url(../font/LatoLatin-Regular.woff) format('woff'); + text-rendering: optimizeLegibility; +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 700; + src: local('Lato Bold'), local('Lato-Bold'), url(../font/LatoLatin-Bold.woff) format('woff'); + text-rendering: optimizeLegibility; +} diff --git a/res/web_modules/font-lato-2-subset/font/LatoLatin-Bold.css b/res/web_modules/font-lato-2-subset/font/LatoLatin-Bold.css new file mode 100644 index 000000000..a5d944b54 --- /dev/null +++ b/res/web_modules/font-lato-2-subset/font/LatoLatin-Bold.css @@ -0,0 +1,11 @@ +/* Webfont: LatoLatin-Bold */@font-face { + font-family: 'LatoLatin'; + src: url('LatoLatin-Bold.eot'); /* IE9 Compat Modes */ + src: url('LatoLatin-Bold.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('LatoLatin-Bold.woff') format('woff'), /* Modern Browsers */ + url('LatoLatin-Bold.ttf') format('truetype'); + font-style: normal; + font-weight: bold; + text-rendering: optimizeLegibility; +} + diff --git a/res/web_modules/font-lato-2-subset/font/LatoLatin-Bold.eot b/res/web_modules/font-lato-2-subset/font/LatoLatin-Bold.eot new file mode 100644 index 000000000..d55ff1949 Binary files /dev/null and b/res/web_modules/font-lato-2-subset/font/LatoLatin-Bold.eot differ diff --git a/res/web_modules/font-lato-2-subset/font/LatoLatin-Bold.ttf b/res/web_modules/font-lato-2-subset/font/LatoLatin-Bold.ttf new file mode 100644 index 000000000..eab5fd98b Binary files /dev/null and b/res/web_modules/font-lato-2-subset/font/LatoLatin-Bold.ttf differ diff --git a/res/web_modules/font-lato-2-subset/font/LatoLatin-Bold.woff b/res/web_modules/font-lato-2-subset/font/LatoLatin-Bold.woff new file mode 100644 index 000000000..1314e067d Binary files /dev/null and b/res/web_modules/font-lato-2-subset/font/LatoLatin-Bold.woff differ diff --git a/res/web_modules/font-lato-2-subset/font/LatoLatin-Regular.css b/res/web_modules/font-lato-2-subset/font/LatoLatin-Regular.css new file mode 100644 index 000000000..c51f1442a --- /dev/null +++ b/res/web_modules/font-lato-2-subset/font/LatoLatin-Regular.css @@ -0,0 +1,11 @@ +/* Webfont: LatoLatin-Regular */@font-face { + font-family: 'LatoLatin'; + src: url('LatoLatin-Regular.eot'); /* IE9 Compat Modes */ + src: url('LatoLatin-Regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('LatoLatin-Regular.woff') format('woff'), /* Modern Browsers */ + url('LatoLatin-Regular.ttf') format('truetype'); + font-style: normal; + font-weight: normal; + text-rendering: optimizeLegibility; +} + diff --git a/res/web_modules/font-lato-2-subset/font/LatoLatin-Regular.eot b/res/web_modules/font-lato-2-subset/font/LatoLatin-Regular.eot new file mode 100644 index 000000000..e7754058d Binary files /dev/null and b/res/web_modules/font-lato-2-subset/font/LatoLatin-Regular.eot differ diff --git a/res/web_modules/font-lato-2-subset/font/LatoLatin-Regular.ttf b/res/web_modules/font-lato-2-subset/font/LatoLatin-Regular.ttf new file mode 100644 index 000000000..6e53f1721 Binary files /dev/null and b/res/web_modules/font-lato-2-subset/font/LatoLatin-Regular.ttf differ diff --git a/res/web_modules/font-lato-2-subset/font/LatoLatin-Regular.woff b/res/web_modules/font-lato-2-subset/font/LatoLatin-Regular.woff new file mode 100644 index 000000000..2ac7d5668 Binary files /dev/null and b/res/web_modules/font-lato-2-subset/font/LatoLatin-Regular.woff differ diff --git a/res/web_modules/font-lato-2-subset/font/LatoLatinHair-Regular.css b/res/web_modules/font-lato-2-subset/font/LatoLatinHair-Regular.css new file mode 100644 index 000000000..c64fa1143 --- /dev/null +++ b/res/web_modules/font-lato-2-subset/font/LatoLatinHair-Regular.css @@ -0,0 +1,11 @@ +/* Webfont: LatoLatinHair-Regular */@font-face { + font-family: 'LatoLatinHair'; + src: url('LatoLatinHair-Regular.eot'); /* IE9 Compat Modes */ + src: url('LatoLatinHair-Regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('LatoLatinHair-Regular.woff') format('woff'), /* Modern Browsers */ + url('LatoLatinHair-Regular.ttf') format('truetype'); + font-style: normal; + font-weight: normal; + text-rendering: optimizeLegibility; +} + diff --git a/res/web_modules/font-lato-2-subset/font/LatoLatinHair-Regular.eot b/res/web_modules/font-lato-2-subset/font/LatoLatinHair-Regular.eot new file mode 100644 index 000000000..17e68142e Binary files /dev/null and b/res/web_modules/font-lato-2-subset/font/LatoLatinHair-Regular.eot differ diff --git a/res/web_modules/font-lato-2-subset/font/LatoLatinHair-Regular.ttf b/res/web_modules/font-lato-2-subset/font/LatoLatinHair-Regular.ttf new file mode 100644 index 000000000..a18ef2f20 Binary files /dev/null and b/res/web_modules/font-lato-2-subset/font/LatoLatinHair-Regular.ttf differ diff --git a/res/web_modules/font-lato-2-subset/font/LatoLatinHair-Regular.woff b/res/web_modules/font-lato-2-subset/font/LatoLatinHair-Regular.woff new file mode 100644 index 000000000..579dadb38 Binary files /dev/null and b/res/web_modules/font-lato-2-subset/font/LatoLatinHair-Regular.woff differ diff --git a/res/web_modules/font-lato-2-subset/font/LatoLatinLight-Regular.css b/res/web_modules/font-lato-2-subset/font/LatoLatinLight-Regular.css new file mode 100644 index 000000000..d40c2c1cb --- /dev/null +++ b/res/web_modules/font-lato-2-subset/font/LatoLatinLight-Regular.css @@ -0,0 +1,11 @@ +/* Webfont: LatoLatinLight-Regular */@font-face { + font-family: 'LatoLatinLight'; + src: url('LatoLatinLight-Regular.eot'); /* IE9 Compat Modes */ + src: url('LatoLatinLight-Regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('LatoLatinLight-Regular.woff') format('woff'), /* Modern Browsers */ + url('LatoLatinLight-Regular.ttf') format('truetype'); + font-style: normal; + font-weight: normal; + text-rendering: optimizeLegibility; +} + diff --git a/res/web_modules/font-lato-2-subset/font/LatoLatinLight-Regular.eot b/res/web_modules/font-lato-2-subset/font/LatoLatinLight-Regular.eot new file mode 100644 index 000000000..62305de96 Binary files /dev/null and b/res/web_modules/font-lato-2-subset/font/LatoLatinLight-Regular.eot differ diff --git a/res/web_modules/font-lato-2-subset/font/LatoLatinLight-Regular.ttf b/res/web_modules/font-lato-2-subset/font/LatoLatinLight-Regular.ttf new file mode 100644 index 000000000..cfcd17c4a Binary files /dev/null and b/res/web_modules/font-lato-2-subset/font/LatoLatinLight-Regular.ttf differ diff --git a/res/web_modules/font-lato-2-subset/font/LatoLatinLight-Regular.woff b/res/web_modules/font-lato-2-subset/font/LatoLatinLight-Regular.woff new file mode 100644 index 000000000..bee7c0bc4 Binary files /dev/null and b/res/web_modules/font-lato-2-subset/font/LatoLatinLight-Regular.woff differ diff --git a/res/web_modules/font-lato-2-subset/package.json b/res/web_modules/font-lato-2-subset/package.json new file mode 100644 index 000000000..d7cdb28cd --- /dev/null +++ b/res/web_modules/font-lato-2-subset/package.json @@ -0,0 +1,8 @@ +{ + "name": "font-lato-2-subset", + "version": "0.4.0", + "homepage": "https://github.com/gunta/font-lato-2-subset", + "description": "A subset of the font Lato 2", + "main": "css/font-lato-2.css", + "license": "SIL OPEN FONT LICENSE" +} diff --git a/res/web_modules/ng-epoch/ng-epoch.js b/res/web_modules/ng-epoch/ng-epoch.js new file mode 100755 index 000000000..a589ac32b --- /dev/null +++ b/res/web_modules/ng-epoch/ng-epoch.js @@ -0,0 +1,185 @@ +'use strict'; + +(function(angular) { + var ngEpoch = angular.module('ng.epoch', []) + + var allOptions = { + options: '=', + chartAxes: '=', + chartTicks: '=', + chartTickFormats: '=', + chartDomain: '=', + chartRange: '=', + chartMargins: '=', + chartMargin: '=', + chartInner: '=', + chartWidth: '=', + chartHeight: '=', + chartData: '=', + chartClass: '=', + chartOrientation: '=', + chartPadding: '=', + chartOuterPadding: '=', + chartRadius: '=', + chartFps: '=', + chartFormat: '=', + chartWindowSize: '=', + chartHistorySize: '=', + chartQueueSize: '=', + chartPixelRatio: '=', + chartBuckets: '=', + chartBucketRange: '=', + chartBucketPadding: '=', + chartOpacity: '=', + chartPaintZeroValues: '=', + chartStream: '=', + gaugeValue: '=', + gaugeDialSize: '=', + gaugeFormat: '=', + gaugeStream: '=' + } + + var baseDirective = { + restrict: 'EA', + replace: true, + template: '
', + scope: angular.copy(allOptions), + controller: 'epochController' + } + + ngEpoch.controller('epochController', function($scope, $compile) { + $scope.filterOptions = function() { + var results = {} + angular.forEach($scope, function(v, k) { + if ((k.indexOf('chart') === 0 || k.indexOf('gauge') === 0) && + (k !== 'chartClass' && k !== 'gaugeDialSize')) { + if (v) { + var key = k.substring(5) + var newKey = key.charAt(0).toLowerCase() + key.slice(1) + this[newKey] = v + } + } + }, results) + return results + } + $scope.renderEpoch = function($element, options) { + $scope.me = $element.epoch(options) + $compile($scope.me)($scope) + return $scope.me + } + $scope.$watch('chartStream', function(newVal) { + if (newVal) { $scope.me.push($scope.chartStream) } + }, true) + $scope.$watch('gaugeStream', function(newVal) { + if (newVal) { $scope.me.update($scope.gaugeStream) } + }, true) + }) + + ngEpoch.directive('epochArea', function($compile) { + var areaFunction = function(scope, elem, attr) { + if (scope.chartClass) { elem.addClass(scope.chartClass) } + var options = scope.filterOptions() + options.type = 'area' + elem.epoch(options) + $compile(elem)(scope) + } + return angular.extend(angular.copy(baseDirective), {link: areaFunction}) + }) + + ngEpoch.directive('epochLiveArea', function() { + var liveAreaFunction = function(scope, elem, attr) { + if (scope.chartClass) { elem.addClass(scope.chartClass) } + var options = scope.filterOptions() + options.type = 'time.area' + var liveArea = scope.renderEpoch(elem, options) + } + return angular.extend(angular.copy(baseDirective), {link: liveAreaFunction}) + }) + + ngEpoch.directive('epochBar', function($compile) { + var barFunction = function(scope, elem, attr) { + if (scope.chartClass) { elem.addClass(scope.chartClass) } + var options = scope.filterOptions() + options.type = 'bar' + elem.epoch(options) + $compile(elem)(scope) + } + return angular.extend(angular.copy(baseDirective), {link: barFunction}) + }) + + ngEpoch.directive('epochLiveBar', function() { + var liveBarFunction = function(scope, elem, attr) { + if (scope.chartClass) { elem.addClass(scope.chartClass) } + var options = scope.filterOptions() + options.type = 'time.bar' + var liveBar = scope.renderEpoch(elem, options) + } + return angular.extend(angular.copy(baseDirective), {link: liveBarFunction}) + }) + + ngEpoch.directive('epochLine', function($compile) { + var lineFunction = function(scope, elem, attr) { + if (scope.chartClass) { elem.addClass(scope.chartClass) } + var options = scope.filterOptions() + options.type = 'line' + elem.epoch(options) + $compile(elem)(scope) + } + return angular.extend(angular.copy(baseDirective), {link: lineFunction}) + }) + + ngEpoch.directive('epochLiveLine', function() { + var liveLineFunction = function(scope, elem, attr) { + if (scope.chartClass) { elem.addClass(scope.chartClass) } + var options = scope.filterOptions() + options.type = 'time.line' + var liveLine = scope.renderEpoch(elem, options) + } + return angular.extend(angular.copy(baseDirective), {link: liveLineFunction}) + }) + + ngEpoch.directive('epochPie', function($compile) { + var pieFunction = function(scope, elem, attr) { + if (scope.chartClass) { elem.addClass(scope.chartClass) } + var options = scope.filterOptions() + options.type = 'pie' + elem.epoch(options) + $compile(elem)(scope) + } + return angular.extend(angular.copy(baseDirective), {link: pieFunction}) + }) + + ngEpoch.directive('epochScatter', function($compile) { + var linkFunction = function(scope, elem, attr) { + if (scope.chartClass) { elem.addClass(scope.chartClass) } + var options = scope.filterOptions() + options.type = 'scatter' + elem.epoch(options) + $compile(elem)(scope) + } + return angular.extend(angular.copy(baseDirective), {link: linkFunction}) + }) + + ngEpoch.directive('epochGauge', function() { + var gaugeFunction = function(scope, elem, attr) { + if (scope.chartClass) { elem.addClass(scope.chartClass) } + var gClass = (scope.gaugeDialSize) ? scope.gaugeDialSize : 'gauge-small' + elem.addClass(gClass) + var options = scope.filterOptions() + options.type = 'time.gauge' + var gauge = scope.renderEpoch(elem, options) + } + return angular.extend(angular.copy(baseDirective), {link: gaugeFunction}) + }) + + ngEpoch.directive('epochHeatmap', function() { + var heatmapFunction = function(scope, elem, attr) { + if (scope.chartClass) { elem.addClass(scope.chartClass) } + var options = scope.filterOptions() + options.type = 'time.heatmap' + var heatmap = scope.renderEpoch(elem, options) + } + return angular.extend(angular.copy(baseDirective), {link: heatmapFunction}) + }) + +})(angular) diff --git a/res/web_modules/ng-epoch/package.json b/res/web_modules/ng-epoch/package.json new file mode 100755 index 000000000..ff7b8b5b4 --- /dev/null +++ b/res/web_modules/ng-epoch/package.json @@ -0,0 +1,8 @@ +{ + "name": "ng-epoch", + "version": "1.0.7", + "homepage": "https://github.com/dainbrump/ng-epoch", + "description": "Angular directive wrapper for EpochJS, a charting plugin by Fastly.", + "main": "ng-epoch.js", + "license": "MIT" +} diff --git a/res/web_modules/ng-file-upload/index.js b/res/web_modules/ng-file-upload/index.js index 0ba47c8a8..0795270ae 100644 --- a/res/web_modules/ng-file-upload/index.js +++ b/res/web_modules/ng-file-upload/index.js @@ -1,5 +1,5 @@ -require('ng-file-upload/angular-file-upload-shim') -require('ng-file-upload/angular-file-upload') +require('ng-file-upload/dist/angular-file-upload-shim') +require('ng-file-upload/dist/angular-file-upload') module.exports = { name: 'angularFileUpload' diff --git a/res/web_modules/ui-bootstrap/index.js b/res/web_modules/ui-bootstrap/index.js index 16a594913..f839c248a 100644 --- a/res/web_modules/ui-bootstrap/index.js +++ b/res/web_modules/ui-bootstrap/index.js @@ -2,7 +2,7 @@ // Copyright © 2022 contains code contributed by Orange SA, authors: Denis Barbaron - Licensed under the Apache license 2.0 // -require('script-loader!angular-bootstrap/ui-bootstrap-tpls') +require('script-loader!angular-ui-bootstrap/dist/ui-bootstrap-tpls') module.exports = { name: 'ui.bootstrap' diff --git a/webpack.config.js b/webpack.config.js index 1c100c688..d2ca832de 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -30,20 +30,17 @@ module.exports = { modules: [ pathutil.resource('app/components') , 'web_modules' - , 'bower_components' , 'node_modules' ] - , descriptionFiles: ['package.json', 'bower.json'] + , descriptionFiles: ['package.json'] , moduleExtensions: ['-loader'] , extensions: ['.js', '.json'] , enforceModuleExtension: false - , alias: { - 'angular-bootstrap': 'angular-bootstrap/ui-bootstrap-tpls' - , localforage: 'localforage/dist/localforage.js' - , 'socket.io': 'socket.io-client' - , stats: 'stats.js/src/Stats.js' - , 'underscore.string': 'underscore.string/index' - } + , alias: { + localforage: 'localforage/dist/localforage.js' + , 'socket.io': 'socket.io-client' + , stats: 'stats.js/src/Stats.js' + } } , module: { loaders: [ @@ -62,12 +59,12 @@ module.exports = { , {test: /\.pug$/, loader: 'template-html-loader?engine=jade'} , {test: /\.html$/, loader: 'html-loader'} , {test: /angular\.js$/, loader: 'exports-loader?angular'} - , {test: /angular-cookies\.js$/, loader: 'imports-loader?angular=angular'} - , {test: /angular-route\.js$/, loader: 'imports-loader?angular=angular'} - , {test: /angular-touch\.js$/, loader: 'imports-loader?angular=angular'} - , {test: /angular-animate\.js$/, loader: 'imports-loader?angular=angular'} , {test: /angular-growl\.js$/, loader: 'imports-loader?angular=angular'} , {test: /dialogs\.js$/, loader: 'script-loader'} + , { + test: /node_modules\/(draggabilly|fizzy-ui-utils|get-size|outlayer|packery|unipointer)/ + , loader: 'imports-loader?define=>false' + } ] } , plugins: [ diff --git a/yarn.lock b/yarn.lock index a621170f4..4fa586a70 100644 --- a/yarn.lock +++ b/yarn.lock @@ -51,6 +51,14 @@ "resolved" "https://registry.npmjs.org/@devicefarmer/minitouch-prebuilt/-/minitouch-prebuilt-1.3.0.tgz" "version" "1.3.0" +"@devicefarmer/please-update-dependencies@^2.0.1": + "integrity" "sha512-tvm/VXhs+3qSWzZfVjxzAenW0my2D4MZn877xYAyrUZ4EDvQ602z+XtI4gdQke/I7iaM3Um624n+FhdzJDECaQ==" + "resolved" "https://registry.npmjs.org/@devicefarmer/please-update-dependencies/-/please-update-dependencies-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "chalk" "^1.1.3" + "semver" "^5.3.0" + "@devicefarmer/stf-appstore-db@^1.0.0": "integrity" "sha512-dkGLTU6ax8nmOBQlW3iJH6cf3ufLW4kY37TlfT13MYS2yKwoatn5Kf8CzwzYMSVH4tFDoIHNTPCXTnaLherk3A==" "resolved" "https://registry.npmjs.org/@devicefarmer/stf-appstore-db/-/stf-appstore-db-1.0.0.tgz" @@ -61,10 +69,10 @@ "resolved" "https://registry.npmjs.org/@devicefarmer/stf-browser-db/-/stf-browser-db-1.0.2.tgz" "version" "1.0.2" -"@devicefarmer/stf-device-db@^1.2.0": - "integrity" "sha512-p5mKfO2igS+JujpaFvZFifnaD6PZVL+dh3261iLQFO4bIl4QAif7UZPjqAlqQqjKLIR8NvSKPnXS8y7LPdpkUQ==" - "resolved" "https://registry.npmjs.org/@devicefarmer/stf-device-db/-/stf-device-db-1.2.0.tgz" - "version" "1.2.0" +"@devicefarmer/stf-device-db@^1.3.0": + "integrity" "sha512-1LNHd+xvXM6c2uv3Y2s01XPmE2jBKZiGvsnWEF9HDPpvjvcav0dLICG5lq6knM2663MY6wvSEnxK+eU3wFuejQ==" + "resolved" "https://registry.npmjs.org/@devicefarmer/stf-device-db/-/stf-device-db-1.3.0.tgz" + "version" "1.3.0" "@devicefarmer/stf-syrup@^1.0.2": "integrity" "sha512-5I/m/9lUF4sSrXAeihMIMJobuRK7ZvkG5bad3d+k+wd3BRSLlMHdBzkWiUVY91xRKXeh0jBvQ2x8yr8UTCEDGQ==" @@ -159,6 +167,11 @@ "resolved" "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz" "version" "0.7.5" +"abbrev@1": + "integrity" "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "resolved" "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + "version" "1.1.1" + "accepts@~1.3.4", "accepts@~1.3.5", "accepts@~1.3.8": "integrity" "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==" "resolved" "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" @@ -215,35 +228,35 @@ "resolved" "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz" "version" "3.3.0" -"acorn@^4.0.3": +"acorn@^4.0.3", "acorn@^4.0.4", "acorn@~4.0.2": "integrity" "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" "resolved" "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz" "version" "4.0.13" -"acorn@^4.0.4": - "integrity" "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz" - "version" "4.0.13" +"acorn@^5.0.0": + "integrity" "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz" + "version" "5.7.4" -"acorn@^5.0.0", "acorn@^5.2.1", "acorn@^5.5.0": +"acorn@^5.2.1": "integrity" "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==" "resolved" "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz" "version" "5.7.4" -"acorn@~4.0.2": - "integrity" "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz" - "version" "4.0.13" +"acorn@^5.5.0": + "integrity" "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz" + "version" "5.7.4" "addressparser@1.0.1": "integrity" "sha1-R6++GiqSYhkdtoOOT9HTm0CCF0Y=" "resolved" "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz" "version" "1.0.1" -"adm-zip@^0.4.7", "adm-zip@0.4.7": - "integrity" "sha1-hgbCy/HEJs6MjsABdER/1Jtur8E=" - "resolved" "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz" - "version" "0.4.7" +"adm-zip@^0.4.7": + "integrity" "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==" + "resolved" "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz" + "version" "0.4.16" "adm-zip@^0.4.9": "integrity" "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==" @@ -255,6 +268,11 @@ "resolved" "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.4.tgz" "version" "0.4.4" +"adm-zip@0.4.7": + "integrity" "sha1-hgbCy/HEJs6MjsABdER/1Jtur8E=" + "resolved" "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz" + "version" "0.4.7" + "after@0.8.1": "integrity" "sha1-q11PuIP1loFtNRX495HAr0ht1ic=" "resolved" "https://registry.npmjs.org/after/-/after-0.8.1.tgz" @@ -265,7 +283,7 @@ "resolved" "https://registry.npmjs.org/after/-/after-0.8.2.tgz" "version" "0.8.2" -"agent-base@^4.2.0", "agent-base@^4.3.0": +"agent-base@^4.2.0", "agent-base@^4.3.0", "agent-base@4": "integrity" "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==" "resolved" "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz" "version" "4.3.0" @@ -287,13 +305,6 @@ "extend" "~3.0.0" "semver" "~5.0.1" -"agent-base@4": - "integrity" "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==" - "resolved" "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz" - "version" "4.3.0" - dependencies: - "es6-promisify" "^5.0.0" - "ajv-errors@^1.0.0": "integrity" "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" "resolved" "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz" @@ -317,7 +328,7 @@ "co" "^4.6.0" "json-stable-stringify" "^1.0.1" -"ajv@^5.0.0", "ajv@^5.2.3", "ajv@^5.3.0", "ajv@>=5.0.0": +"ajv@^5.0.0", "ajv@^5.2.3": "integrity" "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=" "resolved" "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz" "version" "5.5.2" @@ -327,17 +338,17 @@ "fast-json-stable-stringify" "^2.0.0" "json-schema-traverse" "^0.3.0" -"ajv@^6.1.0", "ajv@^6.9.1": - "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" - "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - "version" "6.12.6" +"ajv@^5.3.0": + "integrity" "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=" + "resolved" "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz" + "version" "5.5.2" dependencies: - "fast-deep-equal" "^3.1.1" + "co" "^4.6.0" + "fast-deep-equal" "^1.0.0" "fast-json-stable-stringify" "^2.0.0" - "json-schema-traverse" "^0.4.1" - "uri-js" "^4.2.2" + "json-schema-traverse" "^0.3.0" -"ajv@^6.12.3": +"ajv@^6.1.0", "ajv@^6.12.3", "ajv@^6.9.1", "ajv@>=5.0.0": "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" "version" "6.12.6" @@ -398,6 +409,28 @@ "resolved" "https://registry.npmjs.org/android-device-list/-/android-device-list-1.2.7.tgz" "version" "1.2.7" +"angular-animate@1.5.11": + "integrity" "sha1-G6pDwwPRuTxOaqiUU7ORFLehxmk=" + "resolved" "https://registry.npmjs.org/angular-animate/-/angular-animate-1.5.11.tgz" + "version" "1.5.11" + +"angular-borderlayout@https://github.com/filearts/angular-borderlayout#7c9716aebd9260763f798561ca49d6fbfd4a5c67": + "integrity" "sha512-avdpQRb06cA02oGFn/7ZehaJFY/YQfgppS+fUM5dqxFqiUu90IRXHTf/L1urpcCXaHbB47U5HkMuOtE9TIkp5g==" + "resolved" "git+ssh://git@github.com/filearts/angular-borderlayout.git#7c9716aebd9260763f798561ca49d6fbfd4a5c67" + "version" "0.4.2" + +"angular-cookies@1.5.11": + "integrity" "sha1-iFWN58UETcw6vreWFNfvgQe6ScA=" + "resolved" "https://registry.npmjs.org/angular-cookies/-/angular-cookies-1.5.11.tgz" + "version" "1.5.11" + +"angular-elastic@2.5.1": + "integrity" "sha1-6TirG9jHZBW4ymUUsV/jWTpd9TU=" + "resolved" "https://registry.npmjs.org/angular-elastic/-/angular-elastic-2.5.1.tgz" + "version" "2.5.1" + dependencies: + "angular" ">=1.0.6" + "angular-gettext-tools@^2.2.0": "integrity" "sha512-/SyBMhPwMSoasZRXfMkXsKxaAHkDHHaFr3jAMqPuh3wGNJ8s9LfHKOGzcM0FW2mGIotmF1CRoWKgUIHMCwUYcg==" "resolved" "https://registry.npmjs.org/angular-gettext-tools/-/angular-gettext-tools-2.5.3.tgz" @@ -409,6 +442,83 @@ "lodash" "^4.17.5" "pofile" "~1.0.0" +"angular-gettext@2.2.1": + "integrity" "sha1-rvayJNIvwCHIfUhSTbeP5VSS1XQ=" + "resolved" "https://registry.npmjs.org/angular-gettext/-/angular-gettext-2.2.1.tgz" + "version" "2.2.1" + +"angular-growl-v2@https://github.com/JanStevens/angular-growl-2#v0.7.9": + "resolved" "git+ssh://git@github.com/JanStevens/angular-growl-2.git#2a3a40e01419af879f80f582baaeceef3408e295" + "version" "0.7.9" + +"angular-hotkeys@1.6.0": + "integrity" "sha1-WWguKaPbutnZdbV5cVMIw2HSSdY=" + "resolved" "https://registry.npmjs.org/angular-hotkeys/-/angular-hotkeys-1.6.0.tgz" + "version" "1.6.0" + +"angular-ladda@0.3.3": + "integrity" "sha1-pryEBoBKzzRZYeyQoyihe/lrEdU=" + "resolved" "https://registry.npmjs.org/angular-ladda/-/angular-ladda-0.3.3.tgz" + "version" "0.3.3" + dependencies: + "angular" "^1.2.0" + "ladda" "^0.9.8" + +"angular-mocks@1.5.11": + "integrity" "sha1-oOHdDqVf137np1fXVTbF6WTIb4E=" + "resolved" "https://registry.npmjs.org/angular-mocks/-/angular-mocks-1.5.11.tgz" + "version" "1.5.11" + +"angular-route@1.5.11": + "integrity" "sha1-SWFPOhZ/VCkeRJ/ougXTnFiSS4M=" + "resolved" "https://registry.npmjs.org/angular-route/-/angular-route-1.5.11.tgz" + "version" "1.5.11" + +"angular-touch@1.5.11": + "integrity" "sha1-YfRpxH7PiXn7QQyNOmFdMk0rFe8=" + "resolved" "https://registry.npmjs.org/angular-touch/-/angular-touch-1.5.11.tgz" + "version" "1.5.11" + +"angular-ui-bootstrap@1.1.2": + "integrity" "sha1-U2LWa4suc1JqMS45jmrE5fqzCG8=" + "resolved" "https://registry.npmjs.org/angular-ui-bootstrap/-/angular-ui-bootstrap-1.1.2.tgz" + "version" "1.1.2" + +"angular-xeditable@0.1.12": + "integrity" "sha1-SCw3fM4dtJh2+K4iDM5NuNeeY8U=" + "resolved" "https://registry.npmjs.org/angular-xeditable/-/angular-xeditable-0.1.12.tgz" + "version" "0.1.12" + dependencies: + "angular" "~1.x" + "bootstrap" "^3.1.1" + "jquery" "^1.11.1" + "moment" "^2.5.0" + +"angular@^1.2.0": + "integrity" "sha512-5qjkWIQQVsHj4Sb5TcEs4WZWpFeVFHXwxEBHUhrny41D8UrBAd6T/6nPPAsLngJCReIOqi95W3mxdveveutpZw==" + "resolved" "https://registry.npmjs.org/angular/-/angular-1.8.3.tgz" + "version" "1.8.3" + +"angular@^1.2", "angular@1.5.11": + "integrity" "sha1-jFunOG8VllyazzQp9ogVU6raMNY=" + "resolved" "https://registry.npmjs.org/angular/-/angular-1.5.11.tgz" + "version" "1.5.11" + +"angular@>= 1.2.5": + "integrity" "sha512-5qjkWIQQVsHj4Sb5TcEs4WZWpFeVFHXwxEBHUhrny41D8UrBAd6T/6nPPAsLngJCReIOqi95W3mxdveveutpZw==" + "resolved" "https://registry.npmjs.org/angular/-/angular-1.8.3.tgz" + "version" "1.8.3" + +"angular@>=1.0.6": + "integrity" "sha512-5qjkWIQQVsHj4Sb5TcEs4WZWpFeVFHXwxEBHUhrny41D8UrBAd6T/6nPPAsLngJCReIOqi95W3mxdveveutpZw==" + "resolved" "https://registry.npmjs.org/angular/-/angular-1.8.3.tgz" + "version" "1.8.3" + +"angular@~1.x": + "integrity" "sha512-5qjkWIQQVsHj4Sb5TcEs4WZWpFeVFHXwxEBHUhrny41D8UrBAd6T/6nPPAsLngJCReIOqi95W3mxdveveutpZw==" + "resolved" "https://registry.npmjs.org/angular/-/angular-1.8.3.tgz" + "version" "1.8.3" + "ansi-colors@^1.0.1": "integrity" "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==" "resolved" "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz" @@ -438,6 +548,11 @@ "resolved" "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz" "version" "0.0.7" +"ansi-regex@^0.2.0", "ansi-regex@^0.2.1": + "integrity" "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz" + "version" "0.2.1" + "ansi-regex@^2.0.0": "integrity" "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" @@ -453,6 +568,11 @@ "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" "version" "5.0.1" +"ansi-styles@^1.1.0": + "integrity" "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz" + "version" "1.1.0" + "ansi-styles@^2.2.1": "integrity" "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" @@ -548,6 +668,14 @@ dependencies: "sprintf-js" "~1.0.2" +"argparse@~ 0.1.11": + "integrity" "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz" + "version" "0.1.16" + dependencies: + "underscore" "~1.7.0" + "underscore.string" "~2.4.0" + "arr-diff@^4.0.0": "integrity" "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" "resolved" "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" @@ -722,7 +850,14 @@ "minimalistic-assert" "^1.0.0" "safer-buffer" "^2.1.0" -"asn1@~0.2.3", "asn1@0.2.3": +"asn1@~0.2.3": + "integrity" "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==" + "resolved" "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" + "version" "0.2.6" + dependencies: + "safer-buffer" "~2.1.0" + +"asn1@0.2.3": "integrity" "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" "resolved" "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" "version" "0.2.3" @@ -825,12 +960,17 @@ "version" "1.5.2" "async@^2.0.0", "async@^2.0.1", "async@^2.1.2", "async@^2.5.0", "async@^2.6.2", "async@~2.6.0": - "integrity" "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==" - "resolved" "https://registry.npmjs.org/async/-/async-2.6.3.tgz" - "version" "2.6.3" + "integrity" "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==" + "resolved" "https://registry.npmjs.org/async/-/async-2.6.4.tgz" + "version" "2.6.4" dependencies: "lodash" "^4.17.14" +"async@~0.1.22": + "integrity" "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=" + "resolved" "https://registry.npmjs.org/async/-/async-0.1.22.tgz" + "version" "0.1.22" + "async@~0.2.7": "integrity" "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" "resolved" "https://registry.npmjs.org/async/-/async-0.2.10.tgz" @@ -868,10 +1008,15 @@ "postcss" "^5.2.16" "postcss-value-parser" "^3.2.3" +"available-typed-arrays@^1.0.5": + "integrity" "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + "resolved" "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" + "version" "1.0.5" + "aws-sdk@^2.4.13": - "integrity" "sha512-qxHqzE2ikGNRzhajcmWIBuptML3LBwz9TMnS0jLQjXOP54fZYW6EEKy2Dy7MKjHKeo8QQy/EWtDdWfH9Fu5UIA==" - "resolved" "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1110.0.tgz" - "version" "2.1110.0" + "integrity" "sha512-36JFrxPPh/fRQWsgGrZZbzTxRu7dq4KyCKKXPxgVMXylEJsG/KEAVMB1f3eq4PiI5eGxYrpt2OkKoMQZQZLjPA==" + "resolved" "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1116.0.tgz" + "version" "2.1116.0" dependencies: "buffer" "4.9.2" "events" "1.1.1" @@ -1230,22 +1375,17 @@ "resolved" "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz" "version" "3.4.7" -"bn.js@^4.0.0": - "integrity" "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - "version" "4.12.0" - -"bn.js@^4.1.0": +"bn.js@^4.0.0", "bn.js@^4.1.0", "bn.js@^4.11.9": "integrity" "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" "version" "4.12.0" -"bn.js@^4.11.9": - "integrity" "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - "version" "4.12.0" +"bn.js@^5.0.0": + "integrity" "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz" + "version" "5.2.0" -"bn.js@^5.0.0", "bn.js@^5.1.1": +"bn.js@^5.1.1": "integrity" "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz" "version" "5.2.0" @@ -1324,6 +1464,16 @@ dependencies: "hoek" "2.x.x" +"bootstrap@^3.1.1": + "integrity" "sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==" + "resolved" "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz" + "version" "3.4.1" + +"bootstrap@3.3.7": + "integrity" "sha1-WjiTlFSfIzMIdaOxUGVldPip63E=" + "resolved" "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz" + "version" "3.3.7" + "bower@^1.8.8": "integrity" "sha512-8Rq058FD91q9Nwthyhw0la9fzpBz0iwZTrt51LWl+w+PnJgZk9J+5wp3nibsJcIUPglMYXr4NRBaR+TUj0OkBQ==" "resolved" "https://registry.npmjs.org/bower/-/bower-1.8.14.tgz" @@ -1682,7 +1832,12 @@ "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz" "version" "1.2.1" -"camelcase@^2.0.0", "camelcase@^2.0.1": +"camelcase@^2.0.0": + "integrity" "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" + "version" "2.1.1" + +"camelcase@^2.0.1": "integrity" "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" "version" "2.1.1" @@ -1713,9 +1868,9 @@ "lodash.uniq" "^4.5.0" "caniuse-db@^1.0.30000529", "caniuse-db@^1.0.30000634", "caniuse-db@^1.0.30000639": - "integrity" "sha512-U2wgCcARqo8bLEvMKlwaVcVbBN7eMzhu+hm6y/mgxkeUFdrdOxEFitI/rYhETCkIyIG+NaZeHrigVeL2kIkMiA==" - "resolved" "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001327.tgz" - "version" "1.0.30001327" + "integrity" "sha512-/0YiL5sYWdh4EAqCFezyL6+wbLOxVVuLwVNs7f6pyCoV3wRJAOyTeTbR2TGwxiEIpWtK5aGwS7AwhioGi+5MAg==" + "resolved" "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001332.tgz" + "version" "1.0.30001332" "caseless@~0.11.0": "integrity" "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" @@ -1751,6 +1906,17 @@ dependencies: "traverse" ">=0.3.0 <0.4" +"chalk@^0.5.1": + "integrity" "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz" + "version" "0.5.1" + dependencies: + "ansi-styles" "^1.1.0" + "escape-string-regexp" "^1.0.0" + "has-ansi" "^0.1.0" + "strip-ansi" "^0.3.0" + "supports-color" "^0.2.0" + "chalk@^1.0.0", "chalk@^1.1.1", "chalk@^1.1.3", "chalk@~1.1.1": "integrity" "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=" "resolved" "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" @@ -2086,6 +2252,11 @@ "resolved" "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" "version" "1.1.0" +"coffee-script@~1.3.3": + "integrity" "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=" + "resolved" "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz" + "version" "1.3.3" + "collection-map@^1.0.0": "integrity" "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=" "resolved" "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz" @@ -2117,16 +2288,16 @@ dependencies: "color-name" "~1.1.4" -"color-name@^1.0.0", "color-name@1.1.3": - "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - "version" "1.1.3" - -"color-name@~1.1.4": +"color-name@^1.0.0", "color-name@~1.1.4": "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" "version" "1.1.4" +"color-name@1.1.3": + "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "version" "1.1.3" + "color-string@^0.3.0": "integrity" "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=" "resolved" "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz" @@ -2162,6 +2333,11 @@ "resolved" "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" "version" "1.4.0" +"colors@~0.6.2": + "integrity" "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=" + "resolved" "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz" + "version" "0.6.2" + "colors@~1.1.2": "integrity" "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" "resolved" "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz" @@ -2173,7 +2349,7 @@ "version" "1.0.3" "colour@latest": - "integrity" "sha1-nLFpkX7F0SwHNtPoaFdG3xyt93g=" + "integrity" "sha512-Rel466v0EnmKPcsxHo91L4kgPs/6XF7Pu2LJNszq9lXYwi5CFWEeIiRaTX5ym7PPMdj4udDHkLSVC1//JVkZQg==" "resolved" "https://registry.npmjs.org/colour/-/colour-0.7.1.tgz" "version" "0.7.1" @@ -2197,9 +2373,9 @@ "version" "2.20.3" "commander@^9.1.0": - "integrity" "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==" - "resolved" "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz" - "version" "9.2.0" + "integrity" "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==" + "resolved" "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz" + "version" "9.4.1" "commander@~2.11.0": "integrity" "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" @@ -2260,7 +2436,12 @@ "resolved" "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz" "version" "1.0.0" -"component-emitter@^1.2.0", "component-emitter@^1.2.1", "component-emitter@~1.3.0": +"component-emitter@^1.2.0", "component-emitter@^1.2.1": + "integrity" "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "resolved" "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" + "version" "1.3.0" + +"component-emitter@~1.3.0": "integrity" "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" "resolved" "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" "version" "1.3.0" @@ -2285,6 +2466,11 @@ "resolved" "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz" "version" "0.0.3" +"components-font-awesome@4.7.0": + "integrity" "sha1-p1UAlLbiy1zX3OScQFdxxTPpz+E=" + "resolved" "https://registry.npmjs.org/components-font-awesome/-/components-font-awesome-4.7.0.tgz" + "version" "4.7.0" + "compressible@~2.0.16": "integrity" "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==" "resolved" "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" @@ -2415,7 +2601,7 @@ "resolved" "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" "version" "1.0.6" -"cookie@~0.4.1": +"cookie@~0.4.1", "cookie@0.4.2": "integrity" "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" "version" "0.4.2" @@ -2430,11 +2616,6 @@ "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz" "version" "0.4.0" -"cookie@0.4.2": - "integrity" "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" - "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" - "version" "0.4.2" - "cookiejar@^2.1.0": "integrity" "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" "resolved" "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz" @@ -2728,6 +2909,11 @@ "es5-ext" "^0.10.50" "type" "^1.0.1" +"d3@^3.4.13", "d3@3.5.17": + "integrity" "sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g=" + "resolved" "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz" + "version" "3.5.17" + "dargs@^4.1.0": "integrity" "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=" "resolved" "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz" @@ -2757,6 +2943,11 @@ "resolved" "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz" "version" "2.2.0" +"dateformat@1.0.2-1.2.3": + "integrity" "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=" + "resolved" "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz" + "version" "1.0.2-1.2.3" + "debug@^2.1.2", "debug@^2.1.3", "debug@^2.2.0", "debug@^2.3.3", "debug@^2.6.6", "debug@^2.6.9", "debug@~2.6.4", "debug@~2.6.6", "debug@~2.6.9", "debug@2", "debug@2.6.9": "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" @@ -2900,11 +3091,12 @@ "version" "2.0.0" "define-properties@^1.1.3": - "integrity" "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" - "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" - "version" "1.1.3" + "integrity" "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==" + "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" + "version" "1.1.4" dependencies: - "object-keys" "^1.0.12" + "has-property-descriptors" "^1.0.0" + "object-keys" "^1.1.1" "define-property@^0.2.5": "integrity" "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=" @@ -2998,7 +3190,7 @@ "resolved" "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" "version" "1.1.2" -"depd@~2.0.0", "depd@2.0.0": +"depd@~2.0.0": "integrity" "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" "resolved" "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" "version" "2.0.0" @@ -3008,6 +3200,11 @@ "resolved" "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz" "version" "1.1.1" +"depd@2.0.0": + "integrity" "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + "resolved" "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + "version" "2.0.0" + "des.js@^1.0.0": "integrity" "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==" "resolved" "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz" @@ -3016,6 +3213,21 @@ "inherits" "^2.0.1" "minimalistic-assert" "^1.0.0" +"desandro-classie@~1.0.1", "desandro-classie@1.x": + "integrity" "sha1-qtTQupjIHNjov1Gs/3D41fnlGJM=" + "resolved" "https://registry.npmjs.org/desandro-classie/-/desandro-classie-1.0.1.tgz" + "version" "1.0.1" + +"desandro-get-style-property@^1", "desandro-get-style-property@~1.0.4", "desandro-get-style-property@1.x": + "integrity" "sha1-9YQsIeo0tjq89pvvNarJVuHFf3k=" + "resolved" "https://registry.npmjs.org/desandro-get-style-property/-/desandro-get-style-property-1.0.4.tgz" + "version" "1.0.4" + +"desandro-matches-selector@~1.0.2": + "integrity" "sha1-4bM3gcTcZU0GzU/FbO5EccKYTSM=" + "resolved" "https://registry.npmjs.org/desandro-matches-selector/-/desandro-matches-selector-1.0.3.tgz" + "version" "1.0.3" + "destroy@~1.0.4": "integrity" "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" "resolved" "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" @@ -3091,6 +3303,13 @@ dependencies: "buffer-indexof" "^1.0.0" +"doc-ready@~1.0.3", "doc-ready@1.0.x": + "integrity" "sha1-N/U5GWnP+ZQwP9/vLl1QNX+BZNM=" + "resolved" "https://registry.npmjs.org/doc-ready/-/doc-ready-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "eventie" "^1" + "doctrine@^2.1.0": "integrity" "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==" "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" @@ -3113,7 +3332,7 @@ "extend" "^3.0.0" "void-elements" "^2.0.0" -"dom-serializer@~0.1.0", "dom-serializer@0": +"dom-serializer@~0.1.0": "integrity" "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==" "resolved" "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz" "version" "0.1.1" @@ -3121,6 +3340,14 @@ "domelementtype" "^1.3.0" "entities" "^1.1.1" +"dom-serializer@0": + "integrity" "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==" + "resolved" "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz" + "version" "0.2.2" + dependencies: + "domelementtype" "^2.0.1" + "entities" "^2.0.0" + "domain-browser@^1.1.1": "integrity" "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" "resolved" "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz" @@ -3131,6 +3358,11 @@ "resolved" "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" "version" "1.3.1" +"domelementtype@^2.0.1": + "integrity" "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + "resolved" "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" + "version" "2.3.0" + "domhandler@^2.3.0": "integrity" "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==" "resolved" "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz" @@ -3138,7 +3370,15 @@ dependencies: "domelementtype" "1" -"domutils@^1.5.1", "domutils@1.5.1": +"domutils@^1.5.1": + "integrity" "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==" + "resolved" "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz" + "version" "1.7.0" + dependencies: + "dom-serializer" "0" + "domelementtype" "1" + +"domutils@1.5.1": "integrity" "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=" "resolved" "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz" "version" "1.5.1" @@ -3151,6 +3391,16 @@ "resolved" "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz" "version" "2.1.0-0" +"draggabilly@1.2.4": + "integrity" "sha1-Ky16aISvWclrXhtC6KJleaqNB44=" + "resolved" "https://registry.npmjs.org/draggabilly/-/draggabilly-1.2.4.tgz" + "version" "1.2.4" + dependencies: + "desandro-classie" "~1.0.1" + "desandro-get-style-property" "~1.0.4" + "get-size" "~1.2.2" + "unidragger" "~1.1.0" + "dtrace-provider@~0.8": "integrity" "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==" "resolved" "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz" @@ -3221,9 +3471,9 @@ "version" "0.8.8" "electron-to-chromium@^1.2.7": - "integrity" "sha512-ZYfpVLULm67K7CaaGP7DmjyeMY4naxsbTy+syVVxT6QHI1Ww8XbJjmr9fDckrhq44WzCrcC5kH3zGpdusxwwqg==" - "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.106.tgz" - "version" "1.4.106" + "integrity" "sha512-s30WKxp27F3bBH6fA07FYL2Xm/FYnYrKpMjHr3XVCTUb9anAyZn/BeZfPWgTZGAbJeT4NxNwISSbLcYZvggPMA==" + "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.113.tgz" + "version" "1.4.113" "elliptic@^6.5.3": "integrity" "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==" @@ -3397,6 +3647,18 @@ "resolved" "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz" "version" "1.1.2" +"entities@^2.0.0": + "integrity" "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + "resolved" "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" + "version" "2.2.0" + +"epoch-charting@0.8.4": + "integrity" "sha1-B+IcfSAzPgN0FdMnPrydkpDCvlo=" + "resolved" "https://registry.npmjs.org/epoch-charting/-/epoch-charting-0.8.4.tgz" + "version" "0.8.4" + dependencies: + "d3" "^3.4.13" + "errno@^0.1.1", "errno@^0.1.3": "integrity" "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==" "resolved" "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz" @@ -3411,10 +3673,10 @@ dependencies: "is-arrayish" "^0.2.1" -"es-abstract@^1.19.1": - "integrity" "sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==" - "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.2.tgz" - "version" "1.19.2" +"es-abstract@^1.18.5", "es-abstract@^1.19.1": + "integrity" "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==" + "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz" + "version" "1.19.5" dependencies: "call-bind" "^1.0.2" "es-to-primitive" "^1.2.1" @@ -3427,7 +3689,7 @@ "is-callable" "^1.2.4" "is-negative-zero" "^2.0.2" "is-regex" "^1.1.4" - "is-shared-array-buffer" "^1.0.1" + "is-shared-array-buffer" "^1.0.2" "is-string" "^1.0.7" "is-weakref" "^1.0.2" "object-inspect" "^1.12.0" @@ -3543,7 +3805,7 @@ "resolved" "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" "version" "1.0.3" -"escape-string-regexp@^1.0.2", "escape-string-regexp@^1.0.5": +"escape-string-regexp@^1.0.0", "escape-string-regexp@^1.0.2", "escape-string-regexp@^1.0.5": "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" "version" "1.0.5" @@ -3650,6 +3912,11 @@ "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" "version" "4.0.1" +"esprima@~ 1.0.2": + "integrity" "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" + "resolved" "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz" + "version" "1.0.4" + "esprima@~3.1.0": "integrity" "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" "resolved" "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz" @@ -3720,6 +3987,11 @@ "stream-combiner" "^0.2.2" "through" "^2.3.8" +"eventemitter2@~0.4.13": + "integrity" "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=" + "resolved" "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz" + "version" "0.4.14" + "eventemitter3@^1.1.1", "eventemitter3@^1.2.0": "integrity" "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=" "resolved" "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz" @@ -3730,6 +4002,11 @@ "resolved" "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" "version" "4.0.7" +"eventie@^1", "eventie@~1.0.3", "eventie@~1.0.6": + "integrity" "sha1-1P/IsMK15JPCqhsiy+kY067nRDc=" + "resolved" "https://registry.npmjs.org/eventie/-/eventie-1.0.6.tgz" + "version" "1.0.6" + "events@^1.0.0", "events@1.1.1": "integrity" "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" "resolved" "https://registry.npmjs.org/events/-/events-1.1.1.tgz" @@ -3781,7 +4058,7 @@ "signal-exit" "^3.0.0" "strip-eof" "^1.0.0" -"exit@^0.1.2": +"exit@^0.1.2", "exit@~0.1.1": "integrity" "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" "resolved" "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" "version" "0.1.2" @@ -3949,16 +4226,21 @@ "mkdirp" "^0.5.4" "yauzl" "^2.10.0" -"extsprintf@^1.2.0", "extsprintf@1.3.0": - "integrity" "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - "resolved" "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" - "version" "1.3.0" +"extsprintf@^1.2.0": + "integrity" "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==" + "resolved" "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz" + "version" "1.4.1" "extsprintf@1.2.0": "integrity" "sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk=" "resolved" "https://registry.npmjs.org/extsprintf/-/extsprintf-1.2.0.tgz" "version" "1.2.0" +"extsprintf@1.3.0": + "integrity" "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "resolved" "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" + "version" "1.3.0" + "eyes@0.1.x": "integrity" "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" "resolved" "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" @@ -4134,6 +4416,14 @@ "micromatch" "^3.0.4" "resolve-dir" "^1.0.1" +"findup-sync@~0.1.2": + "integrity" "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=" + "resolved" "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz" + "version" "0.1.3" + dependencies: + "glob" "~3.2.9" + "lodash" "~2.4.1" + "fined@^1.0.1": "integrity" "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==" "resolved" "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz" @@ -4145,6 +4435,14 @@ "object.pick" "^1.2.0" "parse-filepath" "^1.0.1" +"fizzy-ui-utils@~1.0.1": + "integrity" "sha1-qkEGZB51O8ilzqAQMVskiYyTRAw=" + "resolved" "https://registry.npmjs.org/fizzy-ui-utils/-/fizzy-ui-utils-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "desandro-matches-selector" "~1.0.2" + "doc-ready" "~1.0.3" + "flagged-respawn@^1.0.0": "integrity" "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" "resolved" "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz" @@ -4204,15 +4502,20 @@ dependencies: "for-in" "^1.0.1" +"foreach@^2.0.5": + "integrity" "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + "resolved" "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz" + "version" "2.0.5" + "forever-agent@~0.6.1": "integrity" "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" "resolved" "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" "version" "0.6.1" -"form-data@^2.3.1", "form-data@~2.3.0", "form-data@~2.3.2": - "integrity" "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==" - "resolved" "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" - "version" "2.3.3" +"form-data@^2.3.1": + "integrity" "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==" + "resolved" "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz" + "version" "2.5.1" dependencies: "asynckit" "^0.4.0" "combined-stream" "^1.0.6" @@ -4236,6 +4539,15 @@ "combined-stream" "^1.0.5" "mime-types" "^2.1.12" +"form-data@~2.3.0", "form-data@~2.3.2": + "integrity" "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==" + "resolved" "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" + "version" "2.3.3" + dependencies: + "asynckit" "^0.4.0" + "combined-stream" "^1.0.6" + "mime-types" "^2.1.12" + "format-util@^1.0.3": "integrity" "sha512-varLbTj0e0yVyRpqQhuWV+8hlePAgaoFRhNFj50BNjEIrw1/DphHSObtqwskVCPWNgzwPoQrZAbfa/SBiicNeg==" "resolved" "https://registry.npmjs.org/format-util/-/format-util-1.0.5.tgz" @@ -4373,6 +4685,11 @@ "resolved" "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" "version" "1.0.1" +"functions-have-names@^1.2.2": + "integrity" "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==" + "resolved" "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz" + "version" "1.2.2" + "gauge@~1.2.0": "integrity" "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=" "resolved" "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz" @@ -4431,6 +4748,13 @@ "has" "^1.0.3" "has-symbols" "^1.0.1" +"get-size@~1.2.2", "get-size@1.2.x": + "integrity" "sha1-v8PvHQGeNFCMmU+jJ9GDwoddYuY=" + "resolved" "https://registry.npmjs.org/get-size/-/get-size-1.2.2.tgz" + "version" "1.2.2" + dependencies: + "desandro-get-style-property" "^1" + "get-stdin@^4.0.1": "integrity" "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" "resolved" "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" @@ -4473,6 +4797,11 @@ "resolved" "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" "version" "2.0.6" +"getobject@~0.1.0": + "integrity" "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=" + "resolved" "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz" + "version" "0.1.0" + "getpass@^0.1.1": "integrity" "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=" "resolved" "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" @@ -4571,6 +4900,23 @@ "once" "^1.3.0" "path-is-absolute" "^1.0.0" +"glob@~3.1.21": + "integrity" "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=" + "resolved" "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz" + "version" "3.1.21" + dependencies: + "graceful-fs" "~1.2.0" + "inherits" "1" + "minimatch" "~0.2.11" + +"glob@~3.2.9": + "integrity" "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=" + "resolved" "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz" + "version" "3.2.11" + dependencies: + "inherits" "2" + "minimatch" "0.3" + "glob@5.0.x": "integrity" "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=" "resolved" "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" @@ -4652,6 +4998,11 @@ "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" "version" "4.2.10" +"graceful-fs@~1.2.0": + "integrity" "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=" + "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" + "version" "1.2.3" + "graceful-readlink@>= 1.0.0": "integrity" "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" "resolved" "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" @@ -4664,6 +5015,73 @@ dependencies: "lodash" "^4.17.15" +"grunt-contrib-concat@~0.5.0": + "integrity" "sha1-lTxu/f39LBB6uchQd/LUsk0xzUk=" + "resolved" "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-0.5.1.tgz" + "version" "0.5.1" + dependencies: + "chalk" "^0.5.1" + "source-map" "^0.3.0" + +"grunt-legacy-log-utils@~0.1.1": + "integrity" "sha1-wHBrndkGThFvNvI/5OawSGcsD34=" + "resolved" "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz" + "version" "0.1.1" + dependencies: + "colors" "~0.6.2" + "lodash" "~2.4.1" + "underscore.string" "~2.3.3" + +"grunt-legacy-log@~0.1.0": + "integrity" "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=" + "resolved" "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz" + "version" "0.1.3" + dependencies: + "colors" "~0.6.2" + "grunt-legacy-log-utils" "~0.1.1" + "hooker" "~0.2.3" + "lodash" "~2.4.1" + "underscore.string" "~2.3.3" + +"grunt-legacy-util@~0.2.0": + "integrity" "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=" + "resolved" "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz" + "version" "0.2.0" + dependencies: + "async" "~0.1.22" + "exit" "~0.1.1" + "getobject" "~0.1.0" + "hooker" "~0.2.3" + "lodash" "~0.9.2" + "underscore.string" "~2.2.1" + "which" "~1.0.5" + +"grunt@>=0.4.0": + "integrity" "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=" + "resolved" "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz" + "version" "0.4.5" + dependencies: + "async" "~0.1.22" + "coffee-script" "~1.3.3" + "colors" "~0.6.2" + "dateformat" "1.0.2-1.2.3" + "eventemitter2" "~0.4.13" + "exit" "~0.1.1" + "findup-sync" "~0.1.2" + "getobject" "~0.1.0" + "glob" "~3.1.21" + "grunt-legacy-log" "~0.1.0" + "grunt-legacy-util" "~0.2.0" + "hooker" "~0.2.3" + "iconv-lite" "~0.2.11" + "js-yaml" "~2.0.5" + "lodash" "~0.9.2" + "minimatch" "~0.2.12" + "nopt" "~1.0.10" + "rimraf" "~2.2.8" + "underscore.string" "~2.2.1" + "which" "~1.0.5" + "gulp-angular-gettext@^2.1.0": "integrity" "sha512-LzCPhxuL0wvBXN1CQxAN+yH70HFte0x8dSDPW4UZPSOX+SepEeF8Nfgl+1TTOdrrwSk2FOZ/6KKtYUcJee2MvQ==" "resolved" "https://registry.npmjs.org/gulp-angular-gettext/-/gulp-angular-gettext-2.3.0.tgz" @@ -4826,7 +5244,7 @@ "ajv" "^4.9.1" "har-schema" "^1.0.5" -"har-validator@~5.1.0", "har-validator@~5.1.3": +"har-validator@~5.1.0": "integrity" "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==" "resolved" "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" "version" "5.1.5" @@ -4834,6 +5252,21 @@ "ajv" "^6.12.3" "har-schema" "^2.0.0" +"har-validator@~5.1.3": + "integrity" "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==" + "resolved" "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" + "version" "5.1.5" + dependencies: + "ajv" "^6.12.3" + "har-schema" "^2.0.0" + +"has-ansi@^0.1.0": + "integrity" "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=" + "resolved" "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz" + "version" "0.1.0" + dependencies: + "ansi-regex" "^0.2.0" + "has-ansi@^2.0.0": "integrity" "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=" "resolved" "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" @@ -4899,6 +5332,13 @@ dependencies: "sparkles" "^1.0.0" +"has-property-descriptors@^1.0.0": + "integrity" "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==" + "resolved" "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "get-intrinsic" "^1.1.1" + "has-symbols@^1.0.1", "has-symbols@^1.0.2", "has-symbols@^1.0.3": "integrity" "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" @@ -5036,6 +5476,11 @@ dependencies: "parse-passwd" "^1.0.0" +"hooker@~0.2.3": + "integrity" "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=" + "resolved" "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz" + "version" "0.2.3" + "hosted-git-info@^2.1.4": "integrity" "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" "resolved" "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" @@ -5265,6 +5710,11 @@ dependencies: "safer-buffer" ">= 2.1.2 < 3" +"iconv-lite@~0.2.11": + "integrity" "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=" + "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz" + "version" "0.2.11" + "iconv-lite@0.4.15": "integrity" "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=" "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz" @@ -5287,7 +5737,12 @@ dependencies: "postcss" "^6.0.1" -"ieee754@^1.1.13", "ieee754@^1.1.4", "ieee754@1.1.13": +"ieee754@^1.1.13", "ieee754@^1.1.4": + "integrity" "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + "version" "1.2.1" + +"ieee754@1.1.13": "integrity" "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz" "version" "1.1.13" @@ -5378,6 +5833,11 @@ "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" "version" "2.0.4" +"inherits@1": + "integrity" "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=" + "resolved" "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz" + "version" "1.0.2" + "inherits@2.0.1": "integrity" "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" @@ -5631,6 +6091,13 @@ "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" "version" "3.0.0" +"is-generator-function@^1.0.7": + "integrity" "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==" + "resolved" "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz" + "version" "1.0.10" + dependencies: + "has-tostringtag" "^1.0.0" + "is-glob@^3.1.0": "integrity" "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=" "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz" @@ -5729,21 +6196,7 @@ "resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" "version" "1.1.0" -"is-plain-object@^2.0.1": - "integrity" "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==" - "resolved" "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" - "version" "2.0.4" - dependencies: - "isobject" "^3.0.1" - -"is-plain-object@^2.0.3": - "integrity" "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==" - "resolved" "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" - "version" "2.0.4" - dependencies: - "isobject" "^3.0.1" - -"is-plain-object@^2.0.4": +"is-plain-object@^2.0.1", "is-plain-object@^2.0.3", "is-plain-object@^2.0.4": "integrity" "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==" "resolved" "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" "version" "2.0.4" @@ -5790,7 +6243,7 @@ "resolved" "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz" "version" "1.1.0" -"is-shared-array-buffer@^1.0.1": +"is-shared-array-buffer@^1.0.2": "integrity" "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==" "resolved" "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" "version" "1.0.2" @@ -5823,6 +6276,17 @@ dependencies: "has-symbols" "^1.0.2" +"is-typed-array@^1.1.3", "is-typed-array@^1.1.7": + "integrity" "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==" + "resolved" "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz" + "version" "1.1.8" + dependencies: + "available-typed-arrays" "^1.0.5" + "call-bind" "^1.0.2" + "es-abstract" "^1.18.5" + "foreach" "^2.0.5" + "has-tostringtag" "^1.0.0" + "is-typedarray@~1.0.0": "integrity" "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" "resolved" "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" @@ -5869,7 +6333,12 @@ dependencies: "is-docker" "^2.0.0" -"isarray@^1.0.0", "isarray@~1.0.0", "isarray@1.0.0": +"isarray@^1.0.0": + "integrity" "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + "version" "1.0.0" + +"isarray@~1.0.0": "integrity" "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" "version" "1.0.0" @@ -5879,6 +6348,11 @@ "resolved" "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" "version" "0.0.1" +"isarray@1.0.0": + "integrity" "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + "version" "1.0.0" + "isarray@2.0.1": "integrity" "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" "resolved" "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz" @@ -5990,6 +6464,11 @@ "resolved" "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz" "version" "0.16.0" +"jquery@^1.11.1": + "integrity" "sha1-AeHfuikP5z3rp3zurLD5ui/sngw=" + "resolved" "https://registry.npmjs.org/jquery/-/jquery-1.12.4.tgz" + "version" "1.12.4" + "js-base64@^2.1.9", "js-base64@^2.4.5": "integrity" "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" "resolved" "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz" @@ -6013,6 +6492,14 @@ "argparse" "^1.0.7" "esprima" "^4.0.0" +"js-yaml@~2.0.5": + "integrity" "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz" + "version" "2.0.5" + dependencies: + "argparse" "~ 0.1.11" + "esprima" "~ 1.0.2" + "js-yaml@~3.13.1": "integrity" "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==" "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" @@ -6112,12 +6599,7 @@ "resolved" "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz" "version" "3.3.2" -"json5@^0.5.0": - "integrity" "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - "resolved" "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz" - "version" "0.5.1" - -"json5@^0.5.1": +"json5@^0.5.0", "json5@^0.5.1": "integrity" "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" "resolved" "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz" "version" "0.5.1" @@ -6350,7 +6832,14 @@ "resolved" "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz" "version" "1.0.1" -"kind-of@^3.0.2", "kind-of@^3.0.3": +"kind-of@^3.0.2": + "integrity" "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + "version" "3.2.2" + dependencies: + "is-buffer" "^1.1.5" + +"kind-of@^3.0.3": "integrity" "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=" "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" "version" "3.2.2" @@ -6371,17 +6860,17 @@ dependencies: "is-buffer" "^1.1.5" -"kind-of@^5.0.0", "kind-of@^5.0.2": +"kind-of@^5.0.0": "integrity" "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" "version" "5.1.0" -"kind-of@^6.0.0": - "integrity" "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" - "version" "6.0.3" +"kind-of@^5.0.2": + "integrity" "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" + "version" "5.1.0" -"kind-of@^6.0.2": +"kind-of@^6.0.0", "kind-of@^6.0.2": "integrity" "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" "version" "6.0.3" @@ -6393,6 +6882,13 @@ optionalDependencies: "graceful-fs" "^4.1.9" +"ladda@^0.9.8": + "integrity" "sha1-qjy/54ROlUTVEzz2n+zNequyBiQ=" + "resolved" "https://registry.npmjs.org/ladda/-/ladda-0.9.8.tgz" + "version" "0.9.8" + dependencies: + "spin.js" "^2.0.0" + "last-run@^1.1.0": "integrity" "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=" "resolved" "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz" @@ -7037,6 +7533,11 @@ "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" "version" "4.17.21" +"lodash@~0.9.2": + "integrity" "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=" + "resolved" "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz" + "version" "0.9.2" + "lodash@~2.4.1": "integrity" "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=" "resolved" "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" @@ -7137,10 +7638,12 @@ "pseudomap" "^1.0.2" "yallist" "^2.1.2" -"lru-cache@^7.4.0": - "integrity" "sha512-AmXqneQZL3KZMIgBpaPTeI6pfwh+xQ2vutMsyqOu1TBdEXFZgpG/80wuJ531w2ZN7TI0/oc8CPxzh/DKQudZqg==" - "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-7.8.0.tgz" - "version" "7.8.0" +"lru-cache@^6.0.0": + "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "yallist" "^4.0.0" "lru-cache@2.2.x": "integrity" "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=" @@ -7440,6 +7943,14 @@ dependencies: "brace-expansion" "^1.1.7" +"minimatch@~0.2.11", "minimatch@~0.2.12": + "integrity" "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=" + "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" + "version" "0.2.14" + dependencies: + "lru-cache" "2" + "sigmund" "~1.0.0" + "minimatch@0.3": "integrity" "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=" "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz" @@ -7498,12 +8009,12 @@ "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" "version" "1.0.4" -"moment@^2.19.3": - "integrity" "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==" - "resolved" "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz" - "version" "2.29.2" +"moment@^2.19.3", "moment@^2.5.0": + "integrity" "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" + "resolved" "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz" + "version" "2.29.3" -"ms@^2.1.1": +"ms@^2.1.1", "ms@2.1.3": "integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" "version" "2.1.3" @@ -7528,11 +8039,6 @@ "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" "version" "2.1.2" -"ms@2.1.3": - "integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - "version" "2.1.3" - "multer@^1.0.6", "multer@^1.1.0": "integrity" "sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw==" "resolved" "https://registry.npmjs.org/multer/-/multer-1.4.4.tgz" @@ -7671,6 +8177,25 @@ "resolved" "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz" "version" "1.1.0" +"ng-context-menu@https://github.com/swimlane/ng-context-menu#93d825d981dc6f49bcaa861ef5a87fa9d1923f34": + "integrity" "sha512-jtQbLhEaRcXYpFK7aEtvw4Ey6EYOZDWZ/VqXmKJynhHt4y/QauOmU0jAsDmUyHcOdv3LGZUotaohFsbRnid2BA==" + "resolved" "git+ssh://git@github.com/swimlane/ng-context-menu.git#93d825d981dc6f49bcaa861ef5a87fa9d1923f34" + "version" "1.0.1" + dependencies: + "angular" ">= 1.2.5" + +"ng-file-upload@2.2.2": + "integrity" "sha1-xgL4xpWNfXYooSop/3GLgd0Fhtc=" + "resolved" "https://registry.npmjs.org/ng-file-upload/-/ng-file-upload-2.2.2.tgz" + "version" "2.2.2" + dependencies: + "grunt-contrib-concat" "~0.5.0" + +"ng-table@1.0.0": + "integrity" "sha1-L+gLYrxW6Acp51l6DXIFVIza8r8=" + "resolved" "https://registry.npmjs.org/ng-table/-/ng-table-1.0.0.tgz" + "version" "1.0.0" + "nice-try@^1.0.4": "integrity" "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" "resolved" "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" @@ -7842,6 +8367,13 @@ "resolved" "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz" "version" "0.1.1" +"nopt@~1.0.10": + "integrity" "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=" + "resolved" "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz" + "version" "1.0.10" + dependencies: + "abbrev" "1" + "normalize-package-data@^2.3.2", "normalize-package-data@^2.3.4": "integrity" "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==" "resolved" "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" @@ -7981,7 +8513,7 @@ "call-bind" "^1.0.2" "define-properties" "^1.1.3" -"object-keys@^1.0.12", "object-keys@^1.1.1": +"object-keys@^1.1.1": "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" "version" "1.1.1" @@ -8036,12 +8568,19 @@ "for-own" "^1.0.0" "make-iterator" "^1.0.0" +"oboe@2.1.5": + "integrity" "sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=" + "resolved" "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz" + "version" "2.1.5" + dependencies: + "http-https" "^1.0.0" + "obuf@^1.0.0", "obuf@^1.1.2": "integrity" "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" "resolved" "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz" "version" "1.1.2" -"on-finished@^2.3.0", "on-finished@2.4.1": +"on-finished@^2.3.0": "integrity" "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==" "resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" "version" "2.4.1" @@ -8055,6 +8594,13 @@ dependencies: "ee-first" "1.1.1" +"on-finished@2.4.1": + "integrity" "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==" + "resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + "version" "2.4.1" + dependencies: + "ee-first" "1.1.1" + "on-headers@~1.0.2": "integrity" "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" "resolved" "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" @@ -8129,7 +8675,7 @@ "version" "0.0.6" "optjs@latest": - "integrity" "sha1-aabOicRCpEQDFBrS+bNwvVu29O4=" + "integrity" "sha512-f8lTJm4LKirX+45xsFhuRNjA4f46QVLQKfGoNH7e2AEWS+24eM4XNH4pQ8Tw2LISCIvbST/wNcLdtgvgcqVaxA==" "resolved" "https://registry.npmjs.org/optjs/-/optjs-3.2.2.tgz" "version" "3.2.2" @@ -8187,6 +8733,19 @@ "resolved" "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" "version" "1.0.2" +"outlayer@~1.4.1": + "integrity" "sha1-bT81+QeMLLdyqb7JOLXqL8dSv0M=" + "resolved" "https://registry.npmjs.org/outlayer/-/outlayer-1.4.2.tgz" + "version" "1.4.2" + dependencies: + "desandro-get-style-property" "~1.0.4" + "desandro-matches-selector" "~1.0.2" + "doc-ready" "1.0.x" + "eventie" "~1.0.3" + "fizzy-ui-utils" "~1.0.1" + "get-size" "~1.2.2" + "wolfy87-eventemitter" ">=4.2 <5" + "p-defer@^1.0.0": "integrity" "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" "resolved" "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz" @@ -8270,17 +8829,22 @@ "netmask" "^1.0.6" "thunkify" "^2.1.2" +"packery@1.4.3": + "integrity" "sha1-qPYLDrhs8zIPJieCIvHVhiiL8P8=" + "resolved" "https://registry.npmjs.org/packery/-/packery-1.4.3.tgz" + "version" "1.4.3" + dependencies: + "desandro-classie" "1.x" + "desandro-get-style-property" "1.x" + "get-size" "1.2.x" + "outlayer" "~1.4.1" + "pako@~0.2.0": "integrity" "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" "resolved" "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz" "version" "0.2.9" -"pako@~1.0.2": - "integrity" "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - "resolved" "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" - "version" "1.0.11" - -"pako@~1.0.5": +"pako@~1.0.2", "pako@~1.0.5": "integrity" "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" "resolved" "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" "version" "1.0.11" @@ -8422,13 +8986,14 @@ "resolved" "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz" "version" "1.0.0" -"passport@^0.4.1": - "integrity" "sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg==" - "resolved" "https://registry.npmjs.org/passport/-/passport-0.4.1.tgz" - "version" "0.4.1" +"passport@^0.6.0": + "integrity" "sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug==" + "resolved" "https://registry.npmjs.org/passport/-/passport-0.6.0.tgz" + "version" "0.6.0" dependencies: "passport-strategy" "1.x.x" "pause" "0.0.1" + "utils-merge" "^1.0.1" "path-browserify@0.0.0": "integrity" "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" @@ -8647,14 +9212,6 @@ "resolved" "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz" "version" "0.4.1" -"please-update-dependencies@^2.0.0": - "integrity" "sha1-mplDPzeJ0eJ1fATjgDOVtvpVo0g=" - "resolved" "https://registry.npmjs.org/please-update-dependencies/-/please-update-dependencies-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "chalk" "^1.1.3" - "semver" "^5.3.0" - "plugin-error@^1.0.0", "plugin-error@^1.0.1", "plugin-error@1.0.1": "integrity" "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==" "resolved" "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz" @@ -9039,21 +9596,21 @@ "resolved" "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" "version" "2.0.3" -"promise@^6.0.0": +"promise@^6.0.0", "promise@^6.0.1": "integrity" "sha1-LOcp9rlLRcJoka0GAsXJDgTG7vY=" "resolved" "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz" "version" "6.1.0" dependencies: "asap" "~1.0.0" -"promise@^6.0.1": - "integrity" "sha1-LOcp9rlLRcJoka0GAsXJDgTG7vY=" - "resolved" "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz" - "version" "6.1.0" +"promise@^7.0.1": + "integrity" "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==" + "resolved" "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz" + "version" "7.3.1" dependencies: - "asap" "~1.0.0" + "asap" "~2.0.3" -"promise@^7.0.1", "promise@^7.1.1": +"promise@^7.1.1": "integrity" "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==" "resolved" "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz" "version" "7.3.1" @@ -9327,12 +9884,7 @@ "inherits" "^2.0.3" "pump" "^2.0.0" -"punycode@^1.2.4", "punycode@1.3.2": - "integrity" "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - "resolved" "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" - "version" "1.3.2" - -"punycode@^1.4.1", "punycode@1.4.1": +"punycode@^1.2.4", "punycode@^1.4.1", "punycode@1.4.1": "integrity" "sha1-wNWmOycYgArY4esPpSachN1BhF4=" "resolved" "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" "version" "1.4.1" @@ -9347,12 +9899,22 @@ "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" "version" "2.1.1" -"q@^1.1.2", "q@1.1.x": +"punycode@1.3.2": + "integrity" "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + "version" "1.3.2" + +"q@^1.1.2", "q@^1.4.1": + "integrity" "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + "resolved" "https://registry.npmjs.org/q/-/q-1.5.1.tgz" + "version" "1.5.1" + +"q@1.1.x": "integrity" "sha1-Y1fikSBnAdmfGXq4TlforRlvKok=" "resolved" "https://registry.npmjs.org/q/-/q-1.1.2.tgz" "version" "1.1.2" -"q@^1.4.1", "q@1.4.1": +"q@1.4.1": "integrity" "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=" "resolved" "https://registry.npmjs.org/q/-/q-1.4.1.tgz" "version" "1.4.1" @@ -9362,12 +9924,7 @@ "resolved" "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz" "version" "1.2.0" -"qs@^6.0.3", "qs@6.5.1": - "integrity" "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" - "resolved" "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz" - "version" "6.5.1" - -"qs@^6.4.0", "qs@^6.5.1", "qs@^6.5.2", "qs@6.10.3": +"qs@^6.0.3", "qs@^6.4.0", "qs@^6.5.1", "qs@^6.5.2", "qs@6.10.3": "integrity" "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==" "resolved" "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz" "version" "6.10.3" @@ -9394,6 +9951,11 @@ "resolved" "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" "version" "6.5.3" +"qs@6.5.1": + "integrity" "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + "resolved" "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz" + "version" "6.5.1" + "qs@6.9.7": "integrity" "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==" "resolved" "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz" @@ -9526,7 +10088,7 @@ "normalize-package-data" "^2.3.2" "path-type" "^2.0.0" -"readable-stream@^2.0.0", "readable-stream@^2.0.0 || ^1.1.13", "readable-stream@^2.0.1", "readable-stream@^2.0.2", "readable-stream@^2.0.5", "readable-stream@^2.0.6", "readable-stream@^2.1.5", "readable-stream@^2.2.2", "readable-stream@^2.3.0", "readable-stream@^2.3.3", "readable-stream@^2.3.5", "readable-stream@^2.3.6", "readable-stream@~2.3.6", "readable-stream@2", "readable-stream@2 || 3": +"readable-stream@^2.0.0", "readable-stream@^2.0.0 || ^1.1.13", "readable-stream@^2.0.1", "readable-stream@^2.0.2", "readable-stream@^2.0.5", "readable-stream@^2.0.6", "readable-stream@^2.1.5", "readable-stream@^2.2.2", "readable-stream@^2.3.0", "readable-stream@^2.3.3", "readable-stream@^2.3.5", "readable-stream@^2.3.6", "readable-stream@~2.3.6", "readable-stream@2": "integrity" "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==" "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" "version" "2.3.7" @@ -9640,6 +10202,15 @@ "isarray" "0.0.1" "string_decoder" "~0.10.x" +"readable-stream@2 || 3": + "integrity" "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "inherits" "^2.0.3" + "string_decoder" "^1.1.1" + "util-deprecate" "^1.0.1" + "readdirp@^2.2.1": "integrity" "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==" "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz" @@ -9758,12 +10329,13 @@ "safe-regex" "^1.1.0" "regexp.prototype.flags@^1.2.0": - "integrity" "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==" - "resolved" "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz" - "version" "1.4.1" + "integrity" "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==" + "resolved" "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" + "version" "1.4.3" dependencies: "call-bind" "^1.0.2" "define-properties" "^1.1.3" + "functions-have-names" "^1.2.2" "regexpp@^1.0.1": "integrity" "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==" @@ -10096,6 +10668,11 @@ dependencies: "glob" "^7.1.3" +"rimraf@~2.2.8": + "integrity" "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + "version" "2.2.8" + "rimraf@~2.4.0": "integrity" "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=" "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz" @@ -10152,30 +10729,30 @@ "resolved" "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz" "version" "4.0.8" -"safe-buffer@^5.0.1", "safe-buffer@^5.1.0", "safe-buffer@^5.1.1", "safe-buffer@^5.1.2", "safe-buffer@>=5.1.0", "safe-buffer@~5.1.0", "safe-buffer@~5.1.1", "safe-buffer@~5.1.2", "safe-buffer@5.1.2": - "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - "version" "5.1.2" - -"safe-buffer@^5.2.0", "safe-buffer@~5.2.0": +"safe-buffer@^5.0.1", "safe-buffer@^5.1.0", "safe-buffer@^5.1.1", "safe-buffer@^5.1.2", "safe-buffer@^5.2.0", "safe-buffer@^5.2.1", "safe-buffer@>=5.1.0", "safe-buffer@~5.2.0", "safe-buffer@5.2.1": "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" "version" "5.2.1" -"safe-buffer@^5.2.1": - "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - "version" "5.2.1" +"safe-buffer@~5.1.0", "safe-buffer@~5.1.1": + "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "version" "5.1.2" + +"safe-buffer@~5.1.2": + "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "version" "5.1.2" "safe-buffer@5.1.1": "integrity" "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" "version" "5.1.1" -"safe-buffer@5.2.1": - "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - "version" "5.2.1" +"safe-buffer@5.1.2": + "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "version" "5.1.2" "safe-json-stringify@~1": "integrity" "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==" @@ -10189,12 +10766,17 @@ dependencies: "ret" "~0.1.10" -"safer-buffer@^2.0.2", "safer-buffer@^2.1.0", "safer-buffer@>= 2.1.2 < 3": +"safer-buffer@^2.0.2", "safer-buffer@^2.1.0", "safer-buffer@>= 2.1.2 < 3", "safer-buffer@~2.1.0": "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" "version" "2.1.2" -"samsam@~1.1", "samsam@1.1.2": +"samsam@~1.1": + "integrity" "sha1-n1CHQZtNCR8jJXHn+lLpCw9VJiE=" + "resolved" "https://registry.npmjs.org/samsam/-/samsam-1.1.3.tgz" + "version" "1.1.3" + +"samsam@1.1.2": "integrity" "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=" "resolved" "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz" "version" "1.1.2" @@ -10211,9 +10793,9 @@ "semver" "^6.3.0" "sass@^1.49.9": - "integrity" "sha512-cLsD6MEZ5URXHStxApajEh7gW189kkjn4Rc8DQweMyF+o5HF5nfEz8QYLMlPsTOD88DknatTmBWkOcw5/LnJLQ==" - "resolved" "https://registry.npmjs.org/sass/-/sass-1.50.0.tgz" - "version" "1.50.0" + "integrity" "sha512-noTnY41KnlW2A9P8sdwESpDmo+KBNkukI1i8+hOK3footBUcohNHtdOJbckp46XO95nuvcHDDZ+4tmOnpK3hjw==" + "resolved" "https://registry.npmjs.org/sass/-/sass-1.50.1.tgz" + "version" "1.50.1" dependencies: "chokidar" ">=3.0.0 <4.0.0" "immutable" "^4.0.0" @@ -10233,10 +10815,10 @@ dependencies: "https-proxy-agent" "^1.0.0" -"sax@>=0.6.0", "sax@~1.2.1", "sax@1.2.1": - "integrity" "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" - "resolved" "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz" - "version" "1.2.1" +"sax@>=0.6.0", "sax@~1.2.1": + "integrity" "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "resolved" "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + "version" "1.2.4" "sax@~1.1.1": "integrity" "sha1-XWFr6KXmB9VOEUr65Vt+ry/MMkA=" @@ -10248,6 +10830,11 @@ "resolved" "https://registry.npmjs.org/sax/-/sax-0.6.1.tgz" "version" "0.6.1" +"sax@1.2.1": + "integrity" "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" + "resolved" "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz" + "version" "1.2.1" + "schema-utils@^0.3.0": "integrity" "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=" "resolved" "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz" @@ -10342,11 +10929,11 @@ "version" "6.3.0" "semver@^7.3.5": - "integrity" "sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w==" - "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.6.tgz" - "version" "7.3.6" + "integrity" "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" + "version" "7.3.7" dependencies: - "lru-cache" "^7.4.0" + "lru-cache" "^6.0.0" "semver@~5.0.1": "integrity" "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=" @@ -10855,12 +11442,14 @@ "resolved" "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" "version" "0.4.1" -"source-map@^0.5.3": - "integrity" "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" - "version" "0.5.7" +"source-map@^0.3.0": + "integrity" "sha1-hYb7mloAXltQHiHNGLbyG0V60fk=" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.3.0.tgz" + "version" "0.3.0" + dependencies: + "amdefine" ">=0.0.4" -"source-map@^0.5.6", "source-map@~0.5.1": +"source-map@^0.5.3", "source-map@^0.5.6", "source-map@~0.5.0", "source-map@~0.5.1": "integrity" "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" "version" "0.5.7" @@ -10877,11 +11466,6 @@ dependencies: "amdefine" ">=0.0.4" -"source-map@~0.5.0", "source-map@0.5.0": - "integrity" "sha1-D+llA6yGpa213mP05BKuSHLNvoY=" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.0.tgz" - "version" "0.5.0" - "source-map@~0.6.0": "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" @@ -10906,6 +11490,11 @@ dependencies: "amdefine" ">=0.0.4" +"source-map@0.5.0": + "integrity" "sha1-D+llA6yGpa213mP05BKuSHLNvoY=" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.0.tgz" + "version" "0.5.0" + "spark-md5@^3.0.0": "integrity" "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==" "resolved" "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz" @@ -10965,6 +11554,11 @@ "select-hose" "^2.0.0" "spdy-transport" "^3.0.0" +"spin.js@^2.0.0": + "integrity" "sha1-bKpW1SBnNFD9XPvGlx5tB3LDeho=" + "resolved" "https://registry.npmjs.org/spin.js/-/spin.js-2.3.2.tgz" + "version" "2.3.2" + "split-string@^3.0.1", "split-string@^3.0.2": "integrity" "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==" "resolved" "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" @@ -11115,7 +11709,7 @@ dependencies: "safe-buffer" "~5.1.0" -"string-width@^1.0.1": +"string-width@^1.0.1", "string-width@^1.0.2": "integrity" "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" "resolved" "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" "version" "1.0.2" @@ -11124,7 +11718,16 @@ "is-fullwidth-code-point" "^1.0.0" "strip-ansi" "^3.0.0" -"string-width@^1.0.2 || 2 || 3 || 4", "string-width@^2.0.0", "string-width@^2.1.0", "string-width@^2.1.1": +"string-width@^1.0.2 || 2 || 3 || 4": + "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + "version" "4.2.3" + dependencies: + "emoji-regex" "^8.0.0" + "is-fullwidth-code-point" "^3.0.0" + "strip-ansi" "^6.0.1" + +"string-width@^2.0.0", "string-width@^2.1.1": "integrity" "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==" "resolved" "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" "version" "2.1.1" @@ -11132,14 +11735,13 @@ "is-fullwidth-code-point" "^2.0.0" "strip-ansi" "^4.0.0" -"string-width@^1.0.2": - "integrity" "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" - "version" "1.0.2" +"string-width@^2.1.0": + "integrity" "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" + "version" "2.1.1" dependencies: - "code-point-at" "^1.0.0" - "is-fullwidth-code-point" "^1.0.0" - "strip-ansi" "^3.0.0" + "is-fullwidth-code-point" "^2.0.0" + "strip-ansi" "^4.0.0" "string-width@^4.1.0", "string-width@^4.2.0": "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" @@ -11181,6 +11783,13 @@ "resolved" "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz" "version" "0.0.6" +"strip-ansi@^0.3.0": + "integrity" "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz" + "version" "0.3.0" + dependencies: + "ansi-regex" "^0.2.1" + "strip-ansi@^3.0.0", "strip-ansi@^3.0.1": "integrity" "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" @@ -11260,6 +11869,11 @@ "qs" "^6.5.1" "readable-stream" "^2.3.5" +"supports-color@^0.2.0": + "integrity" "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz" + "version" "0.2.0" + "supports-color@^2.0.0": "integrity" "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" @@ -11279,14 +11893,7 @@ dependencies: "has-flag" "^2.0.0" -"supports-color@^5.1.0": - "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - "version" "5.5.0" - dependencies: - "has-flag" "^3.0.0" - -"supports-color@^5.3.0", "supports-color@^5.4.0": +"supports-color@^5.1.0", "supports-color@^5.3.0", "supports-color@^5.4.0": "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" "version" "5.5.0" @@ -11339,8 +11946,7 @@ "version" "1.0.8" "swagger-node-runner@git+https://github.com/fintechx/swagger-node-runner.git#v1.0.0": - "integrity" "sha512-Pd1BaebdjD/6OG5zFkc0n4YY3WkKBiJe0g15kSaxia5gSraRQEK6wMIT6Knhm0iYhEH2pDCDOp1PUyEW+TWOdw==" - "resolved" "git+ssh://git@github.com/fintechx/swagger-node-runner.git" + "resolved" "git+ssh://git@github.com/fintechx/swagger-node-runner.git#6bd348a4b07f900216da8f7865495ccdedae0018" "version" "0.7.3" dependencies: "async" "^1.5.0" @@ -11824,27 +12430,7 @@ "resolved" "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" "version" "0.0.6" -"uglify-js@^2.4.19": - "integrity" "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=" - "resolved" "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz" - "version" "2.8.29" - dependencies: - "source-map" "~0.5.1" - "yargs" "~3.10.0" - optionalDependencies: - "uglify-to-browserify" "~1.0.0" - -"uglify-js@^2.6.1": - "integrity" "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=" - "resolved" "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz" - "version" "2.8.29" - dependencies: - "source-map" "~0.5.1" - "yargs" "~3.10.0" - optionalDependencies: - "uglify-to-browserify" "~1.0.0" - -"uglify-js@^2.8.29": +"uglify-js@^2.4.19", "uglify-js@^2.6.1", "uglify-js@^2.8.29": "integrity" "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=" "resolved" "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz" "version" "2.8.29" @@ -11921,6 +12507,26 @@ "resolved" "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz" "version" "0.1.2" +"underscore.string@~2.2.1": + "integrity" "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=" + "resolved" "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz" + "version" "2.2.1" + +"underscore.string@~2.3.3": + "integrity" "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=" + "resolved" "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz" + "version" "2.3.3" + +"underscore.string@~2.4.0": + "integrity" "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=" + "resolved" "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz" + "version" "2.4.0" + +"underscore.string@3.2.3": + "integrity" "sha1-gGmSYzZl1eX8tNsfs6hi62jp5to=" + "resolved" "https://registry.npmjs.org/underscore.string/-/underscore.string-3.2.3.tgz" + "version" "3.2.3" + "underscore@~1.6.0": "integrity" "sha1-izixDKze9jM3uLJOT/htRa6lKag=" "resolved" "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" @@ -11952,6 +12558,14 @@ "object.reduce" "^1.0.0" "undertaker-registry" "^1.0.0" +"unidragger@~1.1.0": + "integrity" "sha1-TOumJRSBsDpwSfge2MhN+iZExIY=" + "resolved" "https://registry.npmjs.org/unidragger/-/unidragger-1.1.5.tgz" + "version" "1.1.5" + dependencies: + "eventie" "~1.0.6" + "unipointer" "~1.1.0" + "union-value@^1.0.0": "integrity" "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==" "resolved" "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz" @@ -11962,6 +12576,14 @@ "is-extendable" "^0.1.1" "set-value" "^2.0.1" +"unipointer@~1.1.0": + "integrity" "sha1-p9d5W/4A3ug1zd836bEyid/9V20=" + "resolved" "https://registry.npmjs.org/unipointer/-/unipointer-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "eventie" "~1.0.6" + "wolfy87-eventemitter" "~4.2.11" + "uniq@^1.0.1": "integrity" "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" "resolved" "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" @@ -12064,7 +12686,15 @@ "mime" "^1.4.1" "schema-utils" "^0.3.0" -"url-parse@^1.1.8", "url-parse@^1.4.3", "url-parse@~1.4.3": +"url-parse@^1.1.8", "url-parse@^1.4.3": + "integrity" "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==" + "resolved" "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz" + "version" "1.5.10" + dependencies: + "querystringify" "^2.1.1" + "requires-port" "^1.0.0" + +"url-parse@~1.4.3": "integrity" "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==" "resolved" "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz" "version" "1.4.7" @@ -12118,7 +12748,7 @@ "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" "version" "1.0.2" -"util@^0.10.3", "util@>=0.10.3 <1": +"util@^0.10.3": "integrity" "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==" "resolved" "https://registry.npmjs.org/util/-/util-0.10.4.tgz" "version" "0.10.4" @@ -12132,6 +12762,18 @@ dependencies: "inherits" "2.0.3" +"util@>=0.10.3 <1": + "integrity" "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==" + "resolved" "https://registry.npmjs.org/util/-/util-0.12.4.tgz" + "version" "0.12.4" + dependencies: + "inherits" "^2.0.3" + "is-arguments" "^1.0.4" + "is-generator-function" "^1.0.7" + "is-typed-array" "^1.1.3" + "safe-buffer" "^5.1.2" + "which-typed-array" "^1.1.2" + "util@0.10.3": "integrity" "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=" "resolved" "https://registry.npmjs.org/util/-/util-0.10.3.tgz" @@ -12139,7 +12781,7 @@ dependencies: "inherits" "2.0.1" -"utils-merge@1.0.1", "utils-merge@1.x.x": +"utils-merge@^1.0.1", "utils-merge@1.0.1", "utils-merge@1.x.x": "integrity" "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" "resolved" "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" "version" "1.0.1" @@ -12532,6 +13174,18 @@ "resolved" "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz" "version" "1.1.0" +"which-typed-array@^1.1.2": + "integrity" "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==" + "resolved" "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz" + "version" "1.1.7" + dependencies: + "available-typed-arrays" "^1.0.5" + "call-bind" "^1.0.2" + "es-abstract" "^1.18.5" + "foreach" "^2.0.5" + "has-tostringtag" "^1.0.0" + "is-typed-array" "^1.1.7" + "which@^1.0.9", "which@^1.2.1", "which@^1.2.10", "which@^1.2.14", "which@^1.2.9": "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz" @@ -12539,6 +13193,11 @@ dependencies: "isexe" "^2.0.0" +"which@~1.0.5": + "integrity" "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=" + "resolved" "https://registry.npmjs.org/which/-/which-1.0.9.tgz" + "version" "1.0.9" + "wide-align@^1.1.0": "integrity" "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==" "resolved" "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" @@ -12589,6 +13248,16 @@ "acorn" "^1.0.1" "acorn-globals" "^1.0.3" +"wolfy87-eventemitter@>=4.2 <5": + "integrity" "sha1-ZJc5bJXnQ1nwa241QJM5MY2Nlk8=" + "resolved" "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-4.3.0.tgz" + "version" "4.3.0" + +"wolfy87-eventemitter@~4.2.11": + "integrity" "sha1-8rQqqyJt6rb1NS9LRJvQcdYJqzM=" + "resolved" "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-4.2.11.tgz" + "version" "4.2.11" + "word-wrap@~1.2.3": "integrity" "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" "resolved" "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" @@ -12682,7 +13351,15 @@ "xmldom" "~0.1.15" "xpath" "0.0.5" -"xml2js@^0.4.17", "xml2js@0.4.19", "xml2js@0.4.x": +"xml2js@^0.4.17", "xml2js@0.4.x": + "integrity" "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==" + "resolved" "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz" + "version" "0.4.23" + dependencies: + "sax" ">=0.6.0" + "xmlbuilder" "~11.0.0" + +"xml2js@0.4.19": "integrity" "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==" "resolved" "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz" "version" "0.4.19" @@ -12698,16 +13375,26 @@ "sax" "0.6.x" "xmlbuilder" ">=1.0.0" -"xmlbuilder@>=1.0.0", "xmlbuilder@12.0.0": - "integrity" "sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ==" - "resolved" "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-12.0.0.tgz" - "version" "12.0.0" +"xmlbuilder@>=1.0.0": + "integrity" "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==" + "resolved" "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz" + "version" "15.1.1" + +"xmlbuilder@~11.0.0": + "integrity" "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + "resolved" "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" + "version" "11.0.1" "xmlbuilder@~9.0.1": "integrity" "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" "resolved" "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz" "version" "9.0.7" +"xmlbuilder@12.0.0": + "integrity" "sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ==" + "resolved" "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-12.0.0.tgz" + "version" "12.0.0" + "xmlbuilder@2.5.x": "integrity" "sha1-WriPxQirL/FIcwELVhY9P5KxkyU=" "resolved" "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-2.5.2.tgz" @@ -12767,11 +13454,16 @@ "resolved" "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" "version" "4.0.2" -"y18n@^3.2.0", "y18n@^3.2.1", "y18n@^3.2.1 || ^4.0.0": +"y18n@^3.2.0", "y18n@^3.2.1": "integrity" "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" "resolved" "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz" "version" "3.2.2" +"y18n@^3.2.1 || ^4.0.0": + "integrity" "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" + "version" "4.0.3" + "y18n@^5.0.5": "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" @@ -12782,15 +13474,15 @@ "resolved" "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" "version" "2.1.2" -"yallist@^3.0.0": +"yallist@^3.0.0", "yallist@^3.1.1": "integrity" "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" "resolved" "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" "version" "3.1.1" -"yallist@^3.1.1": - "integrity" "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - "resolved" "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" - "version" "3.1.1" +"yallist@^4.0.0": + "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + "version" "4.0.0" "yargs-parser@^11.1.1": "integrity" "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==" @@ -12975,7 +13667,7 @@ optionalDependencies: "commander" "^2.7.1" -"zeromq@^5.0.0": +"zeromq@5.2.8": "integrity" "sha512-bXzsk7KOmgLSv1tC0Ms1VXBy90+Rz27ZYf27cLuldRYbpqYpuWJfxxHFhO710t22zgWBnmdUP0m3SKFpLI0u5g==" "resolved" "https://registry.npmjs.org/zeromq/-/zeromq-5.2.8.tgz" "version" "5.2.8"