diff --git a/.gitignore b/.gitignore index fac7676f..4d7a5fa1 100644 --- a/.gitignore +++ b/.gitignore @@ -14,12 +14,12 @@ log.txt *.keystore *.jks *_config.json +server.config20* .vscode/ npm-debug.log* server.config.json server.config20* -.idea/ .sourcemaps/ .sass-cache/ .tmp/ @@ -62,3 +62,95 @@ simulation .ionic/ ./test/ ./coverage/ +build.json + + +# Created by https://www.toptal.com/developers/gitignore/api/webstorm+iml +# Edit at https://www.toptal.com/developers/gitignore?templates=webstorm+iml + +### WebStorm+iml ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### WebStorm+iml Patch ### +# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023 + +*.iml +modules.xml +.idea/misc.xml +*.ipr + +# End of https://www.toptal.com/developers/gitignore/api/webstorm+iml +./build.json + +src/environments/environment.generated.ts +src/environments/features.json diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 00000000..97776b09 --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 00000000..79ee123c --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 00000000..df7825df --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml new file mode 100644 index 00000000..d23208fb --- /dev/null +++ b/.idea/jsLibraryMappings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..94a25f7f --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/watcherTasks.xml b/.idea/watcherTasks.xml new file mode 100644 index 00000000..fb0d65a4 --- /dev/null +++ b/.idea/watcherTasks.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.npmrc b/.npmrc index 73bfc73c..91f2237c 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1 @@ -prefer-offline=true +prefer-offline=false diff --git a/CHANGELOG.md b/CHANGELOG.md index cbcf2ac8..1ed0cfec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,10 +4,25 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [4.2.0] +### Added +- Icons for all known ILIAS objects +- Overlay icon for ILIAS objects which are not supported by the app. -## [4.0.2] 2020-05-26 +## [4.0.4] +### Added +- Support for ILIAS Universität zu Köln +- Mergerd PR #1, thanks to @mhilbert! +- Mergerd PR #2, thanks to @fneumann! + +## [4.0.3] +### Added +- Support for ILIAS Dresden +## [4.0.2] 2020-05-26 +### Added +- Support for ILIAS BIWE +- Support for ILIAS BBS III ### Fixed 🦀 - Linked Objects (globe not adjusted) diff --git a/angular.json b/angular.json index d44839f2..3a6d7498 100644 --- a/angular.json +++ b/angular.json @@ -1,195 +1,238 @@ { - "$schema": "./node_modules/@angular-devkit/core/src/workspace/workspace-schema.json", - "version": 1, - "defaultProject": "app", - "newProjectRoot": "projects", - "projects": { - "app": { - "root": "", - "sourceRoot": "src", - "projectType": "application", - "prefix": "app", - "schematics": {}, - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:browser", - "options": { - "outputPath": "www", - "index": "src/index.html", - "main": "src/main.ts", - "polyfills": "src/polyfills.ts", - "tsConfig": "src/tsconfig.app.json", - "assets": [ - { - "glob": "**/*", - "input": "src/assets", - "output": "assets" - }, - { - "glob": "**/*.svg", - "input": "node_modules/ionicons/dist/ionicons/svg", - "output": "./svg" - } - ], - "styles": [ - { - "input": "src/theme/variables.scss" - }, - { - "input": "src/global.scss" - }, - { - "input": "node_modules/mapbox-gl/dist/mapbox-gl.css" + "$schema": "./node_modules/@angular-devkit/core/src/experimental/workspace/workspace-schema.json", + "version": 1, + "defaultProject": "app", + "newProjectRoot": "projects", + "projects": { + "app": { + "root": "", + "sourceRoot": "src", + "projectType": "application", + "prefix": "app", + "schematics": {}, + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "www", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "src/tsconfig.app.json", + "assets": [ + { + "glob": "**/*", + "input": "src/assets", + "output": "assets" + }, + { + "glob": "**/*.svg", + "input": "node_modules/ionicons/dist/ionicons/svg", + "output": "./svg" + } + ], + "styles": [ + { + "input": "src/theme/variables.scss" + }, + { + "input": "src/global.scss" + }, + { + "input": "node_modules/mapbox-gl/dist/mapbox-gl.css" + } + ], + "scripts": [ + { + "input": "branding/common/scormplayer/scormpool/Lib/sscompat.js" + }, + { + "input": "branding/common/scormplayer/scormpool/Lib/sscorlib.js" + }, + { + "input": "branding/common/scormplayer/scormpool/Lib/ssfx.Core.js" + }, + { + "input": "branding/common/scormplayer/scormpool/Lib/ssfx.UI.Forms.js" + }, + { + "input": "branding/common/scormplayer/scormpool/Lib/API_BASE.js" + }, + { + "input": "branding/common/scormplayer/scormpool/Lib/API.js" + }, + { + "input": "branding/common/scormplayer/scormpool/Lib/API_1484_11.js" + }, + { + "input": "branding/common/scormplayer/scormpool/Lib/Controls.js" + }, + { + "input": "branding/common/scormplayer/scormpool/Lib/LocalStorage.js" + }, + { + "input": "branding/common/scormplayer/scormpool/Lib/Player.js" + }, + { + "input": "branding/common/scormplayer/setup_player.js" + } + ], + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.generated.ts" + } + ] + }, + "configurations": { + "production": { + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "extractCss": true, + "namedChunks": false, + "aot": true, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "budgets": [ + { + "type": "initial", + "maximumWarning": "2mb", + "maximumError": "100mb" + } + ] + }, + "ci": { + "progress": false + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "app:build" + }, + "configurations": { + "production": { + "browserTarget": "app:build:production" + }, + "ci": { + "progress": false + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "app:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "src/test.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "src/tsconfig.spec.json", + "karmaConfig": "src/karma.conf.js", + "codeCoverage": true, + "styles": [], + "scripts": [], + "assets": [ + { + "glob": "favicon.ico", + "input": "src/", + "output": "/" + }, + { + "glob": "**/*", + "input": "src/assets", + "output": "/assets" + } + ] + }, + "configurations": { + "ci": { + "progress": false, + "watch": false + } + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "src/tsconfig.app.json", + "src/tsconfig.spec.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + }, + "ionic-cordova-build": { + "builder": "@ionic/angular-toolkit:cordova-build", + "options": { + "browserTarget": "app:build" + }, + "configurations": { + "production": { + "browserTarget": "app:build:production" + } + } + }, + "ionic-cordova-serve": { + "builder": "@ionic/angular-toolkit:cordova-serve", + "options": { + "cordovaBuildTarget": "app:ionic-cordova-build", + "devServerTarget": "app:serve" + }, + "configurations": { + "production": { + "cordovaBuildTarget": "app:ionic-cordova-build:production", + "devServerTarget": "app:serve:production" + } + } } - ], - "scripts": [] - }, - "configurations": { - "production": { - "fileReplacements": [], - "optimization": true, - "outputHashing": "all", - "sourceMap": false, - "extractCss": true, - "namedChunks": false, - "aot": true, - "extractLicenses": true, - "vendorChunk": false, - "buildOptimizer": true, - "budgets": [ - { - "type": "initial", - "maximumWarning": "2mb", - "maximumError": "100mb" - } - ] - }, - "ci": { - "progress": false - } - } - }, - "serve": { - "builder": "@angular-devkit/build-angular:dev-server", - "options": { - "browserTarget": "app:build", - "ssl": true, - "sslKey": ".ionic/ssl/key.pem", - "sslCert": ".ionic/ssl/cert.pem" - }, - "configurations": { - "production": { - "browserTarget": "app:build:production" - }, - "ci": { - "progress": false - } - } - }, - "extract-i18n": { - "builder": "@angular-devkit/build-angular:extract-i18n", - "options": { - "browserTarget": "app:build" - } - }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "main": "src/test.ts", - "polyfills": "src/polyfills.ts", - "tsConfig": "src/tsconfig.spec.json", - "karmaConfig": "src/karma.conf.js", - "codeCoverage": true, - "styles": [], - "scripts": [], - "assets": [ - { - "glob": "favicon.ico", - "input": "src/", - "output": "/" - }, - { - "glob": "**/*", - "input": "src/assets", - "output": "/assets" - } - ] - }, - "configurations": { - "ci": { - "progress": false, - "watch": false - } - } - }, - "lint": { - "builder": "@angular-devkit/build-angular:tslint", - "options": { - "tsConfig": ["src/tsconfig.app.json", "src/tsconfig.spec.json"], - "exclude": ["**/node_modules/**"] - } - }, - "ionic-cordova-build": { - "builder": "@ionic/angular-toolkit:cordova-build", - "options": { - "browserTarget": "app:build" - }, - "configurations": { - "production": { - "browserTarget": "app:build:production" } - } }, - "ionic-cordova-serve": { - "builder": "@ionic/angular-toolkit:cordova-serve", - "options": { - "cordovaBuildTarget": "app:ionic-cordova-build", - "devServerTarget": "app:serve" - }, - "configurations": { - "production": { - "cordovaBuildTarget": "app:ionic-cordova-build:production", - "devServerTarget": "app:serve:production" + "app-e2e": { + "root": "e2e/", + "projectType": "application", + "architect": { + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "e2e/protractor.conf.js", + "devServerTarget": "app:serve" + }, + "configurations": { + "ci": { + "devServerTarget": "app:serve:ci" + } + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": "e2e/tsconfig.e2e.json", + "exclude": [ + "**/node_modules/**" + ] + } + } } - } } - } }, - "app-e2e": { - "root": "e2e/", - "projectType": "application", - "architect": { - "e2e": { - "builder": "@angular-devkit/build-angular:protractor", - "options": { - "protractorConfig": "e2e/protractor.conf.js", - "devServerTarget": "app:serve" - }, - "configurations": { - "ci": { - "devServerTarget": "app:serve:ci" - } - } + "cli": { + "defaultCollection": "@ionic/angular-toolkit" + }, + "schematics": { + "@ionic/angular-toolkit:component": { + "styleext": "scss" }, - "lint": { - "builder": "@angular-devkit/build-angular:tslint", - "options": { - "tsConfig": "e2e/tsconfig.e2e.json", - "exclude": ["**/node_modules/**"] - } + "@ionic/angular-toolkit:page": { + "styleext": "scss" } - } - } - }, - "cli": { - "defaultCollection": "@ionic/angular-toolkit" - }, - "schematics": { - "@ionic/angular-toolkit:component": { - "styleext": "scss" - }, - "@ionic/angular-toolkit:page": { - "styleext": "scss" } - } } diff --git a/branding/brands/adt/assets/fonts/Raleway/OFL.txt b/branding/brands/adt/assets/fonts/Raleway/OFL.txt new file mode 100644 index 00000000..32198112 --- /dev/null +++ b/branding/brands/adt/assets/fonts/Raleway/OFL.txt @@ -0,0 +1,95 @@ +Copyright (c) 2010, Matt McInerney (matt@pixelspread.com), +Copyright (c) 2011, Pablo Impallari (www.impallari.com|impallari@gmail.com), +Copyright (c) 2011, Rodrigo Fuenzalida (www.rfuenzalida.com|hello@rfuenzalida.com), with Reserved Font Name Raleway + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway-Black.ttf b/branding/brands/adt/assets/fonts/Raleway/Raleway-Black.ttf new file mode 100644 index 00000000..6805f4f5 Binary files /dev/null and b/branding/brands/adt/assets/fonts/Raleway/Raleway-Black.ttf differ diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway-BlackItalic.ttf b/branding/brands/adt/assets/fonts/Raleway/Raleway-BlackItalic.ttf new file mode 100644 index 00000000..2b2e65c0 Binary files /dev/null and b/branding/brands/adt/assets/fonts/Raleway/Raleway-BlackItalic.ttf differ diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway-Bold.ttf b/branding/brands/adt/assets/fonts/Raleway/Raleway-Bold.ttf new file mode 100644 index 00000000..38c099cc Binary files /dev/null and b/branding/brands/adt/assets/fonts/Raleway/Raleway-Bold.ttf differ diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway-BoldItalic.ttf b/branding/brands/adt/assets/fonts/Raleway/Raleway-BoldItalic.ttf new file mode 100644 index 00000000..eac54e78 Binary files /dev/null and b/branding/brands/adt/assets/fonts/Raleway/Raleway-BoldItalic.ttf differ diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway-ExtraBold.ttf b/branding/brands/adt/assets/fonts/Raleway/Raleway-ExtraBold.ttf new file mode 100644 index 00000000..502ff863 Binary files /dev/null and b/branding/brands/adt/assets/fonts/Raleway/Raleway-ExtraBold.ttf differ diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway-ExtraBoldItalic.ttf b/branding/brands/adt/assets/fonts/Raleway/Raleway-ExtraBoldItalic.ttf new file mode 100644 index 00000000..09e0243f Binary files /dev/null and b/branding/brands/adt/assets/fonts/Raleway/Raleway-ExtraBoldItalic.ttf differ diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway-ExtraLight.ttf b/branding/brands/adt/assets/fonts/Raleway/Raleway-ExtraLight.ttf new file mode 100644 index 00000000..7611e96c Binary files /dev/null and b/branding/brands/adt/assets/fonts/Raleway/Raleway-ExtraLight.ttf differ diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway-ExtraLightItalic.ttf b/branding/brands/adt/assets/fonts/Raleway/Raleway-ExtraLightItalic.ttf new file mode 100644 index 00000000..3d07c1e7 Binary files /dev/null and b/branding/brands/adt/assets/fonts/Raleway/Raleway-ExtraLightItalic.ttf differ diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway-Italic.ttf b/branding/brands/adt/assets/fonts/Raleway/Raleway-Italic.ttf new file mode 100644 index 00000000..237d88d9 Binary files /dev/null and b/branding/brands/adt/assets/fonts/Raleway/Raleway-Italic.ttf differ diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway-Light.ttf b/branding/brands/adt/assets/fonts/Raleway/Raleway-Light.ttf new file mode 100644 index 00000000..91aa0c70 Binary files /dev/null and b/branding/brands/adt/assets/fonts/Raleway/Raleway-Light.ttf differ diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway-LightItalic.ttf b/branding/brands/adt/assets/fonts/Raleway/Raleway-LightItalic.ttf new file mode 100644 index 00000000..7ba0de81 Binary files /dev/null and b/branding/brands/adt/assets/fonts/Raleway/Raleway-LightItalic.ttf differ diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway-Medium.ttf b/branding/brands/adt/assets/fonts/Raleway/Raleway-Medium.ttf new file mode 100644 index 00000000..7a71a6ff Binary files /dev/null and b/branding/brands/adt/assets/fonts/Raleway/Raleway-Medium.ttf differ diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway-MediumItalic.ttf b/branding/brands/adt/assets/fonts/Raleway/Raleway-MediumItalic.ttf new file mode 100644 index 00000000..43ed49a1 Binary files /dev/null and b/branding/brands/adt/assets/fonts/Raleway/Raleway-MediumItalic.ttf differ diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway-Regular.ttf b/branding/brands/adt/assets/fonts/Raleway/Raleway-Regular.ttf new file mode 100644 index 00000000..e570a2d5 Binary files /dev/null and b/branding/brands/adt/assets/fonts/Raleway/Raleway-Regular.ttf differ diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway-SemiBold.ttf b/branding/brands/adt/assets/fonts/Raleway/Raleway-SemiBold.ttf new file mode 100644 index 00000000..ed0a8b99 Binary files /dev/null and b/branding/brands/adt/assets/fonts/Raleway/Raleway-SemiBold.ttf differ diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway-SemiBoldItalic.ttf b/branding/brands/adt/assets/fonts/Raleway/Raleway-SemiBoldItalic.ttf new file mode 100644 index 00000000..36b79515 Binary files /dev/null and b/branding/brands/adt/assets/fonts/Raleway/Raleway-SemiBoldItalic.ttf differ diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway-Thin.ttf b/branding/brands/adt/assets/fonts/Raleway/Raleway-Thin.ttf new file mode 100644 index 00000000..a497b98a Binary files /dev/null and b/branding/brands/adt/assets/fonts/Raleway/Raleway-Thin.ttf differ diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway-ThinItalic.ttf b/branding/brands/adt/assets/fonts/Raleway/Raleway-ThinItalic.ttf new file mode 100644 index 00000000..38008b9a Binary files /dev/null and b/branding/brands/adt/assets/fonts/Raleway/Raleway-ThinItalic.ttf differ diff --git a/branding/brands/adt/assets/fonts/Raleway/Raleway.scss b/branding/brands/adt/assets/fonts/Raleway/Raleway.scss new file mode 100644 index 00000000..0c02fa3a --- /dev/null +++ b/branding/brands/adt/assets/fonts/Raleway/Raleway.scss @@ -0,0 +1,32 @@ +/* latin-ext */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 400; + src: local('Raleway'), local('Raleway-Regular'), url("../assets/fonts/Raleway/Raleway-Regular.ttf") format('truetype'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 400; + src: local('Raleway'), local('Raleway-Regular'), url("../assets/fonts/Raleway/Raleway-Regular.ttf") format('truetype'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* latin-ext */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 600; + src: local('Raleway SemiBold'), local('Raleway-SemiBold'), url("../assets/fonts/Raleway/Raleway-SemiBold.ttf") format('truetype'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 600; + src: local('Raleway SemiBold'), local('Raleway-SemiBold'), url("../assets/fonts/Raleway/Raleway-SemiBold.ttf") format('truetype'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} diff --git a/branding/brands/adt/assets/fonts/icomoon.eot b/branding/brands/adt/assets/fonts/icomoon.eot new file mode 100644 index 00000000..f112a488 Binary files /dev/null and b/branding/brands/adt/assets/fonts/icomoon.eot differ diff --git a/branding/brands/adt/assets/fonts/icomoon.svg b/branding/brands/adt/assets/fonts/icomoon.svg new file mode 100644 index 00000000..e8d2241c --- /dev/null +++ b/branding/brands/adt/assets/fonts/icomoon.svg @@ -0,0 +1,18 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branding/brands/adt/assets/fonts/icomoon.ttf b/branding/brands/adt/assets/fonts/icomoon.ttf new file mode 100644 index 00000000..b7553f57 Binary files /dev/null and b/branding/brands/adt/assets/fonts/icomoon.ttf differ diff --git a/branding/brands/adt/assets/fonts/icomoon.woff b/branding/brands/adt/assets/fonts/icomoon.woff new file mode 100644 index 00000000..d5afee1f Binary files /dev/null and b/branding/brands/adt/assets/fonts/icomoon.woff differ diff --git a/branding/brands/adt/assets/i18n/de.json b/branding/brands/adt/assets/i18n/de.json new file mode 100644 index 00000000..6209d248 --- /dev/null +++ b/branding/brands/adt/assets/i18n/de.json @@ -0,0 +1,4 @@ +{ + "test": "der test" + +} diff --git a/branding/brands/adt/assets/i18n/en.json b/branding/brands/adt/assets/i18n/en.json new file mode 100644 index 00000000..a6f830e2 --- /dev/null +++ b/branding/brands/adt/assets/i18n/en.json @@ -0,0 +1,4 @@ +{ + "test" : "le test" + +} diff --git a/branding/brands/adt/assets/i18n/it.json b/branding/brands/adt/assets/i18n/it.json new file mode 100644 index 00000000..a14df4e5 --- /dev/null +++ b/branding/brands/adt/assets/i18n/it.json @@ -0,0 +1,4 @@ +{ + "test" : "il testo" + +} diff --git a/branding/brands/adt/assets/icon/bin.svg b/branding/brands/adt/assets/icon/bin.svg new file mode 100644 index 00000000..62b63e8d --- /dev/null +++ b/branding/brands/adt/assets/icon/bin.svg @@ -0,0 +1,18 @@ + + + icon/bin + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/desktop_course.svg b/branding/brands/adt/assets/icon/desktop_course.svg new file mode 100644 index 00000000..e570a7ba --- /dev/null +++ b/branding/brands/adt/assets/icon/desktop_course.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/desktop_favourites.svg b/branding/brands/adt/assets/icon/desktop_favourites.svg new file mode 100644 index 00000000..bee3d1ee --- /dev/null +++ b/branding/brands/adt/assets/icon/desktop_favourites.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/branding/brands/adt/assets/icon/desktop_link.svg b/branding/brands/adt/assets/icon/desktop_link.svg new file mode 100644 index 00000000..e78a8ca8 --- /dev/null +++ b/branding/brands/adt/assets/icon/desktop_link.svg @@ -0,0 +1,11 @@ + + + + + + diff --git a/branding/brands/adt/assets/icon/desktop_menu.svg b/branding/brands/adt/assets/icon/desktop_menu.svg new file mode 100644 index 00000000..9aba92a1 --- /dev/null +++ b/branding/brands/adt/assets/icon/desktop_menu.svg @@ -0,0 +1,8 @@ + + + + + + + diff --git a/branding/brands/adt/assets/icon/desktop_news.svg b/branding/brands/adt/assets/icon/desktop_news.svg new file mode 100644 index 00000000..fc24f198 --- /dev/null +++ b/branding/brands/adt/assets/icon/desktop_news.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/desktop_repository.svg b/branding/brands/adt/assets/icon/desktop_repository.svg new file mode 100644 index 00000000..30ee8ded --- /dev/null +++ b/branding/brands/adt/assets/icon/desktop_repository.svg @@ -0,0 +1,11 @@ + + + + + + + diff --git a/branding/brands/adt/assets/icon/favorites-outline.svg b/branding/brands/adt/assets/icon/favorites-outline.svg new file mode 100644 index 00000000..4e8eb336 --- /dev/null +++ b/branding/brands/adt/assets/icon/favorites-outline.svg @@ -0,0 +1,17 @@ + + + +icon/star-filled-blue +Created with Sketch. + + + + + + diff --git a/branding/brands/adt/assets/icon/favorites.svg b/branding/brands/adt/assets/icon/favorites.svg new file mode 100644 index 00000000..bff8bd5a --- /dev/null +++ b/branding/brands/adt/assets/icon/favorites.svg @@ -0,0 +1,9 @@ + + + +icon/star-filled-blue +Created with Sketch. + + diff --git a/branding/brands/adt/assets/icon/icon_bibl.svg b/branding/brands/adt/assets/icon/icon_bibl.svg new file mode 100644 index 00000000..c6c3d402 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_bibl.svg @@ -0,0 +1,84 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_blog.svg b/branding/brands/adt/assets/icon/icon_blog.svg new file mode 100644 index 00000000..fb3163cf --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_blog.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_book.svg b/branding/brands/adt/assets/icon/icon_book.svg new file mode 100644 index 00000000..8959125f --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_book.svg @@ -0,0 +1,82 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_cat.svg b/branding/brands/adt/assets/icon/icon_cat.svg new file mode 100644 index 00000000..5e8c4254 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_cat.svg @@ -0,0 +1,43 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_catr.svg b/branding/brands/adt/assets/icon/icon_catr.svg new file mode 100644 index 00000000..47951082 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_catr.svg @@ -0,0 +1,43 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_chtr.svg b/branding/brands/adt/assets/icon/icon_chtr.svg new file mode 100644 index 00000000..fb156916 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_chtr.svg @@ -0,0 +1,61 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_cld.svg b/branding/brands/adt/assets/icon/icon_cld.svg new file mode 100644 index 00000000..73ca172e --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_cld.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_copa.svg b/branding/brands/adt/assets/icon/icon_copa.svg new file mode 100644 index 00000000..9647d1c7 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_copa.svg @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/obj_course.svg b/branding/brands/adt/assets/icon/icon_crs.svg similarity index 91% rename from branding/brands/vanilla/assets/icon/obj_course.svg rename to branding/brands/adt/assets/icon/icon_crs.svg index a00fb8d5..e9b5f1b1 100644 --- a/branding/brands/vanilla/assets/icon/obj_course.svg +++ b/branding/brands/adt/assets/icon/icon_crs.svg @@ -14,10 +14,6 @@ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve"> - - - - diff --git a/branding/brands/adt/assets/icon/icon_crsr.svg b/branding/brands/adt/assets/icon/icon_crsr.svg new file mode 100644 index 00000000..3bce561d --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_crsr.svg @@ -0,0 +1,72 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/obj_course.svg b/branding/brands/adt/assets/icon/icon_crsv.svg similarity index 91% rename from branding/brands/fau/assets/icon/obj_course.svg rename to branding/brands/adt/assets/icon/icon_crsv.svg index a00fb8d5..e9b5f1b1 100644 --- a/branding/brands/fau/assets/icon/obj_course.svg +++ b/branding/brands/adt/assets/icon/icon_crsv.svg @@ -14,10 +14,6 @@ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve"> - - - - diff --git a/branding/brands/adt/assets/icon/icon_dcl.svg b/branding/brands/adt/assets/icon/icon_dcl.svg new file mode 100644 index 00000000..dbfa3876 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_dcl.svg @@ -0,0 +1,78 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_exc.svg b/branding/brands/adt/assets/icon/icon_exc.svg new file mode 100644 index 00000000..1a8452d0 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_exc.svg @@ -0,0 +1,111 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_excv.svg b/branding/brands/adt/assets/icon/icon_excv.svg new file mode 100644 index 00000000..1a8452d0 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_excv.svg @@ -0,0 +1,111 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_fallback.svg b/branding/brands/adt/assets/icon/icon_fallback.svg new file mode 100644 index 00000000..5c02bacf --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_fallback.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/branding/brands/adt/assets/icon/icon_feed.svg b/branding/brands/adt/assets/icon/icon_feed.svg new file mode 100644 index 00000000..c5ddc661 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_feed.svg @@ -0,0 +1,73 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/obj_file.svg b/branding/brands/adt/assets/icon/icon_file.svg similarity index 92% rename from branding/brands/vanilla/assets/icon/obj_file.svg rename to branding/brands/adt/assets/icon/icon_file.svg index 8a5c1be5..34c6653c 100644 --- a/branding/brands/vanilla/assets/icon/obj_file.svg +++ b/branding/brands/adt/assets/icon/icon_file.svg @@ -14,10 +14,6 @@ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve"> - - - - diff --git a/branding/brands/iq/assets/icon/obj_folder.svg b/branding/brands/adt/assets/icon/icon_fold.svg similarity index 88% rename from branding/brands/iq/assets/icon/obj_folder.svg rename to branding/brands/adt/assets/icon/icon_fold.svg index df052b5d..bbf1de35 100644 --- a/branding/brands/iq/assets/icon/obj_folder.svg +++ b/branding/brands/adt/assets/icon/icon_fold.svg @@ -14,10 +14,6 @@ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve"> - - - - diff --git a/branding/brands/adt/assets/icon/icon_frm.svg b/branding/brands/adt/assets/icon/icon_frm.svg new file mode 100644 index 00000000..eb271a77 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_frm.svg @@ -0,0 +1,63 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_glo.svg b/branding/brands/adt/assets/icon/icon_glo.svg new file mode 100644 index 00000000..1674d253 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_glo.svg @@ -0,0 +1,94 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/obj_group.svg b/branding/brands/adt/assets/icon/icon_grp.svg similarity index 100% rename from branding/brands/fau/assets/icon/obj_group.svg rename to branding/brands/adt/assets/icon/icon_grp.svg diff --git a/branding/brands/adt/assets/icon/icon_grpr.svg b/branding/brands/adt/assets/icon/icon_grpr.svg new file mode 100644 index 00000000..f845c943 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_grpr.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_htlm.svg b/branding/brands/adt/assets/icon/icon_htlm.svg new file mode 100644 index 00000000..5f7cb9c4 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_htlm.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_iass.svg b/branding/brands/adt/assets/icon/icon_iass.svg new file mode 100644 index 00000000..dd73596c --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_iass.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_itgr.svg b/branding/brands/adt/assets/icon/icon_itgr.svg new file mode 100644 index 00000000..35f254bb --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_itgr.svg @@ -0,0 +1,140 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_lm.svg b/branding/brands/adt/assets/icon/icon_lm.svg new file mode 100644 index 00000000..5f7cb9c4 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_lm.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_lng.svg b/branding/brands/adt/assets/icon/icon_lng.svg new file mode 100644 index 00000000..4ace0772 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_lng.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_lso.svg b/branding/brands/adt/assets/icon/icon_lso.svg new file mode 100644 index 00000000..b1559fb8 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_lso.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + icon_lrnng-sqnce-bjct_v3 + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_mail.svg b/branding/brands/adt/assets/icon/icon_mail.svg new file mode 100644 index 00000000..1d73e456 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_mail.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_mcst.svg b/branding/brands/adt/assets/icon/icon_mcst.svg new file mode 100644 index 00000000..952959c7 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_mcst.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_mep.svg b/branding/brands/adt/assets/icon/icon_mep.svg new file mode 100644 index 00000000..7cda84ac --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_mep.svg @@ -0,0 +1,50 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_orgu.svg b/branding/brands/adt/assets/icon/icon_orgu.svg new file mode 100644 index 00000000..e7de1a73 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_orgu.svg @@ -0,0 +1,111 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_overlay.svg b/branding/brands/adt/assets/icon/icon_overlay.svg new file mode 100644 index 00000000..fccc1e01 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_overlay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/branding/brands/adt/assets/icon/icon_poll.svg b/branding/brands/adt/assets/icon/icon_poll.svg new file mode 100644 index 00000000..3ae2a993 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_poll.svg @@ -0,0 +1,89 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_prg.svg b/branding/brands/adt/assets/icon/icon_prg.svg new file mode 100644 index 00000000..4ac9af93 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_prg.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branding/brands/adt/assets/icon/icon_prtf.svg b/branding/brands/adt/assets/icon/icon_prtf.svg new file mode 100644 index 00000000..628b9465 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_prtf.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_prtt.svg b/branding/brands/adt/assets/icon/icon_prtt.svg new file mode 100644 index 00000000..8e748ade --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_prtt.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_qpl.svg b/branding/brands/adt/assets/icon/icon_qpl.svg new file mode 100644 index 00000000..dc6c0656 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_qpl.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_rcat.svg b/branding/brands/adt/assets/icon/icon_rcat.svg new file mode 100644 index 00000000..c35e91b8 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_rcat.svg @@ -0,0 +1,84 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_rcrs.svg b/branding/brands/adt/assets/icon/icon_rcrs.svg new file mode 100644 index 00000000..46c216d3 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_rcrs.svg @@ -0,0 +1,89 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_rfil.svg b/branding/brands/adt/assets/icon/icon_rfil.svg new file mode 100644 index 00000000..05f0e9d8 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_rfil.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_rglo.svg b/branding/brands/adt/assets/icon/icon_rglo.svg new file mode 100644 index 00000000..d115ef85 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_rglo.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_rgrp.svg b/branding/brands/adt/assets/icon/icon_rgrp.svg new file mode 100644 index 00000000..ed9d9294 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_rgrp.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_rlm.svg b/branding/brands/adt/assets/icon/icon_rlm.svg new file mode 100644 index 00000000..8e227cd6 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_rlm.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_role.svg b/branding/brands/adt/assets/icon/icon_role.svg new file mode 100644 index 00000000..2d7303ba --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_role.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_rolt.svg b/branding/brands/adt/assets/icon/icon_rolt.svg new file mode 100644 index 00000000..b2a503ef --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_rolt.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_rtst.svg b/branding/brands/adt/assets/icon/icon_rtst.svg new file mode 100644 index 00000000..09440dde --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_rtst.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_rwik.svg b/branding/brands/adt/assets/icon/icon_rwik.svg new file mode 100644 index 00000000..53b9a8da --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_rwik.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_sahs.svg b/branding/brands/adt/assets/icon/icon_sahs.svg new file mode 100644 index 00000000..5f7cb9c4 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_sahs.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_scov.svg b/branding/brands/adt/assets/icon/icon_scov.svg new file mode 100644 index 00000000..5f7cb9c4 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_scov.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_sess.svg b/branding/brands/adt/assets/icon/icon_sess.svg new file mode 100644 index 00000000..ed2b1e64 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_sess.svg @@ -0,0 +1,90 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_spl.svg b/branding/brands/adt/assets/icon/icon_spl.svg new file mode 100644 index 00000000..d253f944 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_spl.svg @@ -0,0 +1,72 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_sty.svg b/branding/brands/adt/assets/icon/icon_sty.svg new file mode 100644 index 00000000..ecb83343 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_sty.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_svy.svg b/branding/brands/adt/assets/icon/icon_svy.svg new file mode 100644 index 00000000..8056ad0e --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_svy.svg @@ -0,0 +1,55 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_tax.svg b/branding/brands/adt/assets/icon/icon_tax.svg new file mode 100644 index 00000000..4282bcca --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_tax.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_tst.svg b/branding/brands/adt/assets/icon/icon_tst.svg new file mode 100644 index 00000000..78ba4887 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_tst.svg @@ -0,0 +1,48 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_tstv.svg b/branding/brands/adt/assets/icon/icon_tstv.svg new file mode 100644 index 00000000..78ba4887 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_tstv.svg @@ -0,0 +1,48 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_usr.svg b/branding/brands/adt/assets/icon/icon_usr.svg new file mode 100644 index 00000000..a5ddb6ea --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_usr.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/icon_webr.svg b/branding/brands/adt/assets/icon/icon_webr.svg new file mode 100644 index 00000000..54759902 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_webr.svg @@ -0,0 +1,43 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/obj_folder.svg b/branding/brands/adt/assets/icon/icon_wfld.svg similarity index 88% rename from branding/brands/vanilla/assets/icon/obj_folder.svg rename to branding/brands/adt/assets/icon/icon_wfld.svg index df052b5d..bbf1de35 100644 --- a/branding/brands/vanilla/assets/icon/obj_folder.svg +++ b/branding/brands/adt/assets/icon/icon_wfld.svg @@ -14,10 +14,6 @@ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve"> - - - - diff --git a/branding/brands/adt/assets/icon/icon_wiki.svg b/branding/brands/adt/assets/icon/icon_wiki.svg new file mode 100644 index 00000000..77372691 --- /dev/null +++ b/branding/brands/adt/assets/icon/icon_wiki.svg @@ -0,0 +1,112 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/obj_location.svg b/branding/brands/adt/assets/icon/icon_xsrl.svg similarity index 100% rename from branding/brands/fau/assets/icon/obj_location.svg rename to branding/brands/adt/assets/icon/icon_xsrl.svg diff --git a/branding/brands/adt/assets/icon/info.svg b/branding/brands/adt/assets/icon/info.svg new file mode 100644 index 00000000..fc4529de --- /dev/null +++ b/branding/brands/adt/assets/icon/info.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/map_marker.png b/branding/brands/adt/assets/icon/map_marker.png new file mode 100644 index 00000000..cafe78c1 Binary files /dev/null and b/branding/brands/adt/assets/icon/map_marker.png differ diff --git a/branding/brands/adt/assets/icon/map_marker_001.png b/branding/brands/adt/assets/icon/map_marker_001.png new file mode 100644 index 00000000..ac9e485f Binary files /dev/null and b/branding/brands/adt/assets/icon/map_marker_001.png differ diff --git a/branding/brands/adt/assets/icon/menu_course.svg b/branding/brands/adt/assets/icon/menu_course.svg new file mode 100644 index 00000000..d8bd4cde --- /dev/null +++ b/branding/brands/adt/assets/icon/menu_course.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/menu_favourites.svg b/branding/brands/adt/assets/icon/menu_favourites.svg new file mode 100644 index 00000000..30c8ebde --- /dev/null +++ b/branding/brands/adt/assets/icon/menu_favourites.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/menu_favourites_001.svg b/branding/brands/adt/assets/icon/menu_favourites_001.svg new file mode 100644 index 00000000..057dc0f0 --- /dev/null +++ b/branding/brands/adt/assets/icon/menu_favourites_001.svg @@ -0,0 +1,9 @@ + + + + + + diff --git a/branding/brands/adt/assets/icon/menu_info.svg b/branding/brands/adt/assets/icon/menu_info.svg new file mode 100644 index 00000000..f7f06e0e --- /dev/null +++ b/branding/brands/adt/assets/icon/menu_info.svg @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/menu_key.svg b/branding/brands/adt/assets/icon/menu_key.svg new file mode 100644 index 00000000..dea68275 --- /dev/null +++ b/branding/brands/adt/assets/icon/menu_key.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/menu_lock.svg b/branding/brands/adt/assets/icon/menu_lock.svg new file mode 100644 index 00000000..bcb91cba --- /dev/null +++ b/branding/brands/adt/assets/icon/menu_lock.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/branding/brands/adt/assets/icon/menu_new_content.svg b/branding/brands/adt/assets/icon/menu_new_content.svg new file mode 100644 index 00000000..defe0164 --- /dev/null +++ b/branding/brands/adt/assets/icon/menu_new_content.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/menu_news.svg b/branding/brands/adt/assets/icon/menu_news.svg new file mode 100644 index 00000000..7c5d1258 --- /dev/null +++ b/branding/brands/adt/assets/icon/menu_news.svg @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/menu_settings.svg b/branding/brands/adt/assets/icon/menu_settings.svg new file mode 100644 index 00000000..deabd209 --- /dev/null +++ b/branding/brands/adt/assets/icon/menu_settings.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/appicon.png b/branding/brands/adt/assets/icon/misc/appicon.png new file mode 100644 index 00000000..bcace0c2 Binary files /dev/null and b/branding/brands/adt/assets/icon/misc/appicon.png differ diff --git a/branding/brands/adt/assets/icon/misc/favicon.ico b/branding/brands/adt/assets/icon/misc/favicon.ico new file mode 100644 index 00000000..d76fa29d Binary files /dev/null and b/branding/brands/adt/assets/icon/misc/favicon.ico differ diff --git a/branding/brands/adt/assets/icon/misc/icon_adm.svg b/branding/brands/adt/assets/icon/misc/icon_adm.svg new file mode 100644 index 00000000..4fe93a7a --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_adm.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_adm_new.svg b/branding/brands/adt/assets/icon/misc/icon_adm_new.svg new file mode 100644 index 00000000..deabd209 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_adm_new.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_auth.svg b/branding/brands/adt/assets/icon/misc/icon_auth.svg new file mode 100644 index 00000000..6011fa6d --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_auth.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_auth_new.svg b/branding/brands/adt/assets/icon/misc/icon_auth_new.svg new file mode 100644 index 00000000..dea68275 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_auth_new.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_course.svg b/branding/brands/adt/assets/icon/misc/icon_course.svg new file mode 100644 index 00000000..d8bd4cde --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_course.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_crs_001.svg b/branding/brands/adt/assets/icon/misc/icon_crs_001.svg new file mode 100644 index 00000000..2835eca4 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_crs_001.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_crs_new.svg b/branding/brands/adt/assets/icon/misc/icon_crs_new.svg new file mode 100644 index 00000000..23b40b05 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_crs_new.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_crs_white.svg b/branding/brands/adt/assets/icon/misc/icon_crs_white.svg new file mode 100644 index 00000000..d8bd4cde --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_crs_white.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_exc.svg b/branding/brands/adt/assets/icon/misc/icon_exc.svg new file mode 100644 index 00000000..c5bf6087 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_exc.svg @@ -0,0 +1,115 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_exc_001.svg b/branding/brands/adt/assets/icon/misc/icon_exc_001.svg new file mode 100644 index 00000000..defe0164 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_exc_001.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_exc_full.svg b/branding/brands/adt/assets/icon/misc/icon_exc_full.svg new file mode 100644 index 00000000..925e099d --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_exc_full.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_exc_new.svg b/branding/brands/adt/assets/icon/misc/icon_exc_new.svg new file mode 100644 index 00000000..504ef4b4 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_exc_new.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_exc_white.svg b/branding/brands/adt/assets/icon/misc/icon_exc_white.svg new file mode 100644 index 00000000..7c5d1258 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_exc_white.svg @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_favourites.svg b/branding/brands/adt/assets/icon/misc/icon_favourites.svg new file mode 100644 index 00000000..30c8ebde --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_favourites.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/obj_file.svg b/branding/brands/adt/assets/icon/misc/icon_file.svg similarity index 100% rename from branding/brands/fau/assets/icon/obj_file.svg rename to branding/brands/adt/assets/icon/misc/icon_file.svg diff --git a/branding/brands/adt/assets/icon/misc/icon_file_new.svg b/branding/brands/adt/assets/icon/misc/icon_file_new.svg new file mode 100644 index 00000000..a1a36dd7 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_file_new.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/obj_folder.svg b/branding/brands/adt/assets/icon/misc/icon_fold.svg similarity index 100% rename from branding/brands/fau/assets/icon/obj_folder.svg rename to branding/brands/adt/assets/icon/misc/icon_fold.svg diff --git a/branding/brands/adt/assets/icon/misc/icon_fold_new.svg b/branding/brands/adt/assets/icon/misc/icon_fold_new.svg new file mode 100644 index 00000000..a2819f06 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_fold_new.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/obj_group.svg b/branding/brands/adt/assets/icon/misc/icon_grp.svg similarity index 100% rename from branding/brands/iq/assets/icon/obj_group.svg rename to branding/brands/adt/assets/icon/misc/icon_grp.svg diff --git a/branding/brands/adt/assets/icon/misc/icon_grp_new.svg b/branding/brands/adt/assets/icon/misc/icon_grp_new.svg new file mode 100644 index 00000000..e6941159 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_grp_new.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_info.svg b/branding/brands/adt/assets/icon/misc/icon_info.svg new file mode 100644 index 00000000..f7f06e0e --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_info.svg @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_info_bak.svg b/branding/brands/adt/assets/icon/misc/icon_info_bak.svg new file mode 100644 index 00000000..f4b57847 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_info_bak.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_info_blue.svg b/branding/brands/adt/assets/icon/misc/icon_info_blue.svg new file mode 100644 index 00000000..fc4529de --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_info_blue.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_info_new.svg b/branding/brands/adt/assets/icon/misc/icon_info_new.svg new file mode 100644 index 00000000..f7f06e0e --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_info_new.svg @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_key.svg b/branding/brands/adt/assets/icon/misc/icon_key.svg new file mode 100644 index 00000000..dea68275 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_key.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_more.svg b/branding/brands/adt/assets/icon/misc/icon_more.svg new file mode 100644 index 00000000..4e72c570 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_more.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_new_content.svg b/branding/brands/adt/assets/icon/misc/icon_new_content.svg new file mode 100644 index 00000000..defe0164 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_new_content.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_news.svg b/branding/brands/adt/assets/icon/misc/icon_news.svg new file mode 100644 index 00000000..7c5d1258 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_news.svg @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_rate_10.svg b/branding/brands/adt/assets/icon/misc/icon_rate_10.svg new file mode 100644 index 00000000..937bb5e5 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_rate_10.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_rate_10_new.svg b/branding/brands/adt/assets/icon/misc/icon_rate_10_new.svg new file mode 100644 index 00000000..30c8ebde --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_rate_10_new.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_rate_10_white.svg b/branding/brands/adt/assets/icon/misc/icon_rate_10_white.svg new file mode 100644 index 00000000..c3d70aec --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_rate_10_white.svg @@ -0,0 +1,9 @@ + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_settings.svg b/branding/brands/adt/assets/icon/misc/icon_settings.svg new file mode 100644 index 00000000..deabd209 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_settings.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_srag_pin.svg b/branding/brands/adt/assets/icon/misc/icon_srag_pin.svg new file mode 100644 index 00000000..1b2702b0 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_srag_pin.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_srag_webr.svg b/branding/brands/adt/assets/icon/misc/icon_srag_webr.svg new file mode 100644 index 00000000..2dca821a --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_srag_webr.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/obj_learningmodule.svg b/branding/brands/adt/assets/icon/misc/icon_webr.svg similarity index 100% rename from branding/brands/fau/assets/icon/obj_learningmodule.svg rename to branding/brands/adt/assets/icon/misc/icon_webr.svg diff --git a/branding/brands/adt/assets/icon/misc/icon_webr_new.svg b/branding/brands/adt/assets/icon/misc/icon_webr_new.svg new file mode 100644 index 00000000..a46e0f9d --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/icon_webr_new.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/icon_xsrl.png b/branding/brands/adt/assets/icon/misc/icon_xsrl.png new file mode 100644 index 00000000..9e98bde0 Binary files /dev/null and b/branding/brands/adt/assets/icon/misc/icon_xsrl.png differ diff --git a/branding/brands/iq/assets/icon/obj_location.svg b/branding/brands/adt/assets/icon/misc/icon_xsrl.svg similarity index 100% rename from branding/brands/iq/assets/icon/obj_location.svg rename to branding/brands/adt/assets/icon/misc/icon_xsrl.svg diff --git a/branding/brands/adt/assets/icon/misc/ilias_logo.svg b/branding/brands/adt/assets/icon/misc/ilias_logo.svg new file mode 100644 index 00000000..8c477a06 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/ilias_logo.svg @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/ios-lock.svg b/branding/brands/adt/assets/icon/misc/ios-lock.svg new file mode 100644 index 00000000..bcb91cba --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/ios-lock.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/branding/brands/adt/assets/icon/misc/play-video.svg b/branding/brands/adt/assets/icon/misc/play-video.svg new file mode 100644 index 00000000..faaca5b0 --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/play-video.svg @@ -0,0 +1 @@ +play-video \ No newline at end of file diff --git a/branding/brands/adt/assets/icon/misc/play-video_001.png b/branding/brands/adt/assets/icon/misc/play-video_001.png new file mode 100644 index 00000000..70e23d62 Binary files /dev/null and b/branding/brands/adt/assets/icon/misc/play-video_001.png differ diff --git a/branding/brands/adt/assets/icon/misc/play-video_001.svg b/branding/brands/adt/assets/icon/misc/play-video_001.svg new file mode 100644 index 00000000..a403d43c --- /dev/null +++ b/branding/brands/adt/assets/icon/misc/play-video_001.svg @@ -0,0 +1 @@ +play-video_001 \ No newline at end of file diff --git a/branding/brands/adt/assets/icon/more.svg b/branding/brands/adt/assets/icon/more.svg new file mode 100644 index 00000000..4e72c570 --- /dev/null +++ b/branding/brands/adt/assets/icon/more.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + diff --git a/branding/brands/adt/assets/icon/objectlist_favourites.svg b/branding/brands/adt/assets/icon/objectlist_favourites.svg new file mode 100644 index 00000000..e567fbaf --- /dev/null +++ b/branding/brands/adt/assets/icon/objectlist_favourites.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/branding/brands/adt/assets/icon/objectlist_offline.svg b/branding/brands/adt/assets/icon/objectlist_offline.svg new file mode 100644 index 00000000..e7e341a2 --- /dev/null +++ b/branding/brands/adt/assets/icon/objectlist_offline.svg @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/branding/brands/adt/assets/icon/play_video.svg b/branding/brands/adt/assets/icon/play_video.svg new file mode 100644 index 00000000..faaca5b0 --- /dev/null +++ b/branding/brands/adt/assets/icon/play_video.svg @@ -0,0 +1 @@ +play-video \ No newline at end of file diff --git a/branding/brands/adt/assets/img/header.png b/branding/brands/adt/assets/img/header.png new file mode 100644 index 00000000..bfe37824 Binary files /dev/null and b/branding/brands/adt/assets/img/header.png differ diff --git a/branding/brands/adt/assets/img/header.svg b/branding/brands/adt/assets/img/header.svg new file mode 100644 index 00000000..05e9cffd --- /dev/null +++ b/branding/brands/adt/assets/img/header.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/img/header_europe.svg b/branding/brands/adt/assets/img/header_europe.svg new file mode 100644 index 00000000..03529485 --- /dev/null +++ b/branding/brands/adt/assets/img/header_europe.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/img/header_iregular.svg b/branding/brands/adt/assets/img/header_iregular.svg new file mode 100644 index 00000000..a0c0448b --- /dev/null +++ b/branding/brands/adt/assets/img/header_iregular.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/img/login.svg b/branding/brands/adt/assets/img/login.svg new file mode 100644 index 00000000..d55a9c02 --- /dev/null +++ b/branding/brands/adt/assets/img/login.svg @@ -0,0 +1,9 @@ + + + + + + diff --git a/branding/brands/adt/assets/img/mascot.svg b/branding/brands/adt/assets/img/mascot.svg new file mode 100644 index 00000000..b36bd5e4 --- /dev/null +++ b/branding/brands/adt/assets/img/mascot.svg @@ -0,0 +1,9 @@ + + + + + + diff --git a/branding/brands/adt/assets/img/menu.png b/branding/brands/adt/assets/img/menu.png new file mode 100644 index 00000000..6b3ab74c Binary files /dev/null and b/branding/brands/adt/assets/img/menu.png differ diff --git a/branding/brands/adt/assets/img/misc/Molly_pony_white_mirror.svg b/branding/brands/adt/assets/img/misc/Molly_pony_white_mirror.svg new file mode 100644 index 00000000..d2bfa8da --- /dev/null +++ b/branding/brands/adt/assets/img/misc/Molly_pony_white_mirror.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/img/misc/pony.png b/branding/brands/adt/assets/img/misc/pony.png new file mode 100644 index 00000000..6b3ab74c Binary files /dev/null and b/branding/brands/adt/assets/img/misc/pony.png differ diff --git a/branding/brands/adt/assets/img/misc/pony_blue.png b/branding/brands/adt/assets/img/misc/pony_blue.png new file mode 100644 index 00000000..f952c687 Binary files /dev/null and b/branding/brands/adt/assets/img/misc/pony_blue.png differ diff --git a/branding/brands/adt/assets/img/misc/stura.svg b/branding/brands/adt/assets/img/misc/stura.svg new file mode 100644 index 00000000..7531f659 --- /dev/null +++ b/branding/brands/adt/assets/img/misc/stura.svg @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/img/misc/walking_pony.png b/branding/brands/adt/assets/img/misc/walking_pony.png new file mode 100644 index 00000000..2ed4ace9 Binary files /dev/null and b/branding/brands/adt/assets/img/misc/walking_pony.png differ diff --git a/branding/brands/adt/assets/img/onboarding_decentralized.png b/branding/brands/adt/assets/img/onboarding_decentralized.png new file mode 100644 index 00000000..b3305b0b Binary files /dev/null and b/branding/brands/adt/assets/img/onboarding_decentralized.png differ diff --git a/branding/brands/adt/assets/img/onboarding_decentralized.svg b/branding/brands/adt/assets/img/onboarding_decentralized.svg new file mode 100644 index 00000000..a2b5976f --- /dev/null +++ b/branding/brands/adt/assets/img/onboarding_decentralized.svg @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/img/onboarding_key.svg b/branding/brands/adt/assets/img/onboarding_key.svg new file mode 100644 index 00000000..6011fa6d --- /dev/null +++ b/branding/brands/adt/assets/img/onboarding_key.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + diff --git a/branding/brands/adt/assets/img/onboarding_welcome.png b/branding/brands/adt/assets/img/onboarding_welcome.png new file mode 100644 index 00000000..c638d256 Binary files /dev/null and b/branding/brands/adt/assets/img/onboarding_welcome.png differ diff --git a/branding/brands/adt/assets/img/pony_exit.svg b/branding/brands/adt/assets/img/pony_exit.svg new file mode 100644 index 00000000..5eeb14bf --- /dev/null +++ b/branding/brands/adt/assets/img/pony_exit.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + diff --git a/branding/brands/adt/assets/img/stura.jpg b/branding/brands/adt/assets/img/stura.jpg new file mode 100644 index 00000000..6ea8aab2 Binary files /dev/null and b/branding/brands/adt/assets/img/stura.jpg differ diff --git a/branding/brands/adt/assets/img/sturai.png b/branding/brands/adt/assets/img/sturai.png new file mode 100644 index 00000000..0ca0e0b5 Binary files /dev/null and b/branding/brands/adt/assets/img/sturai.png differ diff --git a/branding/brands/adt/assets/img/unifrei.jpg b/branding/brands/adt/assets/img/unifrei.jpg new file mode 100644 index 00000000..9261462c Binary files /dev/null and b/branding/brands/adt/assets/img/unifrei.jpg differ diff --git a/branding/brands/adt/assets/img/unimar.png b/branding/brands/adt/assets/img/unimar.png new file mode 100644 index 00000000..2b7afe5a Binary files /dev/null and b/branding/brands/adt/assets/img/unimar.png differ diff --git a/branding/brands/adt/assets/stylesheets/app.scss b/branding/brands/adt/assets/stylesheets/app.scss new file mode 100644 index 00000000..866acbc2 --- /dev/null +++ b/branding/brands/adt/assets/stylesheets/app.scss @@ -0,0 +1,46 @@ +// Global CSS +// -------------------------------------------------- +// Put CSS rules here that you want to apply globally +// +// NOTE: @import "coloring"; is called before this file is imported + +@import "icons"; +@import url('https://fonts.googleapis.com/css?family=Raleway:400,600,800'); + +ion-icon { + &[class*="custom-"] { + mask-size: contain; + mask-position: 50% 50%; + mask-repeat: no-repeat; + background: currentColor; + width: 1em; + height: 1em; + } + } + +.content, .ion-header, ion-toolbar { + font-family: 'Raleway', sans-serif !important; +} + +.top-header{ + border-width: 0px !important; + --padding-top: 0px !important; + --padding-start: 0px !important; + --padding-right: 0px !important; + --padding-end: 0px !important; +} + +// Typogrtaphie + +h1{ + font-weight: 800; +} + +ion-tab-bar{ + --color-selected: #000 !important; +} + +// Animations + + + diff --git a/branding/brands/adt/assets/stylesheets/coloring.scss b/branding/brands/adt/assets/stylesheets/coloring.scss new file mode 100644 index 00000000..ad3dda11 --- /dev/null +++ b/branding/brands/adt/assets/stylesheets/coloring.scss @@ -0,0 +1,242 @@ +// CSS coloring for the theme +// -------------------------------------------------- + +//Import Font + + +:root { + // whether the color-values are synchronized with the setting in the pegasus-helper-plugin + // set to "true" or "false" + --theme-from-plugin: "false"; + + // font + --ion-font-family: "Raleway", sans-serif; + + // Custom Tab Colorr + + ion-tab-button.tab-selected { + ion-icon, ion-label { + color: var(--ion-color-primary) !important; + --ion-color-base: var(--ion-color-primarry) !important; + } + } + + ion-tab-button { + ion-icon, ion-label { + color: var(--ion-color-light-grey) !important; + --ion-color-base: var(--ion-color-light-grey) !important; + } + } + + + // colors + --ion-background-color: var(--ion-color-light); + + --ion-item-border-color: transparent; + + --ion-color-primary: #87b15e; + --ion-color-primary-rgb: 135, 177, 94; + --ion-color-primary-contrast: #ffffff; + --ion-color-primary-contrast-rgb: 255, 255, 255; + --ion-color-primary-shade: #779c53; + --ion-color-primary-tint: #93b96e; + + --ion-color-secondary: #da8809; + --ion-color-secondary-rgb: 218, 136, 9; + --ion-color-secondary-contrast: #000000; + --ion-color-secondary-contrast-rgb: 0, 0, 0; + --ion-color-secondary-shade: #c07808; + --ion-color-secondary-tint: #de9422; + + --ion-color-tertiary: transparent; + --ion-color-tertiary-rgb: 82, 96, 255; + --ion-color-tertiary-contrast: #87b15e; + --ion-color-tertiary-contrast-rgb: 255, 255, 255; + --ion-color-tertiary-shade: #4854e0; + --ion-color-tertiary-tint: #6370ff; + + --ion-color-success: #2dd36f; + --ion-color-success-rgb: 45, 211, 111; + --ion-color-success-contrast: #ffffff; + --ion-color-success-contrast-rgb: 255, 255, 255; + --ion-color-success-shade: #28ba62; + --ion-color-success-tint: #42d77d; + + --ion-color-warning: #ffc409; + --ion-color-warning-rgb: 255, 196, 9; + --ion-color-warning-contrast: #000000; + --ion-color-warning-contrast-rgb: 0, 0, 0; + --ion-color-warning-shade: #e0ac08; + --ion-color-warning-tint: #ffca22; + + --ion-color-danger: #eb445a; + --ion-color-danger-rgb: 235, 68, 90; + --ion-color-danger-contrast: #ffffff; + --ion-color-danger-contrast-rgb: 255, 255, 255; + --ion-color-danger-shade: #cf3c4f; + --ion-color-danger-tint: #ed576b; + + --ion-color-dark: #222428; + --ion-color-dark-rgb: 34, 36, 40; + --ion-color-dark-contrast: #ffffff; + --ion-color-dark-contrast-rgb: 255, 255, 255; + --ion-color-dark-shade: #1e2023; + --ion-color-dark-tint: #383a3e; + + --ion-color-medium: #92949c; + --ion-color-medium-rgb: 146, 148, 156; + --ion-color-medium-contrast: #ffffff; + --ion-color-medium-contrast-rgb: 255, 255, 255; + --ion-color-medium-shade: #808289; + --ion-color-medium-tint: #9d9fa6; + + --ion-color-light: #f4f5f8; + --ion-color-light-rgb: 244, 245, 248; + --ion-color-light-contrast: #000000; + --ion-color-light-contrast-rgb: 0, 0, 0; + --ion-color-light-shade: #d7d8da; + --ion-color-light-tint: #f5f6f9; + + --ion-color-transparent: transparent; + --ion-color-transparent-rgb: 244, 244, 244; + --ion-color-transparent-contrast: #d7d8da; + --ion-color-transparent-contrast-rgb: 0, 0, 0; + --ion-color-transparent-shade: #d7d8da; + --ion-color-transparent-tint: #f5f6f9; + + --ion-color-light-grey: #c4c4c4; + --ion-color-light-grey-rgb: 196, 196, 196; + --ion-color-light-grey-contrast: #000000; + --ion-color-light-grey-contrast-rgb: 0, 0, 0; + --ion-color-light-grey-shade: #acacac; + --ion-color-light-grey-tint: #cacaca; + + //tabbar colors + + ion-tabs { + --color: #1c1c21; // already exists + --ion-tabbar-color: rgba(var(--ion-text-color-rgb), 0.4); // suggested + --ion-tabbar-color-selected: var(--ion-text-color); // suggested + } + + +} + +// MARK: Darkmode +/* +@media (prefers-color-scheme: dark) { + :root { + + --ion-border-color: var(--ion-color-dark-shade); + --ion-background-color: var(--ion-color-dark); + --ion-background-color-rgb: var(--ion-color-dark-rgb); + --ion-text-color: var(--ion-color-light); + --ion-text-color-rgb: var(--ion-color-light-rgb); + + --ion-color-step-50: #232323; + --ion-color-step-100: #2e2e2e; + --ion-color-step-150: #3a3a3a; + --ion-color-step-200: #454545; + --ion-color-step-250: #515151; + --ion-color-step-300: #5d5d5d; + --ion-color-step-350: #8b8b8b; + --ion-color-step-400: #747474; + --ion-color-step-450: #7f7f7f; + --ion-color-step-500: #8b8b8b; + --ion-color-step-550: #979797; + --ion-color-step-600: #a2a2a2; + --ion-color-step-650: #aeaeae; + --ion-color-step-700: #b9b9b9; + --ion-color-step-750: #c5c5c5; + --ion-color-step-800: #d1d1d1; + --ion-color-step-850: #dcdcdc; + --ion-color-step-900: #e8e8e8; + --ion-color-step-950: #f3f3f3; + + //colorr Variables + + --ion-color-primary: #222428; + --ion-color-primary-rgb: 34,36,40; + --ion-color-primary-contrast: #ffffff; + --ion-color-primary-contrast-rgb: 255,255,255; + --ion-color-primary-shade: #1e2023; + --ion-color-primary-tint: #383a3e; + + --ion-color-secondary: #4a668b; + --ion-color-secondary-rgb: 74,102,139; + --ion-color-secondary-contrast: #ffffff; + --ion-color-secondary-contrast-rgb: 255,255,255; + --ion-color-secondary-shade: #415a7a; + --ion-color-secondary-tint: #5c7597; + + --ion-color-light-grey: #c4c4c4; + --ion-color-light-grey-rgb: 196,196,196; + --ion-color-light-grey-contrast: #000000; + --ion-color-light-grey-contrast-rgb: 0,0,0; + --ion-color-light-grey-shade: #acacac; + --ion-color-light-grey-tint: #cacaca; + + // --ion-color-medium: #3b3b3b; + // --ion-color-medium-rgb: 59,59,59; + // --ion-color-medium-contrast: #ffffff; + // --ion-color-medium-contrast-rgb: 255,255,255; + // --ion-color-medium-shade: #343434; + // --ion-color-medium-tint: #4f4f4f; + + + // TAb + + ion-tab-button.tab-selected { + ion-icon, ion-label { + color: var(--ion-color-secondary) !important; + --ion-color-base: var(--ion-color-secondary) !important; + } + } + + } +} +*/ + +// gradients + +$gradient-col1: #003c66; +$gradient-col2: #003c66; + +.primary-gradient { + background-image: linear-gradient(to top left, $gradient-col1, $gradient-col1); + color: white !important; + // filter: blur(5px); + // opacity: 0.5; +} + +.primary-gradient-inverted { + background-image: linear-gradient(to top left, $gradient-col1, $gradient-col1); + color: white; +} + +// MARK: Define Color Variables + +.ion-color-transparent { + --ion-color-base: var(--ion-color-transparent); + --ion-color-base-rgb: var(--ion-color-transparent-rgb); + --ion-color-contrast: var(--ion-color-transparent-contrast); + --ion-color-contrast-rgb: var(--ion-color-transparent-contrast-rgb); + --ion-color-shade: var(--ion-color-transparent-shade); + --ion-color-tint: var(--ion-color-transparent-tint); +} + +.ion-color-light-grey { + --ion-color-base: var(--ion-color-light-grey); + --ion-color-base-rgb: var(--ion-color-light-grey-rgb); + --ion-color-contrast: var(--ion-color-light-grey-contrast); + --ion-color-contrast-rgb: var(--ion-color-light-grey-contrast-rgb); + --ion-color-shade: var(--ion-color-light-grey-shade); + --ion-color-tint: var(--ion-color-light-grey-tint); +} + + +// // misc + +// .white-text { +// color: white; +// } diff --git a/branding/brands/adt/assets/stylesheets/icons.scss b/branding/brands/adt/assets/stylesheets/icons.scss new file mode 100644 index 00000000..edb15d53 --- /dev/null +++ b/branding/brands/adt/assets/stylesheets/icons.scss @@ -0,0 +1,46 @@ +@font-face { + font-family: 'icomoon'; + src: url('./assets/fonts/icomoon.eot?39m2i2'); + src: url('./assets/fonts/icomoon.eot?39m2i2#iefix') format('embedded-opentype'), + url('./assets/fonts/icomoon.ttf?39m2i2') format('truetype'), + url('./assets/fonts/icomoon.woff?39m2i2') format('woff'), + url('./assets/fonts/icomoon.svg?39m2i2#icomoon') format('svg'); + font-weight: normal; + font-style: normal; +} + +[class^="icon-"], [class*=" icon-"] { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'icomoon' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +@mixin makeIcon($arg, $val) { + .ai-#{$arg}:before , + .ion-ios-ai-#{$arg}:before , + .ion-ios-ai-#{$arg}-outline:before , + .ion-md-ai-#{$arg}:before , + .ion-md-ai-#{$arg}-outline:before { + content: $val; + // font-size: + // 20px; + } +} + +@include makeIcon(news, '\e900'); +@include makeIcon(news-outline, '\e901'); +@include makeIcon(home, '\e902'); +@include makeIcon(home-outline, '\e903'); +@include makeIcon(favorites, '\e904'); +@include makeIcon(favorites-outline, '\e905'); +@include makeIcon(content, '\e906'); +@include makeIcon(content-outline, '\e907'); diff --git a/branding/brands/adt/assets/stylesheets/theme.scss b/branding/brands/adt/assets/stylesheets/theme.scss new file mode 100644 index 00000000..a442ef09 --- /dev/null +++ b/branding/brands/adt/assets/stylesheets/theme.scss @@ -0,0 +1,15 @@ +// CSS theme +// -------------------------------------------------- +// +// this stylesheet will be loaded into the otherwise empty +// files 'app/app.scss' and 'theme/variables.scss' +// +// NOTE: in order to change the contents of 'app/app.scss', edit +// 'app.scss' in this folder +// +// NOTE: in order to change the contents of 'theme/variables.scss', +// edit 'variables.scss' in this folder + +@import "coloring"; +@import "variables"; +@import "app"; diff --git a/branding/brands/adt/assets/stylesheets/variables.scss b/branding/brands/adt/assets/stylesheets/variables.scss new file mode 100644 index 00000000..86a67755 --- /dev/null +++ b/branding/brands/adt/assets/stylesheets/variables.scss @@ -0,0 +1,243 @@ +:root { + // login + --page-login-bottom-row-dispay: none; + + // info + --page-version-card-custom: block; + --page-info-card-community: none; +} + +//MARK: Animation + +@keyframes bounce { + + from, 10%, 26%, 40%, to { + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transform: translate3d(0,0,0); + } + + 20%, 21% { + animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + transform: translate3d(0, -30px, 0); + } + + 35% { + animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + transform: translate3d(0, -15px, 0); + } + + 45% { + transform: translate3d(0,-4px,0); + } + 50% { + animation-timing-function: cubic-bezier(0, 0, 0, 1.000); + transform: translate3d(0,0,0); + } + +} + +.bounce { + animation-name: bounce; + animation-duration: 3s; + animation-delay: 2s; + animation-iteration-count: infinite; + transform-origin: center bottom; +} + +.fold { + -webkit-animation-name: fold; + animation-name: fold; + animation-duration: 3s; + animation-delay: 13s; + animation-iteration-count: infinite; } + + @keyframes fold { + 0% { + -webkit-animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); + animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } + 30% { + -webkit-animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); + animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); + -webkit-transform: scale3d(1, 0.4, 1); + transform: scale3d(1, 0.4, 1); } + 60% { + opacity: 1; + -webkit-animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); + animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); + -webkit-transform: scale3d(0.4, 0.4, 1); + transform: scale3d(0.4, 0.4, 1); } + 100% { + opacity: 0; + -webkit-animation-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); + animation-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); + -webkit-transform: scale3d(0.2, 0.2, 0.2); + transform: scale3d(0.2, 0.2, 0.2); } } + .unfold { + -webkit-animation-name: unfold; + animation-name: unfold; } + + + .enter-left-bounce { + opacity: 1 !important; + visibility: visible !important; + -webkit-animation: enterLeftBounce 1s linear; + -moz-animation: enterLeftBounce 1s linear; + -ms-animation: enterLeftBounce 1s linear; + -o-animation: enterLeftBounce 1s linear; + animation: enterLeftBounce 1s linear; + } + @-webkit-keyframes enterLeftBounce { + 0% { + -webkit-transform: translateX(-220px); + opacity: 0; + } + 50% { + -webkit-transform: translateX(0px); + } + 70% { + -webkit-transform: translateX(-8px); + } + 100% { + -webkit-transform: translateX(0); + opacity: 1; + } + } + @-moz-keyframes enterLeftBounce { + 0% { + -moz-transform: translateX(-220px); + opacity: 0; + } + 50% { + -moz-transform: translateX(0px); + } + 70% { + -moz-transform: translateX(-8px); + } + 100% { + -moz-transform: translateX(0); + opacity: 1; + } + } + @-o-keyframes enterLeftBounce { + 0% { + -o-transform: translateX(-220px); + opacity: 0; + } + 50% { + -o-transform: translateX(0px); + } + 70% { + -o-transform: translateX(-8px); + } + 100% { + -o-transform: translateX(0); + opacity: 1; + } + } + @-ms-keyframes enterLeftBounce { + 0% { + -ms-transform: translateX(-220px); + opacity: 0; + } + 50% { + -ms-transform: translateX(0px); + } + 70% { + -ms-transform: translateX(-8px); + } + 100% { + -ms-transform: translateX(0); + opacity: 1; + } + } + @-moz-keyframes enterLeftBounce { + 0% { + transform: translateX(-220px); + opacity: 0; + } + 50% { + transform: translateX(0px); + } + 70% { + transform: translateX(-8px); + } + 100% { + transform: translateX(0); + opacity: 1; + } + } + @-webkit-keyframes enterLeftBounce { + 0% { + transform: translateX(-220px); + opacity: 0; + } + 50% { + transform: translateX(0px); + } + 70% { + transform: translateX(-8px); + } + 100% { + transform: translateX(0); + opacity: 1; + } + } + @-o-keyframes enterLeftBounce { + 0% { + transform: translateX(-220px); + opacity: 0; + } + 50% { + transform: translateX(0px); + } + 70% { + transform: translateX(-8px); + } + 100% { + transform: translateX(0); + opacity: 1; + } + } + @keyframes enterLeftBounce { + 0% { + transform: translateX(-220px); + opacity: 0; + } + 50% { + transform: translateX(0px); + } + 70% { + transform: translateX(-8px); + } + 100% { + transform: translateX(0); + opacity: 1; + } + } + +// MARK: Custom Fonts + +.news-title { + width:100%; + white-space: pre-line; +} +.main-header{ + color: var(--ion-color-primary-contrast) !important; + font-weight: bold; + font-size: 3.75vmax; + margin: auto; + position: relative; + padding-bottom: 1vh; + padding-top: 3vh; + z-index: -9999 !important; +} + +.very-small-font{ + font-size: 0.5em; + text-align: center; +} + + + diff --git a/branding/brands/iq/assets/tabbar/content-outline.svg b/branding/brands/adt/assets/tabbar/content-outline.svg similarity index 100% rename from branding/brands/iq/assets/tabbar/content-outline.svg rename to branding/brands/adt/assets/tabbar/content-outline.svg diff --git a/branding/brands/adt/assets/tabbar/content.svg b/branding/brands/adt/assets/tabbar/content.svg new file mode 100644 index 00000000..4af36997 --- /dev/null +++ b/branding/brands/adt/assets/tabbar/content.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/tabbar/favorites-outline.svg b/branding/brands/adt/assets/tabbar/favorites-outline.svg similarity index 100% rename from branding/brands/iq/assets/tabbar/favorites-outline.svg rename to branding/brands/adt/assets/tabbar/favorites-outline.svg diff --git a/branding/brands/adt/assets/tabbar/favorites.svg b/branding/brands/adt/assets/tabbar/favorites.svg new file mode 100644 index 00000000..eb3529a6 --- /dev/null +++ b/branding/brands/adt/assets/tabbar/favorites.svg @@ -0,0 +1,9 @@ + + + +icon/star-filled-blue +Created with Sketch. + + diff --git a/branding/brands/iq/assets/tabbar/home-outline.svg b/branding/brands/adt/assets/tabbar/home-outline.svg similarity index 100% rename from branding/brands/iq/assets/tabbar/home-outline.svg rename to branding/brands/adt/assets/tabbar/home-outline.svg diff --git a/branding/brands/adt/assets/tabbar/home.svg b/branding/brands/adt/assets/tabbar/home.svg new file mode 100644 index 00000000..42c4f9a3 --- /dev/null +++ b/branding/brands/adt/assets/tabbar/home.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + icon/folder + Created with Sketch. + + + diff --git a/branding/brands/iq/assets/tabbar/news-outline.svg b/branding/brands/adt/assets/tabbar/news-outline.svg similarity index 100% rename from branding/brands/iq/assets/tabbar/news-outline.svg rename to branding/brands/adt/assets/tabbar/news-outline.svg diff --git a/branding/brands/adt/assets/tabbar/news.svg b/branding/brands/adt/assets/tabbar/news.svg new file mode 100644 index 00000000..a5781894 --- /dev/null +++ b/branding/brands/adt/assets/tabbar/news.svg @@ -0,0 +1,15 @@ + + + +icon/folder +Created with Sketch. + + + + + + + diff --git a/build.json b/branding/brands/adt/build.json similarity index 87% rename from build.json rename to branding/brands/adt/build.json index eeb918dc..fb9d9819 100644 --- a/build.json +++ b/branding/brands/adt/build.json @@ -8,7 +8,7 @@ }, "release": { "codeSignIdentity": "Apple Distribution", - "provisioningProfile": "ed4887a0-77cc-41cf-b9e4-1c78e36155b9", + "provisioningProfile": "dc085546-e0ba-4090-b51c-3ae68a7f1d70", "developmentTeam": "ZQ66BZ3DPL", "packageType": "app-store" } diff --git a/branding/brands/adt/config.json b/branding/brands/adt/config.json new file mode 100644 index 00000000..bf82ab81 --- /dev/null +++ b/branding/brands/adt/config.json @@ -0,0 +1,9 @@ +{ + "ilias_installation_ids": [14,37,23], + "projectConfig": { + "id": "ch.studerraimann.ilias.adt", + "name": "MyEform", + + "description": "Download, sync and store ILIAS-files on your device" + } +} diff --git a/branding/brands/adt/features.json b/branding/brands/adt/features.json new file mode 100644 index 00000000..146b2197 --- /dev/null +++ b/branding/brands/adt/features.json @@ -0,0 +1,3 @@ +{ + "disabled": [] +} diff --git a/branding/brands/adt/resources/android/icon/drawable-hdpi-icon.png b/branding/brands/adt/resources/android/icon/drawable-hdpi-icon.png new file mode 100644 index 00000000..df51e61a Binary files /dev/null and b/branding/brands/adt/resources/android/icon/drawable-hdpi-icon.png differ diff --git a/branding/brands/adt/resources/android/icon/drawable-ldpi-icon.png b/branding/brands/adt/resources/android/icon/drawable-ldpi-icon.png new file mode 100644 index 00000000..12517388 Binary files /dev/null and b/branding/brands/adt/resources/android/icon/drawable-ldpi-icon.png differ diff --git a/branding/brands/adt/resources/android/icon/drawable-mdpi-icon.png b/branding/brands/adt/resources/android/icon/drawable-mdpi-icon.png new file mode 100644 index 00000000..ead8b7ff Binary files /dev/null and b/branding/brands/adt/resources/android/icon/drawable-mdpi-icon.png differ diff --git a/branding/brands/adt/resources/android/icon/drawable-xhdpi-icon.png b/branding/brands/adt/resources/android/icon/drawable-xhdpi-icon.png new file mode 100644 index 00000000..cfab081b Binary files /dev/null and b/branding/brands/adt/resources/android/icon/drawable-xhdpi-icon.png differ diff --git a/branding/brands/adt/resources/android/icon/drawable-xxhdpi-icon.png b/branding/brands/adt/resources/android/icon/drawable-xxhdpi-icon.png new file mode 100644 index 00000000..2120bd68 Binary files /dev/null and b/branding/brands/adt/resources/android/icon/drawable-xxhdpi-icon.png differ diff --git a/branding/brands/adt/resources/android/icon/drawable-xxxhdpi-icon.png b/branding/brands/adt/resources/android/icon/drawable-xxxhdpi-icon.png new file mode 100644 index 00000000..ce14d2bf Binary files /dev/null and b/branding/brands/adt/resources/android/icon/drawable-xxxhdpi-icon.png differ diff --git a/branding/brands/adt/resources/android/splash/drawable-land-hdpi-screen.png b/branding/brands/adt/resources/android/splash/drawable-land-hdpi-screen.png new file mode 100644 index 00000000..903eb4a2 Binary files /dev/null and b/branding/brands/adt/resources/android/splash/drawable-land-hdpi-screen.png differ diff --git a/branding/brands/adt/resources/android/splash/drawable-land-ldpi-screen.png b/branding/brands/adt/resources/android/splash/drawable-land-ldpi-screen.png new file mode 100644 index 00000000..a2bb915b Binary files /dev/null and b/branding/brands/adt/resources/android/splash/drawable-land-ldpi-screen.png differ diff --git a/branding/brands/adt/resources/android/splash/drawable-land-mdpi-screen.png b/branding/brands/adt/resources/android/splash/drawable-land-mdpi-screen.png new file mode 100644 index 00000000..f522c0b8 Binary files /dev/null and b/branding/brands/adt/resources/android/splash/drawable-land-mdpi-screen.png differ diff --git a/branding/brands/adt/resources/android/splash/drawable-land-xhdpi-screen.png b/branding/brands/adt/resources/android/splash/drawable-land-xhdpi-screen.png new file mode 100644 index 00000000..4890d45e Binary files /dev/null and b/branding/brands/adt/resources/android/splash/drawable-land-xhdpi-screen.png differ diff --git a/branding/brands/adt/resources/android/splash/drawable-land-xxhdpi-screen.png b/branding/brands/adt/resources/android/splash/drawable-land-xxhdpi-screen.png new file mode 100644 index 00000000..252bd576 Binary files /dev/null and b/branding/brands/adt/resources/android/splash/drawable-land-xxhdpi-screen.png differ diff --git a/branding/brands/adt/resources/android/splash/drawable-land-xxxhdpi-screen.png b/branding/brands/adt/resources/android/splash/drawable-land-xxxhdpi-screen.png new file mode 100644 index 00000000..9e850e6b Binary files /dev/null and b/branding/brands/adt/resources/android/splash/drawable-land-xxxhdpi-screen.png differ diff --git a/branding/brands/adt/resources/android/splash/drawable-port-hdpi-screen.png b/branding/brands/adt/resources/android/splash/drawable-port-hdpi-screen.png new file mode 100644 index 00000000..c3662e19 Binary files /dev/null and b/branding/brands/adt/resources/android/splash/drawable-port-hdpi-screen.png differ diff --git a/branding/brands/adt/resources/android/splash/drawable-port-ldpi-screen.png b/branding/brands/adt/resources/android/splash/drawable-port-ldpi-screen.png new file mode 100644 index 00000000..7088ab6d Binary files /dev/null and b/branding/brands/adt/resources/android/splash/drawable-port-ldpi-screen.png differ diff --git a/branding/brands/adt/resources/android/splash/drawable-port-mdpi-screen.png b/branding/brands/adt/resources/android/splash/drawable-port-mdpi-screen.png new file mode 100644 index 00000000..4438ee1c Binary files /dev/null and b/branding/brands/adt/resources/android/splash/drawable-port-mdpi-screen.png differ diff --git a/branding/brands/adt/resources/android/splash/drawable-port-xhdpi-screen.png b/branding/brands/adt/resources/android/splash/drawable-port-xhdpi-screen.png new file mode 100644 index 00000000..3d050cfd Binary files /dev/null and b/branding/brands/adt/resources/android/splash/drawable-port-xhdpi-screen.png differ diff --git a/branding/brands/adt/resources/android/splash/drawable-port-xxhdpi-screen.png b/branding/brands/adt/resources/android/splash/drawable-port-xxhdpi-screen.png new file mode 100644 index 00000000..928e11de Binary files /dev/null and b/branding/brands/adt/resources/android/splash/drawable-port-xxhdpi-screen.png differ diff --git a/branding/brands/adt/resources/android/splash/drawable-port-xxxhdpi-screen.png b/branding/brands/adt/resources/android/splash/drawable-port-xxxhdpi-screen.png new file mode 100644 index 00000000..a70dd264 Binary files /dev/null and b/branding/brands/adt/resources/android/splash/drawable-port-xxxhdpi-screen.png differ diff --git a/branding/brands/adt/resources/icon.png b/branding/brands/adt/resources/icon.png new file mode 100644 index 00000000..820dd2ce Binary files /dev/null and b/branding/brands/adt/resources/icon.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-1024.png b/branding/brands/adt/resources/ios/icon/icon-1024.png new file mode 100644 index 00000000..d135f4bf Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-1024.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-108@2x.png b/branding/brands/adt/resources/ios/icon/icon-108@2x.png new file mode 100644 index 00000000..12c3a34b Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-108@2x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-20.png b/branding/brands/adt/resources/ios/icon/icon-20.png new file mode 100644 index 00000000..b38a5906 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-20.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-20@2x.png b/branding/brands/adt/resources/ios/icon/icon-20@2x.png new file mode 100644 index 00000000..ef100dc7 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-20@2x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-20@3x.png b/branding/brands/adt/resources/ios/icon/icon-20@3x.png new file mode 100644 index 00000000..0cc7f5d0 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-20@3x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-24@2x.png b/branding/brands/adt/resources/ios/icon/icon-24@2x.png new file mode 100644 index 00000000..ead8b7ff Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-24@2x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-27.5@2x.png b/branding/brands/adt/resources/ios/icon/icon-27.5@2x.png new file mode 100644 index 00000000..677dc689 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-27.5@2x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-29.png b/branding/brands/adt/resources/ios/icon/icon-29.png new file mode 100644 index 00000000..892c93f0 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-29.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-29@2x.png b/branding/brands/adt/resources/ios/icon/icon-29@2x.png new file mode 100644 index 00000000..e26444b4 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-29@2x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-29@3x.png b/branding/brands/adt/resources/ios/icon/icon-29@3x.png new file mode 100644 index 00000000..3266c363 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-29@3x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-40.png b/branding/brands/adt/resources/ios/icon/icon-40.png new file mode 100644 index 00000000..ef100dc7 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-40.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-40@2x.png b/branding/brands/adt/resources/ios/icon/icon-40@2x.png new file mode 100644 index 00000000..e4ad9231 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-40@2x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-40@3x.png b/branding/brands/adt/resources/ios/icon/icon-40@3x.png new file mode 100644 index 00000000..7c83b3ef Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-40@3x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-44@2x.png b/branding/brands/adt/resources/ios/icon/icon-44@2x.png new file mode 100644 index 00000000..c7c40516 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-44@2x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-50.png b/branding/brands/adt/resources/ios/icon/icon-50.png new file mode 100644 index 00000000..e35c7ef2 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-50.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-50@2x.png b/branding/brands/adt/resources/ios/icon/icon-50@2x.png new file mode 100644 index 00000000..c0aa34c3 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-50@2x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-60.png b/branding/brands/adt/resources/ios/icon/icon-60.png new file mode 100644 index 00000000..0cc7f5d0 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-60.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-60@2x.png b/branding/brands/adt/resources/ios/icon/icon-60@2x.png new file mode 100644 index 00000000..7c83b3ef Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-60@2x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-60@3x.png b/branding/brands/adt/resources/ios/icon/icon-60@3x.png new file mode 100644 index 00000000..1fc9ffac Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-60@3x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-72.png b/branding/brands/adt/resources/ios/icon/icon-72.png new file mode 100644 index 00000000..df51e61a Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-72.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-72@2x.png b/branding/brands/adt/resources/ios/icon/icon-72@2x.png new file mode 100644 index 00000000..2120bd68 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-72@2x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-76.png b/branding/brands/adt/resources/ios/icon/icon-76.png new file mode 100644 index 00000000..a8c89d7a Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-76.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-76@2x.png b/branding/brands/adt/resources/ios/icon/icon-76@2x.png new file mode 100644 index 00000000..8972c895 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-76@2x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-83.5@2x.png b/branding/brands/adt/resources/ios/icon/icon-83.5@2x.png new file mode 100644 index 00000000..0d4f6387 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-83.5@2x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-86@2x.png b/branding/brands/adt/resources/ios/icon/icon-86@2x.png new file mode 100644 index 00000000..7fd85a0a Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-86@2x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-98@2x.png b/branding/brands/adt/resources/ios/icon/icon-98@2x.png new file mode 100644 index 00000000..a836d225 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-98@2x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-small.png b/branding/brands/adt/resources/ios/icon/icon-small.png new file mode 100644 index 00000000..892c93f0 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-small.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-small@2x.png b/branding/brands/adt/resources/ios/icon/icon-small@2x.png new file mode 100644 index 00000000..e26444b4 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-small@2x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon-small@3x.png b/branding/brands/adt/resources/ios/icon/icon-small@3x.png new file mode 100644 index 00000000..3266c363 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon-small@3x.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon.png b/branding/brands/adt/resources/ios/icon/icon.png new file mode 100644 index 00000000..b0050572 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon.png differ diff --git a/branding/brands/adt/resources/ios/icon/icon@2x.png b/branding/brands/adt/resources/ios/icon/icon@2x.png new file mode 100644 index 00000000..fa42c4e4 Binary files /dev/null and b/branding/brands/adt/resources/ios/icon/icon@2x.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default-1792h~iphone.png b/branding/brands/adt/resources/ios/splash/Default-1792h~iphone.png new file mode 100644 index 00000000..56b3ccfe Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default-1792h~iphone.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default-2436h.png b/branding/brands/adt/resources/ios/splash/Default-2436h.png new file mode 100644 index 00000000..63884ab3 Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default-2436h.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default-2688h~iphone.png b/branding/brands/adt/resources/ios/splash/Default-2688h~iphone.png new file mode 100644 index 00000000..a839f568 Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default-2688h~iphone.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default-568h@2x~iphone.png b/branding/brands/adt/resources/ios/splash/Default-568h@2x~iphone.png new file mode 100644 index 00000000..746ef3fc Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default-568h@2x~iphone.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default-667h.png b/branding/brands/adt/resources/ios/splash/Default-667h.png new file mode 100644 index 00000000..717284e7 Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default-667h.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default-736h.png b/branding/brands/adt/resources/ios/splash/Default-736h.png new file mode 100644 index 00000000..135b6dba Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default-736h.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default-Landscape-1792h~iphone.png b/branding/brands/adt/resources/ios/splash/Default-Landscape-1792h~iphone.png new file mode 100644 index 00000000..8f333e8e Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default-Landscape-1792h~iphone.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default-Landscape-2436h.png b/branding/brands/adt/resources/ios/splash/Default-Landscape-2436h.png new file mode 100644 index 00000000..031e9ebd Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default-Landscape-2436h.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default-Landscape-2688h~iphone.png b/branding/brands/adt/resources/ios/splash/Default-Landscape-2688h~iphone.png new file mode 100644 index 00000000..07fdc997 Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default-Landscape-2688h~iphone.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default-Landscape-736h.png b/branding/brands/adt/resources/ios/splash/Default-Landscape-736h.png new file mode 100644 index 00000000..d498979c Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default-Landscape-736h.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default-Landscape@2x~ipad.png b/branding/brands/adt/resources/ios/splash/Default-Landscape@2x~ipad.png new file mode 100644 index 00000000..46996d13 Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default-Landscape@2x~ipad.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default-Landscape@~ipadpro.png b/branding/brands/adt/resources/ios/splash/Default-Landscape@~ipadpro.png new file mode 100644 index 00000000..a3a0b5e9 Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default-Landscape@~ipadpro.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default-Landscape~ipad.png b/branding/brands/adt/resources/ios/splash/Default-Landscape~ipad.png new file mode 100644 index 00000000..7677a386 Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default-Landscape~ipad.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default-Portrait@2x~ipad.png b/branding/brands/adt/resources/ios/splash/Default-Portrait@2x~ipad.png new file mode 100644 index 00000000..c9663b25 Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default-Portrait@2x~ipad.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default-Portrait@~ipadpro.png b/branding/brands/adt/resources/ios/splash/Default-Portrait@~ipadpro.png new file mode 100644 index 00000000..64a58186 Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default-Portrait@~ipadpro.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default-Portrait~ipad.png b/branding/brands/adt/resources/ios/splash/Default-Portrait~ipad.png new file mode 100644 index 00000000..395e2745 Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default-Portrait~ipad.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default@2x~iphone.png b/branding/brands/adt/resources/ios/splash/Default@2x~iphone.png new file mode 100644 index 00000000..374afc81 Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default@2x~iphone.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default@2x~universal~anyany.png b/branding/brands/adt/resources/ios/splash/Default@2x~universal~anyany.png new file mode 100644 index 00000000..985cb557 Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default@2x~universal~anyany.png differ diff --git a/branding/brands/adt/resources/ios/splash/Default~iphone.png b/branding/brands/adt/resources/ios/splash/Default~iphone.png new file mode 100644 index 00000000..4438ee1c Binary files /dev/null and b/branding/brands/adt/resources/ios/splash/Default~iphone.png differ diff --git a/branding/brands/adt/resources/splash.png b/branding/brands/adt/resources/splash.png new file mode 100644 index 00000000..8f203050 Binary files /dev/null and b/branding/brands/adt/resources/splash.png differ diff --git a/branding/brands/astag/assets/stylesheets/icons.scss b/branding/brands/astag/assets/stylesheets/icons.scss index ce6e7585..3b1cdedf 100755 --- a/branding/brands/astag/assets/stylesheets/icons.scss +++ b/branding/brands/astag/assets/stylesheets/icons.scss @@ -1,10 +1,10 @@ @font-face { font-family: 'icomoon'; - src: url('../assets/fonts/icomoon.eot?39m2i2'); - src: url('../assets/fonts/icomoon.eot?39m2i2#iefix') format('embedded-opentype'), - url('../assets/fonts/icomoon.ttf?39m2i2') format('truetype'), - url('../assets/fonts/icomoon.woff?39m2i2') format('woff'), - url('../assets/fonts/icomoon.svg?39m2i2#icomoon') format('svg'); + src: url('./assets/fonts/icomoon.eot?39m2i2'); + src: url('./assets/fonts/icomoon.eot?39m2i2#iefix') format('embedded-opentype'), + url('./assets/fonts/icomoon.ttf?39m2i2') format('truetype'), + url('./assets/fonts/icomoon.woff?39m2i2') format('woff'), + url('./assets/fonts/icomoon.svg?39m2i2#icomoon') format('svg'); font-weight: normal; font-style: normal; } @@ -31,7 +31,7 @@ .ion-md-ai-#{$arg}:before , .ion-md-ai-#{$arg}-outline:before { content: $val; - // font-size: + // font-size: // 20px; } } diff --git a/branding/brands/astag/assets/stylesheets/pages.scss b/branding/brands/astag/assets/stylesheets/pages.scss index 1f426a29..84f0c35e 100644 --- a/branding/brands/astag/assets/stylesheets/pages.scss +++ b/branding/brands/astag/assets/stylesheets/pages.scss @@ -38,7 +38,7 @@ // .page_desktop{ // background-image: linear-gradient(to top left, $gradient-col1, $gradient-col1); - background-image: url('../assets/img/header.svg'); + background-image: url('./assets/img/header.svg'); // background-color: map_get($colors, primary); // background-position: top left; background-size: 100vw ; @@ -103,7 +103,7 @@ .page_menu { // background-image: linear-gradient(to top left, $gradient-col1, $gradient-col1); - background-image: url('../assets/img/header.svg'); + background-image: url('./assets/img/header.svg'); // background-color: map_get($colors, primary); // background-position: top left; background-size: 100vw ; @@ -209,7 +209,7 @@ ion-content.page_settings { } .styled-bottom-row{ - background-image: url('../assets/img/header.svg'); + background-image: url('./assets/img/header.svg'); background-size: 100vw ; background-repeat: no-repeat; height: 30vh; @@ -431,11 +431,23 @@ ion-content.page_settings { #webr-icon { height: auto !important; - width: 20vh !important; + width: 60% !important; + + @media screen and (orientation:landscape) { + height: 40% !important; + width: auto !important; + } + margin: auto !important; display: block !important; } + .return-to-app-row { + @media screen and (orientation:landscape) { + padding-top: 0; + } + } + h1 { color: white; } diff --git a/branding/brands/astag/features.json b/branding/brands/astag/features.json new file mode 100644 index 00000000..bdec34c8 --- /dev/null +++ b/branding/brands/astag/features.json @@ -0,0 +1,6 @@ +{ + "disabled": [ + "sahs", + "htlm" + ] +} diff --git a/branding/brands/blacklama/assets/i18n/de.json b/branding/brands/blacklama/assets/i18n/de.json index b2aa8900..8b42e62f 100644 --- a/branding/brands/blacklama/assets/i18n/de.json +++ b/branding/brands/blacklama/assets/i18n/de.json @@ -2,12 +2,12 @@ "test": "der test", "login": { - "hello":"Das Lama grüsst Dich!" + "hello":"Das Lama grüßt Dich!" }, "onboarding": { "title1": "Mit Hilfe des Lamas kannst Du:", "concept1": "Das Lama verbindet Dich mit der ILIAS Installation Deiner Institution, Uni oder Schule. Und nur mit dieser." } - + } diff --git a/branding/brands/blacklama/assets/icon/bin.svg b/branding/brands/blacklama/assets/icon/bin.svg new file mode 100644 index 00000000..62b63e8d --- /dev/null +++ b/branding/brands/blacklama/assets/icon/bin.svg @@ -0,0 +1,18 @@ + + + icon/bin + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/desktop_course.svg b/branding/brands/blacklama/assets/icon/desktop_course.svg index 6566fb60..e570a7ba 100644 --- a/branding/brands/blacklama/assets/icon/desktop_course.svg +++ b/branding/brands/blacklama/assets/icon/desktop_course.svg @@ -1,36 +1,29 @@ - - + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/desktop_favourites.svg b/branding/brands/blacklama/assets/icon/desktop_favourites.svg index 8ffd99e6..bee3d1ee 100644 --- a/branding/brands/blacklama/assets/icon/desktop_favourites.svg +++ b/branding/brands/blacklama/assets/icon/desktop_favourites.svg @@ -1,38 +1,10 @@ - - + - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/branding/brands/blacklama/assets/icon/desktop_menu.svg b/branding/brands/blacklama/assets/icon/desktop_menu.svg index 26036c4f..9aba92a1 100644 --- a/branding/brands/blacklama/assets/icon/desktop_menu.svg +++ b/branding/brands/blacklama/assets/icon/desktop_menu.svg @@ -1,13 +1,8 @@ - - + - - - - + + + diff --git a/branding/brands/blacklama/assets/icon/desktop_news.svg b/branding/brands/blacklama/assets/icon/desktop_news.svg index 5c66659e..fc24f198 100644 --- a/branding/brands/blacklama/assets/icon/desktop_news.svg +++ b/branding/brands/blacklama/assets/icon/desktop_news.svg @@ -1,18 +1,14 @@ - - + - - - - - - - - + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/desktop_repository.svg b/branding/brands/blacklama/assets/icon/desktop_repository.svg index 082240e2..30ee8ded 100644 --- a/branding/brands/blacklama/assets/icon/desktop_repository.svg +++ b/branding/brands/blacklama/assets/icon/desktop_repository.svg @@ -1,15 +1,11 @@ - - + - - - - + + + diff --git a/branding/brands/blacklama/assets/icon/icon_bibl.svg b/branding/brands/blacklama/assets/icon/icon_bibl.svg new file mode 100644 index 00000000..c6c3d402 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_bibl.svg @@ -0,0 +1,84 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_blog.svg b/branding/brands/blacklama/assets/icon/icon_blog.svg new file mode 100644 index 00000000..fb3163cf --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_blog.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_book.svg b/branding/brands/blacklama/assets/icon/icon_book.svg new file mode 100644 index 00000000..8959125f --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_book.svg @@ -0,0 +1,82 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_cat.svg b/branding/brands/blacklama/assets/icon/icon_cat.svg new file mode 100644 index 00000000..5e8c4254 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_cat.svg @@ -0,0 +1,43 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_catr.svg b/branding/brands/blacklama/assets/icon/icon_catr.svg new file mode 100644 index 00000000..47951082 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_catr.svg @@ -0,0 +1,43 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_chtr.svg b/branding/brands/blacklama/assets/icon/icon_chtr.svg new file mode 100644 index 00000000..fb156916 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_chtr.svg @@ -0,0 +1,61 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_cld.svg b/branding/brands/blacklama/assets/icon/icon_cld.svg new file mode 100644 index 00000000..73ca172e --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_cld.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_copa.svg b/branding/brands/blacklama/assets/icon/icon_copa.svg new file mode 100644 index 00000000..9647d1c7 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_copa.svg @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_crs.svg b/branding/brands/blacklama/assets/icon/icon_crs.svg new file mode 100644 index 00000000..e9b5f1b1 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_crs.svg @@ -0,0 +1,42 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_crsr.svg b/branding/brands/blacklama/assets/icon/icon_crsr.svg new file mode 100644 index 00000000..3bce561d --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_crsr.svg @@ -0,0 +1,72 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_crsv.svg b/branding/brands/blacklama/assets/icon/icon_crsv.svg new file mode 100644 index 00000000..e9b5f1b1 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_crsv.svg @@ -0,0 +1,42 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_dcl.svg b/branding/brands/blacklama/assets/icon/icon_dcl.svg new file mode 100644 index 00000000..dbfa3876 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_dcl.svg @@ -0,0 +1,78 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_exc.svg b/branding/brands/blacklama/assets/icon/icon_exc.svg new file mode 100644 index 00000000..1a8452d0 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_exc.svg @@ -0,0 +1,111 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_excv.svg b/branding/brands/blacklama/assets/icon/icon_excv.svg new file mode 100644 index 00000000..1a8452d0 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_excv.svg @@ -0,0 +1,111 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_fallback.svg b/branding/brands/blacklama/assets/icon/icon_fallback.svg new file mode 100644 index 00000000..339a6847 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_fallback.svg @@ -0,0 +1 @@ + diff --git a/branding/brands/blacklama/assets/icon/icon_feed.svg b/branding/brands/blacklama/assets/icon/icon_feed.svg new file mode 100644 index 00000000..c5ddc661 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_feed.svg @@ -0,0 +1,73 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/obj_file.svg b/branding/brands/blacklama/assets/icon/icon_file.svg similarity index 92% rename from branding/brands/iq/assets/icon/obj_file.svg rename to branding/brands/blacklama/assets/icon/icon_file.svg index 8a5c1be5..34c6653c 100644 --- a/branding/brands/iq/assets/icon/obj_file.svg +++ b/branding/brands/blacklama/assets/icon/icon_file.svg @@ -14,10 +14,6 @@ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve"> - - - - diff --git a/branding/brands/blacklama/assets/icon/icon_fold.svg b/branding/brands/blacklama/assets/icon/icon_fold.svg new file mode 100644 index 00000000..bbf1de35 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_fold.svg @@ -0,0 +1,36 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_frm.svg b/branding/brands/blacklama/assets/icon/icon_frm.svg new file mode 100644 index 00000000..eb271a77 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_frm.svg @@ -0,0 +1,63 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_glo.svg b/branding/brands/blacklama/assets/icon/icon_glo.svg new file mode 100644 index 00000000..1674d253 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_glo.svg @@ -0,0 +1,94 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/obj_group.svg b/branding/brands/blacklama/assets/icon/icon_grp.svg similarity index 100% rename from branding/brands/vanilla/assets/icon/obj_group.svg rename to branding/brands/blacklama/assets/icon/icon_grp.svg diff --git a/branding/brands/blacklama/assets/icon/icon_grpr.svg b/branding/brands/blacklama/assets/icon/icon_grpr.svg new file mode 100644 index 00000000..f845c943 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_grpr.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_htlm.svg b/branding/brands/blacklama/assets/icon/icon_htlm.svg new file mode 100644 index 00000000..5f7cb9c4 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_htlm.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_iass.svg b/branding/brands/blacklama/assets/icon/icon_iass.svg new file mode 100644 index 00000000..dd73596c --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_iass.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_itgr.svg b/branding/brands/blacklama/assets/icon/icon_itgr.svg new file mode 100644 index 00000000..35f254bb --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_itgr.svg @@ -0,0 +1,140 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_lm.svg b/branding/brands/blacklama/assets/icon/icon_lm.svg new file mode 100644 index 00000000..5f7cb9c4 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_lm.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_lng.svg b/branding/brands/blacklama/assets/icon/icon_lng.svg new file mode 100644 index 00000000..4ace0772 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_lng.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_lso.svg b/branding/brands/blacklama/assets/icon/icon_lso.svg new file mode 100644 index 00000000..b1559fb8 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_lso.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + icon_lrnng-sqnce-bjct_v3 + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_mail.svg b/branding/brands/blacklama/assets/icon/icon_mail.svg new file mode 100644 index 00000000..1d73e456 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_mail.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_mcst.svg b/branding/brands/blacklama/assets/icon/icon_mcst.svg new file mode 100644 index 00000000..952959c7 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_mcst.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_mep.svg b/branding/brands/blacklama/assets/icon/icon_mep.svg new file mode 100644 index 00000000..7cda84ac --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_mep.svg @@ -0,0 +1,50 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_orgu.svg b/branding/brands/blacklama/assets/icon/icon_orgu.svg new file mode 100644 index 00000000..e7de1a73 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_orgu.svg @@ -0,0 +1,111 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_overlay.svg b/branding/brands/blacklama/assets/icon/icon_overlay.svg new file mode 100644 index 00000000..fccc1e01 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_overlay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/branding/brands/blacklama/assets/icon/icon_poll.svg b/branding/brands/blacklama/assets/icon/icon_poll.svg new file mode 100644 index 00000000..3ae2a993 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_poll.svg @@ -0,0 +1,89 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_prg.svg b/branding/brands/blacklama/assets/icon/icon_prg.svg new file mode 100644 index 00000000..4ac9af93 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_prg.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branding/brands/blacklama/assets/icon/icon_prtf.svg b/branding/brands/blacklama/assets/icon/icon_prtf.svg new file mode 100644 index 00000000..628b9465 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_prtf.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_prtt.svg b/branding/brands/blacklama/assets/icon/icon_prtt.svg new file mode 100644 index 00000000..8e748ade --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_prtt.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_qpl.svg b/branding/brands/blacklama/assets/icon/icon_qpl.svg new file mode 100644 index 00000000..dc6c0656 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_qpl.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_rcat.svg b/branding/brands/blacklama/assets/icon/icon_rcat.svg new file mode 100644 index 00000000..c35e91b8 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_rcat.svg @@ -0,0 +1,84 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_rcrs.svg b/branding/brands/blacklama/assets/icon/icon_rcrs.svg new file mode 100644 index 00000000..46c216d3 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_rcrs.svg @@ -0,0 +1,89 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_rfil.svg b/branding/brands/blacklama/assets/icon/icon_rfil.svg new file mode 100644 index 00000000..05f0e9d8 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_rfil.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_rglo.svg b/branding/brands/blacklama/assets/icon/icon_rglo.svg new file mode 100644 index 00000000..d115ef85 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_rglo.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_rgrp.svg b/branding/brands/blacklama/assets/icon/icon_rgrp.svg new file mode 100644 index 00000000..ed9d9294 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_rgrp.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_rlm.svg b/branding/brands/blacklama/assets/icon/icon_rlm.svg new file mode 100644 index 00000000..8e227cd6 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_rlm.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_role.svg b/branding/brands/blacklama/assets/icon/icon_role.svg new file mode 100644 index 00000000..2d7303ba --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_role.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_rolt.svg b/branding/brands/blacklama/assets/icon/icon_rolt.svg new file mode 100644 index 00000000..b2a503ef --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_rolt.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_rtst.svg b/branding/brands/blacklama/assets/icon/icon_rtst.svg new file mode 100644 index 00000000..09440dde --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_rtst.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_rwik.svg b/branding/brands/blacklama/assets/icon/icon_rwik.svg new file mode 100644 index 00000000..53b9a8da --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_rwik.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_sahs.svg b/branding/brands/blacklama/assets/icon/icon_sahs.svg new file mode 100644 index 00000000..5f7cb9c4 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_sahs.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_scov.svg b/branding/brands/blacklama/assets/icon/icon_scov.svg new file mode 100644 index 00000000..5f7cb9c4 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_scov.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_sess.svg b/branding/brands/blacklama/assets/icon/icon_sess.svg new file mode 100644 index 00000000..ed2b1e64 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_sess.svg @@ -0,0 +1,90 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_spl.svg b/branding/brands/blacklama/assets/icon/icon_spl.svg new file mode 100644 index 00000000..d253f944 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_spl.svg @@ -0,0 +1,72 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_sty.svg b/branding/brands/blacklama/assets/icon/icon_sty.svg new file mode 100644 index 00000000..ecb83343 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_sty.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_svy.svg b/branding/brands/blacklama/assets/icon/icon_svy.svg new file mode 100644 index 00000000..8056ad0e --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_svy.svg @@ -0,0 +1,55 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_tax.svg b/branding/brands/blacklama/assets/icon/icon_tax.svg new file mode 100644 index 00000000..4282bcca --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_tax.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_tst.svg b/branding/brands/blacklama/assets/icon/icon_tst.svg new file mode 100644 index 00000000..78ba4887 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_tst.svg @@ -0,0 +1,48 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_tstv.svg b/branding/brands/blacklama/assets/icon/icon_tstv.svg new file mode 100644 index 00000000..78ba4887 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_tstv.svg @@ -0,0 +1,48 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_usr.svg b/branding/brands/blacklama/assets/icon/icon_usr.svg new file mode 100644 index 00000000..a5ddb6ea --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_usr.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_webr.svg b/branding/brands/blacklama/assets/icon/icon_webr.svg new file mode 100644 index 00000000..54759902 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_webr.svg @@ -0,0 +1,43 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_wfld.svg b/branding/brands/blacklama/assets/icon/icon_wfld.svg new file mode 100644 index 00000000..bbf1de35 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_wfld.svg @@ -0,0 +1,36 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/icon/icon_wiki.svg b/branding/brands/blacklama/assets/icon/icon_wiki.svg new file mode 100644 index 00000000..77372691 --- /dev/null +++ b/branding/brands/blacklama/assets/icon/icon_wiki.svg @@ -0,0 +1,112 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/obj_location.svg b/branding/brands/blacklama/assets/icon/icon_xsrl.svg similarity index 100% rename from branding/brands/vanilla/assets/icon/obj_location.svg rename to branding/brands/blacklama/assets/icon/icon_xsrl.svg diff --git a/branding/brands/blacklama/assets/icon/map_marker_001.png b/branding/brands/blacklama/assets/icon/map_marker_001.png new file mode 100644 index 00000000..ac9e485f Binary files /dev/null and b/branding/brands/blacklama/assets/icon/map_marker_001.png differ diff --git a/branding/brands/blacklama/assets/img/header.svg b/branding/brands/blacklama/assets/img/header.svg index 8b0b8a74..5e010278 100644 --- a/branding/brands/blacklama/assets/img/header.svg +++ b/branding/brands/blacklama/assets/img/header.svg @@ -1,921 +1,296 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/img/login.svg b/branding/brands/blacklama/assets/img/login.svg index 3e5bc273..c4873d9e 100644 --- a/branding/brands/blacklama/assets/img/login.svg +++ b/branding/brands/blacklama/assets/img/login.svg @@ -1,580 +1,313 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/img/login_backup.svg b/branding/brands/blacklama/assets/img/login_backup.svg new file mode 100644 index 00000000..3e5bc273 --- /dev/null +++ b/branding/brands/blacklama/assets/img/login_backup.svg @@ -0,0 +1,580 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/img/pony_exit.svg b/branding/brands/blacklama/assets/img/pony_exit.svg new file mode 100644 index 00000000..826a97de --- /dev/null +++ b/branding/brands/blacklama/assets/img/pony_exit.svg @@ -0,0 +1,299 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/blacklama/assets/img/unifrei.jpg b/branding/brands/blacklama/assets/img/unifrei.jpg new file mode 100644 index 00000000..9261462c Binary files /dev/null and b/branding/brands/blacklama/assets/img/unifrei.jpg differ diff --git a/branding/brands/blacklama/assets/stylesheets/app.scss b/branding/brands/blacklama/assets/stylesheets/app.scss index 109147c2..dea57163 100644 --- a/branding/brands/blacklama/assets/stylesheets/app.scss +++ b/branding/brands/blacklama/assets/stylesheets/app.scss @@ -29,8 +29,6 @@ ion-icon { --padding-right: 0px !important; --padding-end: 0px !important; } - - // Typogrtaphie h1{ diff --git a/branding/brands/blacklama/assets/stylesheets/coloring.scss b/branding/brands/blacklama/assets/stylesheets/coloring.scss index db75ae24..8955e564 100644 --- a/branding/brands/blacklama/assets/stylesheets/coloring.scss +++ b/branding/brands/blacklama/assets/stylesheets/coloring.scss @@ -30,8 +30,9 @@ } } - // colors + --ion-background-color: var(--ion-color-light); + --ion-item-border-color: transparent; --ion-color-primary: #000000; diff --git a/branding/brands/blacklama/assets/stylesheets/pages.scss b/branding/brands/blacklama/assets/stylesheets/pages.scss deleted file mode 100644 index 3b460479..00000000 --- a/branding/brands/blacklama/assets/stylesheets/pages.scss +++ /dev/null @@ -1,446 +0,0 @@ -// CSS for pages -// -------------------------------------------------- -// -// NOTE: @import "coloring"; is called before this file is imported -// If possible, create only one class per page, using the following convention: -// -// -// // [PATH_TO_PAGE] -// // -------------------------------------------------- -// .page_[UNIQUE_PAGENAME] { ... } -// -// -// If multiple classes are needed, use the following convention: -// -// -// // [PATH_TO_PAGE] -// // -------------------------------------------------- -// .page_[UNIQUE_PAGENAME]_[NAME1] { ... } -// .page_[UNIQUE_PAGENAME]_[NAME2] { ... } -// ... -// - -// pages/news -// -------------------------------------------------- -.page_news { - //font-sizes - ion-card-title{ - font-size: 1.2rem; - - } - - ion-card-header{ - padding-bottom: 0px !important; - } -} - - -// pages/favorites -// -------------------------------------------------- -.page_favorites {} - -// pages/object-details -// -------------------------------------------------- -.page_object_details {} - - -// pages/desktop -// -------------------------------------------------- - -.page_desktop { - --background: url('src/assets/img/header.svg') no-repeat top center / 100vw; - .desktop-grid{ - padding-top: 24px; - } - - .tile-image { - height: auto; - width: 60%; - margin: auto; - display: block; - pointer-events: none; - } - - - .tile { - opacity: 0.9; - border-radius: 2%; - } - -} - -// pages/menu -// -------------------------------------------------- - - -.page_menu { - height: 100%; - .menu-bottom-image{ - position: absolute; - bottom: 0; - } - - ion-list{ - padding-top: 0; - padding-bottom: 0; - } - - .privacy-iq{ - display: none - } - .privacy-zwh{ - display: none - } - - .privacy-mfkjusb{ - display: none - } - -} - -// pages/settings -// -------------------------------------------------- -ion-content.page_settings { - - .list > .item-block:first-child { - border: none; - } - - .general { - padding-top: 5px; - } - - .item-toggle { - color: #999; - } - - .item-md.item-input.ng-valid.input-has-value:not(.input-has-focus) .item-inner { - border-bottom: 1px solid #dedede; - box-shadow: none; - } - - ion-label.activeUser { - font-weight: bold; - } - -} - -// pages/info -// -------------------------------------------------- -.page_info { - - ion-card { - margin: 20px 0; - width: 100%; - } - - .reporting-card-iq{ - display: none - } - .version-card-iq{ - display: none - } - -} - -// pages/login -// -------------------------------------------------- -.page_login { - background-color: var(--ion-color-dark); - line-height: 1.8em; - - #version-if-footer { - font-size: 1em; - opacity: 0.2; - } - - .huge-login-header { - padding-top: 5%; - padding-bottom: 5%; - padding-left: 5%; - padding-right: 5%; - font-weight: 800; - font-size: 3.0vh; - color: white; - } - - .login-top-logo-row{ - height: 30vh; - } - - .login-welcome-row{ - height: 10vh; - } - - .login-version-row{ - height: 30vh; - } - - .login-bottom-image{ - display: none; - } - - .styled-bottom-row{ - background-image: url('./assets/img/header.svg'); - background-size: 100vw ; - background-repeat: no-repeat; - height: 30vh; - display: none; - } - .login-top-image{ - // display: none; - - } - - // a, img { - // align-self: flex-end; - // position: absolute; - // bottom: 3%; - // } - - // .vertical-align-content > * { - // display: flex!important; - // align-content: center!important; - // align-items: center!important; - // } - - // .vertical-align-content a, .vertical-align-content img { - // align-self: flex-end; - // position: absolute; - // vertical-align: center; - // } - -} - -// pages/object-list -// -------------------------------------------------- - -.object-presenter-icon{ - height:3rem; -} - -.page_object_list { - - -} - -// learnplace_map -// -------------------------------------------------- -.page_learnplace_map { - - ion-app._gmaps_cdv_ .nav-decor { - background-color: transparent !important; - } - - map { - #map { - height: 101%; - width: 100%; - position: absolute !important; - top: 0 !important; - left: 0 !important; - right: 0 !important; - z-index: 0; - } - } - -} - -// learnplace_content -// -------------------------------------------------- -.page_learnplace_content { - - ion-content { - h1 { - text-align: left; - } - - h2 { - text-align: left; - padding-top: .67em; - } - - p { - font-size: 1.8em; - padding-top: .25em; - text-align: left; - } - } - -} - -// learnplace_accordion -// -------------------------------------------------- -.page_learnplace_accordion { - - accordion-block { - // remove the margin of ion-card inside the accordion - ion-card.accordion ion-card { - margin-left: 0 !important; - margin-right: 0 !important; - width: 100% !important; - } - } - -} - -// pages/onboarding -// -------------------------------------------------- -.page_onboarding { - - ion-slide { - height: 100vh; - flex-direction: column; - } - - img { - // max-width: 50vw; - max-height: 20vh; - overflow: hidden; - } - - - .step-one { - background: var(--ion-color-primary); - color: var(--ion-color-primary-contrast); - font-size: 2vh; - - } - - .step-two { - background: var(--ion-color-primary); - color: var(--ion-color-primary-contrast); - font-size: 2vh; - } - - .step-three { - background: var(--ion-color-primary); - color: var(--ion-color-primary-contrast); - font-size: 2vh; - } - - .link { - color: white; - } - -} - -// app/fallback/open-browser/leave-app.dialog.scss -// -------------------------------------------------- -.page_leave_app_dialog { - - #webr-icon { - height: auto !important; - width: 20vh !important; - margin: auto !important; - display: block !important; - } - - h1 { - color: white; - } - - a { - color: white; - } - - // .fallback-icon{ - // height: 20vw; - // } - -} - -// app/fallback/location/location-fallbackscreen.scss -// -------------------------------------------------- -.page_location_fallbackscreen { - - #marker-icon { - padding-top: 25%; - height: auto !important; - width: 20vh !important; - margin: auto !important; - display: block !important; - - } - - #middle-button { - top: 10%; - // height: auto !important; - // width: 20vh !important; - margin: auto !important; - display: block !important; - - } - -} - -// app/fallback/loading/loading.scss -// -------------------------------------------------- -.page_loading { - @extend .primary-gradient; - - #marker-icon { - padding-top: 25%; - height: auto !important; - width: 20vh !important; - margin: auto !important; - display: block !important; - - } - - #middle-button { - top: 10%; - margin: auto !important; - display: block !important; - } - - .big-spinner { - stroke: #FFFFFF; - fill: #FFFFFF; - } - - .loading-subtitle { - color: white; - } - - ion-progress-bar - { - --progress-background: var(--ion-color-primary-contrast); - --buffer-background: var(--ion-color-primary-contrast); - } - -} - -// app/fallback/synchronization/synchronization.scss -// -------------------------------------------------- -.page_synchronization { - @extend .primary-gradient; - line-height: 1.8em; - text-align: center; - - #sync-logo { - margin-left: 20%; - margin-right: 20%; - max-height: 40%; - } - - #version-if-footer { - font-size: 1em; - opacity: 0.2; - } - - h1 { - color: white; - } - - ion-label { - color: white; - } - - ion-spinner svg * { - stroke: white !important; - } - -} - - diff --git a/branding/brands/blacklama/assets/stylesheets/theme.scss b/branding/brands/blacklama/assets/stylesheets/theme.scss index 7196e762..a442ef09 100644 --- a/branding/brands/blacklama/assets/stylesheets/theme.scss +++ b/branding/brands/blacklama/assets/stylesheets/theme.scss @@ -13,4 +13,3 @@ @import "coloring"; @import "variables"; @import "app"; -@import "pages"; diff --git a/branding/brands/blacklama/assets/stylesheets/variables.scss b/branding/brands/blacklama/assets/stylesheets/variables.scss index 2f230220..686a9dfa 100644 --- a/branding/brands/blacklama/assets/stylesheets/variables.scss +++ b/branding/brands/blacklama/assets/stylesheets/variables.scss @@ -1,4 +1,14 @@ +:root { + // login + --page-login-bottom-row-dispay: none; + // menu + --page-menu-bottom-image-display: block; + + // info + --page-version-card-custom: block; + --page-info-card-community: none; +} @keyframes bounce { @@ -74,7 +84,7 @@ color: white !important; font-weight: bold; font-size: 3.75vmax; - + // width: 60%; // padding-left: 20%; // padding-right: 20%; @@ -82,7 +92,7 @@ position: relative; padding-bottom: 1vh; padding-top: 3vh; - z-index: -9999 !important; + z-index: -9999 !important; } .desktop-content{ @@ -93,9 +103,12 @@ background-repeat: no-repeat; } -// .learnplace-tabs{ +.news-title { + width:100%; + white-space: pre-line; +} -// $tabs-ios-tab-icon-color-active: map_get($colors, primary); -// $tabs-ios-tab-icon-color: #942a2a; - -// } +.very-small-font{ + font-size: 0.5em; + text-align: center; +} diff --git a/branding/brands/blacklama/build.json b/branding/brands/blacklama/build.json index 36cd916f..3ef35dc6 100644 --- a/branding/brands/blacklama/build.json +++ b/branding/brands/blacklama/build.json @@ -1,14 +1,14 @@ { "ios": { "debug": { - "codeSignIdentity": "iPhone Developer", - "provisioningProfile": "201809_Pegasus", + "codeSignIdentity": "Apple Development", + "provisioningProfile": "5c78ae13-f5c9-401d-8b7a-eda20c5d3088", "developmentTeam": "ZQ66BZ3DPL", "packageType": "development" }, "release": { - "codeSignIdentity": "iPhone Distribution", - "provisioningProfile": "ILIAS offline Distribution", + "codeSignIdentity": "Apple Distribution", + "provisioningProfile": "240a295b-088e-4c2e-a1df-f4910b5f6f3e", "developmentTeam": "ZQ66BZ3DPL", "packageType": "app-store" } diff --git a/branding/brands/blacklama/config.json b/branding/brands/blacklama/config.json index 17e0a65e..47d52bfc 100644 --- a/branding/brands/blacklama/config.json +++ b/branding/brands/blacklama/config.json @@ -1,5 +1,5 @@ { - "ilias_installation_ids": [24,7], + "ilias_installation_ids": [26,24,7], "projectConfig": { "id": "ch.studerraimann.ilias.fhoevnrw", "name": "Black Lama", diff --git a/branding/brands/blacklama/features.json b/branding/brands/blacklama/features.json new file mode 100644 index 00000000..bdec34c8 --- /dev/null +++ b/branding/brands/blacklama/features.json @@ -0,0 +1,6 @@ +{ + "disabled": [ + "sahs", + "htlm" + ] +} diff --git a/branding/brands/blacklama/resources/ios/icon/icon-1024.png b/branding/brands/blacklama/resources/ios/icon/icon-1024.png index 0ca5f33c..f9eaca64 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-1024.png and b/branding/brands/blacklama/resources/ios/icon/icon-1024.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-108@2x.png b/branding/brands/blacklama/resources/ios/icon/icon-108@2x.png index 09b57d28..2a6c51c8 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-108@2x.png and b/branding/brands/blacklama/resources/ios/icon/icon-108@2x.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-20.png b/branding/brands/blacklama/resources/ios/icon/icon-20.png index 805c7eda..bf3d2a5a 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-20.png and b/branding/brands/blacklama/resources/ios/icon/icon-20.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-20@2x.png b/branding/brands/blacklama/resources/ios/icon/icon-20@2x.png index a04a6395..7e9aed26 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-20@2x.png and b/branding/brands/blacklama/resources/ios/icon/icon-20@2x.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-20@3x.png b/branding/brands/blacklama/resources/ios/icon/icon-20@3x.png index 40b2e169..a8577848 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-20@3x.png and b/branding/brands/blacklama/resources/ios/icon/icon-20@3x.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-24@2x.png b/branding/brands/blacklama/resources/ios/icon/icon-24@2x.png index 5d043f5c..5145ce21 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-24@2x.png and b/branding/brands/blacklama/resources/ios/icon/icon-24@2x.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-27.5@2x.png b/branding/brands/blacklama/resources/ios/icon/icon-27.5@2x.png index f2ea8822..748cb995 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-27.5@2x.png and b/branding/brands/blacklama/resources/ios/icon/icon-27.5@2x.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-29.png b/branding/brands/blacklama/resources/ios/icon/icon-29.png index fb7cab82..34ccbcfb 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-29.png and b/branding/brands/blacklama/resources/ios/icon/icon-29.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-29@2x.png b/branding/brands/blacklama/resources/ios/icon/icon-29@2x.png index f57f7f2c..37bd6757 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-29@2x.png and b/branding/brands/blacklama/resources/ios/icon/icon-29@2x.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-29@3x.png b/branding/brands/blacklama/resources/ios/icon/icon-29@3x.png index ee4d64a7..431b6954 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-29@3x.png and b/branding/brands/blacklama/resources/ios/icon/icon-29@3x.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-40.png b/branding/brands/blacklama/resources/ios/icon/icon-40.png index a04a6395..7e9aed26 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-40.png and b/branding/brands/blacklama/resources/ios/icon/icon-40.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-40@2x.png b/branding/brands/blacklama/resources/ios/icon/icon-40@2x.png index b326756c..ba604183 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-40@2x.png and b/branding/brands/blacklama/resources/ios/icon/icon-40@2x.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-40@3x.png b/branding/brands/blacklama/resources/ios/icon/icon-40@3x.png index 6417eb03..a70b9fa8 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-40@3x.png and b/branding/brands/blacklama/resources/ios/icon/icon-40@3x.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-44@2x.png b/branding/brands/blacklama/resources/ios/icon/icon-44@2x.png index 882077a7..c681372d 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-44@2x.png and b/branding/brands/blacklama/resources/ios/icon/icon-44@2x.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-50.png b/branding/brands/blacklama/resources/ios/icon/icon-50.png index 345cac95..dce64a2a 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-50.png and b/branding/brands/blacklama/resources/ios/icon/icon-50.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-50@2x.png b/branding/brands/blacklama/resources/ios/icon/icon-50@2x.png index 22f98a2d..3c955cd7 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-50@2x.png and b/branding/brands/blacklama/resources/ios/icon/icon-50@2x.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-60.png b/branding/brands/blacklama/resources/ios/icon/icon-60.png index 40b2e169..a8577848 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-60.png and b/branding/brands/blacklama/resources/ios/icon/icon-60.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-60@2x.png b/branding/brands/blacklama/resources/ios/icon/icon-60@2x.png index 6417eb03..a70b9fa8 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-60@2x.png and b/branding/brands/blacklama/resources/ios/icon/icon-60@2x.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-60@3x.png b/branding/brands/blacklama/resources/ios/icon/icon-60@3x.png index d02db9bf..9fe924aa 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-60@3x.png and b/branding/brands/blacklama/resources/ios/icon/icon-60@3x.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-72.png b/branding/brands/blacklama/resources/ios/icon/icon-72.png index 46b9c9d7..0e74dbb8 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-72.png and b/branding/brands/blacklama/resources/ios/icon/icon-72.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-72@2x.png b/branding/brands/blacklama/resources/ios/icon/icon-72@2x.png index f6caffe9..fc345758 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-72@2x.png and b/branding/brands/blacklama/resources/ios/icon/icon-72@2x.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-76.png b/branding/brands/blacklama/resources/ios/icon/icon-76.png index 08668dc2..177e8c1c 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-76.png and b/branding/brands/blacklama/resources/ios/icon/icon-76.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-76@2x.png b/branding/brands/blacklama/resources/ios/icon/icon-76@2x.png index b3e33236..a78e144e 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-76@2x.png and b/branding/brands/blacklama/resources/ios/icon/icon-76@2x.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-83.5@2x.png b/branding/brands/blacklama/resources/ios/icon/icon-83.5@2x.png index 54db566d..80b57a3e 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-83.5@2x.png and b/branding/brands/blacklama/resources/ios/icon/icon-83.5@2x.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-86@2x.png b/branding/brands/blacklama/resources/ios/icon/icon-86@2x.png index 38e41e65..85c7c528 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-86@2x.png and b/branding/brands/blacklama/resources/ios/icon/icon-86@2x.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon-98@2x.png b/branding/brands/blacklama/resources/ios/icon/icon-98@2x.png index b2ed0532..23b90410 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon-98@2x.png and b/branding/brands/blacklama/resources/ios/icon/icon-98@2x.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon.png b/branding/brands/blacklama/resources/ios/icon/icon.png index e8102690..be53fe98 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon.png and b/branding/brands/blacklama/resources/ios/icon/icon.png differ diff --git a/branding/brands/blacklama/resources/ios/icon/icon@2x.png b/branding/brands/blacklama/resources/ios/icon/icon@2x.png index 3927692b..d9bc0955 100644 Binary files a/branding/brands/blacklama/resources/ios/icon/icon@2x.png and b/branding/brands/blacklama/resources/ios/icon/icon@2x.png differ diff --git a/branding/brands/fau/assets/icon/bin.svg b/branding/brands/fau/assets/icon/bin.svg new file mode 100644 index 00000000..62b63e8d --- /dev/null +++ b/branding/brands/fau/assets/icon/bin.svg @@ -0,0 +1,18 @@ + + + icon/bin + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/desktop_course.svg b/branding/brands/fau/assets/icon/desktop_course.svg index 41c56add..e570a7ba 100644 --- a/branding/brands/fau/assets/icon/desktop_course.svg +++ b/branding/brands/fau/assets/icon/desktop_course.svg @@ -1,34 +1,29 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/desktop_favourites.svg b/branding/brands/fau/assets/icon/desktop_favourites.svg index c1f8da1a..bee3d1ee 100644 --- a/branding/brands/fau/assets/icon/desktop_favourites.svg +++ b/branding/brands/fau/assets/icon/desktop_favourites.svg @@ -1,14 +1,10 @@ - - - - + + diff --git a/branding/brands/fau/assets/icon/desktop_menu.svg b/branding/brands/fau/assets/icon/desktop_menu.svg index 00f97277..9aba92a1 100644 --- a/branding/brands/fau/assets/icon/desktop_menu.svg +++ b/branding/brands/fau/assets/icon/desktop_menu.svg @@ -1,11 +1,8 @@ - - - - - + + + diff --git a/branding/brands/fau/assets/icon/desktop_news.svg b/branding/brands/fau/assets/icon/desktop_news.svg index 8d6352b6..fc24f198 100644 --- a/branding/brands/fau/assets/icon/desktop_news.svg +++ b/branding/brands/fau/assets/icon/desktop_news.svg @@ -1,18 +1,14 @@ - - - - - - - - - + + + + + + + diff --git a/branding/brands/fau/assets/icon/desktop_repository.svg b/branding/brands/fau/assets/icon/desktop_repository.svg index f6de13c0..30ee8ded 100644 --- a/branding/brands/fau/assets/icon/desktop_repository.svg +++ b/branding/brands/fau/assets/icon/desktop_repository.svg @@ -1,15 +1,11 @@ - - - - - + + + diff --git a/branding/brands/fau/assets/icon/icon_bibl.svg b/branding/brands/fau/assets/icon/icon_bibl.svg new file mode 100644 index 00000000..c6c3d402 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_bibl.svg @@ -0,0 +1,84 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_blog.svg b/branding/brands/fau/assets/icon/icon_blog.svg new file mode 100644 index 00000000..fb3163cf --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_blog.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_book.svg b/branding/brands/fau/assets/icon/icon_book.svg new file mode 100644 index 00000000..8959125f --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_book.svg @@ -0,0 +1,82 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_cat.svg b/branding/brands/fau/assets/icon/icon_cat.svg new file mode 100644 index 00000000..5e8c4254 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_cat.svg @@ -0,0 +1,43 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_catr.svg b/branding/brands/fau/assets/icon/icon_catr.svg new file mode 100644 index 00000000..47951082 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_catr.svg @@ -0,0 +1,43 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_chtr.svg b/branding/brands/fau/assets/icon/icon_chtr.svg new file mode 100644 index 00000000..fb156916 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_chtr.svg @@ -0,0 +1,61 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_cld.svg b/branding/brands/fau/assets/icon/icon_cld.svg new file mode 100644 index 00000000..73ca172e --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_cld.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_copa.svg b/branding/brands/fau/assets/icon/icon_copa.svg new file mode 100644 index 00000000..9647d1c7 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_copa.svg @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_crs.svg b/branding/brands/fau/assets/icon/icon_crs.svg new file mode 100644 index 00000000..e9b5f1b1 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_crs.svg @@ -0,0 +1,42 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_crsr.svg b/branding/brands/fau/assets/icon/icon_crsr.svg new file mode 100644 index 00000000..3bce561d --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_crsr.svg @@ -0,0 +1,72 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_crsv.svg b/branding/brands/fau/assets/icon/icon_crsv.svg new file mode 100644 index 00000000..e9b5f1b1 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_crsv.svg @@ -0,0 +1,42 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_dcl.svg b/branding/brands/fau/assets/icon/icon_dcl.svg new file mode 100644 index 00000000..dbfa3876 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_dcl.svg @@ -0,0 +1,78 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_exc.svg b/branding/brands/fau/assets/icon/icon_exc.svg new file mode 100644 index 00000000..1a8452d0 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_exc.svg @@ -0,0 +1,111 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_excv.svg b/branding/brands/fau/assets/icon/icon_excv.svg new file mode 100644 index 00000000..1a8452d0 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_excv.svg @@ -0,0 +1,111 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_fallback.svg b/branding/brands/fau/assets/icon/icon_fallback.svg new file mode 100644 index 00000000..e0f1d00b --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_fallback.svg @@ -0,0 +1 @@ + diff --git a/branding/brands/fau/assets/icon/icon_feed.svg b/branding/brands/fau/assets/icon/icon_feed.svg new file mode 100644 index 00000000..c5ddc661 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_feed.svg @@ -0,0 +1,73 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_file.svg b/branding/brands/fau/assets/icon/icon_file.svg new file mode 100644 index 00000000..34c6653c --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_file.svg @@ -0,0 +1,60 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_fold.svg b/branding/brands/fau/assets/icon/icon_fold.svg new file mode 100644 index 00000000..bbf1de35 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_fold.svg @@ -0,0 +1,36 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_frm.svg b/branding/brands/fau/assets/icon/icon_frm.svg new file mode 100644 index 00000000..eb271a77 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_frm.svg @@ -0,0 +1,63 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_glo.svg b/branding/brands/fau/assets/icon/icon_glo.svg new file mode 100644 index 00000000..1674d253 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_glo.svg @@ -0,0 +1,94 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_grp.svg b/branding/brands/fau/assets/icon/icon_grp.svg new file mode 100644 index 00000000..0434afb2 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_grp.svg @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_grpr.svg b/branding/brands/fau/assets/icon/icon_grpr.svg new file mode 100644 index 00000000..f845c943 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_grpr.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_htlm.svg b/branding/brands/fau/assets/icon/icon_htlm.svg new file mode 100644 index 00000000..5f7cb9c4 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_htlm.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_iass.svg b/branding/brands/fau/assets/icon/icon_iass.svg new file mode 100644 index 00000000..dd73596c --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_iass.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_itgr.svg b/branding/brands/fau/assets/icon/icon_itgr.svg new file mode 100644 index 00000000..35f254bb --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_itgr.svg @@ -0,0 +1,140 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_lm.svg b/branding/brands/fau/assets/icon/icon_lm.svg new file mode 100644 index 00000000..5f7cb9c4 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_lm.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_lng.svg b/branding/brands/fau/assets/icon/icon_lng.svg new file mode 100644 index 00000000..4ace0772 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_lng.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_lso.svg b/branding/brands/fau/assets/icon/icon_lso.svg new file mode 100644 index 00000000..b1559fb8 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_lso.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + icon_lrnng-sqnce-bjct_v3 + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_mail.svg b/branding/brands/fau/assets/icon/icon_mail.svg new file mode 100644 index 00000000..1d73e456 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_mail.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_mcst.svg b/branding/brands/fau/assets/icon/icon_mcst.svg new file mode 100644 index 00000000..952959c7 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_mcst.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_mep.svg b/branding/brands/fau/assets/icon/icon_mep.svg new file mode 100644 index 00000000..7cda84ac --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_mep.svg @@ -0,0 +1,50 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_orgu.svg b/branding/brands/fau/assets/icon/icon_orgu.svg new file mode 100644 index 00000000..e7de1a73 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_orgu.svg @@ -0,0 +1,111 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_overlay.svg b/branding/brands/fau/assets/icon/icon_overlay.svg new file mode 100644 index 00000000..fccc1e01 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_overlay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/branding/brands/fau/assets/icon/icon_poll.svg b/branding/brands/fau/assets/icon/icon_poll.svg new file mode 100644 index 00000000..3ae2a993 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_poll.svg @@ -0,0 +1,89 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_prg.svg b/branding/brands/fau/assets/icon/icon_prg.svg new file mode 100644 index 00000000..4ac9af93 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_prg.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branding/brands/fau/assets/icon/icon_prtf.svg b/branding/brands/fau/assets/icon/icon_prtf.svg new file mode 100644 index 00000000..628b9465 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_prtf.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_prtt.svg b/branding/brands/fau/assets/icon/icon_prtt.svg new file mode 100644 index 00000000..8e748ade --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_prtt.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_qpl.svg b/branding/brands/fau/assets/icon/icon_qpl.svg new file mode 100644 index 00000000..dc6c0656 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_qpl.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_rcat.svg b/branding/brands/fau/assets/icon/icon_rcat.svg new file mode 100644 index 00000000..c35e91b8 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_rcat.svg @@ -0,0 +1,84 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_rcrs.svg b/branding/brands/fau/assets/icon/icon_rcrs.svg new file mode 100644 index 00000000..46c216d3 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_rcrs.svg @@ -0,0 +1,89 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_rfil.svg b/branding/brands/fau/assets/icon/icon_rfil.svg new file mode 100644 index 00000000..05f0e9d8 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_rfil.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_rglo.svg b/branding/brands/fau/assets/icon/icon_rglo.svg new file mode 100644 index 00000000..d115ef85 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_rglo.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_rgrp.svg b/branding/brands/fau/assets/icon/icon_rgrp.svg new file mode 100644 index 00000000..ed9d9294 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_rgrp.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_rlm.svg b/branding/brands/fau/assets/icon/icon_rlm.svg new file mode 100644 index 00000000..8e227cd6 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_rlm.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_role.svg b/branding/brands/fau/assets/icon/icon_role.svg new file mode 100644 index 00000000..2d7303ba --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_role.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_rolt.svg b/branding/brands/fau/assets/icon/icon_rolt.svg new file mode 100644 index 00000000..b2a503ef --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_rolt.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_rtst.svg b/branding/brands/fau/assets/icon/icon_rtst.svg new file mode 100644 index 00000000..09440dde --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_rtst.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_rwik.svg b/branding/brands/fau/assets/icon/icon_rwik.svg new file mode 100644 index 00000000..53b9a8da --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_rwik.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_sahs.svg b/branding/brands/fau/assets/icon/icon_sahs.svg new file mode 100644 index 00000000..5f7cb9c4 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_sahs.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_scov.svg b/branding/brands/fau/assets/icon/icon_scov.svg new file mode 100644 index 00000000..5f7cb9c4 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_scov.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_sess.svg b/branding/brands/fau/assets/icon/icon_sess.svg new file mode 100644 index 00000000..ed2b1e64 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_sess.svg @@ -0,0 +1,90 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_spl.svg b/branding/brands/fau/assets/icon/icon_spl.svg new file mode 100644 index 00000000..d253f944 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_spl.svg @@ -0,0 +1,72 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_sty.svg b/branding/brands/fau/assets/icon/icon_sty.svg new file mode 100644 index 00000000..ecb83343 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_sty.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_svy.svg b/branding/brands/fau/assets/icon/icon_svy.svg new file mode 100644 index 00000000..8056ad0e --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_svy.svg @@ -0,0 +1,55 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_tax.svg b/branding/brands/fau/assets/icon/icon_tax.svg new file mode 100644 index 00000000..4282bcca --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_tax.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_tst.svg b/branding/brands/fau/assets/icon/icon_tst.svg new file mode 100644 index 00000000..78ba4887 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_tst.svg @@ -0,0 +1,48 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_tstv.svg b/branding/brands/fau/assets/icon/icon_tstv.svg new file mode 100644 index 00000000..78ba4887 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_tstv.svg @@ -0,0 +1,48 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_usr.svg b/branding/brands/fau/assets/icon/icon_usr.svg new file mode 100644 index 00000000..a5ddb6ea --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_usr.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_webr.svg b/branding/brands/fau/assets/icon/icon_webr.svg new file mode 100644 index 00000000..54759902 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_webr.svg @@ -0,0 +1,43 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_wfld.svg b/branding/brands/fau/assets/icon/icon_wfld.svg new file mode 100644 index 00000000..bbf1de35 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_wfld.svg @@ -0,0 +1,36 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/fau/assets/icon/icon_wiki.svg b/branding/brands/fau/assets/icon/icon_wiki.svg new file mode 100644 index 00000000..77372691 --- /dev/null +++ b/branding/brands/fau/assets/icon/icon_wiki.svg @@ -0,0 +1,112 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/zwh/assets/icon/obj_location.svg b/branding/brands/fau/assets/icon/icon_xsrl.svg similarity index 100% rename from branding/brands/zwh/assets/icon/obj_location.svg rename to branding/brands/fau/assets/icon/icon_xsrl.svg diff --git a/branding/brands/fau/assets/icon/obj_link.svg b/branding/brands/fau/assets/icon/obj_link.svg deleted file mode 100644 index 6111b2b0..00000000 --- a/branding/brands/fau/assets/icon/obj_link.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/branding/brands/fau/assets/stylesheets/app.scss b/branding/brands/fau/assets/stylesheets/app.scss index b230a4e1..866acbc2 100644 --- a/branding/brands/fau/assets/stylesheets/app.scss +++ b/branding/brands/fau/assets/stylesheets/app.scss @@ -30,7 +30,6 @@ ion-icon { --padding-end: 0px !important; } - // Typogrtaphie h1{ diff --git a/branding/brands/fau/assets/stylesheets/coloring.scss b/branding/brands/fau/assets/stylesheets/coloring.scss index 9ff0f81e..3754c0b4 100644 --- a/branding/brands/fau/assets/stylesheets/coloring.scss +++ b/branding/brands/fau/assets/stylesheets/coloring.scss @@ -32,6 +32,8 @@ // colors + --ion-background-color: var(--ion-color-light); + --ion-item-border-color: transparent; --ion-color-primary: #024275; diff --git a/branding/brands/fau/assets/stylesheets/pages.scss b/branding/brands/fau/assets/stylesheets/pages.scss deleted file mode 100644 index 4b560090..00000000 --- a/branding/brands/fau/assets/stylesheets/pages.scss +++ /dev/null @@ -1,1055 +0,0 @@ -// CSS for pages -// -------------------------------------------------- -// -// NOTE: @import "coloring"; is called before this file is imported -// If possible, create only one class per page, using the following convention: -// -// -// // [PATH_TO_PAGE] -// // -------------------------------------------------- -// .page_[UNIQUE_PAGENAME] { ... } -// -// -// If multiple classes are needed, use the following convention: -// -// -// // [PATH_TO_PAGE] -// // -------------------------------------------------- -// .page_[UNIQUE_PAGENAME]_[NAME1] { ... } -// .page_[UNIQUE_PAGENAME]_[NAME2] { ... } -// ... -// - -// pages/news -// -------------------------------------------------- -.page_news { - //font-sizes - ion-card-title{ - font-size: 1.2rem; - - } - - ion-card-header{ - padding-bottom: 0px !important; - } - - .object-presenter-icon{ - height:4rem; - } -} - - -// pages/favorites -// -------------------------------------------------- -.page_favorites {} - -// pages/object-details -// -------------------------------------------------- -.page_object_details {} - - -// pages/desktop -// -------------------------------------------------- - -.page_desktop { - --background: url('src/assets/img/header.svg') no-repeat top center / 100vw; - .desktop-grid{ - padding-top: 24px; - } - - .tile-image { - height: auto; - width: 60%; - margin: auto; - display: block; - pointer-events: none; - } - - - .tile { - opacity: 0.9; - border-radius: 2%; - } - -} - -// pages/menu -// -------------------------------------------------- - - -.page_menu { - height: 100%; - .menu-bottom-image{ - position: absolute; - bottom: 0; - } - - ion-list{ - padding-top: 0; - padding-bottom: 0; - } - - .privacy-iq{ - display: none - } - .privacy-zwh{ - display: none - } - - .privacy-mfkjusb{ - display: none - } - -} - -// pages/settings -// -------------------------------------------------- -ion-content.page_settings { - - .list > .item-block:first-child { - border: none; - } - - .general { - padding-top: 5px; - } - - .item-toggle { - color: #999; - } - - .item-md.item-input.ng-valid.input-has-value:not(.input-has-focus) .item-inner { - border-bottom: 1px solid #dedede; - box-shadow: none; - } - - ion-label.activeUser { - font-weight: bold; - } - -} - -// pages/info -// -------------------------------------------------- -.page_info { - - ion-card { - margin: 20px 0; - width: 100%; - } - - .reporting-card-iq{ - display: none - } - .version-card-iq{ - display: none - } - -} - -// pages/login -// -------------------------------------------------- -.page_login { - background-color: var(--ion-color-primary); - line-height: 1.8em; - - #version-if-footer { - font-size: 1em; - opacity: 0.2; - } - - .huge-login-header { - padding-top: 5%; - padding-bottom: 5%; - font-weight: 800; - font-size: 3.0vh; - color: var(--ion-color-primary-contrast); - } - - .login-top-logo-row{ - height: 30vh; - } - - .login-welcome-row{ - height: 10vh; - } - - .login-version-row{ - height: 30vh; - } - - .login-bottom-image{ - display: none; - } - - .styled-bottom-row{ - background-image: url('./assets/img/header.svg'); - background-size: 100vw ; - background-repeat: no-repeat; - height: 30vh; - } - .login-top-image{ - // display: none; - - } - - // a, img { - // align-self: flex-end; - // position: absolute; - // bottom: 3%; - // } - - // .vertical-align-content > * { - // display: flex!important; - // align-content: center!important; - // align-items: center!important; - // } - - // .vertical-align-content a, .vertical-align-content img { - // align-self: flex-end; - // position: absolute; - // vertical-align: center; - // } - -} - -// pages/object-list -// -------------------------------------------------- -.page_object_list { - .object-presenter-icon{ - height:3rem; - } - - .loading-text { - padding: 10px 0 10px 10px; - } - - .badge-link { - position: absolute; - top: 5%; - left:40%; - } - - .offline-image{ - width: 20%; - } -} - -// learnplace_map -// -------------------------------------------------- -.page_learnplace_map { - - #map { - height: 100%; - width: 100%; - position: absolute !important; - top: 0 !important; - left: 0 !important; - right: 0 !important; - z-index: 0; - } -} - -// learnplace_content -// -------------------------------------------------- -.page_learnplace_content { - - ion-content { - h1 { - text-align: left; - } - - h2 { - text-align: left; - padding-top: .67em; - } - - p { - font-size: 1.8em; - padding-top: .25em; - text-align: left; - } - } - -} - -// learnplace_accordion -// -------------------------------------------------- -.page_learnplace_accordion { - - accordion-block { - // remove the margin of ion-card inside the accordion - ion-card.accordion ion-card { - margin-left: 0 !important; - margin-right: 0 !important; - width: 100% !important; - } - } - -} - -// pages/onboarding -// -------------------------------------------------- -.page_onboarding { - - ion-slide { - height: 100vh; - flex-direction: column; - } - - img { - // max-width: 50vw; - max-height: 20vh; - overflow: hidden; - } - - - .step-one { - background: var(--ion-color-primary); - color: var(--ion-color-primary-contrast); - font-size: 2vh; - - } - - .step-two { - background: var(--ion-color-primary); - color: var(--ion-color-primary-contrast); - font-size: 2vh; - } - - .step-three { - background: var(--ion-color-primary); - color: var(--ion-color-primary-contrast); - font-size: 2vh; - } - - .link { - color: var(--ion-color-primary-contrast); - } - -} - -// app/fallback/open-browser/leave-app.dialog.scss -// -------------------------------------------------- -.page_leave_app_dialog { - - #webr-icon { - height: auto !important; - width: 20vh !important; - margin: auto !important; - display: block !important; - } - - h1 { - color: var(--ion-color-primary-contrast); - } - - a { - color: var(--ion-color-primary-contrast); - } - - // .fallback-icon{ - // height: 20vw; - // } - -} - -// app/fallback/location/location-fallbackscreen.scss -// -------------------------------------------------- -.page_location_fallbackscreen { - - #marker-icon { - padding-top: 25%; - height: auto !important; - width: 20vh !important; - margin: auto !important; - display: block !important; - - } - - #middle-button { - top: 10%; - // height: auto !important; - // width: 20vh !important; - margin: auto !important; - display: block !important; - - } - -} - -// app/fallback/loading/loading.scss -// -------------------------------------------------- -.page_loading { - // colors -$lightsOnBg: #FEF4AD; -$lightsOutBg: #F8AE39; -$candleColor:#FFFFFD; -$candleShadow:#673C63; -$floorColor:#AD9598; -$fireColor:#FF9800; -$fireColor2:#FFC107; -$fireShadow: #E7C980; -$angerColor:#F44336; -$primaryColor: #FEF4AD; -$secondaryColor:rgb(0,0,0); -$candleInsetShadow:#95c6f2; -$smokeColor:grey; -//sizes -$floorWidth: 350px; -$floorHeight:5px; -$candleWidth:35px; -$candleHeight:100px; -$stickWidth:3px; -$stickHeight:15px; - -body -{ - background-color:$lightsOnBg; - animation:change-background 3s infinite linear; -} - -ion-progress-bar -{ - --progress-background: var(--ion-color-primary-contrast); - --buffer-background: var(--ion-color-primary-contrast); -} - -.wrapper -{ - position:absolute; - left:50%; - top:70%; - transform:scale(1.5,1.5) translate(-50%,-50%); -} -.floor -{ - position:absolute; - left:50%; - top:50%; - width:$floorWidth; - height:$floorHeight; - background:$candleShadow; - transform:translate(-50%,-50%); - box-shadow:0px 2px 5px #111; - z-index:2; -} -.candles -{ - position:absolute; - left:50%; - top:50%; - width:250px; - height:150px; - // background:$secondaryColor; - // opacity:0.8; - transform:translate(-50%,-100%); - z-index:1; -} -.candle1 -{ - position:absolute; - left:50%; - top:50%; - width:$candleWidth; - height:$candleHeight; - background:#fff; - border:3px solid $candleShadow; - border-bottom:0px; - border-radius:3px; - transform-origin:center right; - transform:translate(60%,-25%); - box-shadow: -2px 0px 0px $candleInsetShadow inset; - animation:expand-body 3s infinite linear; -} -.candle1__stick,.candle2__stick -{ - position:absolute; - left:50%; - top:0%; - width:$stickWidth; - height:$stickHeight; - background:$candleShadow; - border-radius:8px; - transform:translate(-50%,-100%); -} -.candle2__stick -{ - height:$stickHeight*0.8; - transform-origin: bottom center; - animation:stick-animation 3s infinite linear; -} -.candle1__eyes,.candle2__eyes -{ - position:absolute; - left:50%; - top:0%; - width:$candleWidth; - height:30px; - transform:translate(-50%,0%); -} -.candle1__eyes-one, -{ - position:absolute; - left:30%; - top:20%; - width:5px; - height:5px; - border-radius:100%; - background:$candleShadow; - transform:translate(-70%,0%); - animation:blink-eyes 3s infinite linear; -} -.candle1__eyes-two -{ - position:absolute; - left:70%; - top:20%; - width:5px; - height:5px; - border-radius:100%; - background:$candleShadow; - transform:translate(-70%,0%); - animation:blink-eyes 3s infinite linear; -} -.candle1__mouth -{ - position:absolute; - left:40%; - top:20%; - width:0px; - height:0px; - border-radius:20px; - background:$candleShadow; - transform:translate(-50%,-50%); - animation: uff 3s infinite linear; -} -.candle__smoke-one -{ - position:absolute; - left:30%; - top:50%; - width:30px; - height:3px; - background:$smokeColor; - transform:translate(-50%,-50%); - animation:move-left 3s infinite linear; -} -.candle__smoke-two -{ - position:absolute; - left:30%; - top:40%; - width:10px; - height:10px; - border-radius:10px; - background:$smokeColor; - transform:translate(-50%,-50%); - animation:move-top 3s infinite linear; -} - -.candle2 -{ - position:absolute; - left:20%; - top:65%; - width:$candleWidth*1.20; - height:$candleHeight*0.60; - background:#fff; - border:3px solid $candleShadow; - border-bottom:0px; - border-radius:3px; - transform:translate(60%,-15%); - transform-origin:center right; - box-shadow: -2px 0px 0px $candleInsetShadow inset; - animation: shake-left 3s infinite linear; -} -.candle2__eyes-one -{ - position:absolute; - left:30%; - top:50%; - width:5px; - height:5px; - display:inline-block; - border:0px solid $candleShadow; - border-radius:100%; - float:left; - background:$candleShadow; - transform:translate(-80%,0%); - animation:changeto-lower 3s infinite linear; -} -.candle2__eyes-two -{ - position:absolute; - left:70%; - top:50%; - width:5px; - height:5px; - display:inline-block; - border:0px solid $candleShadow; - border-radius:100%; - float:left; - background:$candleShadow; - transform:translate(-80%,0%); - animation:changeto-greater 3s infinite linear; - -} -.light__wave -{ - position:absolute; - top:35%; - left:35%; - width:75px; - height:75px; - border-radius:100%; - z-index:0; - transform:translate(-25%,-50%) scale(2.5,2.5); - border:2px solid rgba(255,255,255,0.2); - animation:expand-light 3s infinite linear; -} -.candle2__fire -{ - position:absolute; - top:50%; - left:40%; - display: block; - width: 16px; - height: 20px; - background-color: red; - border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; - background:$fireColor; - transform:translate(-50%,-50%); - animation: dance-fire 3s infinite linear; -} -//animations - -//animation for blinking eyes -@keyframes blink-eyes{ - 0%,35% - { - opacity:1; - transform:translate(-70%,0%); - } - 36%,39% - { - opacity:0; - transform:translate(-70%,0%); - } - 40% - { - opacity:1; - transform:translate(-70%,0%); - } - 50%,65% - { - transform:translate(-140%,0%); - } - 66% - { - transform:translate(-70%,0%); - } -} -@keyframes expand-body -{ - 0%,40% - { - transform:scale(1,1) translate(60%,-25%); - } - 45%,55% - { - transform:scale(1.1,1.1) translate(60%,-28%); - } - 60% - { - transform:scale(0.89,0.89) translate(60%,-25%); - } - 65% - { - transform:scale(1,1) translate(60%,-25%); - - } - 70% - { - transform:scale(0.95,0.95) translate(60%,-25%); - } - 75% - { - transform:scale(1,1) translate(60%,-25%); - } - -} - -@keyframes uff{ - 0%,40%{ - width:0px; - height:0px; - } - 50%,54% - { - width:15px; - height:15px; - left:30%; - } - 59% - { - width:5px; - height:5px; - left:20%; - } - 62% - { - width:2px; - height:2px; - left:20%; - } - 67% - { - width:0px; - height:0px; - left:30%; - } - -} - -@keyframes change-background -{ - 0%,59%,98%,100%{ - background:$lightsOnBg; - } - 61%,97% - { - background:$lightsOutBg; - } - -} -@keyframes move-left{ - 0%,59%,100% - { - width:0px; - left:40%; - } - 60% - { - width:30px; - left:30%; - } - 68% - { - width:0px; - left:20%; - } -} - -@keyframes move-top{ - 0%,64%,100% - { - width:0px; - height:0px; - top:0%; - } - 65% - { - width:10px; - height:10px; - top:40%; - left:40%; - } - 80% - { - width:0px; - height:0px; - top:20%; - } -} -@keyframes shake-left{ - 0%,40%{ - left:20%; - transform:translate(60%,-15%); - } - 50%,54% - { - left:20%; - transform:translate(60%,-15%); - } - 59% - { - left:20%; - transform:translate(60%,-15%); - } - 62% - { - left:18%; - transform:translate(60%,-15%); - } - 65% - { - left:21%; - transform:translate(60%,-15%); - } - 67% - { - left:20%; - transform:translate(60%,-15%); - } - 75% - { - left:20%; - transform:scale(1.15,0.85) translate(60%,-15%); - background:#fff; - border-color:$candleShadow; - - } - - // 80% - // { - // background:$angerColor; - // alpha:0.5; - // border-color:$angerColor; - // } - - 91% - { - left:20%; - transform:scale(1.18,0.82) translate(60%,-10%); - background:$angerColor; - border-color:$angerColor; - box-shadow: -2px 0px 0px $angerColor inset; - } - 92% - { - left:20%; - transform:scale(0.85,1.15) translate(60%,-15%); - } - 95% - { - left:20%; - transform:scale(1.05,0.95) translate(60%,-15%); - } - 97% - { - left:20%; - transform:scale(1.0,1.0) translate(60%,-15%); - } - -} -@keyframes stick-animation{ - 0%,40%{ - left:50%; - top:0%; - transform:translate(-50%,-100%); - } - 50%,54% - { - left:50%; - top:0%; - transform:translate(-50%,-100%); - } - 59% - { - left:50%; - top:0%; - transform:translate(-50%,-100%); - } - 62% - { - left:50%; - top:0%; - transform:rotateZ(-15deg) translate(-50%,-100%); - } - 65% - { - left:50%; - top:0%; - transform:rotateZ(15deg) translate(-50%,-100%); - } - 70% - { - left:50%; - top:0%; - transform:rotateZ(-5deg) translate(-50%,-100%); - } - 72% - { - left:50%; - top:0%; - transform:rotateZ(5deg) translate(-50%,-100%); - } - 74%,84% - { - left:50%; - top:0%; - transform:rotateZ(0deg) translate(-50%,-100%); - } - 85% - { - transform:rotateZ(180deg) translate(0%,120%); - } - 92% - { - left:50%; - top:0%; - transform:translate(-50%,-100%); - } - -} -@keyframes expand-light -{ - 10%,29%,59%,89% - { - transform:translate(-25%,-50%) scale(0,0); - border:2px solid rgba(255,255,255,0); - } - 90%,20%,50% - { - transform:translate(-25%,-50%) scale(1,1); - } - 95%,96%,26%,27%,56%,57% - { - transform:translate(-25%,-50%) scale(2.0,2.0); - border:2px solid rgba(255,255,255,0.5); - } - 0%,28%,58%,100% - { - transform:translate(-25%,-50%) scale(2.5,2.5); - border:2px solid rgba(255,255,255,0.2); - } - -} -@keyframes dance-fire -{ - 59%,89% - { - left:40%; - width:0px; - height:0px; - } - 90%,0%,7%,15%,23%,31%,39%,47%,55% - { - left:40.8%; - width:16px; - height:20px; - background:$fireColor2; - } - 94%,3%,11%,19%,27%,35%,43%,51%,58% - { - left:41.2%; - width:16px; - height:20px; - background:$fireColor; - } -} -@keyframes changeto-lower -{ - 0%,70%,90% - { - padding:0px; - display:inline-block; - border-radius:100%; - background:$candleShadow; - border-width:0 0 0 0; - border:0px solid $candleShadow; - transform:translate(-90%,0%); - } - 71%,89% - { - background:none; - border: solid $candleShadow; - border-radius:0px; - border-width: 0 2px 2px 0; - display:inline-block; - padding: 1px; - float:left; - transform-origin:bottom left; - transform: rotate(-45deg) translate(-50%,-65%); - -webkit-transform: rotate(-45deg) translate(-50%,-65%); - } -} - -@keyframes changeto-greater -{ - 0%,70%,90% - { - top:50%; - padding:0px; - display:inline-block; - border-radius:100%; - background:$candleShadow; - border-width:0 0 0 0; - border:0px solid $candleShadow; - transform:translate(-80%,0%); - } - 71%,89% - { - top:30%; - background:none; - border: solid $candleShadow; - border-radius:0px; - border-width: 0 2px 2px 0; - display:inline-block; - padding: 1px; - float:left; - transform-origin:bottom left; - transform: rotate(135deg) translate(-80%,20%); - -webkit-transform: rotate(135deg) translate(-80%,20%); - } -} - - #marker-icon { - padding-top: 25%; - height: auto !important; - width: 20vh !important; - margin: auto !important; - display: block !important; - - } - - #middle-button { - top: 10%; - margin: auto !important; - display: block !important; - } - - .big-spinner { - stroke: #FFFFFF; - fill: #FFFFFF; - } - - .loading-subtitle { - color: var(--ion-color-primary-contrast); - } - -} - -// app/fallback/synchronization/synchronization.scss -// -------------------------------------------------- -.page_synchronization { - line-height: 1.8em; - text-align: center; - - #sync-logo { - margin-left: 20%; - margin-right: 20%; - max-height: 40%; - } - - #version-if-footer { - font-size: 1em; - opacity: 0.2; - } - - h1 { - color: var(--ion-color-primary-contrast); - } - - ion-label { - color: var(--ion-color-primary-contrast); - } - - ion-spinner svg * { - stroke: var(--ion-color-primary-contrast) !important; - } - -} - - diff --git a/branding/brands/fau/assets/stylesheets/theme.scss b/branding/brands/fau/assets/stylesheets/theme.scss index 7196e762..a442ef09 100644 --- a/branding/brands/fau/assets/stylesheets/theme.scss +++ b/branding/brands/fau/assets/stylesheets/theme.scss @@ -13,4 +13,3 @@ @import "coloring"; @import "variables"; @import "app"; -@import "pages"; diff --git a/branding/brands/fau/assets/stylesheets/variables.scss b/branding/brands/fau/assets/stylesheets/variables.scss index 98305017..86a67755 100644 --- a/branding/brands/fau/assets/stylesheets/variables.scss +++ b/branding/brands/fau/assets/stylesheets/variables.scss @@ -1,3 +1,12 @@ +:root { + // login + --page-login-bottom-row-dispay: none; + + // info + --page-version-card-custom: block; + --page-info-card-community: none; +} + //MARK: Animation @keyframes bounce { diff --git a/branding/brands/fau/build.json b/branding/brands/fau/build.json index 12ab8f46..adb0bc78 100644 --- a/branding/brands/fau/build.json +++ b/branding/brands/fau/build.json @@ -1,14 +1,14 @@ { "ios": { "debug": { - "codeSignIdentity": "iPhone Developer", - "provisioningProfile": "201809_Pegasus", + "codeSignIdentity": "Apple Development", + "provisioningProfile": "eca00ada-b573-497b-9cdb-1e1404739d2f", "developmentTeam": "ZQ66BZ3DPL", "packageType": "development" }, "release": { - "codeSignIdentity": "iPhone Distribution", - "provisioningProfile": "3a547757-0a57-4b9a-9327-c255bcda2afb", + "codeSignIdentity": "Apple Distribution", + "provisioningProfile": "d1411757-a572-4681-bf28-d92f43798971", "developmentTeam": "ZQ66BZ3DPL", "packageType": "app-store" } diff --git a/branding/brands/fau/config.json b/branding/brands/fau/config.json index 97de6c7c..bc55696b 100644 --- a/branding/brands/fau/config.json +++ b/branding/brands/fau/config.json @@ -1,8 +1,9 @@ { "ilias_installation_ids": [21,17], "projectConfig": { - "id": "ch.studerraimann.ilias.studOn", + "androidId": "ch.studerraimann.ilias.studOn", + "id": "ch.studerraimann.ilias.studon", "name": "StudOn", "description": "Download, sync and store ILIAS-files on your device" } -} \ No newline at end of file +} diff --git a/branding/brands/fau/features.json b/branding/brands/fau/features.json new file mode 100644 index 00000000..bdec34c8 --- /dev/null +++ b/branding/brands/fau/features.json @@ -0,0 +1,6 @@ +{ + "disabled": [ + "sahs", + "htlm" + ] +} diff --git a/branding/brands/iq/assets/i18n/de.json b/branding/brands/iq/assets/i18n/de.json index 6209d248..81ad3cb7 100644 --- a/branding/brands/iq/assets/i18n/de.json +++ b/branding/brands/iq/assets/i18n/de.json @@ -1,4 +1,25 @@ { - "test": "der test" - + "test": "der test", + "courses": "Inhalte", + + "onboarding": { + "title1": "Mit der Lernwelt App kannst Du:", + "title2": "Deine Lernwelt App", + "concept1": "Die Lernwelt App verbindet Dich mit Deinen Kursen und Inhalten im IQ Virtuellen Klassenzimmer.", + "datasecurity3": "Die Lernwelt App basiert auf ILIAS Pegasus und ist ein Open Source Projekt. Wenn Du Dich selbst überzeugen möchtest, was die App tut, dann kannst Du hier den Code einsehen:" + + }, + "login": { + "hello":"Willkommen in der Lernwelt App!" + }, + "fallback": { + "browser": "Du verlässt nun die Lernwelt App" + }, + "object-list": { + "title" : "Lerninhalte" + }, + "home": { + "title": "Home" + } } + diff --git a/branding/brands/iq/assets/icon/bin.svg b/branding/brands/iq/assets/icon/bin.svg new file mode 100644 index 00000000..670b6bb3 --- /dev/null +++ b/branding/brands/iq/assets/icon/bin.svg @@ -0,0 +1,18 @@ + + + icon/bin + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branding/brands/iq/assets/icon/desktop_course.svg b/branding/brands/iq/assets/icon/desktop_course.svg index 75245ffd..6c06636d 100644 --- a/branding/brands/iq/assets/icon/desktop_course.svg +++ b/branding/brands/iq/assets/icon/desktop_course.svg @@ -1,35 +1,29 @@ - - - - - - -icon/desktop_ZWH/content -Created with Sketch. - - - - - - - - - - - - - - - - - - - + + + icon/4.0/desktop_IQ/IQ_crs_grp03@2x + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/desktop_favourites.svg b/branding/brands/iq/assets/icon/desktop_favourites.svg index 55fc2c41..9cd28912 100644 --- a/branding/brands/iq/assets/icon/desktop_favourites.svg +++ b/branding/brands/iq/assets/icon/desktop_favourites.svg @@ -1,37 +1,17 @@ - - - - -icon/desktop_ZWH/stars -Created with Sketch. - - - - + + + icon/4.0/desktop_IQ/stars + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/desktop_news.svg b/branding/brands/iq/assets/icon/desktop_news.svg index 410fc42f..aa6a8423 100644 --- a/branding/brands/iq/assets/icon/desktop_news.svg +++ b/branding/brands/iq/assets/icon/desktop_news.svg @@ -1,226 +1,21 @@ - - - - - - icon/desktop_ZWH/stars - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_bibl.svg b/branding/brands/iq/assets/icon/icon_bibl.svg new file mode 100644 index 00000000..08b5961d --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_bibl.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_blog.svg b/branding/brands/iq/assets/icon/icon_blog.svg new file mode 100644 index 00000000..d32a6815 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_blog.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_bm.svg b/branding/brands/iq/assets/icon/icon_bm.svg new file mode 100644 index 00000000..68e048bf --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_bm.svg @@ -0,0 +1,9 @@ + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_book.svg b/branding/brands/iq/assets/icon/icon_book.svg new file mode 100644 index 00000000..9742862c --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_book.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_cals.svg b/branding/brands/iq/assets/icon/icon_cals.svg new file mode 100644 index 00000000..5fb422bd --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_cals.svg @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_cat.svg b/branding/brands/iq/assets/icon/icon_cat.svg new file mode 100644 index 00000000..768920bd --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_cat.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_catr.svg b/branding/brands/iq/assets/icon/icon_catr.svg new file mode 100644 index 00000000..97ca6c03 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_catr.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_chtr.svg b/branding/brands/iq/assets/icon/icon_chtr.svg new file mode 100644 index 00000000..98e125bc --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_chtr.svg @@ -0,0 +1,10 @@ + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_contact.svg b/branding/brands/iq/assets/icon/icon_contact.svg new file mode 100644 index 00000000..baa30f39 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_contact.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_copa.svg b/branding/brands/iq/assets/icon/icon_copa.svg new file mode 100644 index 00000000..8a76739d --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_copa.svg @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/zwh/assets/icon/obj_course.svg b/branding/brands/iq/assets/icon/icon_crs.svg old mode 100755 new mode 100644 similarity index 100% rename from branding/brands/zwh/assets/icon/obj_course.svg rename to branding/brands/iq/assets/icon/icon_crs.svg diff --git a/branding/brands/iq/assets/icon/icon_crsr.svg b/branding/brands/iq/assets/icon/icon_crsr.svg new file mode 100644 index 00000000..98139679 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_crsr.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_dcl.svg b/branding/brands/iq/assets/icon/icon_dcl.svg new file mode 100644 index 00000000..43dde63f --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_dcl.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_exc.svg b/branding/brands/iq/assets/icon/icon_exc.svg new file mode 100644 index 00000000..d7584ea9 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_exc.svg @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_fallback.svg b/branding/brands/iq/assets/icon/icon_fallback.svg new file mode 100644 index 00000000..716fe1c5 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_fallback.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/branding/brands/iq/assets/icon/icon_feed.svg b/branding/brands/iq/assets/icon/icon_feed.svg new file mode 100644 index 00000000..b8087786 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_feed.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + diff --git a/branding/brands/zwh/assets/icon/obj_file.svg b/branding/brands/iq/assets/icon/icon_file.svg old mode 100755 new mode 100644 similarity index 100% rename from branding/brands/zwh/assets/icon/obj_file.svg rename to branding/brands/iq/assets/icon/icon_file.svg diff --git a/branding/brands/iq/assets/icon/icon_fold.svg b/branding/brands/iq/assets/icon/icon_fold.svg new file mode 100644 index 00000000..ebbdb1cc --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_fold.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_frm.svg b/branding/brands/iq/assets/icon/icon_frm.svg new file mode 100644 index 00000000..fe8f8ef4 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_frm.svg @@ -0,0 +1,17 @@ + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_glo.svg b/branding/brands/iq/assets/icon/icon_glo.svg new file mode 100644 index 00000000..057c6954 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_glo.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + diff --git a/branding/brands/zwh/assets/icon/obj_group.svg b/branding/brands/iq/assets/icon/icon_grp.svg old mode 100755 new mode 100644 similarity index 100% rename from branding/brands/zwh/assets/icon/obj_group.svg rename to branding/brands/iq/assets/icon/icon_grp.svg diff --git a/branding/brands/iq/assets/icon/icon_htlm.svg b/branding/brands/iq/assets/icon/icon_htlm.svg new file mode 100644 index 00000000..57ec731f --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_htlm.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_iass.svg b/branding/brands/iq/assets/icon/icon_iass.svg new file mode 100644 index 00000000..d679ae87 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_iass.svg @@ -0,0 +1,12 @@ + + + + icon_iass + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/branding/brands/iq/assets/icon/icon_itgr.svg b/branding/brands/iq/assets/icon/icon_itgr.svg new file mode 100644 index 00000000..1aaab53c --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_itgr.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_lm.svg b/branding/brands/iq/assets/icon/icon_lm.svg new file mode 100644 index 00000000..57ec731f --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_lm.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_lso.svg b/branding/brands/iq/assets/icon/icon_lso.svg new file mode 100644 index 00000000..d60d451f --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_lso.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + icon_lrnng-sqnce-bjct_v3 + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_mail.svg b/branding/brands/iq/assets/icon/icon_mail.svg new file mode 100644 index 00000000..ef113b3b --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_mail.svg @@ -0,0 +1,20 @@ + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_mcst.svg b/branding/brands/iq/assets/icon/icon_mcst.svg new file mode 100644 index 00000000..7b219532 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_mcst.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_mep.svg b/branding/brands/iq/assets/icon/icon_mep.svg new file mode 100644 index 00000000..01001b13 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_mep.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_nwss.svg b/branding/brands/iq/assets/icon/icon_nwss.svg new file mode 100644 index 00000000..174fc5ec --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_nwss.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_overlay.svg b/branding/brands/iq/assets/icon/icon_overlay.svg new file mode 100755 index 00000000..7bb9879b --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_overlay.svg @@ -0,0 +1,12 @@ + + + icon/GoToBrowser_IQ@1x + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_pdts.svg b/branding/brands/iq/assets/icon/icon_pdts.svg new file mode 100644 index 00000000..f1b6d9a6 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_pdts.svg @@ -0,0 +1,16 @@ + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_personal_settings.svg b/branding/brands/iq/assets/icon/icon_personal_settings.svg new file mode 100644 index 00000000..2ea4a32c --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_personal_settings.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_poll.svg b/branding/brands/iq/assets/icon/icon_poll.svg new file mode 100644 index 00000000..60625be4 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_poll.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_prtt.svg b/branding/brands/iq/assets/icon/icon_prtt.svg new file mode 100644 index 00000000..755c39cb --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_prtt.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_qpl.svg b/branding/brands/iq/assets/icon/icon_qpl.svg new file mode 100644 index 00000000..0bc8124b --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_qpl.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_reps.svg b/branding/brands/iq/assets/icon/icon_reps.svg new file mode 100644 index 00000000..ebbdb1cc --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_reps.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_root.svg b/branding/brands/iq/assets/icon/icon_root.svg new file mode 100644 index 00000000..f26cd9ed --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_root.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_sahs.svg b/branding/brands/iq/assets/icon/icon_sahs.svg new file mode 100644 index 00000000..63194f76 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_sahs.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_sess.svg b/branding/brands/iq/assets/icon/icon_sess.svg new file mode 100644 index 00000000..a22f1bc2 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_sess.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_spl.svg b/branding/brands/iq/assets/icon/icon_spl.svg new file mode 100644 index 00000000..59bb3da4 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_spl.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_svy.svg b/branding/brands/iq/assets/icon/icon_svy.svg new file mode 100644 index 00000000..4622b277 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_svy.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_svyf.svg b/branding/brands/iq/assets/icon/icon_svyf.svg new file mode 100644 index 00000000..df3b3777 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_svyf.svg @@ -0,0 +1,9 @@ + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_trac.svg b/branding/brands/iq/assets/icon/icon_trac.svg new file mode 100644 index 00000000..22816736 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_trac.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_tst.svg b/branding/brands/iq/assets/icon/icon_tst.svg new file mode 100644 index 00000000..03a4a09a --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_tst.svg @@ -0,0 +1,15 @@ + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_tstv.svg b/branding/brands/iq/assets/icon/icon_tstv.svg new file mode 100644 index 00000000..99e1a20c --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_tstv.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_webr.svg b/branding/brands/iq/assets/icon/icon_webr.svg new file mode 100644 index 00000000..d8f47af8 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_webr.svg @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_wiki.svg b/branding/brands/iq/assets/icon/icon_wiki.svg new file mode 100644 index 00000000..a8f023ea --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_wiki.svg @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_wsrt.svg b/branding/brands/iq/assets/icon/icon_wsrt.svg new file mode 100644 index 00000000..0424e4a8 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_wsrt.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_xavc.svg b/branding/brands/iq/assets/icon/icon_xavc.svg new file mode 100644 index 00000000..d9d2db3b --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_xavc.svg @@ -0,0 +1,12 @@ + + + + icon_xavc + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/branding/brands/iq/assets/icon/icon_xlvo.svg b/branding/brands/iq/assets/icon/icon_xlvo.svg new file mode 100644 index 00000000..aa6eb10d --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_xlvo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_xsrl.svg b/branding/brands/iq/assets/icon/icon_xsrl.svg new file mode 100644 index 00000000..924b934f --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_xsrl.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/icon_xvid.svg b/branding/brands/iq/assets/icon/icon_xvid.svg new file mode 100644 index 00000000..ff76e873 --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_xvid.svg @@ -0,0 +1,12 @@ + + + + icon_xvid + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/branding/brands/iq/assets/icon/icon_xxco.svg b/branding/brands/iq/assets/icon/icon_xxco.svg new file mode 100644 index 00000000..b02c190a --- /dev/null +++ b/branding/brands/iq/assets/icon/icon_xxco.svg @@ -0,0 +1,52 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/icon/obj_course.svg b/branding/brands/iq/assets/icon/obj_course.svg deleted file mode 100644 index 2dbce2c8..00000000 --- a/branding/brands/iq/assets/icon/obj_course.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/branding/brands/iq/assets/icon/obj_learningmodule.svg b/branding/brands/iq/assets/icon/obj_learningmodule.svg deleted file mode 100644 index 6111b2b0..00000000 --- a/branding/brands/iq/assets/icon/obj_learningmodule.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/branding/brands/iq/assets/icon/obj_link.svg b/branding/brands/iq/assets/icon/obj_link.svg deleted file mode 100644 index 6111b2b0..00000000 --- a/branding/brands/iq/assets/icon/obj_link.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/branding/brands/iq/assets/icon/objectlist_favourites.svg b/branding/brands/iq/assets/icon/objectlist_favourites.svg index e567fbaf..ea258b72 100644 --- a/branding/brands/iq/assets/icon/objectlist_favourites.svg +++ b/branding/brands/iq/assets/icon/objectlist_favourites.svg @@ -3,7 +3,7 @@ diff --git a/branding/brands/iq/assets/icon/objectlist_offline.svg b/branding/brands/iq/assets/icon/objectlist_offline.svg index e7e341a2..67e67ca2 100644 --- a/branding/brands/iq/assets/icon/objectlist_offline.svg +++ b/branding/brands/iq/assets/icon/objectlist_offline.svg @@ -3,7 +3,7 @@ diff --git a/branding/brands/iq/assets/img/login.svg b/branding/brands/iq/assets/img/login.svg index e98b36d9..0b7c3c5c 100644 --- a/branding/brands/iq/assets/img/login.svg +++ b/branding/brands/iq/assets/img/login.svg @@ -1,59 +1,1027 @@ - + - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/img/login_bottom.svg b/branding/brands/iq/assets/img/login_bottom.svg new file mode 100644 index 00000000..29a94a55 --- /dev/null +++ b/branding/brands/iq/assets/img/login_bottom.svg @@ -0,0 +1,13716 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + In Kooperation mit: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/img/mascot.svg b/branding/brands/iq/assets/img/mascot.svg index e98b36d9..4ed5b70d 100644 --- a/branding/brands/iq/assets/img/mascot.svg +++ b/branding/brands/iq/assets/img/mascot.svg @@ -1,59 +1,91 @@ - + - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + diff --git a/branding/brands/iq/assets/img/onboarding_decentralized.png b/branding/brands/iq/assets/img/onboarding_decentralized.png index b3305b0b..082305f4 100644 Binary files a/branding/brands/iq/assets/img/onboarding_decentralized.png and b/branding/brands/iq/assets/img/onboarding_decentralized.png differ diff --git a/branding/brands/iq/assets/img/onboarding_decentralized.svg b/branding/brands/iq/assets/img/onboarding_decentralized.svg index a2b5976f..7f064f8b 100644 --- a/branding/brands/iq/assets/img/onboarding_decentralized.svg +++ b/branding/brands/iq/assets/img/onboarding_decentralized.svg @@ -1,203 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + diff --git a/branding/brands/iq/assets/img/onboarding_key.svg b/branding/brands/iq/assets/img/onboarding_key.svg index 6011fa6d..3b043ece 100644 --- a/branding/brands/iq/assets/img/onboarding_key.svg +++ b/branding/brands/iq/assets/img/onboarding_key.svg @@ -1,19 +1,15 @@ - - - - - - - - - - - - - - - + + + + + + + + + + diff --git a/branding/brands/iq/assets/img/onboarding_welcome.png b/branding/brands/iq/assets/img/onboarding_welcome.png index 6b3ab74c..8c735eff 100644 Binary files a/branding/brands/iq/assets/img/onboarding_welcome.png and b/branding/brands/iq/assets/img/onboarding_welcome.png differ diff --git a/branding/brands/iq/assets/img/onboarding_welcome.svg b/branding/brands/iq/assets/img/onboarding_welcome.svg new file mode 100644 index 00000000..0b7c3c5c --- /dev/null +++ b/branding/brands/iq/assets/img/onboarding_welcome.svg @@ -0,0 +1,1027 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/img/onboarding_welcome.svg.png b/branding/brands/iq/assets/img/onboarding_welcome.svg.png new file mode 100644 index 00000000..8198898f Binary files /dev/null and b/branding/brands/iq/assets/img/onboarding_welcome.svg.png differ diff --git a/branding/brands/iq/assets/img/onboarding_welcome_old.png b/branding/brands/iq/assets/img/onboarding_welcome_old.png new file mode 100644 index 00000000..c5018eaa Binary files /dev/null and b/branding/brands/iq/assets/img/onboarding_welcome_old.png differ diff --git a/branding/brands/iq/assets/img/pony_exit.svg b/branding/brands/iq/assets/img/pony_exit.svg index 5eeb14bf..0b7c3c5c 100644 --- a/branding/brands/iq/assets/img/pony_exit.svg +++ b/branding/brands/iq/assets/img/pony_exit.svg @@ -1,27 +1,1027 @@ - + + viewBox="0 0 286 286" style="enable-background:new 0 0 286 286;" xml:space="preserve"> - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/stylesheets/app.scss b/branding/brands/iq/assets/stylesheets/app.scss index b230a4e1..4cd60883 100644 --- a/branding/brands/iq/assets/stylesheets/app.scss +++ b/branding/brands/iq/assets/stylesheets/app.scss @@ -21,27 +21,3 @@ ion-icon { .content, .ion-header, ion-toolbar { font-family: 'Raleway', sans-serif !important; } - -.top-header{ - border-width: 0px !important; - --padding-top: 0px !important; - --padding-start: 0px !important; - --padding-right: 0px !important; - --padding-end: 0px !important; -} - - -// Typogrtaphie - -h1{ - font-weight: 800; -} - -ion-tab-bar{ - --color-selected: #000 !important; -} - -// Animations - - - diff --git a/branding/brands/iq/assets/stylesheets/coloring.scss b/branding/brands/iq/assets/stylesheets/coloring.scss index 0999e9a1..94c8c4c5 100644 --- a/branding/brands/iq/assets/stylesheets/coloring.scss +++ b/branding/brands/iq/assets/stylesheets/coloring.scss @@ -1,247 +1,230 @@ // CSS coloring for the theme // -------------------------------------------------- -//Import Font - - - - :root { // whether the color-values are synchronized with the setting in the pegasus-helper-plugin // set to "true" or "false" --theme-from-plugin: "false"; - // --ion-background-color: linear-gradient(to bottom right, #9bc8e5, #017C8E); - - // font - // --ion-font-family: "Raleway", sans-serif; - - // Custom Tab Colorr - --ion-background-color: linear-gradient(to top, #017C8E, #AFD0CA); + // Custom Tab Color + --ion-background-color: #f6f6f6; + --ion-background-color-custom: linear-gradient(to top, #017C8E, #AFD0CA); --ion-text-color: white !important; - ion-card{ - border-radius: 0px; - border-color: white; - border-style: solid; - border-width: 3px; - color: white; - } - - ion-tab-button.tab-selected { - ion-icon, ion-label { - color: var(--ion-color-secondary) !important; - --ion-color-base: var(--ion-color-primarry) !important; - } - } - - ion-tab-button { - ion-icon, ion-label { - color: var(--ion-color-light-grey) !important; - --ion-color-base: var(--ion-color-light-grey) !important; - } - } + ion-card { + border-radius: 0; + border-color: var(--ion-color-primary-contrast); + border-style: solid; + border-width: 0.25em; + --color: var(--ion-color-primary-contrast); + --border-radius: 0; + } // colors --ion-item-border-color: transparent; --ion-color-primary: #017C8E; - --ion-color-primary-rgb: 1,124,142; + --ion-color-primary-rgb: 1, 124, 142; --ion-color-primary-contrast: #ffffff; - --ion-color-primary-contrast-rgb: 255,255,255; + --ion-color-primary-contrast-rgb: 255, 255, 255; --ion-color-primary-shade: #016d7d; --ion-color-primary-tint: #1a8999; - --ion-color-secondary: #004d9f; - --ion-color-secondary-rgb: 0,77,159; + --ion-color-secondary: #72a6ac; + --ion-color-secondary-rgb: 175, 208, 202; --ion-color-secondary-contrast: #ffffff; - --ion-color-secondary-contrast-rgb: 255,255,255; - --ion-color-secondary-shade: #00448c; - --ion-color-secondary-tint: #1a5fa9; + --ion-color-secondary-contrast-rgb: 255, 255, 255; + --ion-color-secondary-shade: #72a6ac; + --ion-color-secondary-tint: #72a6ac; --ion-color-tertiary: transparent; - --ion-color-tertiary-rgb: 255,255,255; - --ion-color-tertiary-contrast: #4a668b; - --ion-color-tertiary-contrast-rgb: 74,102,139; - --ion-color-tertiary-shade: #d7d8da; - --ion-color-tertiary-tint: #f5f6f9; + --ion-color-tertiary-rgb: 0, 0, 0, 0; + --ion-color-tertiary-contrast: transparent; + --ion-color-tertiary-contrast-rgb: 0, 0, 0, 0; + --ion-color-tertiary-shade: transparent; + --ion-color-tertiary-tint: transparent; --ion-color-success: #10dc60; - --ion-color-success-rgb: 16,220,96; + --ion-color-success-rgb: 16, 220, 96; --ion-color-success-contrast: #ffffff; - --ion-color-success-contrast-rgb: 255,255,255; + --ion-color-success-contrast-rgb: 255, 255, 255; --ion-color-success-shade: #0ec254; --ion-color-success-tint: #28e070; --ion-color-warning: #ffce00; - --ion-color-warning-rgb: 255,206,0; + --ion-color-warning-rgb: 255, 206, 0; --ion-color-warning-contrast: #ffffff; - --ion-color-warning-contrast-rgb: 255,255,255; + --ion-color-warning-contrast-rgb: 255, 255, 255; --ion-color-warning-shade: #e0b500; --ion-color-warning-tint: #ffd31a; --ion-color-danger: #f04141; - --ion-color-danger-rgb: 245,61,61; + --ion-color-danger-rgb: 245, 61, 61; --ion-color-danger-contrast: #ffffff; - --ion-color-danger-contrast-rgb: 255,255,255; + --ion-color-danger-contrast-rgb: 255, 255, 255; --ion-color-danger-shade: #d33939; --ion-color-danger-tint: #f25454; --ion-color-dark: #222428; - --ion-color-dark-rgb: 34,34,34; + --ion-color-dark-rgb: 34, 34, 34; --ion-color-dark-contrast: #ffffff; - --ion-color-dark-contrast-rgb: 255,255,255; + --ion-color-dark-contrast-rgb: 255, 255, 255; --ion-color-dark-shade: #1e2023; --ion-color-dark-tint: #383a3e; --ion-color-medium: #ffffff; - --ion-color-medium-rgb: 255,255,255; + --ion-color-medium-rgb: 255, 255, 255; --ion-color-medium-contrast: #000000; - --ion-color-medium-contrast-rgb: 0,0,0; + --ion-color-medium-contrast-rgb: 0, 0, 0; --ion-color-medium-shade: #e0e0e0; --ion-color-medium-tint: #ffffff; --ion-color-light: #ffffff; - --ion-color-light-rgb: 244,244,244; + --ion-color-light-rgb: 244, 244, 244; --ion-color-light-contrast: #000000; - --ion-color-light-contrast-rgb: 0,0,0; + --ion-color-light-contrast-rgb: 0, 0, 0; --ion-color-light-shade: #d7d8da; --ion-color-light-tint: #f5f6f9; --ion-color-transparent: transparent; - --ion-color-transparent-rgb: 244,244,244; + --ion-color-transparent-rgb: 244, 244, 244; --ion-color-transparent-contrast: #d7d8da; - --ion-color-transparent-contrast-rgb: 0,0,0; + --ion-color-transparent-contrast-rgb: 0, 0, 0; --ion-color-transparent-shade: #d7d8da; --ion-color-transparent-tint: #f5f6f9; --ion-color-light-grey: #c4c4c4; - --ion-color-light-grey-rgb: 196,196,196; + --ion-color-light-grey-rgb: 196, 196, 196; --ion-color-light-grey-contrast: #000000; - --ion-color-light-grey-contrast-rgb: 0,0,0; + --ion-color-light-grey-contrast-rgb: 0, 0, 0; --ion-color-light-grey-shade: #acacac; --ion-color-light-grey-tint: #cacaca; - //tabbar colors - ion-tabs{ - --color: #1c1c21; // already exists - --ion-tabbar-color: rgba(var(--ion-text-color-rgb), 0.4); // suggested - --ion-tabbar-color-selected: var(--ion-text-color); // suggested - } + --gradient-color-first: var(--ion-color-primary); + --gradient-color-second: var(--ion-color-secondary); + ion-toolbar { + --ion-background-color: var(--ion-color-primary); + } - } + ion-tab-button { + ion-icon, ion-label { + --color: var(--ion-color-light-grey) !important; + --ion-color-base: var(--ion-color-light-grey) !important; + --color-selected: var(--ion-color-primary-contrast) !important; + } + } - // MARK: Darkmode + ion-alert { + --ion-text-color: var(--ion-color-dark); + } +} - @media (prefers-color-scheme: dark) { +@media (prefers-color-scheme: dark) { :root { - --ion-background-color: linear-gradient(to bottom, #017C8E, #000000); - - --ion-border-color: var(--ion-color-dark-shade); - // --ion-background-color: var(--ion-color-dark); - // --ion-background-color-rgb: var(--ion-color-dark-rgb); - --ion-text-color: var(--ion-color-light); - --ion-text-color-rgb: var(--ion-color-light-rgb); - - --ion-color-step-50: #232323; - --ion-color-step-100: #2e2e2e; - --ion-color-step-150: #3a3a3a; - --ion-color-step-200: #454545; - --ion-color-step-250: #515151; - --ion-color-step-300: #5d5d5d; - --ion-color-step-350: #8b8b8b; - --ion-color-step-400: #747474; - --ion-color-step-450: #7f7f7f; - --ion-color-step-500: #8b8b8b; - --ion-color-step-550: #979797; - --ion-color-step-600: #a2a2a2; - --ion-color-step-650: #aeaeae; - --ion-color-step-700: #b9b9b9; - --ion-color-step-750: #c5c5c5; - --ion-color-step-800: #d1d1d1; - --ion-color-step-850: #dcdcdc; - --ion-color-step-900: #e8e8e8; - --ion-color-step-950: #f3f3f3; - - //colorr Variables - - --ion-color-primary: #017C8E; - --ion-color-primary-rgb: 34,36,40; - --ion-color-primary-contrast: #ffffff; - --ion-color-primary-contrast-rgb: 255,255,255; - --ion-color-primary-shade: #1e2023; - --ion-color-primary-tint: #383a3e; - - --ion-color-secondary: #017C8E; - --ion-color-secondary-rgb: 1,124,142; - --ion-color-secondary-contrast: #ffffff; - --ion-color-secondary-contrast-rgb: 255,255,255; - --ion-color-secondary-shade: #016d7d; - --ion-color-secondary-tint: #1a8999; - - // --ion-color-medium: #3b3b3b; - // --ion-color-medium-rgb: 59,59,59; - // --ion-color-medium-contrast: #ffffff; - // --ion-color-medium-contrast-rgb: 255,255,255; - // --ion-color-medium-shade: #343434; - // --ion-color-medium-tint: #4f4f4f; - - - // TAb - - ion-tab-button.tab-selected { - ion-icon, ion-label { - color: var(--ion-color-secondary) !important; - --ion-color-base: var(--ion-color-secondary) !important; + --ion-background-color-custom: linear-gradient(to top, #00191D, #017C8E); + + ion-tab-bar { + --tabs-background-color: #00191D; } - } + /*--ion-color-primary: #00191D; + --ion-color-primary-rgb: 0,25,29; + --ion-color-primary-contrast: #ffffff; + --ion-color-primary-contrast-rgb: 255,255,255; + --ion-color-primary-shade: #00161a; + --ion-color-primary-tint: #1a3034; + + --ion-color-secondary: #017C8E; + --ion-color-secondary-rgb: 1,124,142; + --ion-color-secondary-contrast: #ffffff; + --ion-color-secondary-contrast-rgb: 255,255,255; + --ion-color-secondary-shade: #016d7d; + --ion-color-secondary-tint: #1a8999; + + --ion-color-tertiary: #5260ff; + --ion-color-tertiary-rgb: 82,96,255; + --ion-color-tertiary-contrast: #ffffff; + --ion-color-tertiary-contrast-rgb: 255,255,255; + --ion-color-tertiary-shade: #4854e0; + --ion-color-tertiary-tint: #6370ff; + + --ion-color-success: #2dd36f; + --ion-color-success-rgb: 45,211,111; + --ion-color-success-contrast: #ffffff; + --ion-color-success-contrast-rgb: 255,255,255; + --ion-color-success-shade: #28ba62; + --ion-color-success-tint: #42d77d; + + --ion-color-warning: #ffc409; + --ion-color-warning-rgb: 255,196,9; + --ion-color-warning-contrast: #000000; + --ion-color-warning-contrast-rgb: 0,0,0; + --ion-color-warning-shade: #e0ac08; + --ion-color-warning-tint: #ffca22; + + --ion-color-danger: #eb445a; + --ion-color-danger-rgb: 235,68,90; + --ion-color-danger-contrast: #ffffff; + --ion-color-danger-contrast-rgb: 255,255,255; + --ion-color-danger-shade: #cf3c4f; + --ion-color-danger-tint: #ed576b; + + --ion-color-dark: #222428; + --ion-color-dark-rgb: 34,36,40; + --ion-color-dark-contrast: #ffffff; + --ion-color-dark-contrast-rgb: 255,255,255; + --ion-color-dark-shade: #1e2023; + --ion-color-dark-tint: #383a3e; + + --ion-color-medium: #92949c; + --ion-color-medium-rgb: 146,148,156; + --ion-color-medium-contrast: #ffffff; + --ion-color-medium-contrast-rgb: 255,255,255; + --ion-color-medium-shade: #808289; + --ion-color-medium-tint: #9d9fa6; + + --ion-color-light: #f4f5f8; + --ion-color-light-rgb: 244,245,248; + --ion-color-light-contrast: #000000; + --ion-color-light-contrast-rgb: 0,0,0; + --ion-color-light-shade: #d7d8da; + --ion-color-light-tint: #f5f6f9;*/ } - } +} // gradients - -$gradient-col1: #003c66; -$gradient-col2: #003c66; - .primary-gradient { - background-image: linear-gradient(to top left, $gradient-col1, $gradient-col1); - color:white !important; - // filter: blur(5px); - // opacity: 0.5; + background-image: linear-gradient(to top left, var(--gradient-color-first), var(--gradient-color-second)); + color: var(--ion-color-primary-contrast) !important; } .primary-gradient-inverted { - background-image: linear-gradient(to top left, $gradient-col1, $gradient-col1); - color:white; + background-image: linear-gradient(to top left, var(--gradient-color-second), var(--gradient-color-first)); + color: var(--ion-color-primary-contrast); } -// MARK: Define Color Variables +.page-gradient { + background-image: linear-gradient(to top, var(--gradient-color-second), var(--gradient-color-first)); +} +// MARK: Define Color Variables .ion-color-transparent { - --ion-color-base: var(--ion-color-transparent); - --ion-color-base-rgb: var(--ion-color-transparent-rgb); - --ion-color-contrast: var(--ion-color-transparent-contrast); - --ion-color-contrast-rgb: var(--ion-color-transparent-contrast-rgb); - --ion-color-shade: var(--ion-color-transparent-shade); - --ion-color-tint: var(--ion-color-transparent-tint); + --ion-color-base: var(--ion-color-transparent); + --ion-color-base-rgb: var(--ion-color-transparent-rgb); + --ion-color-contrast: var(--ion-color-transparent-contrast); + --ion-color-contrast-rgb: var(--ion-color-transparent-contrast-rgb); + --ion-color-shade: var(--ion-color-transparent-shade); + --ion-color-tint: var(--ion-color-transparent-tint); } .ion-color-light-grey { - --ion-color-base: var(--ion-color-light-grey); - --ion-color-base-rgb: var(--ion-color-light-grey-rgb); - --ion-color-contrast: var(--ion-color-light-grey-contrast); - --ion-color-contrast-rgb: var(--ion-color-light-grey-contrast-rgb); - --ion-color-shade: var(--ion-color-light-grey-shade); - --ion-color-tint: var(--ion-color-light-grey-tint); + --ion-color-base: var(--ion-color-light-grey); + --ion-color-base-rgb: var(--ion-color-light-grey-rgb); + --ion-color-contrast: var(--ion-color-light-grey-contrast); + --ion-color-contrast-rgb: var(--ion-color-light-grey-contrast-rgb); + --ion-color-shade: var(--ion-color-light-grey-shade); + --ion-color-tint: var(--ion-color-light-grey-tint); } - - -// // misc - -// .white-text { -// color: white; -// } diff --git a/branding/brands/iq/assets/stylesheets/theme.scss b/branding/brands/iq/assets/stylesheets/theme.scss index 7196e762..a442ef09 100644 --- a/branding/brands/iq/assets/stylesheets/theme.scss +++ b/branding/brands/iq/assets/stylesheets/theme.scss @@ -13,4 +13,3 @@ @import "coloring"; @import "variables"; @import "app"; -@import "pages"; diff --git a/branding/brands/iq/assets/stylesheets/variables.scss b/branding/brands/iq/assets/stylesheets/variables.scss index 1bde7678..1c221d7e 100644 --- a/branding/brands/iq/assets/stylesheets/variables.scss +++ b/branding/brands/iq/assets/stylesheets/variables.scss @@ -1,10 +1,50 @@ +:root { + --custom-background: var(--ion-background-color-custom); + + // onboarding + --page-onboarding-background: var(--ion-background-color-custom); + + // login + --page-login-background: var(--ion-background-color-custom); + --page-login-bottom-image-display: block; + + // desktop + --page-desktop-text-color: var(--ion-color-primary-contrast); + --page-desktop-border-radius: 0px; + --page-desktop-border-width: 0.25em; + --page-desktop-border-color: white; + --page-desktop-icon-width: 60%; + --page-desktop-tile-4-display: none; + --page-desktop-tile-5-display: none; + + // object-list + --page-object-list-background: var(--ion-background-color-custom); + --page-object-list-image-filter: brightness(3); + --page-object-list-icon-color: var(--ion-color-primary-contrast); + + // menu + --page-menu-background-color: var(--ion-background-color-custom); + --page-menu-icon-color: var(--ion-color-grey); + --page-menu-bottom-image-display: none; + + // info + --page-version-card-custom: block; + --page-info-card-iq: block; + --page-info-card-community: none; + + // tabs + --tabs-background-color: var(--ion-color-primary); + --tabs-icon-color: var(--ion-color-light-grey); + --tabs-icon-color-selected: var(--ion-color-primary-contrast); +} + //MARK: Animation @keyframes bounce { from, 10%, 26%, 40%, to { animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); - transform: translate3d(0,0,0); + transform: translate3d(0, 0, 0); } 20%, 21% { @@ -18,11 +58,11 @@ } 45% { - transform: translate3d(0,-4px,0); + transform: translate3d(0, -4px, 0); } 50% { animation-timing-function: cubic-bezier(0, 0, 0, 1.000); - transform: translate3d(0,0,0); + transform: translate3d(0, 0, 0); } } @@ -40,192 +80,204 @@ animation-name: fold; animation-duration: 3s; animation-delay: 13s; - animation-iteration-count: infinite; } - - @keyframes fold { + animation-iteration-count: infinite; +} + +@keyframes fold { 0% { - -webkit-animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); - animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); } + -webkit-animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); + animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } 30% { - -webkit-animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); - animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); - -webkit-transform: scale3d(1, 0.4, 1); - transform: scale3d(1, 0.4, 1); } + -webkit-animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); + animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); + -webkit-transform: scale3d(1, 0.4, 1); + transform: scale3d(1, 0.4, 1); + } 60% { - opacity: 1; - -webkit-animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); - animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); - -webkit-transform: scale3d(0.4, 0.4, 1); - transform: scale3d(0.4, 0.4, 1); } + opacity: 1; + -webkit-animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); + animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); + -webkit-transform: scale3d(0.4, 0.4, 1); + transform: scale3d(0.4, 0.4, 1); + } 100% { - opacity: 0; - -webkit-animation-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); - animation-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); - -webkit-transform: scale3d(0.2, 0.2, 0.2); - transform: scale3d(0.2, 0.2, 0.2); } } - .unfold { + opacity: 0; + -webkit-animation-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); + animation-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); + -webkit-transform: scale3d(0.2, 0.2, 0.2); + transform: scale3d(0.2, 0.2, 0.2); + } +} + +.unfold { -webkit-animation-name: unfold; - animation-name: unfold; } - - - .enter-left-bounce { - opacity: 1 !important; - visibility: visible !important; - -webkit-animation: enterLeftBounce 1s linear; - -moz-animation: enterLeftBounce 1s linear; - -ms-animation: enterLeftBounce 1s linear; - -o-animation: enterLeftBounce 1s linear; - animation: enterLeftBounce 1s linear; - } - @-webkit-keyframes enterLeftBounce { - 0% { - -webkit-transform: translateX(-220px); - opacity: 0; - } - 50% { - -webkit-transform: translateX(0px); - } - 70% { - -webkit-transform: translateX(-8px); - } - 100% { - -webkit-transform: translateX(0); - opacity: 1; - } - } - @-moz-keyframes enterLeftBounce { - 0% { - -moz-transform: translateX(-220px); - opacity: 0; - } - 50% { - -moz-transform: translateX(0px); - } - 70% { - -moz-transform: translateX(-8px); - } - 100% { - -moz-transform: translateX(0); - opacity: 1; - } - } - @-o-keyframes enterLeftBounce { - 0% { - -o-transform: translateX(-220px); - opacity: 0; - } - 50% { - -o-transform: translateX(0px); - } - 70% { - -o-transform: translateX(-8px); - } - 100% { - -o-transform: translateX(0); - opacity: 1; - } - } - @-ms-keyframes enterLeftBounce { - 0% { - -ms-transform: translateX(-220px); - opacity: 0; - } - 50% { - -ms-transform: translateX(0px); - } - 70% { - -ms-transform: translateX(-8px); - } - 100% { - -ms-transform: translateX(0); - opacity: 1; - } - } - @-moz-keyframes enterLeftBounce { - 0% { - transform: translateX(-220px); - opacity: 0; - } - 50% { - transform: translateX(0px); - } - 70% { - transform: translateX(-8px); - } - 100% { - transform: translateX(0); - opacity: 1; - } - } - @-webkit-keyframes enterLeftBounce { - 0% { - transform: translateX(-220px); - opacity: 0; - } - 50% { - transform: translateX(0px); - } - 70% { - transform: translateX(-8px); - } - 100% { - transform: translateX(0); - opacity: 1; - } - } - @-o-keyframes enterLeftBounce { - 0% { - transform: translateX(-220px); - opacity: 0; - } - 50% { - transform: translateX(0px); - } - 70% { - transform: translateX(-8px); - } - 100% { - transform: translateX(0); - opacity: 1; - } - } - @keyframes enterLeftBounce { - 0% { - transform: translateX(-220px); - opacity: 0; - } - 50% { - transform: translateX(0px); - } - 70% { - transform: translateX(-8px); - } - 100% { - transform: translateX(0); - opacity: 1; - } - } - -// MARK: Custom Fonts - -.news-title { - width:100%; - white-space: pre-line; -} -.main-header{ - color: white !important; + animation-name: unfold; +} + + +.enter-left-bounce { + opacity: 1 !important; + visibility: visible !important; + -webkit-animation: enterLeftBounce 1s linear; + -moz-animation: enterLeftBounce 1s linear; + -ms-animation: enterLeftBounce 1s linear; + -o-animation: enterLeftBounce 1s linear; + animation: enterLeftBounce 1s linear; +} + +@-webkit-keyframes enterLeftBounce { + 0% { + -webkit-transform: translateX(-220px); + opacity: 0; + } + 50% { + -webkit-transform: translateX(0px); + } + 70% { + -webkit-transform: translateX(-8px); + } + 100% { + -webkit-transform: translateX(0); + opacity: 1; + } +} + +@-moz-keyframes enterLeftBounce { + 0% { + -moz-transform: translateX(-220px); + opacity: 0; + } + 50% { + -moz-transform: translateX(0px); + } + 70% { + -moz-transform: translateX(-8px); + } + 100% { + -moz-transform: translateX(0); + opacity: 1; + } +} + +@-o-keyframes enterLeftBounce { + 0% { + -o-transform: translateX(-220px); + opacity: 0; + } + 50% { + -o-transform: translateX(0px); + } + 70% { + -o-transform: translateX(-8px); + } + 100% { + -o-transform: translateX(0); + opacity: 1; + } +} + +@-ms-keyframes enterLeftBounce { + 0% { + -ms-transform: translateX(-220px); + opacity: 0; + } + 50% { + -ms-transform: translateX(0px); + } + 70% { + -ms-transform: translateX(-8px); + } + 100% { + -ms-transform: translateX(0); + opacity: 1; + } +} + +@-moz-keyframes enterLeftBounce { + 0% { + transform: translateX(-220px); + opacity: 0; + } + 50% { + transform: translateX(0px); + } + 70% { + transform: translateX(-8px); + } + 100% { + transform: translateX(0); + opacity: 1; + } +} + +@-webkit-keyframes enterLeftBounce { + 0% { + transform: translateX(-220px); + opacity: 0; + } + 50% { + transform: translateX(0px); + } + 70% { + transform: translateX(-8px); + } + 100% { + transform: translateX(0); + opacity: 1; + } +} + +@-o-keyframes enterLeftBounce { + 0% { + transform: translateX(-220px); + opacity: 0; + } + 50% { + transform: translateX(0px); + } + 70% { + transform: translateX(-8px); + } + 100% { + transform: translateX(0); + opacity: 1; + } +} + +@keyframes enterLeftBounce { + 0% { + transform: translateX(-220px); + opacity: 0; + } + 50% { + transform: translateX(0px); + } + 70% { + transform: translateX(-8px); + } + 100% { + transform: translateX(0); + opacity: 1; + } +} + + + +.main-header { + color: var(--ion-color-primary-contrast) !important; font-weight: bold; font-size: 3.75vmax; margin: auto; position: relative; padding-bottom: 1vh; padding-top: 3vh; - z-index: -9999 !important; + z-index: -9999 !important; } -.very-small-font{ +.very-small-font { font-size: 0.5em; text-align: center; } diff --git a/branding/brands/iq/assets/tabbar/content.svg b/branding/brands/iq/assets/tabbar/content.svg index 4af36997..f5c53e4f 100644 --- a/branding/brands/iq/assets/tabbar/content.svg +++ b/branding/brands/iq/assets/tabbar/content.svg @@ -1,19 +1,30 @@ - + - - - - + + + + + + + + + + + + + + + diff --git a/branding/brands/iq/assets/tabbar/favorites.svg b/branding/brands/iq/assets/tabbar/favorites.svg index eb3529a6..0ac333c4 100644 --- a/branding/brands/iq/assets/tabbar/favorites.svg +++ b/branding/brands/iq/assets/tabbar/favorites.svg @@ -4,6 +4,14 @@ viewBox="0 0 40 40" style="enable-background:new 0 0 40 40;" xml:space="preserve"> icon/star-filled-blue Created with Sketch. - + + + + + diff --git a/branding/brands/iq/assets/tabbar/home.svg b/branding/brands/iq/assets/tabbar/home.svg index 42c4f9a3..dbb293b5 100644 --- a/branding/brands/iq/assets/tabbar/home.svg +++ b/branding/brands/iq/assets/tabbar/home.svg @@ -1,26 +1,14 @@ - - - - - - - - - icon/folder - Created with Sketch. - +icon/folder +Created with Sketch. + + diff --git a/branding/brands/iq/assets/tabbar/news.svg b/branding/brands/iq/assets/tabbar/news.svg index a5781894..b9bd9a16 100644 --- a/branding/brands/iq/assets/tabbar/news.svg +++ b/branding/brands/iq/assets/tabbar/news.svg @@ -4,12 +4,9 @@ viewBox="0 0 40 40" style="enable-background:new 0 0 40 40;" xml:space="preserve"> icon/folder Created with Sketch. - - - - - - + diff --git a/branding/brands/iq/build.json b/branding/brands/iq/build.json index 77467145..978025fc 100644 --- a/branding/brands/iq/build.json +++ b/branding/brands/iq/build.json @@ -1,18 +1,18 @@ { - "ios": { - "debug": { - "codeSignIdentity": "iPhone Developer", - "provisioningProfile": "201809_Pegasus", - "developmentTeam": "ZQ66BZ3DPL", - "packageType": "development" + "ios": { + "debug": { + "codeSignIdentity": "Apple Development", + "provisioningProfile": "aa2dbb2e-49aa-4ae4-9435-245c2812dc41", + "developmentTeam": "ZQ66BZ3DPL", + "packageType": "development" + }, + "release": { + "codeSignIdentity": "Apple Distribution", + "provisioningProfile": "d49737b4-664c-4ba6-a944-55ae15c166ab", + "developmentTeam": "ZQ66BZ3DPL", + "packageType": "app-store" + } }, - "release": { - "codeSignIdentity": "iPhone Distribution", - "provisioningProfile": "7d863c02-1eb3-4a39-b43a-af967028c094", - "developmentTeam": "ZQ66BZ3DPL", - "packageType": "app-store" - } - }, "android": { "debug": { "packageType": "apk" diff --git a/branding/brands/iq/config.json b/branding/brands/iq/config.json index 28879514..aa3b5508 100644 --- a/branding/brands/iq/config.json +++ b/branding/brands/iq/config.json @@ -1,5 +1,5 @@ { - "ilias_installation_ids": [1,2,3,4,5,6,12,22,7,14], + "ilias_installation_ids": [10], "projectConfig": { "id": "ch.studerraimann.ilias.iq", "name": "Lernwelt", diff --git a/branding/brands/iq/features.json b/branding/brands/iq/features.json new file mode 100644 index 00000000..bdec34c8 --- /dev/null +++ b/branding/brands/iq/features.json @@ -0,0 +1,6 @@ +{ + "disabled": [ + "sahs", + "htlm" + ] +} diff --git a/branding/brands/iq/resources/android/icon/drawable-hdpi-icon.png b/branding/brands/iq/resources/android/icon/drawable-hdpi-icon.png index e26e6b79..0b8727c8 100644 Binary files a/branding/brands/iq/resources/android/icon/drawable-hdpi-icon.png and b/branding/brands/iq/resources/android/icon/drawable-hdpi-icon.png differ diff --git a/branding/brands/iq/resources/android/icon/drawable-ldpi-icon.png b/branding/brands/iq/resources/android/icon/drawable-ldpi-icon.png index 67bafe3e..37c66db7 100644 Binary files a/branding/brands/iq/resources/android/icon/drawable-ldpi-icon.png and b/branding/brands/iq/resources/android/icon/drawable-ldpi-icon.png differ diff --git a/branding/brands/iq/resources/android/icon/drawable-mdpi-icon.png b/branding/brands/iq/resources/android/icon/drawable-mdpi-icon.png index d49ce582..78ab11f6 100644 Binary files a/branding/brands/iq/resources/android/icon/drawable-mdpi-icon.png and b/branding/brands/iq/resources/android/icon/drawable-mdpi-icon.png differ diff --git a/branding/brands/iq/resources/android/icon/drawable-xhdpi-icon.png b/branding/brands/iq/resources/android/icon/drawable-xhdpi-icon.png index 5b00920c..95187628 100644 Binary files a/branding/brands/iq/resources/android/icon/drawable-xhdpi-icon.png and b/branding/brands/iq/resources/android/icon/drawable-xhdpi-icon.png differ diff --git a/branding/brands/iq/resources/android/icon/drawable-xxhdpi-icon.png b/branding/brands/iq/resources/android/icon/drawable-xxhdpi-icon.png index 4d12286a..235895a3 100644 Binary files a/branding/brands/iq/resources/android/icon/drawable-xxhdpi-icon.png and b/branding/brands/iq/resources/android/icon/drawable-xxhdpi-icon.png differ diff --git a/branding/brands/iq/resources/android/icon/drawable-xxxhdpi-icon.png b/branding/brands/iq/resources/android/icon/drawable-xxxhdpi-icon.png index fd8108d1..faa81900 100644 Binary files a/branding/brands/iq/resources/android/icon/drawable-xxxhdpi-icon.png and b/branding/brands/iq/resources/android/icon/drawable-xxxhdpi-icon.png differ diff --git a/branding/brands/iq/resources/android/splash/drawable-land-hdpi-screen.png b/branding/brands/iq/resources/android/splash/drawable-land-hdpi-screen.png index 6b68d9ee..2fdd7a10 100644 Binary files a/branding/brands/iq/resources/android/splash/drawable-land-hdpi-screen.png and b/branding/brands/iq/resources/android/splash/drawable-land-hdpi-screen.png differ diff --git a/branding/brands/iq/resources/android/splash/drawable-land-ldpi-screen.png b/branding/brands/iq/resources/android/splash/drawable-land-ldpi-screen.png index 261a89d8..3834100a 100644 Binary files a/branding/brands/iq/resources/android/splash/drawable-land-ldpi-screen.png and b/branding/brands/iq/resources/android/splash/drawable-land-ldpi-screen.png differ diff --git a/branding/brands/iq/resources/android/splash/drawable-land-mdpi-screen.png b/branding/brands/iq/resources/android/splash/drawable-land-mdpi-screen.png index c543d42e..a7fb462c 100644 Binary files a/branding/brands/iq/resources/android/splash/drawable-land-mdpi-screen.png and b/branding/brands/iq/resources/android/splash/drawable-land-mdpi-screen.png differ diff --git a/branding/brands/iq/resources/android/splash/drawable-land-xhdpi-screen.png b/branding/brands/iq/resources/android/splash/drawable-land-xhdpi-screen.png index ee2c035b..4f5ab61e 100644 Binary files a/branding/brands/iq/resources/android/splash/drawable-land-xhdpi-screen.png and b/branding/brands/iq/resources/android/splash/drawable-land-xhdpi-screen.png differ diff --git a/branding/brands/iq/resources/android/splash/drawable-land-xxhdpi-screen.png b/branding/brands/iq/resources/android/splash/drawable-land-xxhdpi-screen.png index 7d13f467..75122b0a 100644 Binary files a/branding/brands/iq/resources/android/splash/drawable-land-xxhdpi-screen.png and b/branding/brands/iq/resources/android/splash/drawable-land-xxhdpi-screen.png differ diff --git a/branding/brands/iq/resources/android/splash/drawable-land-xxxhdpi-screen.png b/branding/brands/iq/resources/android/splash/drawable-land-xxxhdpi-screen.png index f649e172..348bf7c2 100644 Binary files a/branding/brands/iq/resources/android/splash/drawable-land-xxxhdpi-screen.png and b/branding/brands/iq/resources/android/splash/drawable-land-xxxhdpi-screen.png differ diff --git a/branding/brands/iq/resources/android/splash/drawable-port-hdpi-screen.png b/branding/brands/iq/resources/android/splash/drawable-port-hdpi-screen.png index 0a649148..bfe8e40e 100644 Binary files a/branding/brands/iq/resources/android/splash/drawable-port-hdpi-screen.png and b/branding/brands/iq/resources/android/splash/drawable-port-hdpi-screen.png differ diff --git a/branding/brands/iq/resources/android/splash/drawable-port-ldpi-screen.png b/branding/brands/iq/resources/android/splash/drawable-port-ldpi-screen.png index 2e026d19..4c273d2b 100644 Binary files a/branding/brands/iq/resources/android/splash/drawable-port-ldpi-screen.png and b/branding/brands/iq/resources/android/splash/drawable-port-ldpi-screen.png differ diff --git a/branding/brands/iq/resources/android/splash/drawable-port-mdpi-screen.png b/branding/brands/iq/resources/android/splash/drawable-port-mdpi-screen.png index 91cbef2d..982cabed 100644 Binary files a/branding/brands/iq/resources/android/splash/drawable-port-mdpi-screen.png and b/branding/brands/iq/resources/android/splash/drawable-port-mdpi-screen.png differ diff --git a/branding/brands/iq/resources/android/splash/drawable-port-xhdpi-screen.png b/branding/brands/iq/resources/android/splash/drawable-port-xhdpi-screen.png index 779b2885..fe24872e 100644 Binary files a/branding/brands/iq/resources/android/splash/drawable-port-xhdpi-screen.png and b/branding/brands/iq/resources/android/splash/drawable-port-xhdpi-screen.png differ diff --git a/branding/brands/iq/resources/android/splash/drawable-port-xxhdpi-screen.png b/branding/brands/iq/resources/android/splash/drawable-port-xxhdpi-screen.png index bd2b8cf3..7112ff24 100644 Binary files a/branding/brands/iq/resources/android/splash/drawable-port-xxhdpi-screen.png and b/branding/brands/iq/resources/android/splash/drawable-port-xxhdpi-screen.png differ diff --git a/branding/brands/iq/resources/android/splash/drawable-port-xxxhdpi-screen.png b/branding/brands/iq/resources/android/splash/drawable-port-xxxhdpi-screen.png index a1f92536..8edba06e 100644 Binary files a/branding/brands/iq/resources/android/splash/drawable-port-xxxhdpi-screen.png and b/branding/brands/iq/resources/android/splash/drawable-port-xxxhdpi-screen.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-1024.png b/branding/brands/iq/resources/ios/icon/icon-1024.png index 0f006d7b..60d0fbd2 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-1024.png and b/branding/brands/iq/resources/ios/icon/icon-1024.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-20.png b/branding/brands/iq/resources/ios/icon/icon-20.png index 07a6220e..fbac37d5 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-20.png and b/branding/brands/iq/resources/ios/icon/icon-20.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-20@2x.png b/branding/brands/iq/resources/ios/icon/icon-20@2x.png index e598f88b..e9d6fa85 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-20@2x.png and b/branding/brands/iq/resources/ios/icon/icon-20@2x.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-20@3x.png b/branding/brands/iq/resources/ios/icon/icon-20@3x.png index 439b0fc8..55ea2efd 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-20@3x.png and b/branding/brands/iq/resources/ios/icon/icon-20@3x.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-24@2x.png b/branding/brands/iq/resources/ios/icon/icon-24@2x.png index d49ce582..78ab11f6 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-24@2x.png and b/branding/brands/iq/resources/ios/icon/icon-24@2x.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-27.5@2x.png b/branding/brands/iq/resources/ios/icon/icon-27.5@2x.png index b6bb8180..a16018c3 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-27.5@2x.png and b/branding/brands/iq/resources/ios/icon/icon-27.5@2x.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-29.png b/branding/brands/iq/resources/ios/icon/icon-29.png index c3bd054c..876ab677 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-29.png and b/branding/brands/iq/resources/ios/icon/icon-29.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-29@2x.png b/branding/brands/iq/resources/ios/icon/icon-29@2x.png index 6c86592a..c85ab5ec 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-29@2x.png and b/branding/brands/iq/resources/ios/icon/icon-29@2x.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-29@3x.png b/branding/brands/iq/resources/ios/icon/icon-29@3x.png index 36fb43c2..479972b5 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-29@3x.png and b/branding/brands/iq/resources/ios/icon/icon-29@3x.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-40.png b/branding/brands/iq/resources/ios/icon/icon-40.png index e598f88b..e9d6fa85 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-40.png and b/branding/brands/iq/resources/ios/icon/icon-40.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-40@2x.png b/branding/brands/iq/resources/ios/icon/icon-40@2x.png index 5866e29c..19c91546 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-40@2x.png and b/branding/brands/iq/resources/ios/icon/icon-40@2x.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-40@3x.png b/branding/brands/iq/resources/ios/icon/icon-40@3x.png index 7352ed12..804113c0 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-40@3x.png and b/branding/brands/iq/resources/ios/icon/icon-40@3x.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-44@2x.png b/branding/brands/iq/resources/ios/icon/icon-44@2x.png index 554ffe76..735bce39 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-44@2x.png and b/branding/brands/iq/resources/ios/icon/icon-44@2x.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-50.png b/branding/brands/iq/resources/ios/icon/icon-50.png index 7c494334..51b36a8d 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-50.png and b/branding/brands/iq/resources/ios/icon/icon-50.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-50@2x.png b/branding/brands/iq/resources/ios/icon/icon-50@2x.png index c3fb939f..13165958 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-50@2x.png and b/branding/brands/iq/resources/ios/icon/icon-50@2x.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-60.png b/branding/brands/iq/resources/ios/icon/icon-60.png index 439b0fc8..55ea2efd 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-60.png and b/branding/brands/iq/resources/ios/icon/icon-60.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-60@2x.png b/branding/brands/iq/resources/ios/icon/icon-60@2x.png index 7352ed12..804113c0 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-60@2x.png and b/branding/brands/iq/resources/ios/icon/icon-60@2x.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-60@3x.png b/branding/brands/iq/resources/ios/icon/icon-60@3x.png index 650362aa..937635b4 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-60@3x.png and b/branding/brands/iq/resources/ios/icon/icon-60@3x.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-72.png b/branding/brands/iq/resources/ios/icon/icon-72.png index e26e6b79..0b8727c8 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-72.png and b/branding/brands/iq/resources/ios/icon/icon-72.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-72@2x.png b/branding/brands/iq/resources/ios/icon/icon-72@2x.png index 4d12286a..235895a3 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-72@2x.png and b/branding/brands/iq/resources/ios/icon/icon-72@2x.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-76.png b/branding/brands/iq/resources/ios/icon/icon-76.png index 3f4a3d6f..09d5d3ac 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-76.png and b/branding/brands/iq/resources/ios/icon/icon-76.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-76@2x.png b/branding/brands/iq/resources/ios/icon/icon-76@2x.png index 83ef796a..4c4e0e60 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-76@2x.png and b/branding/brands/iq/resources/ios/icon/icon-76@2x.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-83.5@2x.png b/branding/brands/iq/resources/ios/icon/icon-83.5@2x.png index e66e0a61..46cef021 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-83.5@2x.png and b/branding/brands/iq/resources/ios/icon/icon-83.5@2x.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-86@2x.png b/branding/brands/iq/resources/ios/icon/icon-86@2x.png index 553f2a87..7f271c3b 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-86@2x.png and b/branding/brands/iq/resources/ios/icon/icon-86@2x.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-98@2x.png b/branding/brands/iq/resources/ios/icon/icon-98@2x.png index 35bfd82c..44b51ced 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon-98@2x.png and b/branding/brands/iq/resources/ios/icon/icon-98@2x.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon-small.png b/branding/brands/iq/resources/ios/icon/icon-small.png deleted file mode 100644 index c3bd054c..00000000 Binary files a/branding/brands/iq/resources/ios/icon/icon-small.png and /dev/null differ diff --git a/branding/brands/iq/resources/ios/icon/icon-small@2x.png b/branding/brands/iq/resources/ios/icon/icon-small@2x.png deleted file mode 100644 index 6c86592a..00000000 Binary files a/branding/brands/iq/resources/ios/icon/icon-small@2x.png and /dev/null differ diff --git a/branding/brands/iq/resources/ios/icon/icon-small@3x.png b/branding/brands/iq/resources/ios/icon/icon-small@3x.png deleted file mode 100644 index 36fb43c2..00000000 Binary files a/branding/brands/iq/resources/ios/icon/icon-small@3x.png and /dev/null differ diff --git a/branding/brands/iq/resources/ios/icon/icon.png b/branding/brands/iq/resources/ios/icon/icon.png index 6789d7b1..9a116513 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon.png and b/branding/brands/iq/resources/ios/icon/icon.png differ diff --git a/branding/brands/iq/resources/ios/icon/icon@2x.png b/branding/brands/iq/resources/ios/icon/icon@2x.png index 43860003..693a564e 100644 Binary files a/branding/brands/iq/resources/ios/icon/icon@2x.png and b/branding/brands/iq/resources/ios/icon/icon@2x.png differ diff --git a/branding/brands/iq/resources/ios/splash/Default-2436h.png b/branding/brands/iq/resources/ios/splash/Default-2436h.png index 07155aa7..5dea528b 100644 Binary files a/branding/brands/iq/resources/ios/splash/Default-2436h.png and b/branding/brands/iq/resources/ios/splash/Default-2436h.png differ diff --git a/branding/brands/iq/resources/ios/splash/Default-568h@2x~iphone.png b/branding/brands/iq/resources/ios/splash/Default-568h@2x~iphone.png index 0b92d75f..89b3f175 100644 Binary files a/branding/brands/iq/resources/ios/splash/Default-568h@2x~iphone.png and b/branding/brands/iq/resources/ios/splash/Default-568h@2x~iphone.png differ diff --git a/branding/brands/iq/resources/ios/splash/Default-667h.png b/branding/brands/iq/resources/ios/splash/Default-667h.png index 6219de7c..a2b9dc34 100644 Binary files a/branding/brands/iq/resources/ios/splash/Default-667h.png and b/branding/brands/iq/resources/ios/splash/Default-667h.png differ diff --git a/branding/brands/iq/resources/ios/splash/Default-736h.png b/branding/brands/iq/resources/ios/splash/Default-736h.png index 6cdd79c7..cafe9618 100644 Binary files a/branding/brands/iq/resources/ios/splash/Default-736h.png and b/branding/brands/iq/resources/ios/splash/Default-736h.png differ diff --git a/branding/brands/iq/resources/ios/splash/Default-Landscape-2436h.png b/branding/brands/iq/resources/ios/splash/Default-Landscape-2436h.png index 2ccef663..e3db867b 100644 Binary files a/branding/brands/iq/resources/ios/splash/Default-Landscape-2436h.png and b/branding/brands/iq/resources/ios/splash/Default-Landscape-2436h.png differ diff --git a/branding/brands/iq/resources/ios/splash/Default-Landscape-736h.png b/branding/brands/iq/resources/ios/splash/Default-Landscape-736h.png index c2abb405..4b7a0ba9 100644 Binary files a/branding/brands/iq/resources/ios/splash/Default-Landscape-736h.png and b/branding/brands/iq/resources/ios/splash/Default-Landscape-736h.png differ diff --git a/branding/brands/iq/resources/ios/splash/Default-Landscape@2x~ipad.png b/branding/brands/iq/resources/ios/splash/Default-Landscape@2x~ipad.png index 110c3107..572e9da1 100644 Binary files a/branding/brands/iq/resources/ios/splash/Default-Landscape@2x~ipad.png and b/branding/brands/iq/resources/ios/splash/Default-Landscape@2x~ipad.png differ diff --git a/branding/brands/iq/resources/ios/splash/Default-Landscape@~ipadpro.png b/branding/brands/iq/resources/ios/splash/Default-Landscape@~ipadpro.png index 0035da84..d27bb64a 100644 Binary files a/branding/brands/iq/resources/ios/splash/Default-Landscape@~ipadpro.png and b/branding/brands/iq/resources/ios/splash/Default-Landscape@~ipadpro.png differ diff --git a/branding/brands/iq/resources/ios/splash/Default-Landscape~ipad.png b/branding/brands/iq/resources/ios/splash/Default-Landscape~ipad.png index 30877d7e..822cc60f 100644 Binary files a/branding/brands/iq/resources/ios/splash/Default-Landscape~ipad.png and b/branding/brands/iq/resources/ios/splash/Default-Landscape~ipad.png differ diff --git a/branding/brands/iq/resources/ios/splash/Default-Portrait@2x~ipad.png b/branding/brands/iq/resources/ios/splash/Default-Portrait@2x~ipad.png index 5c0643c3..285cc862 100644 Binary files a/branding/brands/iq/resources/ios/splash/Default-Portrait@2x~ipad.png and b/branding/brands/iq/resources/ios/splash/Default-Portrait@2x~ipad.png differ diff --git a/branding/brands/iq/resources/ios/splash/Default-Portrait@~ipadpro.png b/branding/brands/iq/resources/ios/splash/Default-Portrait@~ipadpro.png index f32671df..4b572f2e 100644 Binary files a/branding/brands/iq/resources/ios/splash/Default-Portrait@~ipadpro.png and b/branding/brands/iq/resources/ios/splash/Default-Portrait@~ipadpro.png differ diff --git a/branding/brands/iq/resources/ios/splash/Default-Portrait~ipad.png b/branding/brands/iq/resources/ios/splash/Default-Portrait~ipad.png index 411b4cc4..543660f1 100644 Binary files a/branding/brands/iq/resources/ios/splash/Default-Portrait~ipad.png and b/branding/brands/iq/resources/ios/splash/Default-Portrait~ipad.png differ diff --git a/branding/brands/iq/resources/ios/splash/Default@2x~iphone.png b/branding/brands/iq/resources/ios/splash/Default@2x~iphone.png index a57aa9b3..6e04ed4d 100644 Binary files a/branding/brands/iq/resources/ios/splash/Default@2x~iphone.png and b/branding/brands/iq/resources/ios/splash/Default@2x~iphone.png differ diff --git a/branding/brands/iq/resources/ios/splash/Default@2x~universal~anyany.png b/branding/brands/iq/resources/ios/splash/Default@2x~universal~anyany.png index 3a624a30..edffce64 100644 Binary files a/branding/brands/iq/resources/ios/splash/Default@2x~universal~anyany.png and b/branding/brands/iq/resources/ios/splash/Default@2x~universal~anyany.png differ diff --git a/branding/brands/iq/resources/ios/splash/Default~iphone.png b/branding/brands/iq/resources/ios/splash/Default~iphone.png index 91cbef2d..982cabed 100644 Binary files a/branding/brands/iq/resources/ios/splash/Default~iphone.png and b/branding/brands/iq/resources/ios/splash/Default~iphone.png differ diff --git a/branding/brands/iq_bak/assets/i18n/de.json b/branding/brands/iq_bak/assets/i18n/de.json new file mode 100644 index 00000000..6209d248 --- /dev/null +++ b/branding/brands/iq_bak/assets/i18n/de.json @@ -0,0 +1,4 @@ +{ + "test": "der test" + +} diff --git a/branding/brands/iq_bak/assets/i18n/en.json b/branding/brands/iq_bak/assets/i18n/en.json new file mode 100644 index 00000000..a6f830e2 --- /dev/null +++ b/branding/brands/iq_bak/assets/i18n/en.json @@ -0,0 +1,4 @@ +{ + "test" : "le test" + +} diff --git a/branding/brands/iq_bak/assets/i18n/it.json b/branding/brands/iq_bak/assets/i18n/it.json new file mode 100644 index 00000000..a14df4e5 --- /dev/null +++ b/branding/brands/iq_bak/assets/i18n/it.json @@ -0,0 +1,4 @@ +{ + "test" : "il testo" + +} diff --git a/branding/brands/iq_bak/assets/stylesheets/app.scss b/branding/brands/iq_bak/assets/stylesheets/app.scss new file mode 100644 index 00000000..b230a4e1 --- /dev/null +++ b/branding/brands/iq_bak/assets/stylesheets/app.scss @@ -0,0 +1,47 @@ +// Global CSS +// -------------------------------------------------- +// Put CSS rules here that you want to apply globally +// +// NOTE: @import "coloring"; is called before this file is imported + +@import "icons"; +@import url('https://fonts.googleapis.com/css?family=Raleway:400,600,800'); + +ion-icon { + &[class*="custom-"] { + mask-size: contain; + mask-position: 50% 50%; + mask-repeat: no-repeat; + background: currentColor; + width: 1em; + height: 1em; + } + } + +.content, .ion-header, ion-toolbar { + font-family: 'Raleway', sans-serif !important; +} + +.top-header{ + border-width: 0px !important; + --padding-top: 0px !important; + --padding-start: 0px !important; + --padding-right: 0px !important; + --padding-end: 0px !important; +} + + +// Typogrtaphie + +h1{ + font-weight: 800; +} + +ion-tab-bar{ + --color-selected: #000 !important; +} + +// Animations + + + diff --git a/branding/brands/iq_bak/assets/stylesheets/coloring.scss b/branding/brands/iq_bak/assets/stylesheets/coloring.scss new file mode 100644 index 00000000..0999e9a1 --- /dev/null +++ b/branding/brands/iq_bak/assets/stylesheets/coloring.scss @@ -0,0 +1,247 @@ +// CSS coloring for the theme +// -------------------------------------------------- + +//Import Font + + + + +:root { + // whether the color-values are synchronized with the setting in the pegasus-helper-plugin + // set to "true" or "false" + --theme-from-plugin: "false"; + + // --ion-background-color: linear-gradient(to bottom right, #9bc8e5, #017C8E); + + // font + // --ion-font-family: "Raleway", sans-serif; + + // Custom Tab Colorr + --ion-background-color: linear-gradient(to top, #017C8E, #AFD0CA); + --ion-text-color: white !important; + ion-card{ + border-radius: 0px; + border-color: white; + border-style: solid; + border-width: 3px; + color: white; + } + + ion-tab-button.tab-selected { + ion-icon, ion-label { + color: var(--ion-color-secondary) !important; + --ion-color-base: var(--ion-color-primarry) !important; + } + } + + ion-tab-button { + ion-icon, ion-label { + color: var(--ion-color-light-grey) !important; + --ion-color-base: var(--ion-color-light-grey) !important; + } + } + + + // colors + --ion-item-border-color: transparent; + + --ion-color-primary: #017C8E; + --ion-color-primary-rgb: 1,124,142; + --ion-color-primary-contrast: #ffffff; + --ion-color-primary-contrast-rgb: 255,255,255; + --ion-color-primary-shade: #016d7d; + --ion-color-primary-tint: #1a8999; + + --ion-color-secondary: #004d9f; + --ion-color-secondary-rgb: 0,77,159; + --ion-color-secondary-contrast: #ffffff; + --ion-color-secondary-contrast-rgb: 255,255,255; + --ion-color-secondary-shade: #00448c; + --ion-color-secondary-tint: #1a5fa9; + + --ion-color-tertiary: transparent; + --ion-color-tertiary-rgb: 255,255,255; + --ion-color-tertiary-contrast: #4a668b; + --ion-color-tertiary-contrast-rgb: 74,102,139; + --ion-color-tertiary-shade: #d7d8da; + --ion-color-tertiary-tint: #f5f6f9; + + --ion-color-success: #10dc60; + --ion-color-success-rgb: 16,220,96; + --ion-color-success-contrast: #ffffff; + --ion-color-success-contrast-rgb: 255,255,255; + --ion-color-success-shade: #0ec254; + --ion-color-success-tint: #28e070; + + --ion-color-warning: #ffce00; + --ion-color-warning-rgb: 255,206,0; + --ion-color-warning-contrast: #ffffff; + --ion-color-warning-contrast-rgb: 255,255,255; + --ion-color-warning-shade: #e0b500; + --ion-color-warning-tint: #ffd31a; + + --ion-color-danger: #f04141; + --ion-color-danger-rgb: 245,61,61; + --ion-color-danger-contrast: #ffffff; + --ion-color-danger-contrast-rgb: 255,255,255; + --ion-color-danger-shade: #d33939; + --ion-color-danger-tint: #f25454; + + --ion-color-dark: #222428; + --ion-color-dark-rgb: 34,34,34; + --ion-color-dark-contrast: #ffffff; + --ion-color-dark-contrast-rgb: 255,255,255; + --ion-color-dark-shade: #1e2023; + --ion-color-dark-tint: #383a3e; + + --ion-color-medium: #ffffff; + --ion-color-medium-rgb: 255,255,255; + --ion-color-medium-contrast: #000000; + --ion-color-medium-contrast-rgb: 0,0,0; + --ion-color-medium-shade: #e0e0e0; + --ion-color-medium-tint: #ffffff; + + --ion-color-light: #ffffff; + --ion-color-light-rgb: 244,244,244; + --ion-color-light-contrast: #000000; + --ion-color-light-contrast-rgb: 0,0,0; + --ion-color-light-shade: #d7d8da; + --ion-color-light-tint: #f5f6f9; + + --ion-color-transparent: transparent; + --ion-color-transparent-rgb: 244,244,244; + --ion-color-transparent-contrast: #d7d8da; + --ion-color-transparent-contrast-rgb: 0,0,0; + --ion-color-transparent-shade: #d7d8da; + --ion-color-transparent-tint: #f5f6f9; + + --ion-color-light-grey: #c4c4c4; + --ion-color-light-grey-rgb: 196,196,196; + --ion-color-light-grey-contrast: #000000; + --ion-color-light-grey-contrast-rgb: 0,0,0; + --ion-color-light-grey-shade: #acacac; + --ion-color-light-grey-tint: #cacaca; + + //tabbar colors + + ion-tabs{ + --color: #1c1c21; // already exists + --ion-tabbar-color: rgba(var(--ion-text-color-rgb), 0.4); // suggested + --ion-tabbar-color-selected: var(--ion-text-color); // suggested + } + + + } + + // MARK: Darkmode + + @media (prefers-color-scheme: dark) { + :root { + --ion-background-color: linear-gradient(to bottom, #017C8E, #000000); + + --ion-border-color: var(--ion-color-dark-shade); + // --ion-background-color: var(--ion-color-dark); + // --ion-background-color-rgb: var(--ion-color-dark-rgb); + --ion-text-color: var(--ion-color-light); + --ion-text-color-rgb: var(--ion-color-light-rgb); + + --ion-color-step-50: #232323; + --ion-color-step-100: #2e2e2e; + --ion-color-step-150: #3a3a3a; + --ion-color-step-200: #454545; + --ion-color-step-250: #515151; + --ion-color-step-300: #5d5d5d; + --ion-color-step-350: #8b8b8b; + --ion-color-step-400: #747474; + --ion-color-step-450: #7f7f7f; + --ion-color-step-500: #8b8b8b; + --ion-color-step-550: #979797; + --ion-color-step-600: #a2a2a2; + --ion-color-step-650: #aeaeae; + --ion-color-step-700: #b9b9b9; + --ion-color-step-750: #c5c5c5; + --ion-color-step-800: #d1d1d1; + --ion-color-step-850: #dcdcdc; + --ion-color-step-900: #e8e8e8; + --ion-color-step-950: #f3f3f3; + + //colorr Variables + + --ion-color-primary: #017C8E; + --ion-color-primary-rgb: 34,36,40; + --ion-color-primary-contrast: #ffffff; + --ion-color-primary-contrast-rgb: 255,255,255; + --ion-color-primary-shade: #1e2023; + --ion-color-primary-tint: #383a3e; + + --ion-color-secondary: #017C8E; + --ion-color-secondary-rgb: 1,124,142; + --ion-color-secondary-contrast: #ffffff; + --ion-color-secondary-contrast-rgb: 255,255,255; + --ion-color-secondary-shade: #016d7d; + --ion-color-secondary-tint: #1a8999; + + // --ion-color-medium: #3b3b3b; + // --ion-color-medium-rgb: 59,59,59; + // --ion-color-medium-contrast: #ffffff; + // --ion-color-medium-contrast-rgb: 255,255,255; + // --ion-color-medium-shade: #343434; + // --ion-color-medium-tint: #4f4f4f; + + + // TAb + + ion-tab-button.tab-selected { + ion-icon, ion-label { + color: var(--ion-color-secondary) !important; + --ion-color-base: var(--ion-color-secondary) !important; + } + } + + } + } + +// gradients + +$gradient-col1: #003c66; +$gradient-col2: #003c66; + +.primary-gradient { + background-image: linear-gradient(to top left, $gradient-col1, $gradient-col1); + color:white !important; + // filter: blur(5px); + // opacity: 0.5; +} + +.primary-gradient-inverted { + background-image: linear-gradient(to top left, $gradient-col1, $gradient-col1); + color:white; +} + +// MARK: Define Color Variables + +.ion-color-transparent { + --ion-color-base: var(--ion-color-transparent); + --ion-color-base-rgb: var(--ion-color-transparent-rgb); + --ion-color-contrast: var(--ion-color-transparent-contrast); + --ion-color-contrast-rgb: var(--ion-color-transparent-contrast-rgb); + --ion-color-shade: var(--ion-color-transparent-shade); + --ion-color-tint: var(--ion-color-transparent-tint); +} + +.ion-color-light-grey { + --ion-color-base: var(--ion-color-light-grey); + --ion-color-base-rgb: var(--ion-color-light-grey-rgb); + --ion-color-contrast: var(--ion-color-light-grey-contrast); + --ion-color-contrast-rgb: var(--ion-color-light-grey-contrast-rgb); + --ion-color-shade: var(--ion-color-light-grey-shade); + --ion-color-tint: var(--ion-color-light-grey-tint); +} + + + +// // misc + +// .white-text { +// color: white; +// } diff --git a/branding/brands/iq_bak/assets/stylesheets/icons.scss b/branding/brands/iq_bak/assets/stylesheets/icons.scss new file mode 100644 index 00000000..edb15d53 --- /dev/null +++ b/branding/brands/iq_bak/assets/stylesheets/icons.scss @@ -0,0 +1,46 @@ +@font-face { + font-family: 'icomoon'; + src: url('./assets/fonts/icomoon.eot?39m2i2'); + src: url('./assets/fonts/icomoon.eot?39m2i2#iefix') format('embedded-opentype'), + url('./assets/fonts/icomoon.ttf?39m2i2') format('truetype'), + url('./assets/fonts/icomoon.woff?39m2i2') format('woff'), + url('./assets/fonts/icomoon.svg?39m2i2#icomoon') format('svg'); + font-weight: normal; + font-style: normal; +} + +[class^="icon-"], [class*=" icon-"] { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'icomoon' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +@mixin makeIcon($arg, $val) { + .ai-#{$arg}:before , + .ion-ios-ai-#{$arg}:before , + .ion-ios-ai-#{$arg}-outline:before , + .ion-md-ai-#{$arg}:before , + .ion-md-ai-#{$arg}-outline:before { + content: $val; + // font-size: + // 20px; + } +} + +@include makeIcon(news, '\e900'); +@include makeIcon(news-outline, '\e901'); +@include makeIcon(home, '\e902'); +@include makeIcon(home-outline, '\e903'); +@include makeIcon(favorites, '\e904'); +@include makeIcon(favorites-outline, '\e905'); +@include makeIcon(content, '\e906'); +@include makeIcon(content-outline, '\e907'); diff --git a/branding/brands/iq/assets/stylesheets/pages.scss b/branding/brands/iq_bak/assets/stylesheets/pages.scss similarity index 98% rename from branding/brands/iq/assets/stylesheets/pages.scss rename to branding/brands/iq_bak/assets/stylesheets/pages.scss index 2db95fb8..94d25545 100644 --- a/branding/brands/iq/assets/stylesheets/pages.scss +++ b/branding/brands/iq_bak/assets/stylesheets/pages.scss @@ -340,11 +340,23 @@ ion-content.page_settings { #webr-icon { height: auto !important; - width: 20vh !important; + width: 60% !important; + + @media screen and (orientation:landscape) { + height: 40% !important; + width: auto !important; + } + margin: auto !important; display: block !important; } + .return-to-app-row { + @media screen and (orientation:landscape) { + padding-top: 0; + } + } + h1 { color: white; } diff --git a/branding/brands/iq_bak/assets/stylesheets/theme.scss b/branding/brands/iq_bak/assets/stylesheets/theme.scss new file mode 100644 index 00000000..7196e762 --- /dev/null +++ b/branding/brands/iq_bak/assets/stylesheets/theme.scss @@ -0,0 +1,16 @@ +// CSS theme +// -------------------------------------------------- +// +// this stylesheet will be loaded into the otherwise empty +// files 'app/app.scss' and 'theme/variables.scss' +// +// NOTE: in order to change the contents of 'app/app.scss', edit +// 'app.scss' in this folder +// +// NOTE: in order to change the contents of 'theme/variables.scss', +// edit 'variables.scss' in this folder + +@import "coloring"; +@import "variables"; +@import "app"; +@import "pages"; diff --git a/branding/brands/iq_bak/assets/stylesheets/variables.scss b/branding/brands/iq_bak/assets/stylesheets/variables.scss new file mode 100644 index 00000000..1bde7678 --- /dev/null +++ b/branding/brands/iq_bak/assets/stylesheets/variables.scss @@ -0,0 +1,234 @@ +//MARK: Animation + +@keyframes bounce { + + from, 10%, 26%, 40%, to { + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transform: translate3d(0,0,0); + } + + 20%, 21% { + animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + transform: translate3d(0, -30px, 0); + } + + 35% { + animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + transform: translate3d(0, -15px, 0); + } + + 45% { + transform: translate3d(0,-4px,0); + } + 50% { + animation-timing-function: cubic-bezier(0, 0, 0, 1.000); + transform: translate3d(0,0,0); + } + +} + +.bounce { + animation-name: bounce; + animation-duration: 3s; + animation-delay: 2s; + animation-iteration-count: infinite; + transform-origin: center bottom; +} + +.fold { + -webkit-animation-name: fold; + animation-name: fold; + animation-duration: 3s; + animation-delay: 13s; + animation-iteration-count: infinite; } + + @keyframes fold { + 0% { + -webkit-animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); + animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } + 30% { + -webkit-animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); + animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); + -webkit-transform: scale3d(1, 0.4, 1); + transform: scale3d(1, 0.4, 1); } + 60% { + opacity: 1; + -webkit-animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); + animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); + -webkit-transform: scale3d(0.4, 0.4, 1); + transform: scale3d(0.4, 0.4, 1); } + 100% { + opacity: 0; + -webkit-animation-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); + animation-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); + -webkit-transform: scale3d(0.2, 0.2, 0.2); + transform: scale3d(0.2, 0.2, 0.2); } } + .unfold { + -webkit-animation-name: unfold; + animation-name: unfold; } + + + .enter-left-bounce { + opacity: 1 !important; + visibility: visible !important; + -webkit-animation: enterLeftBounce 1s linear; + -moz-animation: enterLeftBounce 1s linear; + -ms-animation: enterLeftBounce 1s linear; + -o-animation: enterLeftBounce 1s linear; + animation: enterLeftBounce 1s linear; + } + @-webkit-keyframes enterLeftBounce { + 0% { + -webkit-transform: translateX(-220px); + opacity: 0; + } + 50% { + -webkit-transform: translateX(0px); + } + 70% { + -webkit-transform: translateX(-8px); + } + 100% { + -webkit-transform: translateX(0); + opacity: 1; + } + } + @-moz-keyframes enterLeftBounce { + 0% { + -moz-transform: translateX(-220px); + opacity: 0; + } + 50% { + -moz-transform: translateX(0px); + } + 70% { + -moz-transform: translateX(-8px); + } + 100% { + -moz-transform: translateX(0); + opacity: 1; + } + } + @-o-keyframes enterLeftBounce { + 0% { + -o-transform: translateX(-220px); + opacity: 0; + } + 50% { + -o-transform: translateX(0px); + } + 70% { + -o-transform: translateX(-8px); + } + 100% { + -o-transform: translateX(0); + opacity: 1; + } + } + @-ms-keyframes enterLeftBounce { + 0% { + -ms-transform: translateX(-220px); + opacity: 0; + } + 50% { + -ms-transform: translateX(0px); + } + 70% { + -ms-transform: translateX(-8px); + } + 100% { + -ms-transform: translateX(0); + opacity: 1; + } + } + @-moz-keyframes enterLeftBounce { + 0% { + transform: translateX(-220px); + opacity: 0; + } + 50% { + transform: translateX(0px); + } + 70% { + transform: translateX(-8px); + } + 100% { + transform: translateX(0); + opacity: 1; + } + } + @-webkit-keyframes enterLeftBounce { + 0% { + transform: translateX(-220px); + opacity: 0; + } + 50% { + transform: translateX(0px); + } + 70% { + transform: translateX(-8px); + } + 100% { + transform: translateX(0); + opacity: 1; + } + } + @-o-keyframes enterLeftBounce { + 0% { + transform: translateX(-220px); + opacity: 0; + } + 50% { + transform: translateX(0px); + } + 70% { + transform: translateX(-8px); + } + 100% { + transform: translateX(0); + opacity: 1; + } + } + @keyframes enterLeftBounce { + 0% { + transform: translateX(-220px); + opacity: 0; + } + 50% { + transform: translateX(0px); + } + 70% { + transform: translateX(-8px); + } + 100% { + transform: translateX(0); + opacity: 1; + } + } + +// MARK: Custom Fonts + +.news-title { + width:100%; + white-space: pre-line; +} +.main-header{ + color: white !important; + font-weight: bold; + font-size: 3.75vmax; + margin: auto; + position: relative; + padding-bottom: 1vh; + padding-top: 3vh; + z-index: -9999 !important; +} + +.very-small-font{ + font-size: 0.5em; + text-align: center; +} + + + diff --git a/branding/brands/iq_bak/resources/README.md b/branding/brands/iq_bak/resources/README.md new file mode 100644 index 00000000..46c696e2 --- /dev/null +++ b/branding/brands/iq_bak/resources/README.md @@ -0,0 +1,8 @@ +These are Cordova resources. You can replace icon.png and splash.png and run +`ionic cordova resources` to generate custom icons and splash screens for your +app. See `ionic cordova resources --help` for details. + +Cordova reference documentation: + +- Icons: https://cordova.apache.org/docs/en/latest/config_ref/images.html +- Splash Screens: https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-splashscreen/ diff --git a/branding/brands/mfkjusb/assets/stylesheets/icons.scss b/branding/brands/mfkjusb/assets/stylesheets/icons.scss index ce6e7585..3b1cdedf 100755 --- a/branding/brands/mfkjusb/assets/stylesheets/icons.scss +++ b/branding/brands/mfkjusb/assets/stylesheets/icons.scss @@ -1,10 +1,10 @@ @font-face { font-family: 'icomoon'; - src: url('../assets/fonts/icomoon.eot?39m2i2'); - src: url('../assets/fonts/icomoon.eot?39m2i2#iefix') format('embedded-opentype'), - url('../assets/fonts/icomoon.ttf?39m2i2') format('truetype'), - url('../assets/fonts/icomoon.woff?39m2i2') format('woff'), - url('../assets/fonts/icomoon.svg?39m2i2#icomoon') format('svg'); + src: url('./assets/fonts/icomoon.eot?39m2i2'); + src: url('./assets/fonts/icomoon.eot?39m2i2#iefix') format('embedded-opentype'), + url('./assets/fonts/icomoon.ttf?39m2i2') format('truetype'), + url('./assets/fonts/icomoon.woff?39m2i2') format('woff'), + url('./assets/fonts/icomoon.svg?39m2i2#icomoon') format('svg'); font-weight: normal; font-style: normal; } @@ -31,7 +31,7 @@ .ion-md-ai-#{$arg}:before , .ion-md-ai-#{$arg}-outline:before { content: $val; - // font-size: + // font-size: // 20px; } } diff --git a/branding/brands/mfkjusb/assets/stylesheets/pages.scss b/branding/brands/mfkjusb/assets/stylesheets/pages.scss index 56927a43..f4e71fa7 100644 --- a/branding/brands/mfkjusb/assets/stylesheets/pages.scss +++ b/branding/brands/mfkjusb/assets/stylesheets/pages.scss @@ -38,7 +38,7 @@ // .page_desktop{ // background-image: linear-gradient(to top left, $gradient-col1, $gradient-col1); - background-image: url('../assets/img/header.svg'); + background-image: url('./assets/img/header.svg'); // background-color: map_get($colors, primary); // background-position: top left; background-size: 100vw ; @@ -102,13 +102,9 @@ .page_menu { - // background-image: linear-gradient(to top left, $gradient-col1, $gradient-col1); - background-image: url('../assets/img/header.svg'); - // background-color: map_get($colors, primary); - // background-position: top left; - background-size: 100vmin ; - background-repeat: no-repeat; - // background-color: map_get($colors, primary); + .menu-bottom-image{ + display: none; + } ion-list{ padding-top: 0; @@ -443,11 +439,23 @@ ion-content.page_settings { #webr-icon { height: auto !important; - width: 20vh !important; + width: 60% !important; + + @media screen and (orientation:landscape) { + height: 40% !important; + width: auto !important; + } + margin: auto !important; display: block !important; } + .return-to-app-row { + @media screen and (orientation:landscape) { + padding-top: 0; + } + } + h1 { color: white; } diff --git a/branding/brands/mfkjusb/features.json b/branding/brands/mfkjusb/features.json new file mode 100644 index 00000000..bdec34c8 --- /dev/null +++ b/branding/brands/mfkjusb/features.json @@ -0,0 +1,6 @@ +{ + "disabled": [ + "sahs", + "htlm" + ] +} diff --git a/branding/brands/nci/assets/stylesheets/pages.scss b/branding/brands/nci/assets/stylesheets/pages.scss index 80833b0b..1dc3344a 100644 --- a/branding/brands/nci/assets/stylesheets/pages.scss +++ b/branding/brands/nci/assets/stylesheets/pages.scss @@ -75,10 +75,9 @@ .page_menu { height: 100%; - .menu-bottom-image{ - position: absolute; - bottom: 0; - } + .menu-bottom-image{ + display: none; + } ion-list{ padding-top: 0; @@ -334,11 +333,23 @@ ion-content.page_settings { #webr-icon { height: auto !important; - width: 20vh !important; + width: 60% !important; + + @media screen and (orientation:landscape) { + height: 40% !important; + width: auto !important; + } + margin: auto !important; display: block !important; } + .return-to-app-row { + @media screen and (orientation:landscape) { + padding-top: 0; + } + } + h1 { color: white; } diff --git a/branding/brands/nci/features.json b/branding/brands/nci/features.json new file mode 100644 index 00000000..bdec34c8 --- /dev/null +++ b/branding/brands/nci/features.json @@ -0,0 +1,6 @@ +{ + "disabled": [ + "sahs", + "htlm" + ] +} diff --git a/branding/brands/studon/assets/i18n/de.json b/branding/brands/studon/assets/i18n/de.json new file mode 100644 index 00000000..88aeb81f --- /dev/null +++ b/branding/brands/studon/assets/i18n/de.json @@ -0,0 +1,28 @@ +{ + "actions": { + "view_in_ilias": "In StudOn anzeigen" + }, + "details" : { + "remote_version_date": "Datum Datei in StudOn" + }, + "login": { + "title": "Login", + "hello":"Willkommen bei StudOn", + "instructions":"Wähle Deine Plattform" + }, + "object_type": { + "catr": "Bereichs-Referenz", + "cat" : "Bereich" + }, + "fallback": { + "browser": "Du verlässt nun die StudOn App", + "synchronization_subtitle": "Bitte warte einen Moment während wir dein StudOn-Profil vorbereiten. Wenn Du in vielen Kursen eingeschrieben bist, kann das einige Minuten dauern." + }, + "onboarding": { + "title1": "Mit dieser App kannst Du:", + "function1": "Deine StudOn-Kursunterlagen auf Deinem Smartphone nutzen.", + "title2": "Eine App für StudOn", + "concept1": "Diese App ist eine angepasste Version der ILIAS Pegasus App.", + "concept2": "Sie verbindet sich mit der StudOn-Lernplattform der Friedrich-Alexander-Universität Erlangen-Nürnberg." + } +} diff --git a/branding/brands/studon/assets/i18n/en.json b/branding/brands/studon/assets/i18n/en.json new file mode 100644 index 00000000..fe951f53 --- /dev/null +++ b/branding/brands/studon/assets/i18n/en.json @@ -0,0 +1,28 @@ +{ + "actions": { + "view_in_ilias": "View in StudOn" + }, + "details" : { + "remote_version_date": "Date of file in StudOn" + }, + "login": { + "title": "Login", + "hello":"Welcome to StudOn!", + "instructions":"Choose your installation" + }, + "object_type": { + "catr": "Category Reference", + "cat": "Category" + }, + "fallback": { + "browser": "You are leaving the StudOn App ", + "synchronization_subtitle": "Please wait a few seconds while we synchronize your StudOn-account." + }, + "onboarding": { + "title1": "With the help of this app you can:", + "function1": "access your StudOn courses on your smartphone.", + "title2": "An App for StudOn", + "concept1": "This app is a customized version if the ILIAS Pegasus App.", + "concept2": "It connects to the StudOn E-Larning Platform of the Friedrich-Alexander-Universität Erlangen-Nürnberg." + } +} diff --git a/branding/brands/studon/assets/img/fau.png b/branding/brands/studon/assets/img/fau.png new file mode 100644 index 00000000..8bdb0300 Binary files /dev/null and b/branding/brands/studon/assets/img/fau.png differ diff --git a/branding/brands/studon/assets/img/fau.svg b/branding/brands/studon/assets/img/fau.svg new file mode 100644 index 00000000..b68a9ab0 --- /dev/null +++ b/branding/brands/studon/assets/img/fau.svg @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/studon/features.json b/branding/brands/studon/features.json new file mode 100644 index 00000000..bdec34c8 --- /dev/null +++ b/branding/brands/studon/features.json @@ -0,0 +1,6 @@ +{ + "disabled": [ + "sahs", + "htlm" + ] +} diff --git a/branding/brands/testing/features.json b/branding/brands/testing/features.json new file mode 100644 index 00000000..bdec34c8 --- /dev/null +++ b/branding/brands/testing/features.json @@ -0,0 +1,6 @@ +{ + "disabled": [ + "sahs", + "htlm" + ] +} diff --git a/branding/brands/urversity/assets/stylesheets/icons.scss b/branding/brands/urversity/assets/stylesheets/icons.scss index 91a75d0c..663576b0 100755 --- a/branding/brands/urversity/assets/stylesheets/icons.scss +++ b/branding/brands/urversity/assets/stylesheets/icons.scss @@ -1,10 +1,10 @@ @font-face { font-family: 'icomoon'; - src: url('../assets/vanilla/fonts/icomoon.eot?39m2i2'); - src: url('../assets/vanilla/fonts/icomoon.eot?39m2i2#iefix') format('embedded-opentype'), - url('../assets/vanilla/fonts/icomoon.ttf?39m2i2') format('truetype'), - url('../assets/vanilla/fonts/icomoon.woff?39m2i2') format('woff'), - url('../assets/vanilla/fonts/icomoon.svg?39m2i2#icomoon') format('svg'); + src: url('./assets/vanilla/fonts/icomoon.eot?39m2i2'); + src: url('./assets/vanilla/fonts/icomoon.eot?39m2i2#iefix') format('embedded-opentype'), + url('./assets/vanilla/fonts/icomoon.ttf?39m2i2') format('truetype'), + url('./assets/vanilla/fonts/icomoon.woff?39m2i2') format('woff'), + url('./assets/vanilla/fonts/icomoon.svg?39m2i2#icomoon') format('svg'); font-weight: normal; font-style: normal; } @@ -31,7 +31,7 @@ .ion-md-ai-#{$arg}:before , .ion-md-ai-#{$arg}-outline:before { content: $val; - // font-size: + // font-size: // 20px; } } diff --git a/branding/brands/urversity/assets/stylesheets/pages.scss b/branding/brands/urversity/assets/stylesheets/pages.scss index 6c260134..85608965 100644 --- a/branding/brands/urversity/assets/stylesheets/pages.scss +++ b/branding/brands/urversity/assets/stylesheets/pages.scss @@ -38,7 +38,7 @@ // .page_desktop{ // background-image: linear-gradient(to top left, $gradient-col1, $gradient-col1); - background-image: url('../assets/branded_urversity/img/main_bg.svg'); + background-image: url('./assets/branded_urversity/img/main_bg.svg'); // background-color: map_get($colors, primary); // background-position: top left; background-size: cover ; diff --git a/branding/brands/urversity/features.json b/branding/brands/urversity/features.json new file mode 100644 index 00000000..bdec34c8 --- /dev/null +++ b/branding/brands/urversity/features.json @@ -0,0 +1,6 @@ +{ + "disabled": [ + "sahs", + "htlm" + ] +} diff --git a/branding/brands/vanilla/assets/icon/bin.svg b/branding/brands/vanilla/assets/icon/bin.svg new file mode 100644 index 00000000..62b63e8d --- /dev/null +++ b/branding/brands/vanilla/assets/icon/bin.svg @@ -0,0 +1,18 @@ + + + icon/bin + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/desktop_course.svg b/branding/brands/vanilla/assets/icon/desktop_course.svg index 41c56add..b75e688c 100644 --- a/branding/brands/vanilla/assets/icon/desktop_course.svg +++ b/branding/brands/vanilla/assets/icon/desktop_course.svg @@ -1,34 +1,29 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/desktop_favourites.svg b/branding/brands/vanilla/assets/icon/desktop_favourites.svg index c1f8da1a..bee3d1ee 100644 --- a/branding/brands/vanilla/assets/icon/desktop_favourites.svg +++ b/branding/brands/vanilla/assets/icon/desktop_favourites.svg @@ -1,14 +1,10 @@ - - - - + + diff --git a/branding/brands/vanilla/assets/icon/desktop_menu.svg b/branding/brands/vanilla/assets/icon/desktop_menu.svg index 00f97277..a62afb77 100644 --- a/branding/brands/vanilla/assets/icon/desktop_menu.svg +++ b/branding/brands/vanilla/assets/icon/desktop_menu.svg @@ -1,11 +1,8 @@ - - - - - + + + diff --git a/branding/brands/vanilla/assets/icon/desktop_news.svg b/branding/brands/vanilla/assets/icon/desktop_news.svg index 8d6352b6..fc24f198 100644 --- a/branding/brands/vanilla/assets/icon/desktop_news.svg +++ b/branding/brands/vanilla/assets/icon/desktop_news.svg @@ -1,18 +1,14 @@ - - - - - - - - - + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/desktop_repository.svg b/branding/brands/vanilla/assets/icon/desktop_repository.svg index f6de13c0..30ee8ded 100644 --- a/branding/brands/vanilla/assets/icon/desktop_repository.svg +++ b/branding/brands/vanilla/assets/icon/desktop_repository.svg @@ -1,15 +1,11 @@ - - - - - + + + diff --git a/branding/brands/vanilla/assets/icon/icon_bibl.svg b/branding/brands/vanilla/assets/icon/icon_bibl.svg new file mode 100644 index 00000000..c6c3d402 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_bibl.svg @@ -0,0 +1,84 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_blog.svg b/branding/brands/vanilla/assets/icon/icon_blog.svg new file mode 100644 index 00000000..fb3163cf --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_blog.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_book.svg b/branding/brands/vanilla/assets/icon/icon_book.svg new file mode 100644 index 00000000..8959125f --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_book.svg @@ -0,0 +1,82 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_cat.svg b/branding/brands/vanilla/assets/icon/icon_cat.svg new file mode 100644 index 00000000..5e8c4254 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_cat.svg @@ -0,0 +1,43 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_catr.svg b/branding/brands/vanilla/assets/icon/icon_catr.svg new file mode 100644 index 00000000..47951082 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_catr.svg @@ -0,0 +1,43 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_chtr.svg b/branding/brands/vanilla/assets/icon/icon_chtr.svg new file mode 100644 index 00000000..fb156916 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_chtr.svg @@ -0,0 +1,61 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_cld.svg b/branding/brands/vanilla/assets/icon/icon_cld.svg new file mode 100644 index 00000000..73ca172e --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_cld.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_copa.svg b/branding/brands/vanilla/assets/icon/icon_copa.svg new file mode 100644 index 00000000..9647d1c7 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_copa.svg @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_crs.svg b/branding/brands/vanilla/assets/icon/icon_crs.svg new file mode 100644 index 00000000..e9b5f1b1 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_crs.svg @@ -0,0 +1,42 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_crsr.svg b/branding/brands/vanilla/assets/icon/icon_crsr.svg new file mode 100644 index 00000000..3bce561d --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_crsr.svg @@ -0,0 +1,72 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_crsv.svg b/branding/brands/vanilla/assets/icon/icon_crsv.svg new file mode 100644 index 00000000..e9b5f1b1 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_crsv.svg @@ -0,0 +1,42 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_dcl.svg b/branding/brands/vanilla/assets/icon/icon_dcl.svg new file mode 100644 index 00000000..dbfa3876 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_dcl.svg @@ -0,0 +1,78 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_exc.svg b/branding/brands/vanilla/assets/icon/icon_exc.svg new file mode 100644 index 00000000..1a8452d0 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_exc.svg @@ -0,0 +1,111 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_excv.svg b/branding/brands/vanilla/assets/icon/icon_excv.svg new file mode 100644 index 00000000..1a8452d0 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_excv.svg @@ -0,0 +1,111 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_fallback.svg b/branding/brands/vanilla/assets/icon/icon_fallback.svg new file mode 100644 index 00000000..5c02bacf --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_fallback.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/branding/brands/vanilla/assets/icon/icon_feed.svg b/branding/brands/vanilla/assets/icon/icon_feed.svg new file mode 100644 index 00000000..c5ddc661 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_feed.svg @@ -0,0 +1,73 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_file.svg b/branding/brands/vanilla/assets/icon/icon_file.svg new file mode 100644 index 00000000..34c6653c --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_file.svg @@ -0,0 +1,60 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_fold.svg b/branding/brands/vanilla/assets/icon/icon_fold.svg new file mode 100644 index 00000000..bbf1de35 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_fold.svg @@ -0,0 +1,36 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_frm.svg b/branding/brands/vanilla/assets/icon/icon_frm.svg new file mode 100644 index 00000000..eb271a77 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_frm.svg @@ -0,0 +1,63 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_glo.svg b/branding/brands/vanilla/assets/icon/icon_glo.svg new file mode 100644 index 00000000..1674d253 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_glo.svg @@ -0,0 +1,94 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_grp.svg b/branding/brands/vanilla/assets/icon/icon_grp.svg new file mode 100644 index 00000000..0434afb2 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_grp.svg @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_grpr.svg b/branding/brands/vanilla/assets/icon/icon_grpr.svg new file mode 100644 index 00000000..f845c943 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_grpr.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_htlm.svg b/branding/brands/vanilla/assets/icon/icon_htlm.svg new file mode 100644 index 00000000..5f7cb9c4 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_htlm.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_iass.svg b/branding/brands/vanilla/assets/icon/icon_iass.svg new file mode 100644 index 00000000..dd73596c --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_iass.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_itgr.svg b/branding/brands/vanilla/assets/icon/icon_itgr.svg new file mode 100644 index 00000000..35f254bb --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_itgr.svg @@ -0,0 +1,140 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_lm.svg b/branding/brands/vanilla/assets/icon/icon_lm.svg new file mode 100644 index 00000000..5f7cb9c4 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_lm.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_lng.svg b/branding/brands/vanilla/assets/icon/icon_lng.svg new file mode 100644 index 00000000..4ace0772 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_lng.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_lso.svg b/branding/brands/vanilla/assets/icon/icon_lso.svg new file mode 100644 index 00000000..b1559fb8 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_lso.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + icon_lrnng-sqnce-bjct_v3 + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_mail.svg b/branding/brands/vanilla/assets/icon/icon_mail.svg new file mode 100644 index 00000000..1d73e456 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_mail.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_mcst.svg b/branding/brands/vanilla/assets/icon/icon_mcst.svg new file mode 100644 index 00000000..952959c7 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_mcst.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_mep.svg b/branding/brands/vanilla/assets/icon/icon_mep.svg new file mode 100644 index 00000000..7cda84ac --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_mep.svg @@ -0,0 +1,50 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_orgu.svg b/branding/brands/vanilla/assets/icon/icon_orgu.svg new file mode 100644 index 00000000..e7de1a73 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_orgu.svg @@ -0,0 +1,111 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_overlay.svg b/branding/brands/vanilla/assets/icon/icon_overlay.svg new file mode 100644 index 00000000..459913d1 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_overlay.svg @@ -0,0 +1 @@ + diff --git a/branding/brands/vanilla/assets/icon/icon_poll.svg b/branding/brands/vanilla/assets/icon/icon_poll.svg new file mode 100644 index 00000000..3ae2a993 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_poll.svg @@ -0,0 +1,89 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_prg.svg b/branding/brands/vanilla/assets/icon/icon_prg.svg new file mode 100644 index 00000000..4ac9af93 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_prg.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branding/brands/vanilla/assets/icon/icon_prtf.svg b/branding/brands/vanilla/assets/icon/icon_prtf.svg new file mode 100644 index 00000000..628b9465 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_prtf.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_prtt.svg b/branding/brands/vanilla/assets/icon/icon_prtt.svg new file mode 100644 index 00000000..8e748ade --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_prtt.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_qpl.svg b/branding/brands/vanilla/assets/icon/icon_qpl.svg new file mode 100644 index 00000000..dc6c0656 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_qpl.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_rcat.svg b/branding/brands/vanilla/assets/icon/icon_rcat.svg new file mode 100644 index 00000000..c35e91b8 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_rcat.svg @@ -0,0 +1,84 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_rcrs.svg b/branding/brands/vanilla/assets/icon/icon_rcrs.svg new file mode 100644 index 00000000..46c216d3 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_rcrs.svg @@ -0,0 +1,89 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_rfil.svg b/branding/brands/vanilla/assets/icon/icon_rfil.svg new file mode 100644 index 00000000..05f0e9d8 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_rfil.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_rglo.svg b/branding/brands/vanilla/assets/icon/icon_rglo.svg new file mode 100644 index 00000000..d115ef85 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_rglo.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_rgrp.svg b/branding/brands/vanilla/assets/icon/icon_rgrp.svg new file mode 100644 index 00000000..ed9d9294 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_rgrp.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_rlm.svg b/branding/brands/vanilla/assets/icon/icon_rlm.svg new file mode 100644 index 00000000..8e227cd6 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_rlm.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_role.svg b/branding/brands/vanilla/assets/icon/icon_role.svg new file mode 100644 index 00000000..2d7303ba --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_role.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_rolt.svg b/branding/brands/vanilla/assets/icon/icon_rolt.svg new file mode 100644 index 00000000..b2a503ef --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_rolt.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_rtst.svg b/branding/brands/vanilla/assets/icon/icon_rtst.svg new file mode 100644 index 00000000..09440dde --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_rtst.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_rwik.svg b/branding/brands/vanilla/assets/icon/icon_rwik.svg new file mode 100644 index 00000000..53b9a8da --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_rwik.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_sahs.svg b/branding/brands/vanilla/assets/icon/icon_sahs.svg new file mode 100644 index 00000000..5f7cb9c4 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_sahs.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_scov.svg b/branding/brands/vanilla/assets/icon/icon_scov.svg new file mode 100644 index 00000000..5f7cb9c4 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_scov.svg @@ -0,0 +1,40 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_sess.svg b/branding/brands/vanilla/assets/icon/icon_sess.svg new file mode 100644 index 00000000..ed2b1e64 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_sess.svg @@ -0,0 +1,90 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_spl.svg b/branding/brands/vanilla/assets/icon/icon_spl.svg new file mode 100644 index 00000000..d253f944 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_spl.svg @@ -0,0 +1,72 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_sty.svg b/branding/brands/vanilla/assets/icon/icon_sty.svg new file mode 100644 index 00000000..ecb83343 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_sty.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_svy.svg b/branding/brands/vanilla/assets/icon/icon_svy.svg new file mode 100644 index 00000000..8056ad0e --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_svy.svg @@ -0,0 +1,55 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_tax.svg b/branding/brands/vanilla/assets/icon/icon_tax.svg new file mode 100644 index 00000000..4282bcca --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_tax.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_tst.svg b/branding/brands/vanilla/assets/icon/icon_tst.svg new file mode 100644 index 00000000..78ba4887 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_tst.svg @@ -0,0 +1,48 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_tstv.svg b/branding/brands/vanilla/assets/icon/icon_tstv.svg new file mode 100644 index 00000000..78ba4887 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_tstv.svg @@ -0,0 +1,48 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_usr.svg b/branding/brands/vanilla/assets/icon/icon_usr.svg new file mode 100644 index 00000000..a5ddb6ea --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_usr.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_webr.svg b/branding/brands/vanilla/assets/icon/icon_webr.svg new file mode 100644 index 00000000..54759902 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_webr.svg @@ -0,0 +1,43 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_wfld.svg b/branding/brands/vanilla/assets/icon/icon_wfld.svg new file mode 100644 index 00000000..bbf1de35 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_wfld.svg @@ -0,0 +1,36 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_wiki.svg b/branding/brands/vanilla/assets/icon/icon_wiki.svg new file mode 100644 index 00000000..77372691 --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_wiki.svg @@ -0,0 +1,112 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/icon_xsrl.svg b/branding/brands/vanilla/assets/icon/icon_xsrl.svg new file mode 100644 index 00000000..924b934f --- /dev/null +++ b/branding/brands/vanilla/assets/icon/icon_xsrl.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + diff --git a/branding/brands/vanilla/assets/icon/obj_learningmodule.svg b/branding/brands/vanilla/assets/icon/obj_learningmodule.svg deleted file mode 100644 index 6111b2b0..00000000 --- a/branding/brands/vanilla/assets/icon/obj_learningmodule.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/branding/brands/vanilla/assets/icon/obj_link.svg b/branding/brands/vanilla/assets/icon/obj_link.svg deleted file mode 100644 index 6111b2b0..00000000 --- a/branding/brands/vanilla/assets/icon/obj_link.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/branding/brands/vanilla/assets/stylesheets/app.scss b/branding/brands/vanilla/assets/stylesheets/app.scss index b230a4e1..866acbc2 100644 --- a/branding/brands/vanilla/assets/stylesheets/app.scss +++ b/branding/brands/vanilla/assets/stylesheets/app.scss @@ -30,7 +30,6 @@ ion-icon { --padding-end: 0px !important; } - // Typogrtaphie h1{ diff --git a/branding/brands/vanilla/assets/stylesheets/coloring.scss b/branding/brands/vanilla/assets/stylesheets/coloring.scss index ce9d9c85..87916e4b 100644 --- a/branding/brands/vanilla/assets/stylesheets/coloring.scss +++ b/branding/brands/vanilla/assets/stylesheets/coloring.scss @@ -7,10 +7,8 @@ :root { - // whether the color-values are synchronized with the setting in the pegasus-helper-plugin - // set to "true" or "false" - --theme-from-plugin: "true"; + --ion-background-color: var(--ion-color-light); // font --ion-font-family: "Raleway", sans-serif; @@ -117,122 +115,123 @@ --color: #1c1c21; // already exists --ion-tabbar-color: rgba(var(--ion-text-color-rgb), 0.4); // suggested --ion-tabbar-color-selected: var(--ion-text-color); // suggested - } - - - } + } +} // MARK: Darkmode // TODO: Enable Darkmode again. Fix visaul problems first - // @media (prefers-color-scheme: dark) { - // :root { - - // --ion-border-color: var(--ion-color-dark-shade); - // --ion-background-color: var(--ion-color-dark); - // --ion-background-color-rgb: var(--ion-color-dark-rgb); - // --ion-text-color: var(--ion-color-light); - // --ion-text-color-rgb: var(--ion-color-light-rgb); - - // --ion-color-step-50: #232323; - // --ion-color-step-100: #2e2e2e; - // --ion-color-step-150: #3a3a3a; - // --ion-color-step-200: #454545; - // --ion-color-step-250: #515151; - // --ion-color-step-300: #5d5d5d; - // --ion-color-step-350: #8b8b8b; - // --ion-color-step-400: #747474; - // --ion-color-step-450: #7f7f7f; - // --ion-color-step-500: #8b8b8b; - // --ion-color-step-550: #979797; - // --ion-color-step-600: #a2a2a2; - // --ion-color-step-650: #aeaeae; - // --ion-color-step-700: #b9b9b9; - // --ion-color-step-750: #c5c5c5; - // --ion-color-step-800: #d1d1d1; - // --ion-color-step-850: #dcdcdc; - // --ion-color-step-900: #e8e8e8; - // --ion-color-step-950: #f3f3f3; - - // //colorr Variables - - // --ion-color-primary: #222428; - // --ion-color-primary-rgb: 34,36,40; - // --ion-color-primary-contrast: #ffffff; - // --ion-color-primary-contrast-rgb: 255,255,255; - // --ion-color-primary-shade: #1e2023; - // --ion-color-primary-tint: #383a3e; - - // --ion-color-secondary: #4a668b; - // --ion-color-secondary-rgb: 74,102,139; - // --ion-color-secondary-contrast: #ffffff; - // --ion-color-secondary-contrast-rgb: 255,255,255; - // --ion-color-secondary-shade: #415a7a; - // --ion-color-secondary-tint: #5c7597; - - // --ion-color-light-grey: #c4c4c4; - // --ion-color-light-grey-rgb: 196,196,196; - // --ion-color-light-grey-contrast: #000000; - // --ion-color-light-grey-contrast-rgb: 0,0,0; - // --ion-color-light-grey-shade: #acacac; - // --ion-color-light-grey-tint: #cacaca; - - // // --ion-color-medium: #3b3b3b; - // // --ion-color-medium-rgb: 59,59,59; - // // --ion-color-medium-contrast: #ffffff; - // // --ion-color-medium-contrast-rgb: 255,255,255; - // // --ion-color-medium-shade: #343434; - // // --ion-color-medium-tint: #4f4f4f; - - - // // TAb - - // ion-tab-button.tab-selected { - // ion-icon, ion-label { - // color: var(--ion-color-secondary) !important; - // --ion-color-base: var(--ion-color-secondary) !important; - // } - // } - - // } - // } - -// gradients - -$gradient-col1: #003c66; -$gradient-col2: #003c66; - -.primary-gradient { - background-image: linear-gradient(to top left, $gradient-col1, $gradient-col1); - color:white !important; - // filter: blur(5px); - // opacity: 0.5; -} +// @media (prefers-color-scheme: dark) { +// :root { + +// --ion-border-color: var(--ion-color-dark-shade); +// --ion-background-color: var(--ion-color-dark); +// --ion-background-color-rgb: var(--ion-color-dark-rgb); +// --ion-text-color: var(--ion-color-light); +// --ion-text-color-rgb: var(--ion-color-light-rgb); + +// --ion-color-step-50: #232323; +// --ion-color-step-100: #2e2e2e; +// --ion-color-step-150: #3a3a3a; +// --ion-color-step-200: #454545; +// --ion-color-step-250: #515151; +// --ion-color-step-300: #5d5d5d; +// --ion-color-step-350: #8b8b8b; +// --ion-color-step-400: #747474; +// --ion-color-step-450: #7f7f7f; +// --ion-color-step-500: #8b8b8b; +// --ion-color-step-550: #979797; +// --ion-color-step-600: #a2a2a2; +// --ion-color-step-650: #aeaeae; +// --ion-color-step-700: #b9b9b9; +// --ion-color-step-750: #c5c5c5; +// --ion-color-step-800: #d1d1d1; +// --ion-color-step-850: #dcdcdc; +// --ion-color-step-900: #e8e8e8; +// --ion-color-step-950: #f3f3f3; + +// //colorr Variables + +// // --ion-color-primary: #222428; +// // --ion-color-primary-rgb: 34,36,40; +// // --ion-color-primary-contrast: #ffffff; +// // --ion-color-primary-contrast-rgb: 255,255,255; +// // --ion-color-primary-shade: #1e2023; +// // --ion-color-primary-tint: #383a3e; + +// --ion-color-secondary: #4a668b; +// --ion-color-secondary-rgb: 74,102,139; +// --ion-color-secondary-contrast: #ffffff; +// --ion-color-secondary-contrast-rgb: 255,255,255; +// --ion-color-secondary-shade: #415a7a; +// --ion-color-secondary-tint: #5c7597; + +// --ion-color-light-grey: #c4c4c4; +// --ion-color-light-grey-rgb: 196,196,196; +// --ion-color-light-grey-contrast: #000000; +// --ion-color-light-grey-contrast-rgb: 0,0,0; +// --ion-color-light-grey-shade: #acacac; +// --ion-color-light-grey-tint: #cacaca; + +// // --ion-color-medium: #3b3b3b; +// // --ion-color-medium-rgb: 59,59,59; +// // --ion-color-medium-contrast: #ffffff; +// // --ion-color-medium-contrast-rgb: 255,255,255; +// // --ion-color-medium-shade: #343434; +// // --ion-color-medium-tint: #4f4f4f; + + +// // TAb + +// ion-tab-button.tab-selected { +// ion-icon, ion-label { +// color: var(--ion-color-secondary) !important; +// --ion-color-base: var(--ion-color-secondary) !important; +// } +// } + +// // desktop icon colors +// --icon-stroke-color: var(--ion-color-step-850); +// --icon-stroke-color-strong: var(--ion-color-step-850); +// } +// } + +// // gradients + +// $gradient-col1: #003c66; +// $gradient-col2: #003c66; + +// .primary-gradient { +// background-image: linear-gradient(to top left, $gradient-col1, $gradient-col1); +// color:white !important; +// // filter: blur(5px); +// // opacity: 0.5; +// } -.primary-gradient-inverted { - background-image: linear-gradient(to top left, $gradient-col1, $gradient-col1); - color:white; -} +// .primary-gradient-inverted { +// background-image: linear-gradient(to top left, $gradient-col1, $gradient-col1); +// color:white; +// } -// MARK: Define Color Variables +// // MARK: Define Color Variables -.ion-color-transparent { - --ion-color-base: var(--ion-color-transparent); - --ion-color-base-rgb: var(--ion-color-transparent-rgb); - --ion-color-contrast: var(--ion-color-transparent-contrast); - --ion-color-contrast-rgb: var(--ion-color-transparent-contrast-rgb); - --ion-color-shade: var(--ion-color-transparent-shade); - --ion-color-tint: var(--ion-color-transparent-tint); -} +// .ion-color-transparent { +// --ion-color-base: var(--ion-color-transparent); +// --ion-color-base-rgb: var(--ion-color-transparent-rgb); +// --ion-color-contrast: var(--ion-color-transparent-contrast); +// --ion-color-contrast-rgb: var(--ion-color-transparent-contrast-rgb); +// --ion-color-shade: var(--ion-color-transparent-shade); +// --ion-color-tint: var(--ion-color-transparent-tint); +// } -.ion-color-light-grey { - --ion-color-base: var(--ion-color-light-grey); - --ion-color-base-rgb: var(--ion-color-light-grey-rgb); - --ion-color-contrast: var(--ion-color-light-grey-contrast); - --ion-color-contrast-rgb: var(--ion-color-light-grey-contrast-rgb); - --ion-color-shade: var(--ion-color-light-grey-shade); - --ion-color-tint: var(--ion-color-light-grey-tint); -} +// .ion-color-light-grey { +// --ion-color-base: var(--ion-color-light-grey); +// --ion-color-base-rgb: var(--ion-color-light-grey-rgb); +// --ion-color-contrast: var(--ion-color-light-grey-contrast); +// --ion-color-contrast-rgb: var(--ion-color-light-grey-contrast-rgb); +// --ion-color-shade: var(--ion-color-light-grey-shade); +// --ion-color-tint: var(--ion-color-light-grey-tint); +// } // // misc diff --git a/branding/brands/vanilla/assets/stylesheets/pages.scss b/branding/brands/vanilla/assets/stylesheets/pages.scss deleted file mode 100644 index 4b560090..00000000 --- a/branding/brands/vanilla/assets/stylesheets/pages.scss +++ /dev/null @@ -1,1055 +0,0 @@ -// CSS for pages -// -------------------------------------------------- -// -// NOTE: @import "coloring"; is called before this file is imported -// If possible, create only one class per page, using the following convention: -// -// -// // [PATH_TO_PAGE] -// // -------------------------------------------------- -// .page_[UNIQUE_PAGENAME] { ... } -// -// -// If multiple classes are needed, use the following convention: -// -// -// // [PATH_TO_PAGE] -// // -------------------------------------------------- -// .page_[UNIQUE_PAGENAME]_[NAME1] { ... } -// .page_[UNIQUE_PAGENAME]_[NAME2] { ... } -// ... -// - -// pages/news -// -------------------------------------------------- -.page_news { - //font-sizes - ion-card-title{ - font-size: 1.2rem; - - } - - ion-card-header{ - padding-bottom: 0px !important; - } - - .object-presenter-icon{ - height:4rem; - } -} - - -// pages/favorites -// -------------------------------------------------- -.page_favorites {} - -// pages/object-details -// -------------------------------------------------- -.page_object_details {} - - -// pages/desktop -// -------------------------------------------------- - -.page_desktop { - --background: url('src/assets/img/header.svg') no-repeat top center / 100vw; - .desktop-grid{ - padding-top: 24px; - } - - .tile-image { - height: auto; - width: 60%; - margin: auto; - display: block; - pointer-events: none; - } - - - .tile { - opacity: 0.9; - border-radius: 2%; - } - -} - -// pages/menu -// -------------------------------------------------- - - -.page_menu { - height: 100%; - .menu-bottom-image{ - position: absolute; - bottom: 0; - } - - ion-list{ - padding-top: 0; - padding-bottom: 0; - } - - .privacy-iq{ - display: none - } - .privacy-zwh{ - display: none - } - - .privacy-mfkjusb{ - display: none - } - -} - -// pages/settings -// -------------------------------------------------- -ion-content.page_settings { - - .list > .item-block:first-child { - border: none; - } - - .general { - padding-top: 5px; - } - - .item-toggle { - color: #999; - } - - .item-md.item-input.ng-valid.input-has-value:not(.input-has-focus) .item-inner { - border-bottom: 1px solid #dedede; - box-shadow: none; - } - - ion-label.activeUser { - font-weight: bold; - } - -} - -// pages/info -// -------------------------------------------------- -.page_info { - - ion-card { - margin: 20px 0; - width: 100%; - } - - .reporting-card-iq{ - display: none - } - .version-card-iq{ - display: none - } - -} - -// pages/login -// -------------------------------------------------- -.page_login { - background-color: var(--ion-color-primary); - line-height: 1.8em; - - #version-if-footer { - font-size: 1em; - opacity: 0.2; - } - - .huge-login-header { - padding-top: 5%; - padding-bottom: 5%; - font-weight: 800; - font-size: 3.0vh; - color: var(--ion-color-primary-contrast); - } - - .login-top-logo-row{ - height: 30vh; - } - - .login-welcome-row{ - height: 10vh; - } - - .login-version-row{ - height: 30vh; - } - - .login-bottom-image{ - display: none; - } - - .styled-bottom-row{ - background-image: url('./assets/img/header.svg'); - background-size: 100vw ; - background-repeat: no-repeat; - height: 30vh; - } - .login-top-image{ - // display: none; - - } - - // a, img { - // align-self: flex-end; - // position: absolute; - // bottom: 3%; - // } - - // .vertical-align-content > * { - // display: flex!important; - // align-content: center!important; - // align-items: center!important; - // } - - // .vertical-align-content a, .vertical-align-content img { - // align-self: flex-end; - // position: absolute; - // vertical-align: center; - // } - -} - -// pages/object-list -// -------------------------------------------------- -.page_object_list { - .object-presenter-icon{ - height:3rem; - } - - .loading-text { - padding: 10px 0 10px 10px; - } - - .badge-link { - position: absolute; - top: 5%; - left:40%; - } - - .offline-image{ - width: 20%; - } -} - -// learnplace_map -// -------------------------------------------------- -.page_learnplace_map { - - #map { - height: 100%; - width: 100%; - position: absolute !important; - top: 0 !important; - left: 0 !important; - right: 0 !important; - z-index: 0; - } -} - -// learnplace_content -// -------------------------------------------------- -.page_learnplace_content { - - ion-content { - h1 { - text-align: left; - } - - h2 { - text-align: left; - padding-top: .67em; - } - - p { - font-size: 1.8em; - padding-top: .25em; - text-align: left; - } - } - -} - -// learnplace_accordion -// -------------------------------------------------- -.page_learnplace_accordion { - - accordion-block { - // remove the margin of ion-card inside the accordion - ion-card.accordion ion-card { - margin-left: 0 !important; - margin-right: 0 !important; - width: 100% !important; - } - } - -} - -// pages/onboarding -// -------------------------------------------------- -.page_onboarding { - - ion-slide { - height: 100vh; - flex-direction: column; - } - - img { - // max-width: 50vw; - max-height: 20vh; - overflow: hidden; - } - - - .step-one { - background: var(--ion-color-primary); - color: var(--ion-color-primary-contrast); - font-size: 2vh; - - } - - .step-two { - background: var(--ion-color-primary); - color: var(--ion-color-primary-contrast); - font-size: 2vh; - } - - .step-three { - background: var(--ion-color-primary); - color: var(--ion-color-primary-contrast); - font-size: 2vh; - } - - .link { - color: var(--ion-color-primary-contrast); - } - -} - -// app/fallback/open-browser/leave-app.dialog.scss -// -------------------------------------------------- -.page_leave_app_dialog { - - #webr-icon { - height: auto !important; - width: 20vh !important; - margin: auto !important; - display: block !important; - } - - h1 { - color: var(--ion-color-primary-contrast); - } - - a { - color: var(--ion-color-primary-contrast); - } - - // .fallback-icon{ - // height: 20vw; - // } - -} - -// app/fallback/location/location-fallbackscreen.scss -// -------------------------------------------------- -.page_location_fallbackscreen { - - #marker-icon { - padding-top: 25%; - height: auto !important; - width: 20vh !important; - margin: auto !important; - display: block !important; - - } - - #middle-button { - top: 10%; - // height: auto !important; - // width: 20vh !important; - margin: auto !important; - display: block !important; - - } - -} - -// app/fallback/loading/loading.scss -// -------------------------------------------------- -.page_loading { - // colors -$lightsOnBg: #FEF4AD; -$lightsOutBg: #F8AE39; -$candleColor:#FFFFFD; -$candleShadow:#673C63; -$floorColor:#AD9598; -$fireColor:#FF9800; -$fireColor2:#FFC107; -$fireShadow: #E7C980; -$angerColor:#F44336; -$primaryColor: #FEF4AD; -$secondaryColor:rgb(0,0,0); -$candleInsetShadow:#95c6f2; -$smokeColor:grey; -//sizes -$floorWidth: 350px; -$floorHeight:5px; -$candleWidth:35px; -$candleHeight:100px; -$stickWidth:3px; -$stickHeight:15px; - -body -{ - background-color:$lightsOnBg; - animation:change-background 3s infinite linear; -} - -ion-progress-bar -{ - --progress-background: var(--ion-color-primary-contrast); - --buffer-background: var(--ion-color-primary-contrast); -} - -.wrapper -{ - position:absolute; - left:50%; - top:70%; - transform:scale(1.5,1.5) translate(-50%,-50%); -} -.floor -{ - position:absolute; - left:50%; - top:50%; - width:$floorWidth; - height:$floorHeight; - background:$candleShadow; - transform:translate(-50%,-50%); - box-shadow:0px 2px 5px #111; - z-index:2; -} -.candles -{ - position:absolute; - left:50%; - top:50%; - width:250px; - height:150px; - // background:$secondaryColor; - // opacity:0.8; - transform:translate(-50%,-100%); - z-index:1; -} -.candle1 -{ - position:absolute; - left:50%; - top:50%; - width:$candleWidth; - height:$candleHeight; - background:#fff; - border:3px solid $candleShadow; - border-bottom:0px; - border-radius:3px; - transform-origin:center right; - transform:translate(60%,-25%); - box-shadow: -2px 0px 0px $candleInsetShadow inset; - animation:expand-body 3s infinite linear; -} -.candle1__stick,.candle2__stick -{ - position:absolute; - left:50%; - top:0%; - width:$stickWidth; - height:$stickHeight; - background:$candleShadow; - border-radius:8px; - transform:translate(-50%,-100%); -} -.candle2__stick -{ - height:$stickHeight*0.8; - transform-origin: bottom center; - animation:stick-animation 3s infinite linear; -} -.candle1__eyes,.candle2__eyes -{ - position:absolute; - left:50%; - top:0%; - width:$candleWidth; - height:30px; - transform:translate(-50%,0%); -} -.candle1__eyes-one, -{ - position:absolute; - left:30%; - top:20%; - width:5px; - height:5px; - border-radius:100%; - background:$candleShadow; - transform:translate(-70%,0%); - animation:blink-eyes 3s infinite linear; -} -.candle1__eyes-two -{ - position:absolute; - left:70%; - top:20%; - width:5px; - height:5px; - border-radius:100%; - background:$candleShadow; - transform:translate(-70%,0%); - animation:blink-eyes 3s infinite linear; -} -.candle1__mouth -{ - position:absolute; - left:40%; - top:20%; - width:0px; - height:0px; - border-radius:20px; - background:$candleShadow; - transform:translate(-50%,-50%); - animation: uff 3s infinite linear; -} -.candle__smoke-one -{ - position:absolute; - left:30%; - top:50%; - width:30px; - height:3px; - background:$smokeColor; - transform:translate(-50%,-50%); - animation:move-left 3s infinite linear; -} -.candle__smoke-two -{ - position:absolute; - left:30%; - top:40%; - width:10px; - height:10px; - border-radius:10px; - background:$smokeColor; - transform:translate(-50%,-50%); - animation:move-top 3s infinite linear; -} - -.candle2 -{ - position:absolute; - left:20%; - top:65%; - width:$candleWidth*1.20; - height:$candleHeight*0.60; - background:#fff; - border:3px solid $candleShadow; - border-bottom:0px; - border-radius:3px; - transform:translate(60%,-15%); - transform-origin:center right; - box-shadow: -2px 0px 0px $candleInsetShadow inset; - animation: shake-left 3s infinite linear; -} -.candle2__eyes-one -{ - position:absolute; - left:30%; - top:50%; - width:5px; - height:5px; - display:inline-block; - border:0px solid $candleShadow; - border-radius:100%; - float:left; - background:$candleShadow; - transform:translate(-80%,0%); - animation:changeto-lower 3s infinite linear; -} -.candle2__eyes-two -{ - position:absolute; - left:70%; - top:50%; - width:5px; - height:5px; - display:inline-block; - border:0px solid $candleShadow; - border-radius:100%; - float:left; - background:$candleShadow; - transform:translate(-80%,0%); - animation:changeto-greater 3s infinite linear; - -} -.light__wave -{ - position:absolute; - top:35%; - left:35%; - width:75px; - height:75px; - border-radius:100%; - z-index:0; - transform:translate(-25%,-50%) scale(2.5,2.5); - border:2px solid rgba(255,255,255,0.2); - animation:expand-light 3s infinite linear; -} -.candle2__fire -{ - position:absolute; - top:50%; - left:40%; - display: block; - width: 16px; - height: 20px; - background-color: red; - border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; - background:$fireColor; - transform:translate(-50%,-50%); - animation: dance-fire 3s infinite linear; -} -//animations - -//animation for blinking eyes -@keyframes blink-eyes{ - 0%,35% - { - opacity:1; - transform:translate(-70%,0%); - } - 36%,39% - { - opacity:0; - transform:translate(-70%,0%); - } - 40% - { - opacity:1; - transform:translate(-70%,0%); - } - 50%,65% - { - transform:translate(-140%,0%); - } - 66% - { - transform:translate(-70%,0%); - } -} -@keyframes expand-body -{ - 0%,40% - { - transform:scale(1,1) translate(60%,-25%); - } - 45%,55% - { - transform:scale(1.1,1.1) translate(60%,-28%); - } - 60% - { - transform:scale(0.89,0.89) translate(60%,-25%); - } - 65% - { - transform:scale(1,1) translate(60%,-25%); - - } - 70% - { - transform:scale(0.95,0.95) translate(60%,-25%); - } - 75% - { - transform:scale(1,1) translate(60%,-25%); - } - -} - -@keyframes uff{ - 0%,40%{ - width:0px; - height:0px; - } - 50%,54% - { - width:15px; - height:15px; - left:30%; - } - 59% - { - width:5px; - height:5px; - left:20%; - } - 62% - { - width:2px; - height:2px; - left:20%; - } - 67% - { - width:0px; - height:0px; - left:30%; - } - -} - -@keyframes change-background -{ - 0%,59%,98%,100%{ - background:$lightsOnBg; - } - 61%,97% - { - background:$lightsOutBg; - } - -} -@keyframes move-left{ - 0%,59%,100% - { - width:0px; - left:40%; - } - 60% - { - width:30px; - left:30%; - } - 68% - { - width:0px; - left:20%; - } -} - -@keyframes move-top{ - 0%,64%,100% - { - width:0px; - height:0px; - top:0%; - } - 65% - { - width:10px; - height:10px; - top:40%; - left:40%; - } - 80% - { - width:0px; - height:0px; - top:20%; - } -} -@keyframes shake-left{ - 0%,40%{ - left:20%; - transform:translate(60%,-15%); - } - 50%,54% - { - left:20%; - transform:translate(60%,-15%); - } - 59% - { - left:20%; - transform:translate(60%,-15%); - } - 62% - { - left:18%; - transform:translate(60%,-15%); - } - 65% - { - left:21%; - transform:translate(60%,-15%); - } - 67% - { - left:20%; - transform:translate(60%,-15%); - } - 75% - { - left:20%; - transform:scale(1.15,0.85) translate(60%,-15%); - background:#fff; - border-color:$candleShadow; - - } - - // 80% - // { - // background:$angerColor; - // alpha:0.5; - // border-color:$angerColor; - // } - - 91% - { - left:20%; - transform:scale(1.18,0.82) translate(60%,-10%); - background:$angerColor; - border-color:$angerColor; - box-shadow: -2px 0px 0px $angerColor inset; - } - 92% - { - left:20%; - transform:scale(0.85,1.15) translate(60%,-15%); - } - 95% - { - left:20%; - transform:scale(1.05,0.95) translate(60%,-15%); - } - 97% - { - left:20%; - transform:scale(1.0,1.0) translate(60%,-15%); - } - -} -@keyframes stick-animation{ - 0%,40%{ - left:50%; - top:0%; - transform:translate(-50%,-100%); - } - 50%,54% - { - left:50%; - top:0%; - transform:translate(-50%,-100%); - } - 59% - { - left:50%; - top:0%; - transform:translate(-50%,-100%); - } - 62% - { - left:50%; - top:0%; - transform:rotateZ(-15deg) translate(-50%,-100%); - } - 65% - { - left:50%; - top:0%; - transform:rotateZ(15deg) translate(-50%,-100%); - } - 70% - { - left:50%; - top:0%; - transform:rotateZ(-5deg) translate(-50%,-100%); - } - 72% - { - left:50%; - top:0%; - transform:rotateZ(5deg) translate(-50%,-100%); - } - 74%,84% - { - left:50%; - top:0%; - transform:rotateZ(0deg) translate(-50%,-100%); - } - 85% - { - transform:rotateZ(180deg) translate(0%,120%); - } - 92% - { - left:50%; - top:0%; - transform:translate(-50%,-100%); - } - -} -@keyframes expand-light -{ - 10%,29%,59%,89% - { - transform:translate(-25%,-50%) scale(0,0); - border:2px solid rgba(255,255,255,0); - } - 90%,20%,50% - { - transform:translate(-25%,-50%) scale(1,1); - } - 95%,96%,26%,27%,56%,57% - { - transform:translate(-25%,-50%) scale(2.0,2.0); - border:2px solid rgba(255,255,255,0.5); - } - 0%,28%,58%,100% - { - transform:translate(-25%,-50%) scale(2.5,2.5); - border:2px solid rgba(255,255,255,0.2); - } - -} -@keyframes dance-fire -{ - 59%,89% - { - left:40%; - width:0px; - height:0px; - } - 90%,0%,7%,15%,23%,31%,39%,47%,55% - { - left:40.8%; - width:16px; - height:20px; - background:$fireColor2; - } - 94%,3%,11%,19%,27%,35%,43%,51%,58% - { - left:41.2%; - width:16px; - height:20px; - background:$fireColor; - } -} -@keyframes changeto-lower -{ - 0%,70%,90% - { - padding:0px; - display:inline-block; - border-radius:100%; - background:$candleShadow; - border-width:0 0 0 0; - border:0px solid $candleShadow; - transform:translate(-90%,0%); - } - 71%,89% - { - background:none; - border: solid $candleShadow; - border-radius:0px; - border-width: 0 2px 2px 0; - display:inline-block; - padding: 1px; - float:left; - transform-origin:bottom left; - transform: rotate(-45deg) translate(-50%,-65%); - -webkit-transform: rotate(-45deg) translate(-50%,-65%); - } -} - -@keyframes changeto-greater -{ - 0%,70%,90% - { - top:50%; - padding:0px; - display:inline-block; - border-radius:100%; - background:$candleShadow; - border-width:0 0 0 0; - border:0px solid $candleShadow; - transform:translate(-80%,0%); - } - 71%,89% - { - top:30%; - background:none; - border: solid $candleShadow; - border-radius:0px; - border-width: 0 2px 2px 0; - display:inline-block; - padding: 1px; - float:left; - transform-origin:bottom left; - transform: rotate(135deg) translate(-80%,20%); - -webkit-transform: rotate(135deg) translate(-80%,20%); - } -} - - #marker-icon { - padding-top: 25%; - height: auto !important; - width: 20vh !important; - margin: auto !important; - display: block !important; - - } - - #middle-button { - top: 10%; - margin: auto !important; - display: block !important; - } - - .big-spinner { - stroke: #FFFFFF; - fill: #FFFFFF; - } - - .loading-subtitle { - color: var(--ion-color-primary-contrast); - } - -} - -// app/fallback/synchronization/synchronization.scss -// -------------------------------------------------- -.page_synchronization { - line-height: 1.8em; - text-align: center; - - #sync-logo { - margin-left: 20%; - margin-right: 20%; - max-height: 40%; - } - - #version-if-footer { - font-size: 1em; - opacity: 0.2; - } - - h1 { - color: var(--ion-color-primary-contrast); - } - - ion-label { - color: var(--ion-color-primary-contrast); - } - - ion-spinner svg * { - stroke: var(--ion-color-primary-contrast) !important; - } - -} - - diff --git a/branding/brands/vanilla/assets/stylesheets/theme.scss b/branding/brands/vanilla/assets/stylesheets/theme.scss index 7196e762..a442ef09 100644 --- a/branding/brands/vanilla/assets/stylesheets/theme.scss +++ b/branding/brands/vanilla/assets/stylesheets/theme.scss @@ -13,4 +13,3 @@ @import "coloring"; @import "variables"; @import "app"; -@import "pages"; diff --git a/branding/brands/vanilla/build.json b/branding/brands/vanilla/build.json index eeb918dc..f204f11a 100644 --- a/branding/brands/vanilla/build.json +++ b/branding/brands/vanilla/build.json @@ -1,8 +1,8 @@ { "ios": { "debug": { - "codeSignIdentity": "iPhone Developer", - "provisioningProfile": "201809_Pegasus", + "codeSignIdentity": "Apple Development", + "provisioningProfile": "0937e479-4fd5-4179-bf95-b5358ff1c161", "developmentTeam": "ZQ66BZ3DPL", "packageType": "development" }, diff --git a/branding/brands/vanilla/config.json b/branding/brands/vanilla/config.json index c07aedc1..e618d747 100644 --- a/branding/brands/vanilla/config.json +++ b/branding/brands/vanilla/config.json @@ -1,9 +1,10 @@ { - "ilias_installation_ids": [1,2,3,4,5,6,12,22,7,23,32,33,34], + "ilias_installation_ids": [1,2,3,4,5,6,12,22,7,23,32,33,34,35,36], "projectConfig": { "id": "ch.studerraimann.ilias.offline", "name": "ILIAS Pegasus", - "description": "Download, sync and store ILIAS-files on your device" + "description": "Download, sync and store ILIAS-files on your device", + "privacyPolicy": "yahoo.com" } } diff --git a/branding/brands/vanilla/features.json b/branding/brands/vanilla/features.json new file mode 100644 index 00000000..b7105ea1 --- /dev/null +++ b/branding/brands/vanilla/features.json @@ -0,0 +1,7 @@ +{ + "disabled": [ + "sahs", + "htlm" + ], + "customTheme": true +} diff --git a/branding/brands/vanilla/resources/ios/icon/icon-108@2x.png b/branding/brands/vanilla/resources/ios/icon/icon-108@2x.png new file mode 100644 index 00000000..fd857cc9 Binary files /dev/null and b/branding/brands/vanilla/resources/ios/icon/icon-108@2x.png differ diff --git a/branding/brands/vanilla/resources/ios/splash/Default-1792h~iphone.png b/branding/brands/vanilla/resources/ios/splash/Default-1792h~iphone.png new file mode 100644 index 00000000..296cf382 Binary files /dev/null and b/branding/brands/vanilla/resources/ios/splash/Default-1792h~iphone.png differ diff --git a/branding/brands/vanilla/resources/ios/splash/Default-2688h~iphone.png b/branding/brands/vanilla/resources/ios/splash/Default-2688h~iphone.png new file mode 100644 index 00000000..aa09f0f3 Binary files /dev/null and b/branding/brands/vanilla/resources/ios/splash/Default-2688h~iphone.png differ diff --git a/branding/brands/vanilla/resources/ios/splash/Default-Landscape-1792h~iphone.png b/branding/brands/vanilla/resources/ios/splash/Default-Landscape-1792h~iphone.png new file mode 100644 index 00000000..6bac4c1e Binary files /dev/null and b/branding/brands/vanilla/resources/ios/splash/Default-Landscape-1792h~iphone.png differ diff --git a/branding/brands/vanilla/resources/ios/splash/Default-Landscape-2688h~iphone.png b/branding/brands/vanilla/resources/ios/splash/Default-Landscape-2688h~iphone.png new file mode 100644 index 00000000..fa6d4d96 Binary files /dev/null and b/branding/brands/vanilla/resources/ios/splash/Default-Landscape-2688h~iphone.png differ diff --git a/branding/brands/vwaev/assets/stylesheets/icons.scss b/branding/brands/vwaev/assets/stylesheets/icons.scss index ce6e7585..3b1cdedf 100644 --- a/branding/brands/vwaev/assets/stylesheets/icons.scss +++ b/branding/brands/vwaev/assets/stylesheets/icons.scss @@ -1,10 +1,10 @@ @font-face { font-family: 'icomoon'; - src: url('../assets/fonts/icomoon.eot?39m2i2'); - src: url('../assets/fonts/icomoon.eot?39m2i2#iefix') format('embedded-opentype'), - url('../assets/fonts/icomoon.ttf?39m2i2') format('truetype'), - url('../assets/fonts/icomoon.woff?39m2i2') format('woff'), - url('../assets/fonts/icomoon.svg?39m2i2#icomoon') format('svg'); + src: url('./assets/fonts/icomoon.eot?39m2i2'); + src: url('./assets/fonts/icomoon.eot?39m2i2#iefix') format('embedded-opentype'), + url('./assets/fonts/icomoon.ttf?39m2i2') format('truetype'), + url('./assets/fonts/icomoon.woff?39m2i2') format('woff'), + url('./assets/fonts/icomoon.svg?39m2i2#icomoon') format('svg'); font-weight: normal; font-style: normal; } @@ -31,7 +31,7 @@ .ion-md-ai-#{$arg}:before , .ion-md-ai-#{$arg}-outline:before { content: $val; - // font-size: + // font-size: // 20px; } } diff --git a/branding/brands/vwaev/assets/stylesheets/pages.scss b/branding/brands/vwaev/assets/stylesheets/pages.scss index 362416da..028c7f27 100644 --- a/branding/brands/vwaev/assets/stylesheets/pages.scss +++ b/branding/brands/vwaev/assets/stylesheets/pages.scss @@ -112,6 +112,10 @@ // color: black !important; // background-color: map_get($colors, primary) !important; + .menu-bottom-image{ + display: none; + } + .privacy-iq{ display: none } @@ -174,7 +178,7 @@ ion-content.page_settings { // -------------------------------------------------- .page_login { // @extend .primary-gradient-inverted; - background-image: url('../assets/img/vwa_background_alt.svg'); + background-image: url('./assets/img/vwa_background_alt.svg'); background-size: 100% auto; background-repeat: no-repeat; background-position: center bottom; @@ -443,11 +447,23 @@ ion-content.page_settings { #webr-icon { height: auto !important; - width: 20vh !important; + width: 60% !important; + + @media screen and (orientation:landscape) { + height: 40% !important; + width: auto !important; + } + margin: auto !important; display: block !important; } + .return-to-app-row { + @media screen and (orientation:landscape) { + padding-top: 0; + } + } + h1 { color: white; } diff --git a/branding/brands/vwaev/features.json b/branding/brands/vwaev/features.json new file mode 100644 index 00000000..bdec34c8 --- /dev/null +++ b/branding/brands/vwaev/features.json @@ -0,0 +1,6 @@ +{ + "disabled": [ + "sahs", + "htlm" + ] +} diff --git a/branding/brands/zwh/assets/backup_stylesheets/app.scss b/branding/brands/zwh/assets/backup_stylesheets/app.scss index 8900689c..b26efe09 100644 --- a/branding/brands/zwh/assets/backup_stylesheets/app.scss +++ b/branding/brands/zwh/assets/backup_stylesheets/app.scss @@ -75,8 +75,8 @@ ion-spinner.centered { top: 0; left: 0; display: block; - width: 100%; - height: 100%; + width: 100vw; + height: 100vh; } } diff --git a/branding/brands/zwh/assets/backup_stylesheets/icons.scss b/branding/brands/zwh/assets/backup_stylesheets/icons.scss index ce6e7585..3b1cdedf 100755 --- a/branding/brands/zwh/assets/backup_stylesheets/icons.scss +++ b/branding/brands/zwh/assets/backup_stylesheets/icons.scss @@ -1,10 +1,10 @@ @font-face { font-family: 'icomoon'; - src: url('../assets/fonts/icomoon.eot?39m2i2'); - src: url('../assets/fonts/icomoon.eot?39m2i2#iefix') format('embedded-opentype'), - url('../assets/fonts/icomoon.ttf?39m2i2') format('truetype'), - url('../assets/fonts/icomoon.woff?39m2i2') format('woff'), - url('../assets/fonts/icomoon.svg?39m2i2#icomoon') format('svg'); + src: url('./assets/fonts/icomoon.eot?39m2i2'); + src: url('./assets/fonts/icomoon.eot?39m2i2#iefix') format('embedded-opentype'), + url('./assets/fonts/icomoon.ttf?39m2i2') format('truetype'), + url('./assets/fonts/icomoon.woff?39m2i2') format('woff'), + url('./assets/fonts/icomoon.svg?39m2i2#icomoon') format('svg'); font-weight: normal; font-style: normal; } @@ -31,7 +31,7 @@ .ion-md-ai-#{$arg}:before , .ion-md-ai-#{$arg}-outline:before { content: $val; - // font-size: + // font-size: // 20px; } } diff --git a/branding/brands/zwh/assets/i18n/de.json b/branding/brands/zwh/assets/i18n/de.json index 698e5014..05f3a70b 100644 --- a/branding/brands/zwh/assets/i18n/de.json +++ b/branding/brands/zwh/assets/i18n/de.json @@ -1,19 +1,22 @@ { "test": "der test", - + "courses": "Inhalte", "onboarding": { "title1": "Mit der Lernwelt App kannst Du:", - "concept1": "Die Lernwelt App verbindet Dich mit der ILIAS Installation Deiner Institution, Uni oder Schule. Und nur mit dieser.", + "concept1": "Die Lernwelt App verbindet dich mit dem ILIAS System deiner Handwerkskammer.", "datasecurity3": "Die Lernwelt App basiert auf ILIAS Pegasus und ist ein Open Source Projekt. Wenn Du Dich selbst überzeugen möchtest, was die App tut, dann kannst Du hier den Code einsehen:" - - }, - "login": { - "hello":"Willkommen in der Lernwelt App!" + }, + "login": { + "hello": "Willkommen in der Lernwelt App!" }, "fallback": { "browser": "Du verlässt nun die Lernwelt App" + }, + "object-list": { + "title": "Lerninhalte" + }, + "home": { + "title": "Home" } - - } diff --git a/branding/brands/zwh/assets/icon/bin.svg b/branding/brands/zwh/assets/icon/bin.svg new file mode 100644 index 00000000..670b6bb3 --- /dev/null +++ b/branding/brands/zwh/assets/icon/bin.svg @@ -0,0 +1,18 @@ + + + icon/bin + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/branding/brands/zwh/assets/icon/desktop_course.svg b/branding/brands/zwh/assets/icon/desktop_course.svg old mode 100644 new mode 100755 index a5ef4879..624264c1 --- a/branding/brands/zwh/assets/icon/desktop_course.svg +++ b/branding/brands/zwh/assets/icon/desktop_course.svg @@ -1,23 +1,29 @@ - - - - -icon/desktop_ZWH/content -Created with Sketch. - - - - - - + + + icon/4.0/desktop_ZWH/ZWH_crs_grp@2x + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/brands/zwh/assets/icon/desktop_favourites.svg b/branding/brands/zwh/assets/icon/desktop_favourites.svg old mode 100644 new mode 100755 index b9a66c40..850701fd --- a/branding/brands/zwh/assets/icon/desktop_favourites.svg +++ b/branding/brands/zwh/assets/icon/desktop_favourites.svg @@ -1,45 +1,17 @@ - - - - -icon/desktop_ZWH/stars -Created with Sketch. - - - - - - - - - - - + + + icon/4.0/desktop_ZWH/stars + + + + + + + + + + + + + diff --git a/branding/brands/zwh/assets/icon/desktop_menu.svg b/branding/brands/zwh/assets/icon/desktop_menu.svg index 99f93829..0e085a55 100644 --- a/branding/brands/zwh/assets/icon/desktop_menu.svg +++ b/branding/brands/zwh/assets/icon/desktop_menu.svg @@ -1,6 +1,6 @@ - Error Code: '+$p0.errorCode+((isNullOrUndefined($p0.errorDescription)||$p0.errorDescription.length===0)?'':'
Error Info: '+$p0.errorDescription);$3.appendChild($4);}$0.appendChild($2);$0.appendChild($3);this.$6.appendChild($0);this.$6.parentNode.scrollTop=this.$6.parentNode.scrollHeight;},$21:function($p0,$p1){if(this.$F){return;}if(isNullOrUndefined($p1.get_node())||isNullOrUndefined($p1.get_node().getAnchor().getAttribute('href'))||$p1.get_node().getAnchor().getAttribute('href')===''){return;}var $0=$p1.get_node().get_userData();if(isNullOrUndefined($0)||$0.getIdentifier()==null||$0.getIdentifier().length<=0){return;}if($p1.get_node().getUrl()==null){return;}this.$9.requestNavigation('{target='+$0.getIdentifier()+'}choice');},getSCORMVersion:function(){return this.$2;},getActivityTree_V12:function(){if(this.$2===1){return this.$9;}else{return null;}},getActivityTree_V13:function(){if(this.$2===2){return this.$9;}else{return null;}},$22:function($p0,$p1){if($p1.get_eventType()===5||$p1.get_eventType()===3||$p1.get_eventType()===4){if(this.$1&&this.$C!=null){API_BASE.LOG.displayMessage('Unloading '+this.$C.getScormType()+': '+this.$C.getIdentifier(),'0',null);}if($p1.get_eventType()===5){this.$C=null;this.$B=null;this.$D=null;this.hidePlayer(!this.$1);if(this.$1){API_BASE.LOG.displayMessage('End Session!','0',null);}}else{if(this.$B!=null&&this.$C.getScormType()==='sco'&&!this.$B.isInitAttempted()){return;}}if($p1.get_eventType()!==4){this.$F=true;this.$3.attachEvent('onload',this.$4);}else{if(isNullOrUndefined(this.$C)){API_BASE.LOG.displayMessage('No SCO to deliver!','0',null);this.$23();}this.$12.disabled=true;this.$14.disabled=true;}this.$3.src='blank.html';}else if($p1.get_eventType()===1){if(this.$B!=null){if(!this.$B.isFinishAttempted()){this.$23();}if(this.$17!=null){this.$17.saveItemCMI(this.$C.getIdentifier(),this.$C.getDataTree());}}}else if($p1.get_eventType()===0){if(this.$17!=null){if(this.$2===1){this.$17.saveState(null,(this.$9).getStoredStatuses(),null,null,null);}else if(this.$2===2){var $0=this.$9;this.$17.saveState($0.getADLCPData(),$0.getStoredStatuses(),($0.savedSuspendedActivity!=null)?null:($0.isObjectivesglobaltoSystem())?$0.getClonedGlobalObjectives():null,($0.savedSuspendedActivity!=null)?$0.savedSuspendedActivity.getIdentifier():null,($0.savedSuspendedActivity!=null)?$0.getClonedGlobalObjectives():null);}}}else if($p1.get_eventType()===2){this.$28($p1.get_treeNode());}},$23:function(){var $0=!isNullOrUndefined(this.$C);if(this.$9.isSingleItem()){return;}API_BASE.LOG.displayMessage('Updating navigation ... ','0',null);if(this.$2===2){if($0){var $1=this.$C.getHideLMSUI();var $2=this.getActivityTree_V13();var $3=this.$C;if(!isNullOrUndefined(this.$10)&&!$1.contains('previous')){this.$10.disabled=!$3.getParentSequencing().flow||$3.getParentSequencing().forwardOnly||!$2.isValidNavigationRequest('previous',false);}if(!isNullOrUndefined(this.$11)&&!$1.contains('continue')){this.$11.disabled=!$3.getParentSequencing().flow||!$2.isValidNavigationRequest('continue',false);}}this.$19=0;window.setTimeout(Delegate.create(this,this.$24),1);}else if(this.$2===1){var $4=this.getActivityTree_V12();if($0){this.$10.disabled=!$4.isValidNavigationRequest('previous');this.$11.disabled=!$4.isValidNavigationRequest('continue');}if($4.hasPrerequisites()){this.$19=0;window.setTimeout(Delegate.create(this,this.$25),1);}}},$24:function(){if(this.$190&&!isNullOrUndefined(this.$D.getIcon())){this.$E=this.$D.getIcon().src;this.$D.getIcon().src=PlayerConfiguration.TreeActiveIcon;}var $1=$p0.getHideLMSUI();if(!isNullOrUndefined(this.$10)){this.$10.style.display=(this.$9.isSingleItem()||$1.contains('previous'))?'none':'inline';this.$10.disabled=false;}if(!isNullOrUndefined(this.$11)){this.$11.style.display=(this.$9.isSingleItem()||$1.contains('continue'))?'none':'inline';this.$11.disabled=false;}if(!isNullOrUndefined(this.$12)){this.$12.style.display=($1.contains('exit'))?'none':'inline';this.$12.disabled=false;}if(!isNullOrUndefined(this.$13)){this.$13.style.display=($1.contains('exitall'))?'none':'inline';this.$13.disabled=false;}if(!isNullOrUndefined(this.$14)){this.$14.style.display=($1.contains('abandon'))?'none':'inline';this.$14.disabled=false;}if(!isNullOrUndefined(this.$15)){this.$15.style.display=($1.contains('abandonall'))?'none':'inline';this.$15.disabled=false;}if(!isNullOrUndefined(this.$16)){this.$16.style.display=($1.contains('suspendall'))?'none':'inline';this.$16.disabled=false;}if(!this.$F){this.$26();}}},showPlayer:function(){if(this.$2!==0){this.$3.style.display='block';this.$5.style.display='block';this.$7.style.display='block';if(!isNullOrUndefined(this.$6)){this.$6.style.display=(this.$1)?'block':'none';}}},hidePlayer:function(includeDebugger){if(this.$2!==0){this.$3.style.display='none';this.$5.style.display='none';this.$7.style.display='none';if(includeDebugger&&!isNullOrUndefined(this.$6)){this.$6.style.display='none';}}}} +PlayerConfiguration=function(){} +Run=function(){} +Run.ManifestByURL=function(url,anticache){if(isNullOrUndefined(url)||url.trim().length<=0){return;}url=url.trim().replace(new RegExp('\\\\','g'),'/');Run.$2=url.substr(0,url.lastIndexOf('/')+1);if(anticache){url+='?anticache='+Math.random();}Run.$0=new XMLHttpRequest();Run.$0.onreadystatechange=Delegate.create(null,Run.$3);Run.$0.open('GET',url,true);Run.$0.send(null);} +Run.ManifestByString=function(manifest){Run.$1=XMLDocumentParser.parse(manifest);if(isNullOrUndefined(Run.$1)||isNullOrUndefined(API_BASE.BaseUtils.getChildNodeByName(Run.$1,'manifest'))){API_BASE.LOG.displayMessage('[PLR.1] Loading course process','PLR.1.1','Incorrect imsmanifest.xml');return;}Run.$4();} +Run.$3=function(){if(Run.$0.readyState===4){Run.$0.onreadystatechange=Delegate.Null;if(!isNullOrUndefined(Run.$0.responseXML)){Run.$1=Run.$0.responseXML;Run.$4();}else if(!isNullOrUndefined(Run.$0.responseText)){Run.ManifestByString(Run.$0.responseText);}Run.$0=null;}} +Run.$4=function(){var $0=new Player.ContentPlayer(Run.$2,Run.$1,PlayerConfiguration.StorageSupport,false,PlayerConfiguration.Debug);$0.showPlayer();} +Player.PersistentStateStorage.createClass('Player.PersistentStateStorage');Player.ContentPlayer.createClass('Player.ContentPlayer');PlayerConfiguration.createClass('PlayerConfiguration');Run.createClass('Run');PlayerConfiguration.Debug=false;PlayerConfiguration.StorageSupport=false;PlayerConfiguration.TreeMinusIcon=null;PlayerConfiguration.TreePlusIcon=null;PlayerConfiguration.TreeLeafIcon=null;PlayerConfiguration.TreeActiveIcon=null;PlayerConfiguration.BtnPreviousLabel='Previous';PlayerConfiguration.BtnContinueLabel='Continue';PlayerConfiguration.BtnExitLabel='Exit';PlayerConfiguration.BtnExitAllLabel='Exit All';PlayerConfiguration.BtnAbandonLabel='Abandon';PlayerConfiguration.BtnAbandonAllLabel='Abandon All';PlayerConfiguration.BtnSuspendAllLabel='Suspend All';Run.$0=null;Run.$1=null;Run.$2=null; +// ---- Do not remove this footer ---- +// This script was generated using Script# v0.5.5.0 (http://projects.nikhilk.net/ScriptSharp) +// ----------------------------------- diff --git a/branding/common/scormplayer/scormpool/Lib/sscompat.js b/branding/common/scormplayer/scormpool/Lib/sscompat.js new file mode 100644 index 00000000..253fa867 --- /dev/null +++ b/branding/common/scormplayer/scormpool/Lib/sscompat.js @@ -0,0 +1,6 @@ +// Script# Browser Compat Layer +// More information at http://projects.nikhilk.net/ScriptSharp +// +function __loadCompatLayer(w){w.Debug=function(){};w.Debug._fail=function(message){throw new Error(message);};w.Debug.writeln=function(text){if(window.console){if(window.console.debug){window.console.debug(text);return;} else if(window.console.log){window.console.log(text);return;}} else if(window.opera&&window.opera.postError){window.opera.postError(text);return;}};w.__getNonTextNode=function(node){try{while(node&&(node.nodeType!=1)){node=node.parentNode;}} catch(ex){node=null;} return node;};w.__getLocation=function(e){var loc={x:0,y:0};while(e){loc.x+=e.offsetLeft;loc.y+=e.offsetTop;e=e.offsetParent;} return loc;};w.navigate=function(url){window.setTimeout('window.location = "'+url+'";',0);};var attachEventProxy=function(eventName,eventHandler){eventHandler._mozillaEventHandler=function(e){window.event=e;eventHandler();if(!e.avoidReturn){return e.returnValue;}};this.addEventListener(eventName.slice(2),eventHandler._mozillaEventHandler,false);};var detachEventProxy=function(eventName,eventHandler){if(eventHandler._mozillaEventHandler){var mozillaEventHandler=eventHandler._mozillaEventHandler;delete eventHandler._mozillaEventHandler;this.removeEventListener(eventName.slice(2),mozillaEventHandler,false);}};w.attachEvent=attachEventProxy;w.detachEvent=detachEventProxy;w.HTMLDocument.prototype.attachEvent=attachEventProxy;w.HTMLDocument.prototype.detachEvent=detachEventProxy;w.HTMLElement.prototype.attachEvent=attachEventProxy;w.HTMLElement.prototype.detachEvent=detachEventProxy;w.Event.prototype.__defineGetter__('srcElement',function(){return __getNonTextNode(this.target)||this.currentTarget;});w.Event.prototype.__defineGetter__('cancelBubble',function(){return this._bubblingCanceled||false;});w.Event.prototype.__defineSetter__('cancelBubble',function(v){if(v){this._bubblingCanceled=true;this.stopPropagation();}});w.Event.prototype.__defineGetter__('returnValue',function(){return!this._cancelDefault;});w.Event.prototype.__defineSetter__('returnValue',function(v){if(!v){this._cancelDefault=true;this.preventDefault();}});w.Event.prototype.__defineGetter__('fromElement',function(){var n;if(this.type=='mouseover'){n=this.relatedTarget;} else if(this.type=='mouseout'){n=this.target;} return __getNonTextNode(n);});w.Event.prototype.__defineGetter__('toElement',function(){var n;if(this.type=='mouseout'){n=this.relatedTarget;} else if(this.type=='mouseover'){n=this.target;} return __getNonTextNode(n);});w.Event.prototype.__defineGetter__('button',function(){return(this.which==1)?1:(this.which==3)?2:0});w.Event.prototype.__defineGetter__('offsetX',function(){return window.pageXOffset+this.clientX-__getLocation(this.srcElement).x;});w.Event.prototype.__defineGetter__('offsetY',function(){return window.pageYOffset+this.clientY-__getLocation(this.srcElement).y;});w.HTMLElement.prototype.__defineGetter__('parentElement',function(){return this.parentNode;});w.HTMLElement.prototype.__defineGetter__('children',function(){var children=[];var childCount=this.childNodes.length;for(var i=0;i=0)||(ua.indexOf('AppleWebKit')>=0)||(ua.indexOf('Opera')>=0);} +if(__supportsCompatLayer(window.navigator.userAgent)){try{__loadCompatLayer(window);} catch(e){}} \ No newline at end of file diff --git a/branding/common/scormplayer/scormpool/Lib/sscorlib.js b/branding/common/scormplayer/scormpool/Lib/sscorlib.js new file mode 100644 index 00000000..e7bff64d --- /dev/null +++ b/branding/common/scormplayer/scormpool/Lib/sscorlib.js @@ -0,0 +1,143 @@ +// Script# Core Runtime +// More information at http://projects.nikhilk.net/ScriptSharp +// +window.isUndefined=function(o){return(o===undefined);};window.isNull=function(o){return(o===null);};window.isNullOrUndefined=function(o){return(o===null)||(o===undefined);};window.__scriptsharp='0.5.5.0';document.getElementsBySelector=function(cssSelector,root){var all=root?root.getElementsByTagName('*'):document.getElementsByTagName('*');var matches=[];var styleSheet=document.getElementsBySelector.styleSheet;if(!styleSheet){var styleSheetNode=document.createElement('style');styleSheetNode.type='text/css';document.getElementsByTagName('head')[0].appendChild(styleSheetNode);styleSheet=styleSheetNode.styleSheet||styleSheetNode.sheet;document.getElementsBySelector.styleSheet=styleSheet;} if(window.navigator.userAgent.indexOf('MSIE')>=0){styleSheet.addRule(cssSelector,'ssCssMatch:true',0);for(var i=all.length-1;i>=0;i--){var element=all[i];if(element.currentStyle.ssCssMatch){matches[matches.length]=element;}} styleSheet.removeRule(0);} else{var matchValue=document.getElementsBySelector.matchValue;if(!matchValue){matchValue=(window.navigator.userAgent.indexOf('Opera')>=0)?'"ssCssMatch"':'ssCssMatch 1';document.getElementsBySelector.matchValue=matchValue;} styleSheet.insertRule(cssSelector+' { counter-increment: ssCssMatch }',0);var docView=document.defaultView;for(var i=all.length-1;i>=0;i--){var element=all[i];if(docView.getComputedStyle(element,null).counterIncrement===matchValue){matches[matches.length]=element;}} styleSheet.deleteRule(0);} if(matches.length>1){matches.reverse();} return matches;} +Object.__typeName='Object';Object.__baseType=null;Object.parse=function(s){return eval(s);} +Object.getKeyCount=function(d){var count=0;for(var n in d){count++;} return count;} +Object.clearKeys=function(d){for(var n in d){delete d[n];}} +Object.keyExists=function(d,key){return d[key]!==undefined;} +Function.parse=function(s){if(!Function._parseCache){Function._parseCache={};} var fn=Function._parseCache[s];if(!fn){try{eval('fn = '+s);if(typeof(fn)!='function'){fn=null;} else{Function._parseCache[s]=fn;}} catch(ex){}} return fn;} +Function.prototype.invoke=function(){this.apply(null,arguments);} +Boolean.__typeName='Boolean';Boolean.parse=function(s){return(s.toLowerCase()=='true');} +Number.__typeName='Number';Number.parse=function(s){if(!s||!s.length){return 0;} if((s.indexOf('.')>=0)||(s.indexOf('e')>=0)||s.endsWith('f')||s.endsWith('F')){return parseFloat(s);} return parseInt(s);} +Number.prototype.format=function(format,useLocale){if(isNullOrUndefined(format)||(format.length==0)||(format=='i')){if(useLocale){return this.toLocaleString();} else{return this.toString();}} return this._netFormat(format,useLocale);} +Number._commaFormat=function(number,groups,decimal,comma){var decimalPart=null;var decimalIndex=number.indexOf(decimal);if(decimalIndex>0){decimalPart=number.substr(decimalIndex);number=number.substr(0,decimalIndex);} var negative=number.startsWith('-');if(negative){number=number.substr(1);} var groupIndex=0;var groupSize=groups[groupIndex];if(number.length1){precision=parseInt(format.substr(1));} var fs=format.charAt(0);switch(fs){case'd':case'D':s=parseInt(Math.abs(this)).toString();if(precision!=-1){s=s.padLeft(precision,'0');} if(this<0){s='-'+s;} break;case'x':case'X':s=parseInt(Math.abs(this)).toString(16);if(fs=='X'){s=s.toUpperCase();} if(precision!=-1){s=s.padLeft(precision,'0');} break;case'e':case'E':if(precision==-1){s=this.toExponential();} else{s=this.toExponential(precision);} if(fs=='E'){s=s.toUpperCase();} break;case'f':case'F':case'n':case'N':if(precision==-1){precision=nf.numberDecimalDigits;} s=this.toFixed(precision).toString();if(precision&&(nf.numberDecimalSeparator!='.')){var index=s.indexOf('.');s=s.substr(0,index)+nf.numberDecimalSeparator+s.substr(index+1);} if((fs=='n')||(fs=='N')){s=Number._commaFormat(s,nf.numberGroupSizes,nf.numberDecimalSeparator,nf.numberGroupSeparator);} break;case'c':case'C':if(precision==-1){precision=nf.currencyDecimalDigits;} s=Math.abs(this).toFixed(precision).toString();if(precision&&(nf.currencyDecimalSeparator!='.')){var index=s.indexOf('.');s=s.substr(0,index)+nf.currencyDecimalSeparator+s.substr(index+1);} s=Number._commaFormat(s,nf.currencyGroupSizes,nf.currencyDecimalSeparator,nf.currencyGroupSeparator);if(this<0){s=String.format(nf.currencyNegativePattern,s);} else{s=String.format(nf.currencyPositivePattern,s);} break;case'p':case'P':if(precision==-1){precision=nf.percentDecimalDigits;} s=(Math.abs(this)*100.0).toFixed(precision).toString();if(precision&&(nf.percentDecimalSeparator!='.')){var index=s.indexOf('.');s=s.substr(0,index)+nf.percentDecimalSeparator+s.substr(index+1);} s=Number._commaFormat(s,nf.percentGroupSizes,nf.percentDecimalSeparator,nf.percentGroupSeparator);if(this<0){s=String.format(nf.percentNegativePattern,s);} else{s=String.format(nf.percentPositivePattern,s);} break;} return s;} +Math.truncate=function(n){return(n>=0)?Math.floor(n):Math.ceil(n);} +String.__typeName='String';String.Empty='';String.compare=function(s1,s2,ignoreCase){if(ignoreCase){if(s1){s1=s1.toUpperCase();} if(s2){s2=s2.toUpperCase();}} s1=s1||'';s2=s2||'';if(s1==s2){return 0;} if(s1this.length){return false;} return(this.substr(this.length-suffix.length)==suffix);} +String.equals=function(s1,s2,ignoreCase){return String.compare(s1,s2,ignoreCase)==0;} +String._format=function(format,values,useLocale){if(!String._formatRE){String._formatRE=/(\{[^\}^\{]+\})/g;} return format.replace(String._formatRE,function(str,m){var index=parseInt(m.substr(1));var value=values[index+1];if(isNullOrUndefined(value)){return'';} if(value.format){var formatSpec=null;var formatIndex=m.indexOf(':');if(formatIndex>0){formatSpec=m.substring(formatIndex+1,m.length-1);} return value.format.call(value,formatSpec,useLocale);} else{if(useLocale){return value.toLocaleString();} return value.toString();}});} +String.format=function(format){return String._format(format,arguments,false);} +String.fromChar=function(ch,count){var s=ch;for(var i=1;i','"':'"'};String._htmlDecRE=/(&|<|>|")/gi;} var s=this;s=s.replace(String._htmlDecRE,function(str,m){return String._htmlDecMap[m];});return s;} +String.prototype.htmlEncode=function(){if(!String._htmlEncRE){String._htmlEncMap={'&':'&','<':'<','>':'>','"':'"'};String._htmlEncRE=/([&<>"])/g;} var s=this;if(String._htmlEncRE.test(s)){s=s.replace(String._htmlEncRE,function(str,m){return String._htmlEncMap[m];});} return s;} +String.prototype.indexOfAny=function(chars,startIndex,count){var length=this.length;if(!length){return-1;} startIndex=startIndex||0;count=count||length;var endIndex=startIndex+count-1;if(endIndex>=length){endIndex=length-1;} for(var i=startIndex;i<=endIndex;i++){if(chars.indexOf(this.charAt(i))>=0){return i;}} return-1;} +String.prototype.insert=function(index,value){if(!value){return this;} if(!index){return value+this;} var s1=this.substr(0,index);var s2=this.substr(index);return s1+value+s2;} +String.isNullOrEmpty=function(s){return!s||!s.length;} +String.prototype.lastIndexOfAny=function(chars,startIndex,count){var length=this.length;if(!length){return-1;} startIndex=startIndex||length-1;count=count||length;var endIndex=startIndex-count+1;if(endIndex<0){endIndex=0;} for(var i=startIndex;i>=endIndex;i--){if(chars.indexOf(this.charAt(i))>=0){return i;}} return-1;} +String.localeFormat=function(format){return String._format(format,arguments,true);} +String.prototype.padLeft=function(totalWidth,ch){if(this.lengththis.length)){return this.substr(0,index);} return this.substr(0,index)+this.substr(index+count);} +String.prototype._replace=String.prototype.replace;String.prototype.replace=function(oldValue,newValue){if(oldValue.constructor==String){newValue=newValue||'';return this.split(oldValue).join(newValue);} return String.prototype._replace.call(this,oldValue,newValue);} +String.prototype.startsWith=function(prefix){if(!prefix.length){return true;} if(prefix.length>this.length){return false;} return(this.substr(0,prefix.length)==prefix);} +String.prototype.trim=function(){return this.trimEnd().trimStart();} +String.prototype.trimEnd=function(){return this.replace(/\s*$/,'');} +String.prototype.trimStart=function(){return this.replace(/^\s*/,'');} +String.prototype.unquote=function(){return eval('('+this+')');} +Array.__typeName='Array';Array.prototype.add=function(item){this[this.length]=item;} +Array.prototype.addRange=function(items){if(!items){return;} var length=items.length;for(var index=0;index0){this.splice(0,this.length);}} +Array.prototype.clone=function(){var length=this.length;var array=new Array(length);for(var index=0;index=0);} +Array.prototype.dequeue=function(){return this.shift();} +Array.prototype.enqueue=function(item){this._queue=true;this.push(item);} +Array.prototype.peek=function(){if(this.length){var index=this._queue?0:this.length-1;return this[index];} return null;} +if(!Array.prototype.every){Array.prototype.every=function(callback){for(var i=this.length-1;i>=0;i--){if(!callback(this[i],i,this)){return false;}} return true;}} +Array.prototype.extract=function(index,count){if(!count){return this.slice(index);} return this.slice(index,index+count);} +if(!Array.prototype.filter){Array.prototype.filter=function(callback){var filtered=[];for(var i=0;i=0;i--){mapped[i]=callback(this[i],i,this);} return mapped;}} +Array.parse=function(s){return eval('('+s+')');} +Array.prototype.remove=function(item){var index=this.indexOf(item);if(index>=0){this.splice(index,1);return true;} return false;} +Array.prototype.removeAt=function(index){return this.splice(index,1)[0];} +Array.prototype.removeRange=function(index,count){return this.splice(index,count);} +if(!Array.prototype.some){Array.prototype.some=function(callback){for(var i=this.length-1;i>=0;i--){if(callback(this[i],i,this)){return true;}} return false;}} +RegExp.__typeName='RegExp';RegExp.parse=function(s){if(s.startsWith('/')){var endSlashIndex=s.lastIndexOf('/');if(endSlashIndex>1){var expression=s.substring(1,endSlashIndex);var flags=s.substr(endSlashIndex+1);return new RegExp(expression,flags);}} return null;} +Date.__typeName='Date';Date.get_now=function(){return new Date();} +Date.get_today=function(){var d=new Date();return new Date(d.getFullYear(),d.getMonth(),d.getDate());} +Date.prototype.format=function(format,useLocale){if(isNullOrUndefined(format)||(format.length==0)||(format=='i')){if(useLocale){return this.toLocaleString();} else{return this.toString();}} if(format=='id'){if(useLocale){return this.toLocaleDateString();} else{return this.toDateString();}} if(format=='it'){if(useLocale){return this.toLocaleTimeString();} else{return this.toTimeString();}} return this._netFormat(format,useLocale);} +Date.prototype._netFormat=function(format,useLocale){var dtf=useLocale?CultureInfo.Current.dateFormat:CultureInfo.Neutral.dateFormat;var useUTC=false;if(format.length==1){switch(format){case'f':format=dtf.longDatePattern+' '+dtf.shortTimePattern;case'F':format=dtf.dateTimePattern;break;case'd':format=dtf.shortDatePattern;break;case'D':format=dtf.longDatePattern;break;case't':format=dtf.shortTimePattern;break;case'T':format=dtf.longTimePattern;break;case'g':format=dtf.shortDatePattern+' '+dtf.shortTimePattern;break;case'G':format=dtf.shortDatePattern+' '+dtf.longTimePattern;break;case'R':case'r':format=dtf.gmtDateTimePattern;useUTC=true;break;case'u':format=dtf.universalDateTimePattern;useUTC=true;break;case'U':format=dtf.dateTimePattern;useUTC=true;break;case's':format=dtf.sortableDateTimePattern;break;}} if(format.charAt(0)=='%'){format=format.substr(1);} if(!Date._formatRE){Date._formatRE=/dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z/g;} var re=Date._formatRE;var sb=new StringBuilder();var dt=this;if(useUTC){dt=new Date(Date.UTC(dt.getUTCFullYear(),dt.getUTCMonth(),dt.getUTCDate(),dt.getUTCHours(),dt.getUTCMinutes(),dt.getUTCSeconds(),dt.getUTCMilliseconds()));} re.lastIndex=0;while(true){var index=re.lastIndex;var match=re.exec(format);sb.append(format.slice(index,match?match.index:format.length));if(!match){break;} var fs=match[0];var part=fs;switch(fs){case'dddd':part=dtf.dayNames[dt.getDay()];break;case'ddd':part=dtf.shortDayNames[dt.getDay()];break;case'dd':part=dt.getDate().toString().padLeft(2,'0');break;case'd':part=dt.getDate();break;case'MMMM':part=dtf.monthNames[dt.getMonth()];break;case'MMM':part=dtf.shortMonthNames[dt.getMonth()];break;case'MM':part=(dt.getMonth()+1).toString().padLeft(2,'0');break;case'M':part=(dt.getMonth()+1);break;case'yyyy':part=dt.getFullYear();break;case'yy':part=(dt.getFullYear()%100).toString().padLeft(2,'0');break;case'y':part=(dt.getFullYear()%100);break;case'h':case'hh':part=dt.getHours()%12;if(!part){part='12';} else if(fs=='hh'){part=part.toString().padLeft(2,'0');} break;case'HH':part=dt.getHours().toString().padLeft(2,'0');break;case'H':part=dt.getHours();break;case'mm':part=dt.getMinutes().toString().padLeft(2,'0');break;case'm':part=dt.getMinutes();break;case'ss':part=dt.getSeconds().toString().padLeft(2,'0');break;case's':part=dt.getSeconds();break;case't':case'tt':part=(dt.getHours()<12)?dtf.amDesignator:dtf.pmDesignator;if(fs=='t'){part=part.charAt(0);} break;case'fff':part=dt.getMilliseconds().toString().padLeft(3,'0');break;case'ff':part=dt.getMilliseconds().toString().padLeft(3).substr(0,2);break;case'f':part=dt.getMilliseconds().toString().padLeft(3).charAt(0);break;case'z':part=dt.getTimezoneOffset()/60;part=((part>=0)?'-':'+')+Math.floor(Math.abs(part));break;case'zz':case'zzz':part=dt.getTimezoneOffset()/60;part=((part>=0)?'-':'+')+Math.floor(Math.abs(part)).toString().padLeft(2,'0');if(fs=='zzz'){part+=dtf.timeSeparator+Math.abs(dt.getTimezoneOffset()%60).toString().padLeft(2,'0');} break;} sb.append(part);} return sb.toString();} +Date._parse=Date.parse;Date.parse=function(s){return new Date(Date._parse(s));} +Error.__typeName='Error';Error.create=function(message,userData,innerException){var e=new Error(message);if(userData){e.userData=userData;} if(innerException){e.innerException=innerException;} return e;} +if(!Debug._fail){Debug._fail=function(message){Debug.writeln(message);eval('debugger;');}} +Debug.assert=function(condition,message){if(!condition){message='Assert failed: '+message;if(confirm(message+'\r\n\r\nBreak into debugger?')){Debug._fail(message);}}} +Debug._dumpCore=function(sb,object,name,indentation,dumpedObjects){if(object===null){sb.appendLine(indentation+name+': null');return;} switch(typeof(object)){case'undefined':sb.appendLine(indentation+name+': undefined');break;case'number':case'string':case'boolean':sb.appendLine(indentation+name+': '+object);break;default:if(Date.isInstance(object)||RegExp.isInstance(object)){sb.appendLine(indentation+name+': '+object);break;} if(dumpedObjects.contains(object)){sb.appendLine(indentation+name+': ...');break;} dumpedObjects.add(object);var type=Type.getInstanceType(object);var typeName=type.get_fullName();var recursiveIndentation=indentation+' ';if(IArray.isInstance(object)){sb.appendLine(indentation+name+': {'+typeName+'}');var length=object.getLength();for(var i=0;i');var attributes=object.attributes;for(var i=0;i0){return fullName.substr(nsIndex+1);} return fullName;} +Type.prototype.isInstance=function(instance){if(isNullOrUndefined(instance)){return false;} if((this==Object)||(instance instanceof this)){return true;} var type=Type.getInstanceType(instance);return this.isAssignableFrom(type);} +Type.prototype.isAssignableFrom=function(type){if((this==Object)||(this==type)){return true;} if(this.__class){var baseType=type.__baseType;while(baseType){if(this==baseType){return true;} baseType=baseType.__baseType;}} else if(this.__interface){var interfaces=type.__interfaces;if(interfaces&&interfaces.contains(this)){return true;} var baseType=type.__baseType;while(baseType){interfaces=baseType.__interfaces;if(interfaces&&interfaces.contains(this)){return true;} baseType=baseType.__baseType;}} return false;} +Type.isClass=function(type){return(type.__class==true);} +Type.isEnum=function(type){return(type.__enum==true);} +Type.isFlagsEnum=function(type){return((type.__enum==true)&&(type.__flags==true));} +Type.isInterface=function(type){return(type.__interface==true);} +Type.canCast=function(instance,type){return type.isInstance(instance);} +Type.safeCast=function(instance,type){if(type.isInstance(instance)){return instance;} return null;} +Type.getInstanceType=function(instance){var ctor=null;try{ctor=instance.constructor;} catch(ex){} if(!ctor||!ctor.__typeName){ctor=Object;} return ctor;} +Type.getType=function(typeName){if(!typeName){return null;} if(!Type.__typeCache){Type.__typeCache={};} var type=Type.__typeCache[typeName];if(!type){type=eval(typeName);Type.__typeCache[typeName]=type;} return type;} +Type.parse=function(typeName){return Type.getType(typeName);} +window.Enum=function(){} +Enum.createClass('Enum');Enum.parse=function(enumType,s){var values=enumType.prototype;if(!enumType.__flags){for(var f in values){if(f===s){return values[f];}}} else{var parts=s.split('|');var value=0;var parsed=true;for(var i=parts.length-1;i>=0;i--){var part=parts[i].trim();var found=false;for(var f in values){if(f===part){value|=values[f];found=true;break;}} if(!found){parsed=false;break;}} if(parsed){return value;}} throw'Invalid Enumeration Value';} +Enum.toString=function(enumType,value){var values=enumType.prototype;if(!enumType.__flags||(value===0)){for(var i in values){if(values[i]===value){return i;}} throw'Invalid Enumeration Value';} else{var parts=[];for(var i in values){if(values[i]&value){if(parts.length){parts.add(' | ');} parts.add(i);}} if(!parts.length){throw'Invalid Enumeration Value';} return parts.join('');}} +window.Delegate=function(){} +Delegate.createClass('Delegate');Delegate.Null=function(){} +Delegate._create=function(targets){var delegate=function(){if(targets.length==2){return targets[1].apply(targets[0],arguments);} else{for(var i=0;i=0);this._onLoadHandler=Delegate.create(this,this._onScriptLoad);if(!this._isIE){this._onErrorHandler=Delegate.create(this,this._onScriptError);} this._scriptElements=[];if(loadInParallel){for(var i=0;i=0){this.$0=4;$1=$0.substr($2+6);}else if(($2=$0.indexOf('msie'))>=0){this.$0=1;$1=$0.substr($2+5);}else if(($2=$0.indexOf('safari'))>=0){this.$0=3;$1=$0.substr($2+7);}else if(($2=$0.indexOf('firefox'))>=0){this.$0=2;$1=$0.substr($2+8);}else if($0.indexOf('gecko')>=0){this.$0=2;$1=window.navigator.appVersion;}if($1!=null){this.$1=parseFloat($1);this.$2=parseInt(this.$1);if(($2=$1.indexOf('.'))>=0){this.$3=parseInt($1.substr($2+1));}}} +ScriptFX.HostInfo.prototype={$0:0,$1:0,$2:0,$3:0,get_majorVersion:function(){return this.$2;},get_minorVersion:function(){return this.$3;},get_name:function(){return this.$0;},get_version:function(){return this.$1;}} +ScriptFX.EventList=function(){} +ScriptFX.EventList.prototype={$0:null,addHandler:function(key,handler){if(this.$0==null){this.$0={};}this.$0[key]=Delegate.combine(this.$0[key],handler);},getHandler:function(key){if(this.$0!=null){return this.$0[key];}return null;},removeHandler:function(key,handler){if(this.$0!=null){var $0=this.$0[key];if($0!=null){var $1=Delegate.remove($0,handler);this.$0[key]=$1;return ($1!=null);}}return false;}} +ScriptFX.JSON=function(){} +ScriptFX.JSON.deserialize=function(s){if(String.isNullOrEmpty(s)){return null;}if(ScriptFX.JSON.$0==null){ScriptFX.JSON.$0=new RegExp('(\'|\")\\\\@(-?[0-9]+)@(\'|\")','gm');}s=s.replace(ScriptFX.JSON.$0,'new Date($2)');return eval('('+s+')');} +ScriptFX.JSON.serialize=function(o){if(isNullOrUndefined(o)){return String.Empty;}var $0=new StringBuilder();ScriptFX.JSON.$1($0,o);return $0.toString();} +ScriptFX.JSON.$1=function($p0,$p1){if(isNullOrUndefined($p1)){$p0.append('null');return;}var $0=typeof($p1);switch($0){case 'boolean':$p0.append($p1.toString());return;case 'number':$p0.append((isFinite($p1))?$p1.toString():'null');return;case 'string':$p0.append(($p1).quote());return;case 'object':if(Array.isInstance($p1)){$p0.append('[');var $1=$p1;var $2=$1.length;var $3=true;for(var $4=0;$4<$2;$4++){if($3){$3=false;}else{$p0.append(',');}ScriptFX.JSON.$1($p0,$1[$4]);}$p0.append(']');}else if(Date.isInstance($p1)){var $5=$p1;var $6=Date.UTC($5.getUTCFullYear(),$5.getUTCMonth(),$5.getUTCDate(),$5.getUTCHours(),$5.getUTCMinutes(),$5.getUTCSeconds(),$5.getUTCMilliseconds());$p0.append('\"\\@');$p0.append($6.toString());$p0.append('@\"');}else if(RegExp.isInstance($p1)){$p0.append($p1.toString());}else{$p0.append('{');var $7=true;var $dict1=$p1;for(var $key2 in $dict1){var $8={key:$key2,value:$dict1[$key2]};if(($8.key).startsWith('$')||Function.isInstance($8.value)){continue;}if($7){$7=false;}else{$p0.append(',');}$p0.append('"'+$8.key+'"');$p0.append(':');ScriptFX.JSON.$1($p0,$8.value);}$p0.append('}');}return;default:$p0.append('null');return;}} +ScriptFX.PropertyChangedEventArgs=function(propertyName){ScriptFX.PropertyChangedEventArgs.constructBase(this);this.$1_0=propertyName;} +ScriptFX.PropertyChangedEventArgs.prototype={$1_0:null,get_propertyName:function(){return this.$1_0;}} +ScriptFX.ObservableCollection=function(owner,disposableItems){this.$0=owner;this.$1=[];this.$2=disposableItems;} +ScriptFX.ObservableCollection.prototype={$0:null,$1:null,$2:false,$3:null,add_collectionChanged:function(value){this.$3=Delegate.combine(this.$3,value);},remove_collectionChanged:function(value){this.$3=Delegate.remove(this.$3,value);},add:function(item){(item).setOwner(this.$0);this.$1.add(item);if(this.$3!=null){this.$3.invoke(this,new ScriptFX.CollectionChangedEventArgs(0,item));}},clear:function(){if(this.$1.length!==0){var $enum1=this.$1.getEnumerator();while($enum1.moveNext()){var $0=$enum1.get_current();$0.setOwner(null);}this.$1.clear();if(this.$3!=null){this.$3.invoke(this,new ScriptFX.CollectionChangedEventArgs(2,null));}}},contains:function(item){return this.$1.contains(item);},dispose:function(){if(this.$2){var $enum1=this.$1.getEnumerator();while($enum1.moveNext()){var $0=$enum1.get_current();$0.dispose();}}this.$1=null;this.$0=null;this.$3=null;},getEnumerator:function(){return this.$1.getEnumerator();},getItem:function(index){return this.$1[index];},getItems:function(){return this.$1;},getLength:function(){return this.$1.length;},remove:function(item){if(this.$1.contains(item)){(item).setOwner(null);this.$1.remove(item);if(this.$3!=null){this.$3.invoke(this,new ScriptFX.CollectionChangedEventArgs(1,item));}}}} +Type.createNamespace('ScriptFX.Net');ScriptFX.Net.HTTPStatusCode=function(){};ScriptFX.Net.HTTPStatusCode.prototype = {canContinue:100,switchingProtocols:101,OK:200,created:201,partialContent:206,accepted:202,nonAuthoritativeInformation:203,noContent:204,resetContent:205,ambiguous:300,moved:301,redirect:302,redirectMethod:303,notModified:304,useProxy:305,temporaryRedirect:307,badRequest:400,methodNotAllowed:400,unauthorized:401,paymentRequired:402,forbidden:403,notFound:404,notAcceptable:406,proxyAuthenticationRequired:407,requestTimeout:408,conflict:409,gone:410,lengthRequired:411,preconditionFailed:412,requestEntityTooLarge:413,requestUriTooLong:414,unsupportedMediaType:415,requestedRangeNotSatisfiable:416,expectationFailed:417,internalServerError:500,notImplemented:501,badGateway:502,serviceUnavailable:503,gatewayTimeout:504,httpVersionNotSupported:505} +ScriptFX.Net.HTTPStatusCode.createEnum('ScriptFX.Net.HTTPStatusCode',false);ScriptFX.Net.HTTPRequestState=function(){};ScriptFX.Net.HTTPRequestState.prototype = {inactive:0,inProgress:1,completed:2,aborted:3,timedOut:4} +ScriptFX.Net.HTTPRequestState.createEnum('ScriptFX.Net.HTTPRequestState',false);ScriptFX.Net.HTTPVerb=function(){};ScriptFX.Net.HTTPVerb.prototype = {GET:0,POST:1,PUT:2,DELETE:3} +ScriptFX.Net.HTTPVerb.createEnum('ScriptFX.Net.HTTPVerb',false);ScriptFX.Net.IHTTPResponse=function(){};ScriptFX.Net.IHTTPResponse.createInterface('ScriptFX.Net.IHTTPResponse');ScriptFX.Net.HTTPRequest=function(){} +ScriptFX.Net.HTTPRequest.createRequest=function(uri,verb){var $0=new ScriptFX.Net.HTTPRequest();if(!uri.startsWith('{')){$0.$0=uri;}else{var $1=ScriptFX.JSON.deserialize(uri);$0.$0=$1['__uri'];if($1['__nullParams']){$0.$6=$1['__transportType'];}else{$0.$6=Type.getType($1['__transportType']);delete $1.__uri;delete $1.__transportType;$0.$7=$1;}}$0.$1=verb;return $0;} +ScriptFX.Net.HTTPRequest.createURI=function(uri,parameters){var $0=new StringBuilder(uri);if(uri.indexOf('?')<0){$0.append('?');}var $1=0;var $dict1=parameters;for(var $key2 in $dict1){var $2={key:$key2,value:$dict1[$key2]};if($1!==0){$0.append('&');}$0.append($2.key);$0.append('=');$0.append(encodeURIComponent($2.value.toString()));$1++;}return $0.toString();} +ScriptFX.Net.HTTPRequest.prototype={$0:null,$1:0,$2:null,$3:null,$4:null,$5:null,$6:null,$7:null,$8:0,$9:null,$A:null,$B:0,$C:null,$D:null,$E:null,get_content:function(){return this.$2;},set_content:function(value){this.$2=value;return value;},get_hasCredentials:function(){return (!String.isNullOrEmpty(this.$4));},get_hasHeaders:function(){return (this.$3!=null);},get_headers:function(){if(this.$3==null){this.$3={};}return this.$3;},get_password:function(){return this.$5;},get_response:function(){return this.$D;},get_state:function(){return this.$B;},get_timeout:function(){return this.$8;},set_timeout:function(value){this.$8=value;return value;},get_timeStamp:function(){return this.$E;},get_$F:function(){return this.$C;},get_$10:function(){return this.$7;},get_transportType:function(){return this.$6;},get_URI:function(){return this.$0;},get_userName:function(){return this.$4;},get_verb:function(){return this.$1;},abort:function(){if(this.$B===1){ScriptFX.Net.HTTPRequestManager.$5(this,false);}},dispose:function(){if(this.$C!=null){this.abort();}},invoke:function(callback,context){this.$9=callback;this.$A=context;ScriptFX.Application.current.registerDisposableObject(this);ScriptFX.Net.HTTPRequestManager.$6(this);},$11:function(){ScriptFX.Application.current.unregisterDisposableObject(this);if(this.$C!=null){this.$C.dispose();this.$C=null;}if(this.$9!=null){this.$9.invoke(this,this.$A);this.$9=null;this.$A=null;}},$12:function(){this.$B=3;this.$11();},$13:function($p0){this.$C=$p0;this.$B=1;this.$E=new Date();},$14:function($p0){this.$D=$p0;this.$B=2;this.$11();},$15:function(){this.$B=4;this.$11();},setContentAsForm:function(data){this.get_headers()['Content-Type']='application/x-www-form-urlencoded';var $0=new StringBuilder();var $1=true;var $dict1=data;for(var $key2 in $dict1){var $2={key:$key2,value:$dict1[$key2]};if(!$1){$0.append('&');}$0.append($2.key);$0.append('=');$0.append(encodeURIComponent($2.value.toString()));$1=false;}this.set_content($0.toString());},setContentAsJSON:function(data){this.get_headers()['Content-Type']='text/json';this.set_content(ScriptFX.JSON.serialize(data));},setCredentials:function(userName,password){this.$4=userName;this.$5=password;}} +ScriptFX.Net.HTTPRequestManager=function(){} +ScriptFX.Net.HTTPRequestManager.add_requestInvoking=function(value){ScriptFX.Net.HTTPRequestManager.$0=Delegate.combine(ScriptFX.Net.HTTPRequestManager.$0,value);} +ScriptFX.Net.HTTPRequestManager.remove_requestInvoking=function(value){ScriptFX.Net.HTTPRequestManager.$0=Delegate.remove(ScriptFX.Net.HTTPRequestManager.$0,value);} +ScriptFX.Net.HTTPRequestManager.add_requestInvoked=function(value){ScriptFX.Net.HTTPRequestManager.$1=Delegate.combine(ScriptFX.Net.HTTPRequestManager.$1,value);} +ScriptFX.Net.HTTPRequestManager.remove_requestInvoked=function(value){ScriptFX.Net.HTTPRequestManager.$1=Delegate.remove(ScriptFX.Net.HTTPRequestManager.$1,value);} +ScriptFX.Net.HTTPRequestManager.get_online=function(){return window.navigator.onLine;} +ScriptFX.Net.HTTPRequestManager.get_timeoutInterval=function(){return ScriptFX.Net.HTTPRequestManager.$2;} +ScriptFX.Net.HTTPRequestManager.set_timeoutInterval=function(value){ScriptFX.Net.HTTPRequestManager.$2=value;return value;} +ScriptFX.Net.HTTPRequestManager.$5=function($p0,$p1){var $0=$p0.get_$F();if($0!=null){$0.abort();ScriptFX.Net.HTTPRequestManager.$7($p0,null,$p1);}} +ScriptFX.Net.HTTPRequestManager.abortAll=function(){var $0=ScriptFX.Net.HTTPRequestManager.$3;ScriptFX.Net.HTTPRequestManager.$3=[];var $enum1=$0.getEnumerator();while($enum1.moveNext()){var $1=$enum1.get_current();ScriptFX.Net.HTTPRequestManager.$5($1,false);}} +ScriptFX.Net.HTTPRequestManager.$6=function($p0){if(ScriptFX.Net.HTTPRequestManager.$0!=null){var $2=new ScriptFX.Net.PreHTTPRequestEventArgs($p0);ScriptFX.Net.HTTPRequestManager.$0.invoke(null,$2);if($2.get_isSuppressed()){$p0.$14($2.get_response());return;}}var $0=$p0.get_transportType();if($0==null){$0=ScriptFX.Net._Core$3;}var $1=new $0($p0);$p0.$13($1);ScriptFX.Net.HTTPRequestManager.$3.add($p0);$1.invoke();if(((ScriptFX.Net.HTTPRequestManager.$2!==0)||($p0.get_timeout()!==0))&&(ScriptFX.Net.HTTPRequestManager.$4==null)){ScriptFX.Net.HTTPRequestManager.$4=Delegate.create(null,ScriptFX.Net.HTTPRequestManager.$8);ScriptFX.Application.current.add_idle(ScriptFX.Net.HTTPRequestManager.$4);}} +ScriptFX.Net.HTTPRequestManager.$7=function($p0,$p1,$p2){ScriptFX.Net.HTTPRequestManager.$3.remove($p0);if($p1!=null){$p0.$14($p1);}else if($p2){$p0.$15();}else{$p0.$12();}if(ScriptFX.Net.HTTPRequestManager.$1!=null){var $0=new ScriptFX.Net.PostHTTPRequestEventArgs($p0,$p1);ScriptFX.Net.HTTPRequestManager.$1.invoke(null,$0);}if((ScriptFX.Net.HTTPRequestManager.$3.length===0)&&(ScriptFX.Net.HTTPRequestManager.$4!=null)){ScriptFX.Application.current.remove_idle(ScriptFX.Net.HTTPRequestManager.$4);ScriptFX.Net.HTTPRequestManager.$4=null;}} +ScriptFX.Net.HTTPRequestManager.$8=function($p0,$p1){if(ScriptFX.Net.HTTPRequestManager.$3.length===0){return;}var $0=null;var $1=new Date().getTime();var $enum1=ScriptFX.Net.HTTPRequestManager.$3.getEnumerator();while($enum1.moveNext()){var $2=$enum1.get_current();var $3=$2.get_timeStamp().getTime();var $4=$2.get_timeout();if($4===0){$4=ScriptFX.Net.HTTPRequestManager.$2;if($4===0){continue;}}if(($1-$3)>$4){if($0==null){$0=[];}$0.add($2);}}if($0!=null){var $enum2=$0.getEnumerator();while($enum2.moveNext()){var $5=$enum2.get_current();ScriptFX.Net.HTTPRequestManager.$5($5,true);}}} +ScriptFX.Net.HTTPRequestManager.$9=function($p0,$p1){ScriptFX.Net.HTTPRequestManager.$7($p0,$p1,false);} +ScriptFX.Net.HTTPTransport=function(request){this.$0=request;} +ScriptFX.Net.HTTPTransport.createURI=function(uri,transportType,parameters){if(parameters==null){return '{__nullParams: true, __uri:\''+uri+'\', __transportType: '+transportType.get_fullName()+'}';}else{parameters['__uri']=uri;parameters['__transportType']=transportType.get_fullName();return ScriptFX.JSON.serialize(parameters);}} +ScriptFX.Net.HTTPTransport.prototype={$0:null,get_parameters:function(){return this.$0.get_$10();},get_request:function(){return this.$0;},getMethod:function(){return Enum.toString(ScriptFX.Net.HTTPVerb,this.$0.get_verb());},onCompleted:function(response){ScriptFX.Net.HTTPRequestManager.$9(this.$0,response);}} +ScriptFX.Net.PostHTTPRequestEventArgs=function(request,response){ScriptFX.Net.PostHTTPRequestEventArgs.constructBase(this);this.$1_0=request;this.$1_1=response;} +ScriptFX.Net.PostHTTPRequestEventArgs.prototype={$1_0:null,$1_1:null,get_request:function(){return this.$1_0;},get_response:function(){return this.$1_1;}} +ScriptFX.Net.PreHTTPRequestEventArgs=function(request){ScriptFX.Net.PreHTTPRequestEventArgs.constructBase(this);this.$1_0=request;} +ScriptFX.Net.PreHTTPRequestEventArgs.prototype={$1_0:null,$1_1:null,$1_2:false,get_isSuppressed:function(){return this.$1_2;},get_request:function(){return this.$1_0;},get_response:function(){return this.$1_1;},suppressRequest:function(response){this.$1_2=true;this.$1_1=response;}} +ScriptFX.Net._Core$2=function(request,xmlHTTP){this.$3=new Date();this.$0=request;this.$1=xmlHTTP;} +ScriptFX.Net._Core$2.prototype={$0:null,$1:null,$2:null,$3:null,$4:null,$5:null,$6:null,get_contentLength:function(){return this.getText().length;},get_contentType:function(){return this.$1.getResponseHeader('Content-Type');},get_headers:function(){if(this.$2==null){var $0=this.$1.getAllResponseHeaders();var $1=$0.split('\n');this.$2={};var $enum1=$1.getEnumerator();while($enum1.moveNext()){var $2=$enum1.get_current();var $3=$2.indexOf(':');this.$2[$2.substr(0,$3)]=$2.substr($3+1).trim();}}return this.$2;},get_request:function(){return this.$0;},get_statusCode:function(){return this.$1.status;},get_statusText:function(){return this.$1.statusText;},get_timeStamp:function(){return this.$3;},getHeader:function($p0){return this.$1.getResponseHeader($p0);},getObject:function(){if(this.$5==null){this.$5=ScriptFX.JSON.deserialize(this.getText());}return this.$5;},getText:function(){if(this.$4==null){this.$4=this.$1.responseText;}return this.$4;},getXML:function(){if(this.$6==null){var $0=this.$1.responseXML;if(($0==null)||($0.documentElement==null)){try{$0=XMLDocumentParser.parse(this.$1.responseText);if(($0!=null)&&($0.documentElement!=null)){this.$6=$0;}}catch($1){}}else{this.$6=$0;if(ScriptFX.Application.current.get_isIE()){$0.setProperty('SelectionLanguage','XPath');}}}return this.$6;}} +ScriptFX.Net._Core$3=function(request){ScriptFX.Net._Core$3.constructBase(this,[request]);} +ScriptFX.Net._Core$3.prototype={$1:null,abort:function(){if(this.$1!=null){this.$1.onreadystatechange=Delegate.Null;this.$1.abort();this.$1=null;}},dispose:function(){this.abort();},invoke:function(){var $0=this.get_request();this.$1=new XMLHttpRequest();this.$1.onreadystatechange=Delegate.create(this,this.$2);if(!this.get_request().get_hasCredentials()){this.$1.open(this.getMethod(),$0.get_URI(),true);}else{this.$1.open(this.getMethod(),$0.get_URI(),true,$0.get_userName(),$0.get_password());}var $1=($0.get_hasHeaders())?$0.get_headers():null;if($1!=null){var $dict1=$1;for(var $key2 in $dict1){var $3={key:$key2,value:$dict1[$key2]};this.$1.setRequestHeader($3.key,$3.value);}}var $2=$0.get_content();if(($2!=null)&&(($1==null)||($1['Content-Type']==null))){this.$1.setRequestHeader('Content-Type','application/x-www-form-urlencoded');}this.$1.send($2);},$2:function(){if(this.$1.readyState===4){var $0=new ScriptFX.Net._Core$2(this.get_request(),this.$1);this.$1.onreadystatechange=Delegate.Null;this.$1=null;this.onCompleted($0);}}} +Type.createNamespace('ScriptFX.UI');ScriptFX.UI.AnimationStopState=function(){};ScriptFX.UI.AnimationStopState.prototype = {complete:0,abort:1,revert:2} +ScriptFX.UI.AnimationStopState.createEnum('ScriptFX.UI.AnimationStopState',false);ScriptFX.UI.$create_Bounds=function(left,top,width,height){var $o={};$o.left=left;$o.top=top;$o.width=width;$o.height=height;return $o;} +ScriptFX.UI.$create_DragDropData=function(mode,dataType,data){var $o={};$o.mode=mode;$o.dataType=dataType;$o.data=data;return $o;} +ScriptFX.UI.DragMode=function(){};ScriptFX.UI.DragMode.prototype = {move:0,copy:1} +ScriptFX.UI.DragMode.createEnum('ScriptFX.UI.DragMode',false);ScriptFX.UI.IAction=function(){};ScriptFX.UI.IAction.createInterface('ScriptFX.UI.IAction');ScriptFX.UI.IDragDrop=function(){};ScriptFX.UI.IDragDrop.createInterface('ScriptFX.UI.IDragDrop');ScriptFX.UI.IDragSource=function(){};ScriptFX.UI.IDragSource.createInterface('ScriptFX.UI.IDragSource');ScriptFX.UI.IDropTarget=function(){};ScriptFX.UI.IDropTarget.createInterface('ScriptFX.UI.IDropTarget');ScriptFX.UI.IEditableText=function(){};ScriptFX.UI.IEditableText.createInterface('ScriptFX.UI.IEditableText');ScriptFX.UI.IStaticText=function(){};ScriptFX.UI.IStaticText.createInterface('ScriptFX.UI.IStaticText');ScriptFX.UI.IToggle=function(){};ScriptFX.UI.IToggle.createInterface('ScriptFX.UI.IToggle');ScriptFX.UI.IValidator=function(){};ScriptFX.UI.IValidator.createInterface('ScriptFX.UI.IValidator');ScriptFX.UI.Key=function(){};ScriptFX.UI.Key.prototype = {backspace:8,tab:9,enter:13,escape:27,space:32,pageUp:33,pageDown:34,end:35,home:36,left:37,up:38,right:39,down:40,del:127} +ScriptFX.UI.Key.createEnum('ScriptFX.UI.Key',false);ScriptFX.UI.$create_Location=function(left,top){var $o={};$o.left=left;$o.top=top;return $o;} +ScriptFX.UI.$create_OverlayOptions=function(cssClass){var $o={};$o.cssClass=cssClass;$o.fadeInOutInterval=250;$o.opacity=0.75;return $o;} +ScriptFX.UI.PopupMode=function(){};ScriptFX.UI.PopupMode.prototype = {center:0,anchorTopLeft:1,anchorTopRight:2,anchorBottomRight:3,anchorBottomLeft:4,alignTopLeft:5,alignTopRight:6,alignBottomRight:7,alignBottomLeft:8} +ScriptFX.UI.PopupMode.createEnum('ScriptFX.UI.PopupMode',false);ScriptFX.UI.$create_PopupOptions=function(referenceElement,mode){var $o={};$o.referenceElement=referenceElement;$o.mode=mode;$o.id=null;$o.xOffset=0;$o.yOffset=0;return $o;} +ScriptFX.UI.$create_Size=function(width,height){var $o={};$o.width=width;$o.height=height;return $o;} +ScriptFX.UI.Animation=function(domElement){if(domElement==null){domElement=document.documentElement;}this.$0=domElement;this.$1=1;ScriptFX.Application.current.registerDisposableObject(this);} +ScriptFX.UI.Animation.prototype={$0:null,$1:0,$2:false,$3:0,$4:false,$5:false,$6:false,$7:0,$8:0,$9:false,add_repeating:function(value){this.$A=Delegate.combine(this.$A,value);},remove_repeating:function(value){this.$A=Delegate.remove(this.$A,value);},$A:null,add_starting:function(value){this.$B=Delegate.combine(this.$B,value);},remove_starting:function(value){this.$B=Delegate.remove(this.$B,value);},$B:null,add_stopped:function(value){this.$C=Delegate.combine(this.$C,value);},remove_stopped:function(value){this.$C=Delegate.remove(this.$C,value);},$C:null,get_autoReverse:function(){return this.$2;},set_autoReverse:function(value){this.$2=value;return value;},get_completed:function(){return this.$4;},get_domElement:function(){return this.$0;},get_isPlaying:function(){return this.$5;},get_isReversed:function(){return this.$9;},get_repeatCount:function(){return this.$1;},set_repeatCount:function(value){this.$1=value;return value;},get_repeatDelay:function(){return this.$3;},set_repeatDelay:function(value){this.$3=value;return value;},get_repetitions:function(){return this.$7;},dispose:function(){if(this.$5){this.stop(1);}if(this.$0!=null){this.$0=null;ScriptFX.Application.current.unregisterDisposableObject(this);}},$D:function($p0){if(this.$B!=null){this.$B.invoke(this,EventArgs.Empty);}this.performSetup();this.$5=true;this.$7=1;this.$9=$p0;this.playCore();},$E:function($p0,$p1){this.stopCore($p0,$p1);this.$4=$p0;this.$5=false;this.performCleanup();if(this.$C!=null){this.$C.invoke(this,EventArgs.Empty);}},$F:function($p0){if(this.$6){if((this.$3!==0)&&((this.$8+this.$3)>$p0)){return false;}}var $0=this.progressCore(this.$6,$p0);this.$6=false;if($0&&((this.$1===0)||(this.$1>this.$7))){$0=false;this.$7++;if(this.$A!=null){var $1=new ScriptFX.CancelEventArgs();this.$A.invoke(this,$1);$0=$1.get_canceled();}if(!$0){this.$6=true;if(this.$2){this.$9=!this.$9;}this.$8=$p0;this.performRepetition(this.$9);}}return $0;},performCleanup:function(){},performRepetition:function(reversed){},performSetup:function(){},play:function(){this.$4=false;ScriptFX.UI.AnimationManager.$4(this);},stop:function(stopState){ScriptFX.UI.AnimationManager.$5(this,stopState);}} +ScriptFX.UI.AnimationManager=function(){} +ScriptFX.UI.AnimationManager.get_FPS=function(){return ScriptFX.UI.AnimationManager.$0;} +ScriptFX.UI.AnimationManager.set_FPS=function(value){ScriptFX.UI.AnimationManager.$0=value;return value;} +ScriptFX.UI.AnimationManager.$3=function(){ScriptFX.UI.AnimationManager.$2=0;if(ScriptFX.UI.AnimationManager.$1.length===0){return;}var $0=new Date().getTime();var $1=ScriptFX.UI.AnimationManager.$1;var $2=[];ScriptFX.UI.AnimationManager.$1=null;var $enum1=$1.getEnumerator();while($enum1.moveNext()){var $3=$enum1.get_current();var $4=$3.$F($0);if($4){$3.$E(true,0);}else{$2.add($3);}}if($2.length!==0){ScriptFX.UI.AnimationManager.$1=$2;if(ScriptFX.UI.AnimationManager.$2===0){ScriptFX.UI.AnimationManager.$2=window.setTimeout(Delegate.create(null,ScriptFX.UI.AnimationManager.$3),1000/ScriptFX.UI.AnimationManager.$0);}}} +ScriptFX.UI.AnimationManager.$4=function($p0){if(ScriptFX.UI.AnimationManager.$1==null){ScriptFX.UI.AnimationManager.$1=[];}ScriptFX.UI.AnimationManager.$1.add($p0);$p0.$D(false);if(ScriptFX.UI.AnimationManager.$2===0){ScriptFX.UI.AnimationManager.$2=window.setTimeout(Delegate.create(null,ScriptFX.UI.AnimationManager.$3),1000/ScriptFX.UI.AnimationManager.$0);}} +ScriptFX.UI.AnimationManager.$5=function($p0,$p1){$p0.$E(false,$p1);ScriptFX.UI.AnimationManager.$1.remove($p0);} +ScriptFX.UI.AnimationSequence=function(animations){ScriptFX.UI.AnimationSequence.constructBase(this,[null]);this.$10=animations;this.$12=-1;} +ScriptFX.UI.AnimationSequence.prototype={$10:null,$11:0,$12:0,$13:false,$14:0,get_successionDelay:function(){return this.$11;},set_successionDelay:function(value){this.$11=value;return value;},playCore:function(){if(!this.get_isReversed()){this.$12=0;}else{this.$12=this.$10.length-1;}this.$10[this.$12].$D(this.get_isReversed());},progressCore:function(startRepetition,timeStamp){if(startRepetition){if(!this.get_isReversed()){this.$12=0;}else{this.$12=this.$10.length-1;}this.$13=true;}var $0=this.$10[this.$12];if(this.$13){if((this.$11!==0)&&((this.$14+this.$11)>timeStamp)){return false;}this.$13=false;$0.$D(this.get_isReversed());}var $1=$0.$F(timeStamp);if($1){$0.$E(true,0);if(!this.get_isReversed()){this.$12++;}else{this.$12--;}this.$13=true;this.$14=timeStamp;}return $1&&((this.$12===this.$10.length)||(this.$12===-1));},stopCore:function(completed,stopState){if(!completed){var $0=this.$10[this.$12];$0.$E(false,stopState);}}} +ScriptFX.UI.Behavior=function(domElement,id){ScriptFX.Application.current.registerDisposableObject(this);this.$0=domElement;this.$1=id;if(!String.isNullOrEmpty(id)){if(id==='control'){var $1=domElement[id];if(($1!=null)&&(Type.getInstanceType($1)===ScriptFX.UI._Core$4)){delete domElement.control;ScriptFX.Application.current.unregisterDisposableObject($1);this.$3=$1.get_$5();}}domElement[id] = this;}if(id!=='control'){var $2=domElement.control;if($2==null){$2=new ScriptFX.UI._Core$4(domElement);}}var $0=domElement._behaviors;if($0==null){$0=[];domElement._behaviors = $0;}$0.add(this);} +ScriptFX.UI.Behavior.getBehavior=function(domElement,type){var $0=domElement._behaviors;if($0!=null){var $enum1=$0.getEnumerator();while($enum1.moveNext()){var $1=$enum1.get_current();if(type.isAssignableFrom(Type.getInstanceType($1))){return $1;}}}return null;} +ScriptFX.UI.Behavior.getBehaviors=function(domElement,type){var $0=domElement._behaviors;if(isNullOrUndefined($0)||($0.length===0)){return null;}if(type==null){return $0.clone();}return $0.filter(Delegate.create(null,function($p1_0){ +return type.isAssignableFrom(Type.getInstanceType($p1_0));}));} +ScriptFX.UI.Behavior.getNamedBehavior=function(domElement,id){return domElement[id];} +ScriptFX.UI.Behavior.prototype={$0:null,$1:null,$2:null,$3:null,$4:false,get_domElement:function(){return this.$0;},get_domEvents:function(){if(this.$2==null){this.$2=new ScriptFX.UI.DOMEventList(this.$0);}return this.$2;},get_events:function(){if(this.$3==null){this.$3=new ScriptFX.EventList();}return this.$3;},get_$5:function(){return this.$3;},get_isDisposed:function(){return (this.$0==null);},get_isInitializing:function(){return this.$4;},add_propertyChanged:function(value){this.get_events().addHandler('PropertyChanged',value);},remove_propertyChanged:function(value){this.get_events().removeHandler('PropertyChanged',value);},beginInitialize:function(){this.$4=true;},dispose:function(){if(this.$2!=null){this.$2.dispose();}if(this.$0!=null){if(this.$1!=null){if(ScriptFX.Application.current.get_isIE()){this.$0.removeAttribute(this.$1);}else{delete this.$0[this.$1];}}var $0=this.$0._behaviors;$0.remove(this);this.$0=null;ScriptFX.Application.current.unregisterDisposableObject(this);}},endInitialize:function(){this.$4=false;},raisePropertyChanged:function(propertyName){var $0=this.get_events().getHandler('PropertyChanged');if($0!=null){$0.invoke(this,new ScriptFX.PropertyChangedEventArgs(propertyName));}}} +ScriptFX.UI.Color=function(red,green,blue){this.$0=red;this.$1=green;this.$2=blue;} +ScriptFX.UI.Color.format=function(red,green,blue){return String.format('#{0:X2}{1:X2}{2:X2}',red,green,blue);} +ScriptFX.UI.Color.parse=function(s){if(String.isNullOrEmpty(s)){return null;}if((s.length===7)&&s.startsWith('#')){var $0=parseInt(s.substr(1,2),16);var $1=parseInt(s.substr(3,2),16);var $2=parseInt(s.substr(5,2),16);return new ScriptFX.UI.Color($0,$1,$2);}else if(s.startsWith('rgb(')&&s.endsWith(')')){var $3=s.substring(4,s.length-1).split(',');if($3.length===3){return new ScriptFX.UI.Color(parseInt($3[0].trim()),parseInt($3[1].trim()),parseInt($3[2].trim()));}}return null;} +ScriptFX.UI.Color.prototype={$0:0,$1:0,$2:0,get_blue:function(){return this.$2;},get_green:function(){return this.$1;},get_red:function(){return this.$0;},toString:function(){return ScriptFX.UI.Color.format(this.$0,this.$1,this.$2);}} +ScriptFX.UI.Control=function(domElement){ScriptFX.UI.Control.constructBase(this,[domElement,'control']);} +ScriptFX.UI.Control.getControl=function(domElement){return ScriptFX.UI.Behavior.getNamedBehavior(domElement,'control');} +ScriptFX.UI.Control.prototype={add_disposing:function(value){this.get_events().addHandler('disposing',value);},remove_disposing:function(value){this.get_events().removeHandler('disposing',value);},dispose:function(){var $0=this.get_domElement();if($0!=null){var $1=this.get_events().getHandler('disposing');if($1!=null){$1.invoke(this,EventArgs.Empty);}var $2=ScriptFX.UI.Behavior.getBehaviors($0,null);if($2.length>1){var $enum1=$2.getEnumerator();while($enum1.moveNext()){var $3=$enum1.get_current();if($3!==this){$3.dispose();}}}}ScriptFX.UI.Control.callBase(this, 'dispose');}} +ScriptFX.UI.DOMEventList=function(element){this.$0=element;this.$1={};} +ScriptFX.UI.DOMEventList.prototype={$0:null,$1:null,attach:function(eventName,handler){this.$0.attachEvent(eventName,handler);this.$1[eventName]=handler;},detach:function(eventName){var $0=this.$1[eventName];if($0!=null){this.$0.detachEvent(eventName,$0);delete this.$1[eventName];return true;}return false;},dispose:function(){if(this.$0!=null){var $dict1=this.$1;for(var $key2 in $dict1){var $0={key:$key2,value:$dict1[$key2]};this.$0.detachEvent($0.key,$0.value);}this.$0=null;this.$1=null;}},isAttached:function(eventName){return (this.$1[eventName]!=null)?true:false;}} +ScriptFX.UI.DragDropEventArgs=function(dataObject){ScriptFX.UI.DragDropEventArgs.constructBase(this);this.$1_0=dataObject;} +ScriptFX.UI.DragDropEventArgs.prototype={$1_0:null,get_dataObject:function(){return this.$1_0;}} +ScriptFX.UI.DragDropManager=function(){} +ScriptFX.UI.DragDropManager.get_canDragDrop=function(){return (ScriptFX.UI.DragDropManager.$0!=null);} +ScriptFX.UI.DragDropManager.get_supportsDataTransfer=function(){return ScriptFX.UI.DragDropManager.$0.get_supportsDataTransfer();} +ScriptFX.UI.DragDropManager.add_dragDropEnding=function(value){ScriptFX.UI.DragDropManager.$3=Delegate.combine(ScriptFX.UI.DragDropManager.$3,value);} +ScriptFX.UI.DragDropManager.remove_dragDropEnding=function(value){ScriptFX.UI.DragDropManager.$3=Delegate.remove(ScriptFX.UI.DragDropManager.$3,value);} +ScriptFX.UI.DragDropManager.add_dragDropStarting=function(value){ScriptFX.UI.DragDropManager.$2=Delegate.combine(ScriptFX.UI.DragDropManager.$2,value);} +ScriptFX.UI.DragDropManager.remove_dragDropStarting=function(value){ScriptFX.UI.DragDropManager.$2=Delegate.remove(ScriptFX.UI.DragDropManager.$2,value);} +ScriptFX.UI.DragDropManager.$5=function(){if(ScriptFX.UI.DragDropManager.$3!=null){ScriptFX.UI.DragDropManager.$3.invoke(null,new ScriptFX.UI.DragDropEventArgs(ScriptFX.UI.DragDropManager.$4));}ScriptFX.UI.DragDropManager.$4=null;} +ScriptFX.UI.DragDropManager.registerDragDropImplementation=function(dragDrop){ScriptFX.UI.DragDropManager.$0=dragDrop;} +ScriptFX.UI.DragDropManager.registerDropTarget=function(target){ScriptFX.UI.DragDropManager.$1.add(target);} +ScriptFX.UI.DragDropManager.startDragDrop=function(data,dragVisual,dragOffset,source,context){if(ScriptFX.UI.DragDropManager.$4!=null){return false;}var $0=[];var $enum1=ScriptFX.UI.DragDropManager.$1.getEnumerator();while($enum1.moveNext()){var $1=$enum1.get_current();if($1.supportsDataObject(data)){$0.add($1);}}if($0.length===0){return false;}ScriptFX.UI.DragDropManager.$4=data;if(ScriptFX.UI.DragDropManager.$2!=null){ScriptFX.UI.DragDropManager.$2.invoke(null,new ScriptFX.UI.DragDropEventArgs(data));}ScriptFX.UI.DragDropManager.$0.dragDrop(new ScriptFX.UI._Core$0(source),context,$0,dragVisual,dragOffset,ScriptFX.UI.DragDropManager.$4);return true;} +ScriptFX.UI.DragDropManager.unregisterDropTarget=function(target){ScriptFX.UI.DragDropManager.$1.remove(target);} +ScriptFX.UI._Core$0=function(actualSource){this.$0=actualSource;} +ScriptFX.UI._Core$0.prototype={$0:null,get_domElement:function(){return this.$0.get_domElement();},onDragStart:function($p0){if(this.$0!=null){this.$0.onDragStart($p0);}},onDrag:function($p0){if(this.$0!=null){this.$0.onDrag($p0);}},onDragEnd:function($p0,$p1){if(this.$0!=null){this.$0.onDragEnd($p0,$p1);}ScriptFX.UI.DragDropManager.$5();}} +ScriptFX.UI.Element=function(){} +ScriptFX.UI.Element.addCSSClass=function(element,className){var $0=element.className;if($0.indexOf(className)<0){element.className=$0+' '+className;}} +ScriptFX.UI.Element.containsCSSClass=function(element,className){return element.className.split(' ').contains(className);} +ScriptFX.UI.Element.getBounds=function(element){var $0=ScriptFX.UI.Element.getLocation(element);return ScriptFX.UI.$create_Bounds($0.left,$0.top,element.offsetWidth,element.offsetHeight);} +ScriptFX.UI.Element.getLocation=function(element){var $0=0;var $1=0;for(var $2=element;$2!=null;$2=$2.offsetParent){$0+=$2.offsetLeft;$1+=$2.offsetTop;}return ScriptFX.UI.$create_Location($0,$1);} +ScriptFX.UI.Element.getSize=function(element){return ScriptFX.UI.$create_Size(element.offsetWidth,element.offsetHeight);} +ScriptFX.UI.Element.removeCSSClass=function(element,className){var $0=' '+element.className+' ';var $1=$0.indexOf(' '+className+' ');if($1>=0){var $2=$0.substr(0,$1)+' '+$0.substr($1+className.length+1);element.className=$2;}} +ScriptFX.UI.Element.setLocation=function(element,location){element.style.left=location.left+'px';element.style.top=location.top+'px';} +ScriptFX.UI.Element.setSize=function(element,size){element.style.width=size.width+'px';element.style.height=size.height+'px';} +ScriptFX.UI.FadeEffect=function(domElement,duration,opacity){ScriptFX.UI.FadeEffect.constructBase(this,[domElement,duration]);this.$14=opacity;} +ScriptFX.UI.FadeEffect.prototype={$13:false,$14:0,get_isFadingIn:function(){return this.$13;},fadeIn:function(){if(this.get_isPlaying()){this.stop(0);}this.$13=true;this.play();},fadeOut:function(){if(this.get_isPlaying()){this.stop(0);}this.$13=false;this.play();},performCleanup:function(){ScriptFX.UI.FadeEffect.callBase(this, 'performCleanup');if(!this.$13){this.$15(0);this.get_domElement().style.display='none';}},performSetup:function(){ScriptFX.UI.FadeEffect.callBase(this, 'performSetup');if(this.$13){this.$15(0);this.get_domElement().style.display='';}},performTweening:function(frame){if(this.$13){this.$15(this.$14*frame);}else{this.$15(this.$14*(1-frame));}},$15:function($p0){if(ScriptFX.Application.current.get_isIE()){this.get_domElement().style.filter='alpha(opacity='+($p0*100)+')';}else{this.get_domElement().style.opacity=$p0.toString();}}} +ScriptFX.UI._Core$4=function(domElement){ScriptFX.UI._Core$4.constructBase(this,[domElement]);} +ScriptFX.UI.OverlayBehavior=function(domElement,options){ScriptFX.UI.OverlayBehavior.constructBase(this,[domElement,options.id]);this.$7=document.createElement('div');this.$7.className=options.cssClass;var $0=this.$7.style;$0.display='none';$0.top='0px';$0.left='0px';$0.width='100%';if(ScriptFX.Application.current.get_isIE()&&(ScriptFX.Application.current.get_host().get_majorVersion()<7)){$0.position='absolute';}else{this.$8=true;$0.position='fixed';$0.height='100%';}document.body.appendChild(this.$7);if(options.fadeInOutInterval!==0){this.$9=new ScriptFX.UI.FadeEffect(this.$7,options.fadeInOutInterval,options.opacity);this.$9.set_easingFunction(Delegate.create(null,ScriptFX.UI.TimedAnimation.easeInOut));this.$9.add_stopped(Delegate.create(this,this.$C));}} +ScriptFX.UI.OverlayBehavior.prototype={$7:null,$8:false,$9:null,$A:null,$B:false,get_isVisible:function(){return this.$B;},add_visibilityChanged:function(value){this.get_events().addHandler(ScriptFX.UI.OverlayBehavior.$6,value);},remove_visibilityChanged:function(value){this.get_events().removeHandler(ScriptFX.UI.OverlayBehavior.$6,value);},dispose:function(){if(this.$9!=null){this.$9.dispose();this.$9=null;}if(this.$A!=null){window.detachEvent('onresize',this.$A);this.$A=null;}ScriptFX.UI.OverlayBehavior.callBase(this, 'dispose');},hide:function(){if((!this.$B)||this.$9.get_isPlaying()){return;}if(this.$A!=null){window.detachEvent('onresize',this.$A);this.$A=null;}if(this.$9!=null){this.$9.fadeOut();}else{this.$7.style.display='none';this.$B=false;var $0=this.get_events().getHandler(ScriptFX.UI.OverlayBehavior.$6);if($0!=null){$0.invoke(this,EventArgs.Empty);}}},$C:function($p0,$p1){this.$B=this.$9.get_isFadingIn();var $0=this.get_events().getHandler(ScriptFX.UI.OverlayBehavior.$6);if($0!=null){$0.invoke(this,EventArgs.Empty);}},$D:function(){this.$7.style.height=document.documentElement.offsetHeight+'px';},show:function(){if(this.$B||this.$9.get_isPlaying()){return;}if(!this.$8){this.$7.style.height=document.documentElement.offsetHeight+'px';this.$A=Delegate.create(this,this.$D);window.attachEvent('onresize',this.$A);}if(this.$9!=null){this.$9.fadeIn();}else{this.$7.style.display='';this.$B=true;var $0=this.get_events().getHandler(ScriptFX.UI.OverlayBehavior.$6);if($0!=null){$0.invoke(this,EventArgs.Empty);}}}} +ScriptFX.UI.PopupBehavior=function(domElement,options){ScriptFX.UI.PopupBehavior.constructBase(this,[domElement,options.id]);this.$6=options;domElement.style.position='absolute';domElement.style.display='none';} +ScriptFX.UI.PopupBehavior.prototype={$6:null,$7:null,dispose:function(){if(this.get_domElement()!=null){this.hide();}ScriptFX.UI.PopupBehavior.callBase(this, 'dispose');},hide:function(){this.get_domElement().style.display='none';if(this.$7!=null){this.$7.parentNode.removeChild(this.$7);this.$7=null;}},show:function(){var $0=this.get_domElement().offsetParent;if($0==null){$0=document.documentElement;}this.get_domElement().style.display='block';var $1=0;var $2=0;var $3=1;var $4=1;var $5=false;var $6=ScriptFX.UI.Element.getBounds($0);var $7=ScriptFX.UI.Element.getBounds(this.get_domElement());var $8=ScriptFX.UI.Element.getBounds(this.$6.referenceElement);var $9=$8.left-$6.left;var $A=$8.top-$6.top;switch(this.$6.mode){case 0:$1=Math.round($8.width/2-$7.width/2);$2=Math.round($8.height/2-$7.height/2);break;case 1:$1=0;$2=-$7.height;break;case 2:$1=$8.width-$7.width;$2=-$7.height;break;case 3:$1=$8.width-$7.width;$2=$8.height;break;case 4:$1=0;$2=$8.height;break;case 5:$1=$8.left;$2=$8.top;$5=true;break;case 6:$1=$8.left+$8.width-$7.width;$2=$8.top;$3=-1;$5=true;break;case 7:$1=$8.left+$8.width-$7.width;$2=$8.top+$8.height-$7.height;$3=-1;$4=-1;$5=true;break;case 8:$1=$8.left;$2=$8.top+$8.height-$7.height;$4=-1;$5=true;break;}if(!$5){$1+=$9+this.$6.xOffset;$2+=$A+this.$6.yOffset;}else{$1+=$9+this.$6.xOffset*$3;$2+=$A+this.$6.yOffset*$4;}var $B=document.body.clientWidth;if($1+$7.width>$B-2){$1-=($1+$7.width-$B+2);}if($1<0){$1=2;}if($2<0){$2=2;}ScriptFX.UI.Element.setLocation(this.get_domElement(),ScriptFX.UI.$create_Location($1,$2));var $C=ScriptFX.Application.current.get_host();if(($C.get_name()===1)&&($C.get_majorVersion()<7)){this.$7=document.createElement('IFRAME');this.$7.src='javascript:false;';this.$7.scrolling='no';this.$7.style.position='absolute';this.$7.style.display='block';this.$7.style.border='none';this.$7.style.filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';this.$7.style.left=$1+'px';this.$7.style.top=$2+'px';this.$7.style.width=$7.width+'px';this.$7.style.height=$7.height+'px';this.$7.style.zIndex=1;this.get_domElement().parentNode.insertBefore(this.$7,this.get_domElement());}}} +ScriptFX.UI.TimedAnimation=function(domElement,duration){ScriptFX.UI.TimedAnimation.constructBase(this,[domElement]);this.$10=duration;} +ScriptFX.UI.TimedAnimation.easeIn=function(t){return t*t;} +ScriptFX.UI.TimedAnimation.easeInOut=function(t){t=t*2;if(t<1){return t*t/2;}return -((--t)*(t-2)-1)/2;} +ScriptFX.UI.TimedAnimation.easeOut=function(t){return -t*(t-2);} +ScriptFX.UI.TimedAnimation.prototype={$10:0,$11:null,$12:0,get_duration:function(){return this.$10;},set_duration:function(value){this.$10=value;return value;},get_easingFunction:function(){return this.$11;},set_easingFunction:function(value){this.$11=value;return value;},playCore:function(){this.$12=new Date().getTime();this.progressCore(false,this.$12);},progressCore:function(startRepetition,timeStamp){var $0=0;var $1=false;if(!startRepetition){$0=(timeStamp-this.$12)/this.$10;if(!this.get_isReversed()){$1=($0>=1);$0=Math.min(1,$0);}else{$0=1-$0;$1=($0<=0);$0=Math.max(0,$0);}if((!$1)&&(this.$11!=null)){$0=this.$11.invoke($0);}}else{this.$12=timeStamp;if(this.get_isReversed()){$0=1;}}this.performTweening($0);return $1;},stopCore:function(completed,stopState){if(!completed){if(stopState===0){this.performTweening(1);}else if(stopState===2){this.performTweening(0);}}}} +ScriptFX.Application.createClass('ScriptFX.Application',null,IServiceProvider,IServiceContainer,ScriptFX.IEventManager);ScriptFX.CancelEventArgs.createClass('ScriptFX.CancelEventArgs',EventArgs);ScriptFX.CollectionChangedEventArgs.createClass('ScriptFX.CollectionChangedEventArgs',EventArgs);ScriptFX.ApplicationUnloadingEventArgs.createClass('ScriptFX.ApplicationUnloadingEventArgs',EventArgs);ScriptFX.HistoryManager.createClass('ScriptFX.HistoryManager',null,IDisposable);ScriptFX.HistoryEventArgs.createClass('ScriptFX.HistoryEventArgs',EventArgs);ScriptFX.HostInfo.createClass('ScriptFX.HostInfo');ScriptFX.EventList.createClass('ScriptFX.EventList');ScriptFX.JSON.createClass('ScriptFX.JSON');ScriptFX.PropertyChangedEventArgs.createClass('ScriptFX.PropertyChangedEventArgs',EventArgs);ScriptFX.ObservableCollection.createClass('ScriptFX.ObservableCollection',null,IDisposable,IArray,IEnumerable,ScriptFX.INotifyCollectionChanged);ScriptFX.Net.HTTPRequest.createClass('ScriptFX.Net.HTTPRequest',null,IDisposable);ScriptFX.Net.HTTPRequestManager.createClass('ScriptFX.Net.HTTPRequestManager');ScriptFX.Net.HTTPTransport.createClass('ScriptFX.Net.HTTPTransport',null,IDisposable);ScriptFX.Net.PostHTTPRequestEventArgs.createClass('ScriptFX.Net.PostHTTPRequestEventArgs',EventArgs);ScriptFX.Net.PreHTTPRequestEventArgs.createClass('ScriptFX.Net.PreHTTPRequestEventArgs',EventArgs);ScriptFX.Net._Core$2.createClass('ScriptFX.Net._Core$2',null,ScriptFX.Net.IHTTPResponse);ScriptFX.Net._Core$3.createClass('ScriptFX.Net._Core$3',ScriptFX.Net.HTTPTransport);ScriptFX.UI.Animation.createClass('ScriptFX.UI.Animation',null,IDisposable);ScriptFX.UI.AnimationManager.createClass('ScriptFX.UI.AnimationManager');ScriptFX.UI.AnimationSequence.createClass('ScriptFX.UI.AnimationSequence',ScriptFX.UI.Animation);ScriptFX.UI.Behavior.createClass('ScriptFX.UI.Behavior',null,IDisposable,ScriptFX.ISupportInitialize,ScriptFX.INotifyPropertyChanged);ScriptFX.UI.Color.createClass('ScriptFX.UI.Color');ScriptFX.UI.Control.createClass('ScriptFX.UI.Control',ScriptFX.UI.Behavior,ScriptFX.INotifyDisposing);ScriptFX.UI.DOMEventList.createClass('ScriptFX.UI.DOMEventList',null,IDisposable);ScriptFX.UI.DragDropEventArgs.createClass('ScriptFX.UI.DragDropEventArgs',EventArgs);ScriptFX.UI.DragDropManager.createClass('ScriptFX.UI.DragDropManager');ScriptFX.UI._Core$0.createClass('ScriptFX.UI._Core$0',null,ScriptFX.UI.IDragSource);ScriptFX.UI.Element.createClass('ScriptFX.UI.Element');ScriptFX.UI.TimedAnimation.createClass('ScriptFX.UI.TimedAnimation',ScriptFX.UI.Animation);ScriptFX.UI.FadeEffect.createClass('ScriptFX.UI.FadeEffect',ScriptFX.UI.TimedAnimation);ScriptFX.UI._Core$4.createClass('ScriptFX.UI._Core$4',ScriptFX.UI.Control);ScriptFX.UI.OverlayBehavior.createClass('ScriptFX.UI.OverlayBehavior',ScriptFX.UI.Behavior);ScriptFX.UI.PopupBehavior.createClass('ScriptFX.UI.PopupBehavior',ScriptFX.UI.Behavior);ScriptFX.Application.current=new ScriptFX.Application();ScriptFX.JSON.$0=null;ScriptFX.Net.HTTPRequestManager.$0=null;ScriptFX.Net.HTTPRequestManager.$1=null;ScriptFX.Net.HTTPRequestManager.$2=0;ScriptFX.Net.HTTPRequestManager.$3=[];ScriptFX.Net.HTTPRequestManager.$4=null;ScriptFX.UI.AnimationManager.$0=100;ScriptFX.UI.AnimationManager.$1=null;ScriptFX.UI.AnimationManager.$2=0;ScriptFX.UI.DragDropManager.$0=null;ScriptFX.UI.DragDropManager.$1=[];ScriptFX.UI.DragDropManager.$2=null;ScriptFX.UI.DragDropManager.$3=null;ScriptFX.UI.DragDropManager.$4=null;ScriptFX.UI.OverlayBehavior.$6='visibilityChanged'; +// ---- Do not remove this footer ---- +// This script was generated using Script# v0.5.5.0 (http://projects.nikhilk.net/ScriptSharp) +// ----------------------------------- diff --git a/branding/common/scormplayer/scormpool/Lib/ssfx.UI.Forms.js b/branding/common/scormplayer/scormpool/Lib/ssfx.UI.Forms.js new file mode 100644 index 00000000..ea22c5c6 --- /dev/null +++ b/branding/common/scormplayer/scormpool/Lib/ssfx.UI.Forms.js @@ -0,0 +1,29 @@ +// Script# Framework +// More information at http://projects.nikhilk.net/ScriptSharp +// + +Type.createNamespace('ScriptFX.UI');ScriptFX.UI.$create_AutoCompleteOptions=function(service){var $o={};$o.service=service;$o.id=null;$o.itemCount=10;$o.itemLookupDelay=500;$o.minimumPrefixLength=3;$o.cssClass='autoComplete';$o.itemCSSClass='autoCompleteItem';$o.selectedItemCSSClass='autoCompleteSelectedItem';$o.xOffset=0;$o.yOffset=0;return $o;} +ScriptFX.UI.$create_EnterKeyOptions=function(clickTarget){var $o={};$o.clickTarget=clickTarget;return $o;} +ScriptFX.UI.$create_WatermarkOptions=function(watermarkText,watermarkCssClass){var $o={};$o.watermarkText=watermarkText;$o.watermarkCssClass=watermarkCssClass;return $o;} +ScriptFX.UI.AutoCompleteBehavior=function(domElement,options){ScriptFX.UI.AutoCompleteBehavior.constructBase(this,[domElement,options.id]);this.$1_0=options;this.$1_6=-1;domElement.autocomplete = 'off';var $0=this.get_domEvents();$0.attach('onfocus',Delegate.create(this,this.$1_15));$0.attach('onblur',Delegate.create(this,this.$1_14));$0.attach('onkeydown',Delegate.create(this,this.$1_16));} +ScriptFX.UI.AutoCompleteBehavior.prototype={$1_0:null,$1_1:null,$1_2:null,$1_3:null,$1_4:null,$1_5:false,$1_6:0,$1_7:null,$1_8:0,$1_9:null,$1_A:null,get_arguments:function(){if(this.$1_1==null){this.$1_1={};}return this.$1_1;},add_itemDisplay:function(value){this.get_events().addHandler('itemDisplay',value);},remove_itemDisplay:function(value){this.get_events().removeHandler('itemDisplay',value);},add_itemSelected:function(value){this.get_events().addHandler('itemSelected',value);},remove_itemSelected:function(value){this.get_events().removeHandler('itemSelected',value);},add_requestingItems:function(value){this.get_events().addHandler('requestingItems',value);},remove_requestingItems:function(value){this.get_events().removeHandler('requestingItems',value);},$1_B:function(){if(this.$1_A!=null){this.$1_A.abort();this.$1_A=null;}},clearCache:function(){this.$1_7=null;},$1_C:function(){this.$1_2=document.createElement('DIV');if(this.$1_0.cssClass!=null){this.$1_2.className=this.$1_0.cssClass;}this.$1_2.unselectable = 'unselectable';document.body.appendChild(this.$1_2);this.$1_4=new ScriptFX.UI.DOMEventList(this.$1_2);this.$1_4.attach('onmousedown',Delegate.create(this,this.$1_10));this.$1_4.attach('onmouseup',Delegate.create(this,this.$1_11));this.$1_4.attach('onmouseover',Delegate.create(this,this.$1_12));var $0=ScriptFX.UI.$create_PopupOptions(this.get_domElement(),4);$0.xOffset=this.$1_0.xOffset;$0.yOffset=-1+this.$1_0.yOffset;this.$1_3=new ScriptFX.UI.PopupBehavior(this.$1_2,$0);},dispose:function(){this.$1_1A();this.$1_B();if(this.$1_2!=null){this.$1_4.dispose();this.$1_4=null;this.$1_3.dispose();this.$1_3=null;document.body.removeChild(this.$1_2);this.$1_2=null;this.$1_5=false;}ScriptFX.UI.AutoCompleteBehavior.callBase(this, 'dispose');},$1_D:function($p0){while(($p0!=null)&&($p0!==this.$1_2)){if(!isUndefined($p0.__item)){return $p0;}$p0=$p0.parentNode;}return null;},$1_E:function(){if(this.$1_5){this.$1_5=false;this.$1_3.hide();this.$1_6=-1;}},$1_F:function($p0){if(this.$1_0.selectedItemCSSClass!=null){ScriptFX.UI.Element.addCSSClass($p0,this.$1_0.selectedItemCSSClass);}},$1_10:function(){var $0=this.$1_D(window.event.srcElement);if($0!=null){var $1=$0.__item;var $2=$0.__index;this.$1_1D($1,$2);}},$1_11:function(){this.get_domElement().focus();},$1_12:function(){var $0=this.$1_D(window.event.srcElement);if(this.$1_6!==-1){this.$1_1B(this.$1_2.childNodes[this.$1_6]);this.$1_6=-1;}if($0!=null){var $1=$0.__index;if(!isUndefined(this.$1_6)){this.$1_6=$1;this.$1_F($0);return;}}},$1_13:function($p0,$p1){if(($p0!==this.$1_A)||($p0.get_state()!==2)||($p0.get_response().get_statusCode()!==200)){return;}var $0=$p1;var $1=$0['prefix'];var $2=$1;if(this.get_events().getHandler('requestingItems')!=null){delete $0.prefix;delete $0.count;$2+=ScriptFX.JSON.serialize($0);}var $3=$p0.get_response().getObject();this.$1_1C($1,$3,$2);},$1_14:function(){this.$1_1A();this.$1_B();this.$1_E();},$1_15:function(){this.$1_19();},$1_16:function(){this.$1_1A();var $0=window.event;if(this.$1_5){switch($0.keyCode){case 27:this.$1_E();$0.returnValue=false;break;case 38:if(this.$1_6>0){this.$1_1B(this.$1_2.childNodes[this.$1_6]);this.$1_6--;this.$1_F(this.$1_2.childNodes[this.$1_6]);}else if(this.$1_6===-1){this.$1_6=this.$1_2.childNodes.length-1;this.$1_F(this.$1_2.childNodes[this.$1_6]);}$0.returnValue=false;break;case 40:if(this.$1_6<(this.$1_2.childNodes.length-1)){if(this.$1_6===-1){this.$1_6=0;}else{this.$1_1B(this.$1_2.childNodes[this.$1_6]);this.$1_6++;}this.$1_F(this.$1_2.childNodes[this.$1_6]);}$0.returnValue=false;break;case 13:if(this.$1_6!==-1){var $1=this.$1_2.childNodes[this.$1_6].__item;var $2=this.$1_2.childNodes[this.$1_6].__index;this.$1_1D($1,$2);}$0.returnValue=false;break;}}if($0.keyCode!==9){this.$1_19();}},$1_17:function(){this.$1_8=0;this.$1_B();var $0=(this.get_domElement()).value;if($0===this.$1_9){return;}if($0.trim().length replaces the folder ./resources with the icon and splash screen with the one corresponding to the chosen brand * -> replaces the folder ./src/assets with the one corresponding to the chosen brand + * -> creates the folder ./src/assets/scormplayer with the content of "branding/common/scormplayer" * -> replaces the file ./build.json used for IOS release builds * -> generates "src/assets/config.json" with the required ILIAS installations from "branding/common/config/server.config.json" * -> sets values in "config.xml" to the ones specified in "branding/brands/[brand]/config.json" @@ -12,6 +14,7 @@ const FS = require("fs"); const OS = require("os"); +const deepmerge = require("deepmerge"); let console_log = ""; execute(); @@ -20,10 +23,12 @@ function execute() { let platforms = ""; try { [brand, platforms] = getFlagValues(); - let config = loadJSON(`branding/brands/${brand}/config.json`); + const config = loadJSON(`branding/brands/${brand}/config.json`); setDirectoryContent("resources", `branding/brands/${brand}/resources`); setDirectoryContent("src/assets", `branding/brands/${brand}/assets`); - setFile("build.json", `branding/brands/${brand}/build.json`); + setDirectoryContent("src/assets/scormplayer", "branding/common/scormplayer"); + linkFile("build.json", `branding/brands/${brand}/build.json`); + linkFile("src/environments/features.json", `branding/brands/${brand}/features.json`); generateServerConfigFile(brand, config); setValuesInProjectConfig(config); generateLangFiles(brand); @@ -85,19 +90,25 @@ function getFlagValueFromArgv(name) { // generate "src/assets/config.json" function generateServerConfigFile(brand, config) { - let config_server = loadJSON("branding/common/config/server.config.json", "utf8").installations; - let config_out = { "installations": [] }; - - for (let i in config.ilias_installation_ids) { - for (let j in config_server) { - if (config.ilias_installation_ids[i] === config_server[j].id) - config_out.installations.push(config_server[j]); + const config_server = loadJSON("branding/common/config/server.config.json", "utf8").installations; + const config_out = { "installations": [] }; + const installationMap = config_server.reduceRight((col, it) => col.set(it.id, it), new Map()); + const brandInstallationIds = config.ilias_installation_ids; + + const missingIds = []; + for (let i of brandInstallationIds) { + if (!installationMap.has(i)) { + missingIds.push(i); + continue; } + + config_out.installations.push(installationMap.get(i)); } - if (config_out.installations.length !== config.ilias_installation_ids.length) { - let msg = `(set_brand.js) unable to match all ilias installation ids in ${JSON.stringify(config.ilias_installation_ids)} . `; - msg += `this selection of ids is set in 'src/assets/${brand}/config.json' and the ilias installations are set in 'branding/common/config/server.config.json'`; + if (missingIds.length > 0) { + let msg = `(set_brand.js) unable to match all ilias installation ids in ${JSON.stringify(brandInstallationIds)}. `; + msg += `The following ids are missing ${JSON.stringify(missingIds)}. `; + msg += `This selection of ids is set in 'src/assets/${brand}/config.json' and the ilias installations are set in 'branding/common/config/server.config.json'`; throw new Error(msg); } @@ -107,8 +118,10 @@ function generateServerConfigFile(brand, config) { // set values in "config.xml" function setValuesInProjectConfig(config) { // for each entry, the 'setValueInTag'-method is called until the tag was found once + const androidId = config.projectConfig.androidId || config.projectConfig.id; let toDoList = [ {tag: "", pre: "", value: config.projectConfig.name, post: "", done: false}, {tag: "", pre: "", value: config.projectConfig.description, post: "", done: false} ]; @@ -141,8 +154,9 @@ function generateLangFiles(brand) { let lng_tree = loadJSON(`branding/common/i18n/${file}`); let path_lng_mod = `branding/brands/${brand}/assets/i18n/${file}`; - if (FS.existsSync(path_lng_mod)) - insert(loadJSON(path_lng_mod), lng_tree); + if (FS.existsSync(path_lng_mod)) { + lng_tree = insert(loadJSON(path_lng_mod), lng_tree); + } const path = "src/assets/i18n"; if (!FS.existsSync(path)) @@ -190,8 +204,16 @@ function setValueInTag(line, tag, pre, value, post) { } // set file at target to the one at source -function setFile(path_to, path_from) { - FS.writeFileSync(path_to, FS.readFileSync(path_from)); +function linkFile(path_to, path_from) { + unlinkFile(path_to); + FS.linkSync(path_from, path_to); +} + +// set file at target to the one at source +function unlinkFile(path) { + if (FS.existsSync(path)) { + FS.unlinkSync(path); + } } // set directory at target to the one at source @@ -206,14 +228,7 @@ function setDirectoryContent(path_to, path_from) { // delete directory function deleteDirSync(path) { if (FS.existsSync(path)) { - FS.readdirSync(path).forEach(function(file) { - let itemPath = path + "/" + file; - if (FS.lstatSync(itemPath).isDirectory()) - deleteDirSync(itemPath); - else - FS.unlinkSync(itemPath); - }); - FS.rmdirSync(path); + FS.rmdirSync(path, {recursive: true, maxRetries: 3}); } } @@ -227,7 +242,7 @@ function copyDirSync(path_from, path_to) { FS.mkdirSync(itemPath_to); copyDirSync(itemPath_from, itemPath_to); } else { - FS.writeFileSync(itemPath_to, FS.readFileSync(itemPath_from)); + linkFile(itemPath_to, itemPath_from); } }); } @@ -235,16 +250,7 @@ function copyDirSync(path_from, path_to) { // insert-operation for an object-tree of strings function insert(source, target) { - for(let key in source) { - if (typeof(source[key]) === "string") { - target[key] = source[key]; - } else { - if (!target.hasOwnProperty(key)) { - target[key] = {}; - } - insert(source[key], target[key]); - } - } + return deepmerge.all([target, source]); } // load and parse a json-file @@ -254,6 +260,8 @@ function loadJSON(file) { // stringify and write a json-file function writeJSON(file, data) { + // We have to unlink the file first in case the file is hard linked. + unlinkFile(file); FS.writeFileSync(file, JSON.stringify(data)); } @@ -270,11 +278,16 @@ function writeLog(brand) { BRAND ........... ${brand} RESOURCES ....... branding/brands/${brand}/resources => resources ASSETS .......... branding/brands/${brand}/assets => src/assets +SCORMPLAYER ..... branding/common/scormplayer => src/assets/scormplayer SERVERCONFIG .... branding/common/config/server.config.json + branding/brands/${brand}/config.json => src/assets/config.json PROJECTCONFIG ... config.xml + branding/brands/${brand}/config.json => config.xml LANGUAGE ........ branding/common/i18n/* + branding/brands/${brand}/assets/i18n/* => src/assets/i18n/* BUILD ........... branding/brands/${brand}/build.json => build.json +PLATFORM ........ ${process.platform} +NODEJS .......... ${process.versions.node} +V8 .............. ${process.versions.v8} + CONSOLE OUTPUT ${console_log}`; FS.writeFileSync("branding/set_brand.log", log); diff --git a/config.xml b/config.xml index f44e3086..a850fc02 100644 --- a/config.xml +++ b/config.xml @@ -1,56 +1,61 @@ - - + + ILIAS Pegasus Download, sync and store ILIAS-files on your device studer + raimann ag - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + To locate you + + This permission is required to save photos or movies to your media library. + @@ -66,9 +71,6 @@ - - - @@ -102,38 +104,26 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - \ No newline at end of file + + + diff --git a/package-lock.json b/package-lock.json index cd412347..50c80a94 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,44 +1,19 @@ { "name": "ilias-pegasus", - "version": "4.0.2", + "version": "4.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { "@angular-devkit/architect": { - "version": "0.803.20", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.20.tgz", - "integrity": "sha512-NjyDJ61i9kh8J+qXt0E2j+P5Xsmi2mPasBzwcQyrZZGiho4zC0IFxcdxyzcsXFEupmilJKkjdt2g4QQRC5rUDQ==", + "version": "0.803.29", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.29.tgz", + "integrity": "sha512-yHBud/fZHTelX24yjQg5lefZrfIebruoFTGeOwF0JdX8+KiHcTIxS4LOnUTYriasfHarcHRFXBAV/bRm+wv5ow==", "dev": true, "requires": { - "@angular-devkit/core": "8.3.20", + "@angular-devkit/core": "8.3.29", "rxjs": "6.4.0" }, "dependencies": { - "@angular-devkit/core": { - "version": "8.3.20", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.20.tgz", - "integrity": "sha512-UCfW/BJBJnioJU34QennQhA4o+rLoCXWiSrI2LM7yw8/MEM9I8KbqRETP1My3HjHkQnvP+Qh3noedpcu3Nnt8A==", - "dev": true, - "requires": { - "ajv": "6.10.2", - "fast-json-stable-stringify": "2.0.0", - "magic-string": "0.25.3", - "rxjs": "6.4.0", - "source-map": "0.7.3" - } - }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "rxjs": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", @@ -51,31 +26,31 @@ } }, "@angular-devkit/build-angular": { - "version": "0.803.20", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.803.20.tgz", - "integrity": "sha512-JDZkZjOqPbOtCMsSKxQf9C+uSTZ7fQGlKGsCpJMzfa4iQ0WrmrhZvnRKQeEpMTTZTpuou/HQeQjyDV+Sx3yumw==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.803.20", - "@angular-devkit/build-optimizer": "0.803.20", - "@angular-devkit/build-webpack": "0.803.20", - "@angular-devkit/core": "8.3.20", - "@babel/core": "7.5.5", - "@babel/preset-env": "7.5.5", - "@ngtools/webpack": "8.3.20", - "ajv": "6.10.2", + "version": "0.803.29", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.803.29.tgz", + "integrity": "sha512-XAgfP1gi0rEJ3oVt+8ipvS5RfPNbeK5r2n8Ll2H3xkKjU0p1PN8+S6/0XVBtmMfeQ06SJWEAKFcAYqrxXhVTzw==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.803.29", + "@angular-devkit/build-optimizer": "0.803.29", + "@angular-devkit/build-webpack": "0.803.29", + "@angular-devkit/core": "8.3.29", + "@babel/core": "7.8.7", + "@babel/preset-env": "7.8.7", + "@ngtools/webpack": "8.3.29", + "ajv": "6.12.3", "autoprefixer": "9.6.1", - "browserslist": "4.6.6", + "browserslist": "4.10.0", "cacache": "12.0.2", - "caniuse-lite": "1.0.30000989", + "caniuse-lite": "1.0.30001035", "circular-dependency-plugin": "5.2.0", "clean-css": "4.2.1", - "copy-webpack-plugin": "5.0.4", - "core-js": "3.2.1", + "copy-webpack-plugin": "6.0.3", + "core-js": "3.6.4", + "coverage-istanbul-loader": "2.0.3", "file-loader": "4.2.0", "find-cache-dir": "3.0.0", "glob": "7.1.4", - "istanbul-instrumenter-loader": "3.0.1", "jest-worker": "24.9.0", "karma-source-map-support": "1.4.0", "less": "3.9.0", @@ -102,57 +77,40 @@ "style-loader": "1.0.0", "stylus": "0.54.5", "stylus-loader": "3.0.2", - "terser": "4.3.9", - "terser-webpack-plugin": "1.4.1", - "tree-kill": "1.2.1", + "terser": "4.6.3", + "terser-webpack-plugin": "3.0.3", + "tree-kill": "1.2.2", "webpack": "4.39.2", "webpack-dev-middleware": "3.7.2", - "webpack-dev-server": "3.9.0", + "webpack-dev-server": "3.11.0", "webpack-merge": "4.2.1", "webpack-sources": "1.4.3", "webpack-subresource-integrity": "1.1.0-rc.6", "worker-plugin": "3.2.0" }, "dependencies": { - "@angular-devkit/architect": { - "version": "0.803.20", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.20.tgz", - "integrity": "sha512-NjyDJ61i9kh8J+qXt0E2j+P5Xsmi2mPasBzwcQyrZZGiho4zC0IFxcdxyzcsXFEupmilJKkjdt2g4QQRC5rUDQ==", - "dev": true, - "requires": { - "@angular-devkit/core": "8.3.20", - "rxjs": "6.4.0" - } - }, - "@angular-devkit/core": { - "version": "8.3.20", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.20.tgz", - "integrity": "sha512-UCfW/BJBJnioJU34QennQhA4o+rLoCXWiSrI2LM7yw8/MEM9I8KbqRETP1My3HjHkQnvP+Qh3noedpcu3Nnt8A==", - "dev": true, - "requires": { - "ajv": "6.10.2", - "fast-json-stable-stringify": "2.0.0", - "magic-string": "0.25.3", - "rxjs": "6.4.0", - "source-map": "0.7.3" - } - }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "core-js": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz", - "integrity": "sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==", + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", + "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "parse5": { @@ -179,9 +137,9 @@ } }, "@angular-devkit/build-optimizer": { - "version": "0.803.20", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.803.20.tgz", - "integrity": "sha512-Vzxf1g1EuzaPBoScDYUhyxemi5chlgnpWmObNo5dzVAVzjxo5gJeDIGpiyDqHvr6LBkprqb6XHcZhMWqIcdIHg==", + "version": "0.803.29", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.803.29.tgz", + "integrity": "sha512-E/MXtKc3oaP7UvQm0g4ayfH8ImEoQnRWseKD4jjYG6TbTIqfIyHCZRcKIr3svY28hzASbro5IZI6SugG+llvFw==", "dev": true, "requires": { "loader-utils": "1.2.3", @@ -189,54 +147,27 @@ "tslib": "1.10.0", "typescript": "3.5.3", "webpack-sources": "1.4.3" + }, + "dependencies": { + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + } } }, "@angular-devkit/build-webpack": { - "version": "0.803.20", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.803.20.tgz", - "integrity": "sha512-35af8kD3KG/cIv7AB09YNER5HIPlx55ipBxdVk8D+X3MuUcTmD6fFvqXcV0EPlD1vQephthfzSgtNpvuPv4xuA==", + "version": "0.803.29", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.803.29.tgz", + "integrity": "sha512-3dJ3iEGU6AFT8VFTe72T9uNLobfd18Sq5Hz22UCCYji9K3ZyVc/bn5uXVVX+/Yj91MFtXuhOjLj7Z+XDeNy+OQ==", "dev": true, "requires": { - "@angular-devkit/architect": "0.803.20", - "@angular-devkit/core": "8.3.20", + "@angular-devkit/architect": "0.803.29", + "@angular-devkit/core": "8.3.29", "rxjs": "6.4.0" }, "dependencies": { - "@angular-devkit/architect": { - "version": "0.803.20", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.20.tgz", - "integrity": "sha512-NjyDJ61i9kh8J+qXt0E2j+P5Xsmi2mPasBzwcQyrZZGiho4zC0IFxcdxyzcsXFEupmilJKkjdt2g4QQRC5rUDQ==", - "dev": true, - "requires": { - "@angular-devkit/core": "8.3.20", - "rxjs": "6.4.0" - } - }, - "@angular-devkit/core": { - "version": "8.3.20", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.20.tgz", - "integrity": "sha512-UCfW/BJBJnioJU34QennQhA4o+rLoCXWiSrI2LM7yw8/MEM9I8KbqRETP1My3HjHkQnvP+Qh3noedpcu3Nnt8A==", - "dev": true, - "requires": { - "ajv": "6.10.2", - "fast-json-stable-stringify": "2.0.0", - "magic-string": "0.25.3", - "rxjs": "6.4.0", - "source-map": "0.7.3" - } - }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "rxjs": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", @@ -249,12 +180,12 @@ } }, "@angular-devkit/core": { - "version": "8.3.20", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.20.tgz", - "integrity": "sha512-UCfW/BJBJnioJU34QennQhA4o+rLoCXWiSrI2LM7yw8/MEM9I8KbqRETP1My3HjHkQnvP+Qh3noedpcu3Nnt8A==", + "version": "8.3.29", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.29.tgz", + "integrity": "sha512-4jdja9QPwR6XG14ZSunyyOWT3nE2WtZC5IMDIBZADxujXvhzOU0n4oWpy6/JVHLUAxYNNgzLz+/LQORRWndcPg==", "dev": true, "requires": { - "ajv": "6.10.2", + "ajv": "6.12.3", "fast-json-stable-stringify": "2.0.0", "magic-string": "0.25.3", "rxjs": "6.4.0", @@ -262,17 +193,23 @@ }, "dependencies": { "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, "rxjs": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", @@ -285,12 +222,12 @@ } }, "@angular-devkit/schematics": { - "version": "8.3.20", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-8.3.20.tgz", - "integrity": "sha512-sDHZakh4e3A5WenR9zr1x6Va9GNRqQlRhqT3xcbkG88v2M0YqEt7dHB7YwnOhm7zSxiWQM8PdWEQHiQ4iu9NyQ==", + "version": "8.3.29", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-8.3.29.tgz", + "integrity": "sha512-AFJ9EK0XbcNlO5Dm9vr0OlBo1Nw6AaFXPR+DmHGBdcDDHxqEmYYLWfT+JU/8U2YFIdgrtlwvdtf6UQ3V2jdz1g==", "dev": true, "requires": { - "@angular-devkit/core": "8.3.20", + "@angular-devkit/core": "8.3.29", "rxjs": "6.4.0" }, "dependencies": { @@ -314,16 +251,16 @@ } }, "@angular/cli": { - "version": "8.3.20", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-8.3.20.tgz", - "integrity": "sha512-bCo8zVFZ6iPc1EnHmVCmKvIcV7YkvalBKGNU7LtVHq6qZBI+ZmFtuyL5obKvFg1vJcminjKcY/UcMr9uGcAQrQ==", + "version": "8.3.29", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-8.3.29.tgz", + "integrity": "sha512-pW+iU0eKHIae+A1b9W5g8DKefMQcehZ+drGKs4Hryh8G+XGFS00BIWkmh6c1mydWTEhdsFlhdjD/rXCem7MAQQ==", "dev": true, "requires": { - "@angular-devkit/architect": "0.803.20", - "@angular-devkit/core": "8.3.20", - "@angular-devkit/schematics": "8.3.20", - "@schematics/angular": "8.3.20", - "@schematics/update": "0.803.20", + "@angular-devkit/architect": "0.803.29", + "@angular-devkit/core": "8.3.29", + "@angular-devkit/schematics": "8.3.29", + "@schematics/angular": "8.3.29", + "@schematics/update": "0.803.29", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.1", "debug": "^4.1.1", @@ -341,59 +278,14 @@ "uuid": "^3.3.2" }, "dependencies": { - "@angular-devkit/architect": { - "version": "0.803.20", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.20.tgz", - "integrity": "sha512-NjyDJ61i9kh8J+qXt0E2j+P5Xsmi2mPasBzwcQyrZZGiho4zC0IFxcdxyzcsXFEupmilJKkjdt2g4QQRC5rUDQ==", - "dev": true, - "requires": { - "@angular-devkit/core": "8.3.20", - "rxjs": "6.4.0" - } - }, - "@angular-devkit/core": { - "version": "8.3.20", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.20.tgz", - "integrity": "sha512-UCfW/BJBJnioJU34QennQhA4o+rLoCXWiSrI2LM7yw8/MEM9I8KbqRETP1My3HjHkQnvP+Qh3noedpcu3Nnt8A==", - "dev": true, - "requires": { - "ajv": "6.10.2", - "fast-json-stable-stringify": "2.0.0", - "magic-string": "0.25.3", - "rxjs": "6.4.0", - "source-map": "0.7.3" - } - }, - "@angular-devkit/schematics": { - "version": "8.3.20", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-8.3.20.tgz", - "integrity": "sha512-sDHZakh4e3A5WenR9zr1x6Va9GNRqQlRhqT3xcbkG88v2M0YqEt7dHB7YwnOhm7zSxiWQM8PdWEQHiQ4iu9NyQ==", - "dev": true, - "requires": { - "@angular-devkit/core": "8.3.20", - "rxjs": "6.4.0" - } - }, "@schematics/angular": { - "version": "8.3.20", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-8.3.20.tgz", - "integrity": "sha512-Y20pSJhQ0KQd8Tk2kPQlmpRDNDaoIKMeOOGLT2FgCFrumxZXuIbBgN9fGDgW40iI2sq80bccOeo24RKkn3QpcA==", - "dev": true, - "requires": { - "@angular-devkit/core": "8.3.20", - "@angular-devkit/schematics": "8.3.20" - } - }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "8.3.29", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-8.3.29.tgz", + "integrity": "sha512-If+UhCsQzCgnQymiiF8dQRoic34+RgJ6rV0n4k7Tm4N2xNYJOG7ajjzKM7PIeafsF50FKnFP8dqaNGxCMyq5Ew==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@angular-devkit/core": "8.3.29", + "@angular-devkit/schematics": "8.3.29" } }, "ansi-colors": { @@ -403,12 +295,12 @@ "dev": true }, "ansi-escapes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", - "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", "dev": true, "requires": { - "type-fest": "^0.8.1" + "type-fest": "^0.11.0" } }, "ansi-regex": { @@ -442,9 +334,9 @@ "dev": true }, "figures": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", - "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" @@ -517,15 +409,6 @@ "glob": "^7.1.3" } }, - "rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -906,21 +789,53 @@ "@babel/highlight": "^7.0.0" } }, - "@babel/core": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.5.tgz", - "integrity": "sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg==", + "@babel/compat-data": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.5.tgz", + "integrity": "sha512-mPVoWNzIpYJHbWje0if7Ck36bpbtTvIxOi9+6WSK9wjGEXearAqlwBoTQvVjsAY2VIwgcs8V940geY3okzRCEw==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.5.5", - "@babel/helpers": "^7.5.5", - "@babel/parser": "^7.5.5", - "@babel/template": "^7.4.4", - "@babel/traverse": "^7.5.5", - "@babel/types": "^7.5.5", - "convert-source-map": "^1.1.0", + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "semver": "^5.5.0" + }, + "dependencies": { + "browserslist": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", + "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001093", + "electron-to-chromium": "^1.3.488", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" + } + }, + "caniuse-lite": { + "version": "1.0.30001107", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001107.tgz", + "integrity": "sha512-86rCH+G8onCmdN4VZzJet5uPELII59cUzDphko3thQFgAQG1RNa+sVLDoALIhRYmflo5iSIzWY3vu1XTWtNMQQ==", + "dev": true + } + } + }, + "@babel/core": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz", + "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.7", + "@babel/helpers": "^7.8.4", + "@babel/parser": "^7.8.7", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.7", + "convert-source-map": "^1.7.0", "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", "json5": "^2.1.0", "lodash": "^4.17.13", "resolve": "^1.3.2", @@ -928,6 +843,136 @@ "source-map": "^0.5.0" }, "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/generator": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", + "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", + "dev": true, + "requires": { + "@babel/types": "^7.10.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", + "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", + "dev": true + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", + "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/types": "^7.10.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + } + } + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -938,18 +983,18 @@ } }, "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { - "minimist": "^1.2.0" + "minimist": "^1.2.5" } }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "ms": { @@ -994,178 +1039,104 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.0.tgz", - "integrity": "sha512-k50CQxMlYTYo+GGyUGFwpxKVtxVJi9yh61sXZji3zYHccK9RYliZGSTOgci85T+r+0VFN2nWbGM04PIqwfrpMg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/types": "^7.10.4" }, "dependencies": { "@babel/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", - "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.0.tgz", - "integrity": "sha512-Cd8r8zs4RKDwMG/92lpZcnn5WPQ3LAMQbCw42oqUh4s7vsSN5ANUZjMel0OOnxDLq57hoDDbai+ryygYfCTOsw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" }, "dependencies": { "@babel/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", - "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, - "@babel/helper-call-delegate": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.7.0.tgz", - "integrity": "sha512-Su0Mdq7uSSWGZayGMMQ+z6lnL00mMCnGAbO/R0ZO9odIdB/WNU/VfQKqMQU0fdIsxQYbRjDM4BixIa93SQIpvw==", + "@babel/helper-compilation-targets": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", + "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/compat-data": "^7.10.4", + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" }, "dependencies": { - "@babel/generator": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.0.tgz", - "integrity": "sha512-1wdJ6UxHyL1XoJQ119JmvuRX27LRih7iYStMPZOWAjQqeAabFg3dYXKMpgihma+to+0ADsTVVt6oRyUxWZw6Mw==", - "dev": true, - "requires": { - "@babel/types": "^7.7.0", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz", - "integrity": "sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.7.0", - "@babel/template": "^7.7.0", - "@babel/types": "^7.7.0" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz", - "integrity": "sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==", - "dev": true, - "requires": { - "@babel/types": "^7.7.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz", - "integrity": "sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==", - "dev": true, - "requires": { - "@babel/types": "^7.7.0" - } - }, - "@babel/parser": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", - "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", - "dev": true - }, - "@babel/template": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz", - "integrity": "sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0" - } - }, - "@babel/traverse": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.0.tgz", - "integrity": "sha512-ea/3wRZc//e/uwCpuBX2itrhI0U9l7+FsrKWyKGNyvWbuMcCG7ATKY2VI4wlg2b2TA39HHwIxnvmXvtiKsyn7w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.0", - "@babel/helper-function-name": "^7.7.0", - "@babel/helper-split-export-declaration": "^7.7.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", - "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "browserslist": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", + "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "caniuse-lite": "^1.0.30001093", + "electron-to-chromium": "^1.3.488", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "caniuse-lite": { + "version": "1.0.30001107", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001107.tgz", + "integrity": "sha512-86rCH+G8onCmdN4VZzJet5uPELII59cUzDphko3thQFgAQG1RNa+sVLDoALIhRYmflo5iSIzWY3vu1XTWtNMQQ==", "dev": true } } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.0.tgz", - "integrity": "sha512-ZhagAAVGD3L6MPM9/zZi7RRteonfBFLVUz3kjsnYsMAtr9hOJCKI9BAKIMpqn3NyWicPieoX779UL+7/3BEAOA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", + "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", "dev": true, "requires": { - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.6.0" + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.0" }, "dependencies": { "jsesc": { @@ -1175,29 +1146,29 @@ "dev": true }, "regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", - "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", "dev": true, "requires": { "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" + "unicode-match-property-value-ecmascript": "^1.2.0" } }, "regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", - "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", "dev": true }, "regjsparser": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", - "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -1206,159 +1177,204 @@ } }, "@babel/helper-define-map": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.7.0.tgz", - "integrity": "sha512-kPKWPb0dMpZi+ov1hJiwse9dWweZsz3V9rP4KdytnX1E7z3cTNmFGglwklzFPuqIcHLIY3bgKSs4vkwXXdflQA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.0", - "@babel/types": "^7.7.0", - "lodash": "^4.17.13" + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" }, "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, "@babel/helper-function-name": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz", - "integrity": "sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.7.0", - "@babel/template": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz", - "integrity": "sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", - "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz", - "integrity": "sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", - "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, "@babel/helper-explode-assignable-expression": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.0.tgz", - "integrity": "sha512-CDs26w2shdD1urNUAji2RJXyBFCaR+iBEGnFz3l7maizMkQe3saVw9WtjG1tz8CwbjvlFnaSLVhgnu1SWaherg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz", + "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==", "dev": true, "requires": { - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" }, "dependencies": { - "@babel/generator": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.0.tgz", - "integrity": "sha512-1wdJ6UxHyL1XoJQ119JmvuRX27LRih7iYStMPZOWAjQqeAabFg3dYXKMpgihma+to+0ADsTVVt6oRyUxWZw6Mw==", + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { - "@babel/types": "^7.7.0", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", + "@babel/highlight": "^7.10.4" + } + }, + "@babel/generator": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", + "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", + "dev": true, + "requires": { + "@babel/types": "^7.10.5", + "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz", - "integrity": "sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.7.0", - "@babel/template": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz", - "integrity": "sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/types": "^7.10.4" } }, "@babel/helper-split-export-declaration": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz", - "integrity": "sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", + "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", - "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz", - "integrity": "sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.0.tgz", - "integrity": "sha512-ea/3wRZc//e/uwCpuBX2itrhI0U9l7+FsrKWyKGNyvWbuMcCG7ATKY2VI4wlg2b2TA39HHwIxnvmXvtiKsyn7w==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", + "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.0", - "@babel/helper-function-name": "^7.7.0", - "@babel/helper-split-export-declaration": "^7.7.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/types": "^7.10.5", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.13" + "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", - "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, @@ -1371,6 +1387,12 @@ "ms": "^2.1.1" } }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -1406,257 +1428,335 @@ } }, "@babel/helper-hoist-variables": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.0.tgz", - "integrity": "sha512-LUe/92NqsDAkJjjCEWkNe+/PcpnisvnqdlRe19FahVapa4jndeuJ+FBiTX1rcAKWKcJGE+C3Q3tuEuxkSmCEiQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/types": "^7.10.4" }, "dependencies": { "@babel/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", - "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, "@babel/helper-member-expression-to-functions": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.0.tgz", - "integrity": "sha512-QaCZLO2RtBcmvO/ekOLp8p7R5X2JriKRizeDpm5ChATAFWrrYDcDxPuCIBXKyBjY+i1vYSdcUTMIb8psfxHDPA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.5.tgz", + "integrity": "sha512-HiqJpYD5+WopCXIAbQDG0zye5XYVvcO9w/DHp5GsaGkRUaamLj2bEtu6i8rnGGprAhHM3qidCMgp71HF4endhA==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/types": "^7.10.5" }, "dependencies": { "@babel/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", - "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, "@babel/helper-module-imports": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.0.tgz", - "integrity": "sha512-Dv3hLKIC1jyfTkClvyEkYP2OlkzNvWs5+Q8WgPbxM5LMeorons7iPP91JM+DU7tRbhqA1ZeooPaMFvQrn23RHw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/types": "^7.10.4" }, "dependencies": { "@babel/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", - "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, "@babel/helper-module-transforms": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.0.tgz", - "integrity": "sha512-rXEefBuheUYQyX4WjV19tuknrJFwyKw0HgzRwbkyTbB+Dshlq7eqkWbyjzToLrMZk/5wKVKdWFluiAsVkHXvuQ==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.7.0", - "@babel/helper-simple-access": "^7.7.0", - "@babel/helper-split-export-declaration": "^7.7.0", - "@babel/template": "^7.7.0", - "@babel/types": "^7.7.0", - "lodash": "^4.17.13" + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz", + "integrity": "sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" }, "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, "@babel/helper-split-export-declaration": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz", - "integrity": "sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", + "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", - "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz", - "integrity": "sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", - "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, "@babel/helper-optimise-call-expression": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.0.tgz", - "integrity": "sha512-48TeqmbazjNU/65niiiJIJRc5JozB8acui1OS7bSd6PgxfuovWsvjfWSzlgx+gPFdVveNzUdpdIg5l56Pl5jqg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/types": "^7.10.4" }, "dependencies": { "@babel/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", - "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, "@babel/helper-plugin-utils": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, "@babel/helper-regex": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz", - "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", + "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", "dev": true, "requires": { - "lodash": "^4.17.13" + "lodash": "^4.17.19" + }, + "dependencies": { + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + } } }, "@babel/helper-remap-async-to-generator": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.0.tgz", - "integrity": "sha512-pHx7RN8X0UNHPB/fnuDnRXVZ316ZigkO8y8D835JlZ2SSdFKb6yH9MIYRU4fy/KPe5sPHDFOPvf8QLdbAGGiyw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz", + "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.7.0", - "@babel/helper-wrap-function": "^7.7.0", - "@babel/template": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" }, "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, "@babel/generator": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.0.tgz", - "integrity": "sha512-1wdJ6UxHyL1XoJQ119JmvuRX27LRih7iYStMPZOWAjQqeAabFg3dYXKMpgihma+to+0ADsTVVt6oRyUxWZw6Mw==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", + "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", "dev": true, "requires": { - "@babel/types": "^7.7.0", + "@babel/types": "^7.10.5", "jsesc": "^2.5.1", - "lodash": "^4.17.13", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz", - "integrity": "sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.7.0", - "@babel/template": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz", - "integrity": "sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/types": "^7.10.4" } }, "@babel/helper-split-export-declaration": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz", - "integrity": "sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", + "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", - "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz", - "integrity": "sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.0.tgz", - "integrity": "sha512-ea/3wRZc//e/uwCpuBX2itrhI0U9l7+FsrKWyKGNyvWbuMcCG7ATKY2VI4wlg2b2TA39HHwIxnvmXvtiKsyn7w==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", + "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.0", - "@babel/helper-function-name": "^7.7.0", - "@babel/helper-split-export-declaration": "^7.7.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/types": "^7.10.5", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.13" + "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", - "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, @@ -1669,6 +1769,12 @@ "ms": "^2.1.1" } }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -1684,100 +1790,119 @@ } }, "@babel/helper-replace-supers": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.7.0.tgz", - "integrity": "sha512-5ALYEul5V8xNdxEeWvRsBzLMxQksT7MaStpxjJf9KsnLxpAKBtfw5NeMKZJSYDa0lKdOcy0g+JT/f5mPSulUgg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.7.0", - "@babel/helper-optimise-call-expression": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" }, "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, "@babel/generator": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.0.tgz", - "integrity": "sha512-1wdJ6UxHyL1XoJQ119JmvuRX27LRih7iYStMPZOWAjQqeAabFg3dYXKMpgihma+to+0ADsTVVt6oRyUxWZw6Mw==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", + "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", "dev": true, "requires": { - "@babel/types": "^7.7.0", + "@babel/types": "^7.10.5", "jsesc": "^2.5.1", - "lodash": "^4.17.13", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz", - "integrity": "sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.7.0", - "@babel/template": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz", - "integrity": "sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/types": "^7.10.4" } }, "@babel/helper-split-export-declaration": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz", - "integrity": "sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", + "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", - "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz", - "integrity": "sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.0.tgz", - "integrity": "sha512-ea/3wRZc//e/uwCpuBX2itrhI0U9l7+FsrKWyKGNyvWbuMcCG7ATKY2VI4wlg2b2TA39HHwIxnvmXvtiKsyn7w==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", + "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.0", - "@babel/helper-function-name": "^7.7.0", - "@babel/helper-split-export-declaration": "^7.7.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/types": "^7.10.5", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.13" + "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", - "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, @@ -1790,6 +1915,12 @@ "ms": "^2.1.1" } }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -1805,42 +1936,68 @@ } }, "@babel/helper-simple-access": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.7.0.tgz", - "integrity": "sha512-AJ7IZD7Eem3zZRuj5JtzFAptBw7pMlS3y8Qv09vaBWoFsle0d1kAn5Wq6Q9MyBXITPOKnxwkZKoAm4bopmv26g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", "dev": true, "requires": { - "@babel/template": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" }, "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, "@babel/parser": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", - "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz", - "integrity": "sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", - "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, @@ -1853,101 +2010,126 @@ "@babel/types": "^7.4.4" } }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, "@babel/helper-wrap-function": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.7.0.tgz", - "integrity": "sha512-sd4QjeMgQqzshSjecZjOp8uKfUtnpmCyQhKQrVJBBgeHAB/0FPi33h3AbVlVp07qQtMD4QgYSzaMI7VwncNK/w==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", + "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.0", - "@babel/template": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" }, "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, "@babel/generator": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.0.tgz", - "integrity": "sha512-1wdJ6UxHyL1XoJQ119JmvuRX27LRih7iYStMPZOWAjQqeAabFg3dYXKMpgihma+to+0ADsTVVt6oRyUxWZw6Mw==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", + "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", "dev": true, "requires": { - "@babel/types": "^7.7.0", + "@babel/types": "^7.10.5", "jsesc": "^2.5.1", - "lodash": "^4.17.13", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz", - "integrity": "sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.7.0", - "@babel/template": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz", - "integrity": "sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/types": "^7.10.4" } }, "@babel/helper-split-export-declaration": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz", - "integrity": "sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", + "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", - "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz", - "integrity": "sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.0.tgz", - "integrity": "sha512-ea/3wRZc//e/uwCpuBX2itrhI0U9l7+FsrKWyKGNyvWbuMcCG7ATKY2VI4wlg2b2TA39HHwIxnvmXvtiKsyn7w==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", + "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.0", - "@babel/helper-function-name": "^7.7.0", - "@babel/helper-split-export-declaration": "^7.7.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/types": "^7.10.5", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.13" + "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", - "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, @@ -1960,6 +2142,12 @@ "ms": "^2.1.1" } }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -1975,99 +2163,118 @@ } }, "@babel/helpers": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.0.tgz", - "integrity": "sha512-VnNwL4YOhbejHb7x/b5F39Zdg5vIQpUUNzJwx0ww1EcVRt41bbGRZWhAURrfY32T5zTT3qwNOQFWpn+P0i0a2g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", + "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", "dev": true, "requires": { - "@babel/template": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" }, "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, "@babel/generator": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.0.tgz", - "integrity": "sha512-1wdJ6UxHyL1XoJQ119JmvuRX27LRih7iYStMPZOWAjQqeAabFg3dYXKMpgihma+to+0ADsTVVt6oRyUxWZw6Mw==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", + "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", "dev": true, "requires": { - "@babel/types": "^7.7.0", + "@babel/types": "^7.10.5", "jsesc": "^2.5.1", - "lodash": "^4.17.13", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz", - "integrity": "sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.7.0", - "@babel/template": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz", - "integrity": "sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/types": "^7.10.4" } }, "@babel/helper-split-export-declaration": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz", - "integrity": "sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", + "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", - "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz", - "integrity": "sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.0.tgz", - "integrity": "sha512-ea/3wRZc//e/uwCpuBX2itrhI0U9l7+FsrKWyKGNyvWbuMcCG7ATKY2VI4wlg2b2TA39HHwIxnvmXvtiKsyn7w==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", + "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.0", - "@babel/helper-function-name": "^7.7.0", - "@babel/helper-split-export-declaration": "^7.7.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/types": "^7.10.5", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.13" + "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", - "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, @@ -2080,6 +2287,12 @@ "ms": "^2.1.1" } }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -2120,582 +2333,752 @@ "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.0.tgz", - "integrity": "sha512-ot/EZVvf3mXtZq0Pd0+tSOfGWMizqmOohXmNZg6LNFjHOV+wOPv7BvVYh8oPR8LhpIP3ye8nNooKL50YRWxpYA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", + "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.7.0", - "@babel/plugin-syntax-async-generators": "^7.2.0" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.0.tgz", - "integrity": "sha512-7poL3Xi+QFPC7sGAzEIbXUyYzGJwbc2+gSD0AkiC5k52kH2cqHdqxm5hNFfLW3cRSTcx9bN0Fl7/6zWcLLnKAQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", + "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.2.0" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", - "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", + "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", + "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-json-strings": "^7.2.0" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz", - "integrity": "sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz", + "integrity": "sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.10.4" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", - "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", + "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz", + "integrity": "sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.0.tgz", - "integrity": "sha512-mk34H+hp7kRBWJOOAR0ZMGCydgKMD4iN9TpDRp3IIcbunltxEY89XSimc6WbtSLCDrwcdy/EEw7h5CFCzxTchw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", + "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-async-generators": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", - "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-dynamic-import": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", - "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-json-strings": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", - "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-object-rest-spread": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", - "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", - "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", + "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", - "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", + "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.0.tgz", - "integrity": "sha512-vLI2EFLVvRBL3d8roAMqtVY0Bm9C1QzLkdS57hiKrjUBSqsQYrBsMCeOg/0KK7B0eK9V71J5mWcha9yyoI2tZw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", + "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.7.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.7.0" + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", - "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", + "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz", - "integrity": "sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz", + "integrity": "sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "lodash": "^4.17.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-classes": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.0.tgz", - "integrity": "sha512-/b3cKIZwGeUesZheU9jNYcwrEA7f/Bo4IdPmvp7oHgvks2majB5BoT5byAql44fiNQYOPzhk2w8DbgfuafkMoA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.7.0", - "@babel/helper-define-map": "^7.7.0", - "@babel/helper-function-name": "^7.7.0", - "@babel/helper-optimise-call-expression": "^7.7.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.7.0", - "@babel/helper-split-export-declaration": "^7.7.0", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", + "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", "globals": "^11.1.0" }, "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, "@babel/helper-function-name": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz", - "integrity": "sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.7.0", - "@babel/template": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz", - "integrity": "sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/types": "^7.10.4" } }, "@babel/helper-split-export-declaration": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz", - "integrity": "sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", + "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", - "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz", - "integrity": "sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", - "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, "@babel/plugin-transform-computed-properties": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", - "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", + "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-destructuring": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz", - "integrity": "sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", + "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.0.tgz", - "integrity": "sha512-3QQlF7hSBnSuM1hQ0pS3pmAbWLax/uGNCbPBND9y+oJ4Y776jsyujG2k0Sn2Aj2a0QwVOiOFL5QVPA7spjvzSA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", + "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz", - "integrity": "sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", + "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", - "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", + "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-for-of": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz", - "integrity": "sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", + "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-function-name": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.0.tgz", - "integrity": "sha512-P5HKu0d9+CzZxP5jcrWdpe7ZlFDe24bmqP6a6X8BHEBl/eizAsY8K6LX8LASZL0Jxdjm5eEfzp+FIrxCm/p8bA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", + "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" }, "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, "@babel/helper-function-name": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz", - "integrity": "sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.7.0", - "@babel/template": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz", - "integrity": "sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/types": "^7.7.0" + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", - "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz", - "integrity": "sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/types": "^7.7.0" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", - "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true } } }, "@babel/plugin-transform-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", - "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", + "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz", - "integrity": "sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", + "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz", - "integrity": "sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", + "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.0.tgz", - "integrity": "sha512-KEMyWNNWnjOom8vR/1+d+Ocz/mILZG/eyHHO06OuBQ2aNhxT62fr4y6fGOplRx+CxCSp3IFwesL8WdINfY/3kg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", + "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-simple-access": "^7.7.0", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.0.tgz", - "integrity": "sha512-ZAuFgYjJzDNv77AjXRqzQGlQl4HdUM6j296ee4fwKVZfhDR9LAGxfvXjBkb06gNETPnN0sLqRm9Gxg4wZH6dXg==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", + "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.7.0", - "@babel/helper-plugin-utils": "^7.0.0", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.0.tgz", - "integrity": "sha512-u7eBA03zmUswQ9LQ7Qw0/ieC1pcAkbp5OQatbWUzY1PaBccvuJXUkYzoN1g7cqp7dbTu6Dp9bXyalBvD04AANA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", + "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.0.tgz", - "integrity": "sha512-+SicSJoKouPctL+j1pqktRVCgy+xAch1hWWTMy13j0IflnyNjaoskj+DwRQFimHbLqO3sq2oN2CXMvXq3Bgapg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", + "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.0" + "@babel/helper-create-regexp-features-plugin": "^7.10.4" } }, "@babel/plugin-transform-new-target": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz", - "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", + "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-object-super": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz", - "integrity": "sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", + "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.5.5" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4" } }, "@babel/plugin-transform-parameters": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz", - "integrity": "sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", + "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", "dev": true, "requires": { - "@babel/helper-call-delegate": "^7.4.4", - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/types": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + } } }, "@babel/plugin-transform-property-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz", - "integrity": "sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", + "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-regenerator": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.0.tgz", - "integrity": "sha512-AXmvnC+0wuj/cFkkS/HFHIojxH3ffSXE+ttulrqWjZZRaUOonfJc60e1wSNT4rV8tIunvu/R3wCp71/tLAa9xg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", + "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", "dev": true, "requires": { - "regenerator-transform": "^0.14.0" + "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz", - "integrity": "sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", + "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", - "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", + "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-spread": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz", - "integrity": "sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz", + "integrity": "sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", - "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", + "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" } }, "@babel/plugin-transform-template-literals": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz", - "integrity": "sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", + "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", - "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", + "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.0.tgz", - "integrity": "sha512-RrThb0gdrNwFAqEAAx9OWgtx6ICK69x7i9tCnMdVrxQwSDp/Abu9DXFU5Hh16VP33Rmxh04+NGW28NsIkFvFKA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", + "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/preset-env": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.5.5.tgz", - "integrity": "sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.2.0", - "@babel/plugin-proposal-dynamic-import": "^7.5.0", - "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-object-rest-spread": "^7.5.5", - "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-syntax-async-generators": "^7.2.0", - "@babel/plugin-syntax-dynamic-import": "^7.2.0", - "@babel/plugin-syntax-json-strings": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", - "@babel/plugin-transform-arrow-functions": "^7.2.0", - "@babel/plugin-transform-async-to-generator": "^7.5.0", - "@babel/plugin-transform-block-scoped-functions": "^7.2.0", - "@babel/plugin-transform-block-scoping": "^7.5.5", - "@babel/plugin-transform-classes": "^7.5.5", - "@babel/plugin-transform-computed-properties": "^7.2.0", - "@babel/plugin-transform-destructuring": "^7.5.0", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/plugin-transform-duplicate-keys": "^7.5.0", - "@babel/plugin-transform-exponentiation-operator": "^7.2.0", - "@babel/plugin-transform-for-of": "^7.4.4", - "@babel/plugin-transform-function-name": "^7.4.4", - "@babel/plugin-transform-literals": "^7.2.0", - "@babel/plugin-transform-member-expression-literals": "^7.2.0", - "@babel/plugin-transform-modules-amd": "^7.5.0", - "@babel/plugin-transform-modules-commonjs": "^7.5.0", - "@babel/plugin-transform-modules-systemjs": "^7.5.0", - "@babel/plugin-transform-modules-umd": "^7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5", - "@babel/plugin-transform-new-target": "^7.4.4", - "@babel/plugin-transform-object-super": "^7.5.5", - "@babel/plugin-transform-parameters": "^7.4.4", - "@babel/plugin-transform-property-literals": "^7.2.0", - "@babel/plugin-transform-regenerator": "^7.4.5", - "@babel/plugin-transform-reserved-words": "^7.2.0", - "@babel/plugin-transform-shorthand-properties": "^7.2.0", - "@babel/plugin-transform-spread": "^7.2.0", - "@babel/plugin-transform-sticky-regex": "^7.2.0", - "@babel/plugin-transform-template-literals": "^7.4.4", - "@babel/plugin-transform-typeof-symbol": "^7.2.0", - "@babel/plugin-transform-unicode-regex": "^7.4.4", - "@babel/types": "^7.5.5", - "browserslist": "^4.6.0", - "core-js-compat": "^3.1.1", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.7.tgz", + "integrity": "sha512-BYftCVOdAYJk5ASsznKAUl53EMhfBbr8CJ1X+AJLfGPscQkwJFiaV/Wn9DPH/7fzm2v6iRYJKYHSqyynTGw0nw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.6", + "@babel/helper-compilation-targets": "^7.8.7", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.8.6", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.8.6", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.8.3", + "@babel/plugin-transform-modules-commonjs": "^7.8.3", + "@babel/plugin-transform-modules-systemjs": "^7.8.3", + "@babel/plugin-transform-modules-umd": "^7.8.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.8.7", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.7", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/types": "^7.8.7", + "browserslist": "^4.8.5", + "core-js-compat": "^3.6.2", "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", + "levenary": "^1.1.1", "semver": "^5.5.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + } + } + }, + "@babel/runtime": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz", + "integrity": "sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + } } }, "@babel/template": { @@ -2769,129 +3152,81 @@ } }, "@ionic-native/app-version": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@ionic-native/app-version/-/app-version-5.18.0.tgz", - "integrity": "sha512-GV3I2VeX4xi1ID2CCHahYf9VEFi5f016NnguJlTf9/5Wn612UFlE9nNAeAT1k5djuIMFxwHwLquGzA+2Pww7OA==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@ionic-native/app-version/-/app-version-5.29.0.tgz", + "integrity": "sha512-jA6Ve/E+giJlbGPfPCymPF/57TAweTnNXKqaWRmLqVMDQo7rhS/TREOURUrfoWeZFGBUTf6Fgiqs99d+dGIXnA==", "requires": { "@types/cordova": "^0.0.34" - }, - "dependencies": { - "@types/cordova": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", - "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" - } } }, "@ionic-native/core": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@ionic-native/core/-/core-5.18.0.tgz", - "integrity": "sha512-c4UN2h90kJ6s0bHFDe73nDPa0ydR5zhzV1oRxdsA7QItmeeZYgizexL01Lvpg01UaR9JHqBg1KHQJuT8l5k01g==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@ionic-native/core/-/core-5.29.0.tgz", + "integrity": "sha512-dmS6rL38FAWCX9Xry2rtaMEe144MJgZ/8YVR5tVfWNSRmOOnDg+cZTYwt8Qeqm9ndqFBCjGh8PE7mteC8FvUGg==", "requires": { "@types/cordova": "^0.0.34" - }, - "dependencies": { - "@types/cordova": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", - "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" - } } }, "@ionic-native/diagnostic": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@ionic-native/diagnostic/-/diagnostic-5.18.0.tgz", - "integrity": "sha512-RxtKDDVUw9eA07y2PjJ3lexuhhyxLnYsbHKp6Ov6QjyC78b6qnmMy+VP2q/KEBJOumr5dp77mmoLDWlNXvfJ4g==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@ionic-native/diagnostic/-/diagnostic-5.29.0.tgz", + "integrity": "sha512-5iQLDWaklH5a1VxPjRb7xXUNmej63TCboSdCUeU2PJ+l6GFdjEgdNBOQ0yvXY0ui+IazSSmU2GRbsvjEJ6MZIA==", "requires": { "@types/cordova": "^0.0.34" - }, - "dependencies": { - "@types/cordova": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", - "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" - } } }, "@ionic-native/file": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@ionic-native/file/-/file-5.18.0.tgz", - "integrity": "sha512-UOUFGV9QAk18Jrc5Jz4VBczgO22Q033xGDZo9cHZb4N89FA7k/X+0sKAVODS+rRLU59Wap30Rjs9AzlPFnnECg==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@ionic-native/file/-/file-5.29.0.tgz", + "integrity": "sha512-fPIjI/349LiVYIBrceaXlETTUrFhzS5Dx93e0d40Ekd5nfEu6N9H+n8B20W9+OdfKRzHRIvOZ42GgXntk61FMQ==", "requires": { "@types/cordova": "^0.0.34" - }, - "dependencies": { - "@types/cordova": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", - "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" - } } }, "@ionic-native/file-opener": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@ionic-native/file-opener/-/file-opener-5.18.0.tgz", - "integrity": "sha512-ric0B8t4iF/3wlv/k39gLjZPuXzvzqb6hwsk4WnBhOvF1oPOhZHFHHwfv00Qj23VfyOFgpzMb6JB6L/ydk8BMA==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@ionic-native/file-opener/-/file-opener-5.29.0.tgz", + "integrity": "sha512-tU1Ok+9ddvFi6S2CRo5h8JK0LhaV5v7vmwGV20t0wD7DtWaqvpT0GTNxneR2X2Xf54O6ifetu/pRTvFEfbNUCA==", "requires": { "@types/cordova": "^0.0.34" - }, - "dependencies": { - "@types/cordova": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", - "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" - } } }, "@ionic-native/http": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@ionic-native/http/-/http-5.18.0.tgz", - "integrity": "sha512-HeyHFS4xaxT+vXRi7OqZ/F6vaJ1Cs5UOS9j15dfEKIMIpYPi8mzOwyQEH16mRilrFRwflhXCAnX+7jRVwKS9EQ==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@ionic-native/http/-/http-5.29.0.tgz", + "integrity": "sha512-h6YIciPJxiRhQo1nHzwSnrVHSVQXPyjozJermfNT3jIwXU0a1pIciiou35ywXZzjDgTnuaQFeRYiIsnzPnRyCg==", "requires": { "@types/cordova": "^0.0.34" - }, - "dependencies": { - "@types/cordova": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", - "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" - } } }, "@ionic-native/in-app-browser": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@ionic-native/in-app-browser/-/in-app-browser-5.25.0.tgz", - "integrity": "sha512-Qltmdc2T86ScYa2U0ecI/zncMqLKQgEzYjvpqV/X0EPn6arJRsgS1Ql4ioXrDi93jL/MFm8iWrIdJ0q369IZPg==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@ionic-native/in-app-browser/-/in-app-browser-5.29.0.tgz", + "integrity": "sha512-bZEmpwekxdZs1G00J3D4LtKnp55TaXydgVa2h5oGHVI3pZI9zNtKCBuedXgYhMG27RBm1llFcIxCdaGZalc+MQ==", "requires": { "@types/cordova": "^0.0.34" - }, - "dependencies": { - "@types/cordova": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", - "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" - } } }, "@ionic-native/ionic-webview": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@ionic-native/ionic-webview/-/ionic-webview-5.25.0.tgz", - "integrity": "sha512-wsSvwz2THFOjsNiaZJMSP23V7aekLbpX9eXTbKuZ75N7CvpaQsNorHlCJ9h1oUhvLZ0PMGnm3mZpbwLNzbzUVw==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@ionic-native/ionic-webview/-/ionic-webview-5.29.0.tgz", + "integrity": "sha512-ygl0+uX4kJ2+71YEUYO9heBODP4WkzUp4Ainj8Tp9ANxyQcW+DT8SBhJGq13Gz27Xu80RqdQtqqxFakqEu6aGA==", "requires": { "@types/cordova": "^0.0.34" - }, - "dependencies": { - "@types/cordova": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", - "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" - } } }, "@ionic-native/network": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@ionic-native/network/-/network-5.18.0.tgz", - "integrity": "sha512-UDZ4pAc3ICIYfgbunvuMVQBQfrXDt9RjvjSVvXQ55xoAAA4T9L7jdwMKwfa2zPUMwgJGs2SCFIdYM7l8rQiWsg==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@ionic-native/network/-/network-5.29.0.tgz", + "integrity": "sha512-iqfn6UD1bg8eWD8JE5d0aOfoUX4YxhNdzl1I5YcJUlGxieq71eJAujASunkgMyR2Foiu106dHWhqOr1qZZm4fw==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/safari-view-controller": { + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@ionic-native/safari-view-controller/-/safari-view-controller-5.29.0.tgz", + "integrity": "sha512-TjGMczEmoE4as7Qem6+Mw7iUUBHPayylycrp8zkb+tIy1+yFXre88ViUITZmZg6ZW0zxe+AoHXUN68+9ulbddA==", "requires": { "@types/cordova": "^0.0.34" }, @@ -2904,132 +3239,126 @@ } }, "@ionic-native/splash-screen": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@ionic-native/splash-screen/-/splash-screen-5.18.0.tgz", - "integrity": "sha512-65B9b00A13CKPSw7TdcpIGUsfQsadPKKCd6r54+e5etkG0v1wYHCSHbPqZhU2MXEYnblMubIPVK1ER/iYmiBow==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@ionic-native/splash-screen/-/splash-screen-5.29.0.tgz", + "integrity": "sha512-F/AvowDaIwlb3+DcR10ezmaFQR7HyiSAu7R4Hf25HPU4PsqCuTezTARbEqa2xM5+5JkkIlIQKG/CPvipG4FV3w==", "requires": { "@types/cordova": "^0.0.34" } }, "@ionic-native/sqlite": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@ionic-native/sqlite/-/sqlite-5.18.0.tgz", - "integrity": "sha512-jMnAyzrnyh2bEH/hOJrQ/sMvB+In8ImYWBo2dpEUvky/UNSBkNoeY1vOkQxO0y3VuVD+Ao6zYBUrkWf35iXHOg==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@ionic-native/sqlite/-/sqlite-5.29.0.tgz", + "integrity": "sha512-D8f01abyenAAT35YcEHuo/eIQQECxa7mnCuSEypKZNGLs7A/NX84xCEYM77bdij+J7LAiNQKtje3Z+mBGtVs/g==", "requires": { "@types/cordova": "^0.0.34" } }, "@ionic-native/status-bar": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@ionic-native/status-bar/-/status-bar-5.18.0.tgz", - "integrity": "sha512-XZPcHdj482jjj5E7zuybr0M8KwTA3bbpnA6bD9GY8G/f7l/ncJ0oPPdU1uWms/FWhwma5euo3SUwFjftGMMDNA==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@ionic-native/status-bar/-/status-bar-5.29.0.tgz", + "integrity": "sha512-fv4mfH3Fb99fIEOtoxUFYvw+YW10Nk0lUCUkdGTX4LV8Big2o3TfEcUczGQOXJ28Wz1WrAuzh6l9A5JiK3umLw==", "requires": { "@types/cordova": "^0.0.34" } }, "@ionic-native/unique-device-id": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@ionic-native/unique-device-id/-/unique-device-id-5.18.0.tgz", - "integrity": "sha512-5TzZdxMq4qoNlur/38+75BstT3riuGe0eNlKlMvlkrUUKKsbivAxPhX+u64aXCY04bImnmeDUzVbDvOOt1V5PQ==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@ionic-native/unique-device-id/-/unique-device-id-5.29.0.tgz", + "integrity": "sha512-6ViiJz2sjWthWYn1f2Reba0gVS4pr2f861rBHsSNhkN0kfijc/WuiYwOJSb4nAvnc55bk4q5NEhD3/UbFlTWSA==", "requires": { "@types/cordova": "^0.0.34" } }, "@ionic-native/zip": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@ionic-native/zip/-/zip-5.20.0.tgz", - "integrity": "sha512-UEXqAti7B7lyCd7ZDdhI99JwwCI5CU69FFOsAFhAL6210l7tmFw8DKx+VBCKNP/sdlAq4WI2ezkU0zn6ll5USg==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@ionic-native/zip/-/zip-5.29.0.tgz", + "integrity": "sha512-ydb5MH+VJoJTlEydCnPna2w7yPks8OJtYasugJUk7C7QO5bK6lZj2n0vVNcRwUeQFozoJfVGU3e6nbE9I+0u+g==", "requires": { "@types/cordova": "^0.0.34" - }, - "dependencies": { - "@types/cordova": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", - "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" - } } }, "@ionic/angular": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-4.11.6.tgz", - "integrity": "sha512-kQvsm09XoZAfosZ/kNUBFucFiySyAtDROoQDs49Ou++UxPNMdvLV6VYYSWcCCDeQg6Dsw+RTBc8gWeGCD3Cqcw==", + "version": "4.11.10", + "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-4.11.10.tgz", + "integrity": "sha512-wdi4LJLUEfGK7jxYLNH+8Q2nMPBFCGaheRmQV4hQLQDx3RjVMFJKCsqAmgXXkLtUJfSDBY68r/dvWeYO645HaQ==", "requires": { - "@ionic/core": "4.11.6", + "@ionic/core": "4.11.10", "tslib": "^1.9.3" } }, "@ionic/angular-toolkit": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@ionic/angular-toolkit/-/angular-toolkit-2.1.1.tgz", - "integrity": "sha512-NCwllK4daQH1uv5OUCSzZz0BxMsZp2ZjH/ZW16OzQmYkXr1AyRtPDS9UmfCoCzIUHq2FC0tp6DWt/NHAY4RH4Q==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@ionic/angular-toolkit/-/angular-toolkit-2.3.3.tgz", + "integrity": "sha512-r87mApDLWbLaUtd5LvNHrRlZWxjQhaBBM1yPlk9M98dHOxcX3jy7kv60ZurGZutuvbhXISGvHcvvR90yywDC1A==", "dev": true, "requires": { - "@schematics/angular": "^8.0.0", + "@schematics/angular": ">=8.0.0", + "cheerio": "1.0.0-rc.3", + "colorette": "1.1.0", + "copy-webpack-plugin": "^6.0.3", "tslib": "^1.9.0", "ws": "^7.0.1" } }, - "@ionic/cli-framework": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@ionic/cli-framework/-/cli-framework-3.0.5.tgz", - "integrity": "sha512-pskdkbWlEM+QO4qN5Oj+SQMEPx1oyFtbqKUsUE3v7StWK1E4ovl6YsG+y4CBnYF2qDj3Vs+Yh52osarN8jM8jg==", + "@ionic/cli": { + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/@ionic/cli/-/cli-6.12.1.tgz", + "integrity": "sha512-vmdzABseC3yo0FmXiCjulgK6BxLjVx2fi2S1tCEacqwGYgNOcS1Iu6zB3EXkYxEYk0EAoupvMB3wk9e2cic4uA==", "dev": true, "requires": { - "@ionic/utils-array": "1.2.2", - "@ionic/utils-fs": "2.0.9", - "@ionic/utils-object": "1.0.6", - "@ionic/utils-process": "1.0.8", - "@ionic/utils-stream": "2.0.5", - "@ionic/utils-subprocess": "1.0.12", - "@ionic/utils-terminal": "1.1.2", - "chalk": "^3.0.0", + "@ionic/cli-framework": "5.0.6", + "@ionic/cli-framework-output": "2.2.2", + "@ionic/cli-framework-prompts": "2.1.8", + "@ionic/utils-array": "2.1.5", + "@ionic/utils-fs": "3.1.5", + "@ionic/utils-network": "2.1.5", + "@ionic/utils-process": "2.1.8", + "@ionic/utils-stream": "3.1.5", + "@ionic/utils-subprocess": "2.1.8", + "@ionic/utils-terminal": "2.3.1", + "chalk": "^4.0.0", "debug": "^4.0.0", + "diff": "^4.0.1", + "elementtree": "^0.1.7", + "leek": "0.0.24", "lodash": "^4.17.5", - "log-update": "^3.2.0", - "minimist": "^1.2.0", - "rimraf": "^3.0.0", - "slice-ansi": "^3.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "tslib": "^1.9.0", - "untildify": "^4.0.0", - "wrap-ansi": "^6.0.0", - "write-file-atomic": "^3.0.0" + "open": "^7.0.4", + "os-name": "^4.0.0", + "semver": "^7.1.1", + "split2": "^3.0.0", + "ssh-config": "^1.1.1", + "stream-combiner2": "^1.1.1", + "superagent": "^5.2.1", + "superagent-proxy": "^2.0.0", + "tar": "^6.0.1", + "tslib": "^2.0.1" }, "dependencies": { "@ionic/utils-fs": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-2.0.9.tgz", - "integrity": "sha512-koOcdQlMHLIncPVZYQ+GkBHFhu7CJd0PdzDf9EfQBpOZwY66muS7UAlzVtoeY6tURYYniJlQsmg3auTIgVy9bQ==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.5.tgz", + "integrity": "sha512-a41bY2dHqWSEQQ/80CpbXSs8McyiCFf2DnIWWLukrhYWf46h4qi6M/8dxcMKrofRiqI/3F+cL3S2mOm9Zz/o2Q==", "dev": true, "requires": { "debug": "^4.0.0", - "fs-extra": "^8.0.1", - "through2": "^3.0.0", - "tslib": "^1.9.0" + "fs-extra": "^9.0.0", + "tslib": "^2.0.1" } }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, "ansi-styles": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.0.tgz", - "integrity": "sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -3051,20 +3380,51 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } }, "has-flag": { "version": "4.0.0", @@ -3072,16 +3432,25 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, "ms": { @@ -3090,179 +3459,193 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "rimraf": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", - "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { - "glob": "^7.1.3" + "path-key": "^3.0.0" } }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "mimic-fn": "^2.1.0" } }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "open": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.3.0.tgz", + "integrity": "sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" } }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "os-name": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.0.tgz", + "integrity": "sha512-caABzDdJMbtykt7GmSogEat3faTKQhmZf0BS5l/pZGmP0vPWQjXWqOhbLyK+b6j2/DQPmEvYdzLXJXXLJNVDNg==", "dev": true, "requires": { - "has-flag": "^4.0.0" + "macos-release": "^2.2.0", + "windows-release": "^4.0.0" } }, - "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { - "readable-stream": "2 || 3" + "shebang-regex": "^3.0.0" } }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "has-flag": "^4.0.0" } }, - "write-file-atomic": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.1.tgz", - "integrity": "sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw==", + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "isexe": "^2.0.0" + } + }, + "windows-release": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", + "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", + "dev": true, + "requires": { + "execa": "^4.0.2" } } } }, - "@ionic/cli-framework-prompts": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@ionic/cli-framework-prompts/-/cli-framework-prompts-1.0.4.tgz", - "integrity": "sha512-mII1sPCWDsQYxOSBFjQBPzis2UJuM59T6O1/6EelCQGilHEMZ39bFNb8O2f3Irnx6y6sX/4VVTy2BQwDHMK1yA==", - "dev": true, - "requires": { - "@ionic/utils-terminal": "1.1.2", + "@ionic/cli-framework": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@ionic/cli-framework/-/cli-framework-5.0.6.tgz", + "integrity": "sha512-CygkCCn+O3vMmt+l5y+evmcBHBI/HVr+QWQVca84ooM2lrLzIQDRC+iZ5RKOnF+eCcywGZ6a68FvXoWAvQzfmw==", + "dev": true, + "requires": { + "@ionic/cli-framework-output": "2.2.2", + "@ionic/utils-array": "2.1.5", + "@ionic/utils-fs": "3.1.5", + "@ionic/utils-object": "2.1.5", + "@ionic/utils-process": "2.1.8", + "@ionic/utils-stream": "3.1.5", + "@ionic/utils-subprocess": "2.1.8", + "@ionic/utils-terminal": "2.3.1", + "chalk": "^4.0.0", "debug": "^4.0.0", - "inquirer": "^7.0.0", - "tslib": "^1.9.0" + "lodash": "^4.17.5", + "minimist": "^1.2.0", + "rimraf": "^3.0.0", + "tslib": "^2.0.1", + "write-file-atomic": "^3.0.0" }, "dependencies": { - "@ionic/utils-terminal": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-1.1.2.tgz", - "integrity": "sha512-ODXbta2kvFNkMIEGwl7KX5gJTcZZHkzSLoBh3wND2H+EsG0KpIqOZKWMtkj+suuPut85wyLZ7fGfARnrNf7dtA==", + "@ionic/utils-fs": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.5.tgz", + "integrity": "sha512-a41bY2dHqWSEQQ/80CpbXSs8McyiCFf2DnIWWLukrhYWf46h4qi6M/8dxcMKrofRiqI/3F+cL3S2mOm9Zz/o2Q==", "dev": true, "requires": { "debug": "^4.0.0", - "tslib": "^1.9.0" + "fs-extra": "^9.0.0", + "tslib": "^2.0.1" } }, - "ansi-escapes": { + "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", - "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "type-fest": "^0.8.1" + "color-convert": "^2.0.1" } }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { - "restore-cursor": "^3.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "color-name": "~1.1.4" } }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "figures": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", - "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "inquirer": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.0.tgz", - "integrity": "sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ==", + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^2.4.2", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^4.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" + "ms": "2.1.2" } }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "ms": { @@ -3271,10 +3654,221 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + } + } + }, + "@ionic/cli-framework-output": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@ionic/cli-framework-output/-/cli-framework-output-2.2.2.tgz", + "integrity": "sha512-eQYkqIW1/tCwSC6Bd0gjse96U11lDX/ikf3jvsjX7a8z/zwSmGzCHRizb7xogV65Ey+1/zyAZR71cpDRQuFLBQ==", + "dev": true, + "requires": { + "@ionic/utils-terminal": "2.3.1", + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "dependencies": { + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + } + } + }, + "@ionic/cli-framework-prompts": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@ionic/cli-framework-prompts/-/cli-framework-prompts-2.1.8.tgz", + "integrity": "sha512-DjO4lQsmvficsZbPmpGqSSx+F1BfgSTQBwRqL5bl9Dkh9rIZ/ckcJcKqCciVOw9kIY7WTeNFOTwj2vWrkFn7+Q==", + "dev": true, + "requires": { + "@ionic/utils-terminal": "2.3.1", + "debug": "^4.0.0", + "inquirer": "^7.0.0", + "tslib": "^2.0.1" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { "mimic-fn": "^2.1.0" @@ -3290,6 +3884,12 @@ "signal-exit": "^3.0.2" } }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", @@ -3299,104 +3899,80 @@ "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } } }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", "dev": true } } }, "@ionic/core": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-4.11.6.tgz", - "integrity": "sha512-CL9w8JS38rlgGoa4kgPUSCJoW5Tq9PwgDQle+eedTpkYfE0nEuJeUfZ+MaX5c1C7yPxv7gYP/TVJi+o8bt8QFQ==", + "version": "4.11.10", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-4.11.10.tgz", + "integrity": "sha512-PeonKl5E+VOTBeKDr83y0N/1wbfkZ5jV3PSJTsVPE3Q15LxGEO0GzBvVMgkmkssuqOI3WJPXxYWZVL8ejzSFOQ==", "requires": { "ionicons": "^4.6.3", "tslib": "^1.10.0" } }, - "@ionic/discover": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@ionic/discover/-/discover-2.0.7.tgz", - "integrity": "sha512-2pPhSqzD6tSi2BvQehnXxhlFZ1eTgHlRyS7A5yjZ85c5LMj1GsMxrD69EhhurINCKSmtrr/Bl2erW6mpwsKuUQ==", - "dev": true, - "requires": { - "debug": "^4.0.0", - "netmask": "^1.0.6", - "tslib": "^1.9.0", - "ws": "^7.0.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, "@ionic/lab": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/@ionic/lab/-/lab-2.0.18.tgz", - "integrity": "sha512-KmAX65n/5T1odELpTPeZG53ly0fGM1h94RkwMw9U8qKL0JCufxXapXRrpxMPZSCqekVkHlh5jwUbWfI+s9rKHA==", + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/@ionic/lab/-/lab-3.2.9.tgz", + "integrity": "sha512-+0fzd3SZ+4dZOaVHNAbhN/2R5pDqJnQLitVgkAFp4gMpyjkIW3enBMpXBLnOaqGhUABUF1Qve7qT+ySQBP8yTA==", "dev": true, "requires": { - "@ionic/cli-framework": "3.0.5", - "@ionic/utils-fs": "2.0.9", - "chalk": "^3.0.0", + "@ionic/cli-framework": "5.0.6", + "@ionic/utils-fs": "3.1.5", + "chalk": "^4.0.0", "express": "^4.16.2", - "tslib": "^1.9.0" + "tslib": "^2.0.1" }, "dependencies": { "@ionic/utils-fs": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-2.0.9.tgz", - "integrity": "sha512-koOcdQlMHLIncPVZYQ+GkBHFhu7CJd0PdzDf9EfQBpOZwY66muS7UAlzVtoeY6tURYYniJlQsmg3auTIgVy9bQ==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.5.tgz", + "integrity": "sha512-a41bY2dHqWSEQQ/80CpbXSs8McyiCFf2DnIWWLukrhYWf46h4qi6M/8dxcMKrofRiqI/3F+cL3S2mOm9Zz/o2Q==", "dev": true, "requires": { "debug": "^4.0.0", - "fs-extra": "^8.0.1", - "through2": "^3.0.0", - "tslib": "^1.9.0" + "fs-extra": "^9.0.0", + "tslib": "^2.0.1" } }, "ansi-styles": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.0.tgz", - "integrity": "sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -3419,12 +3995,12 @@ "dev": true }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "has-flag": { @@ -3440,42 +4016,39 @@ "dev": true }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } }, - "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", - "dev": true, - "requires": { - "readable-stream": "2 || 3" - } + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true } } }, "@ionic/utils-array": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-1.2.2.tgz", - "integrity": "sha512-t9FkPHw1OfWkbGobvr2z5bMfpQT3WE/LEFGLraNFiygtOrS3JQnjmqgUHQXk+WVf9RAt5pMUKcmNRCd+AUCvwQ==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.5.tgz", + "integrity": "sha512-HD72a71IQVBmQckDwmA8RxNVMTbxnaLbgFOl+dO5tbvW9CkkSFCv41h6fUuNsSEVgngfkn0i98HDuZC8mk+lTA==", "dev": true, "requires": { "debug": "^4.0.0", - "tslib": "^1.9.0" + "tslib": "^2.0.1" }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "ms": { @@ -3483,19 +4056,25 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true } } }, "@ionic/utils-fs": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-2.0.6.tgz", - "integrity": "sha512-iU1UwU5NW2nlLvNNE3QoeH6I+wN3a4ypHFcS6Bp7qUDENeI+oTxHzVHKHM6qt7T/24TFLNcHVxcq/pGIt7vgOA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.3.tgz", + "integrity": "sha512-xMZhlB1XgZQchvKZFQt6NcKgLsCdSTt3lmU0Gl0HIWdGHjwI5QSyLCYPTvfa8Wm4vCn7XYiMy05bWxWtY0+FxQ==", "dev": true, "requires": { "debug": "^4.0.0", - "fs-extra": "^8.0.1", + "fs-extra": "^9.0.0", "through2": "^3.0.0", - "tslib": "^1.9.0" + "tslib": "1.11.2" }, "dependencies": { "debug": { @@ -3507,6 +4086,28 @@ "ms": "^2.1.1" } }, + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -3521,26 +4122,38 @@ "requires": { "readable-stream": "2 || 3" } + }, + "tslib": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz", + "integrity": "sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg==", + "dev": true + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true } } }, "@ionic/utils-network": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@ionic/utils-network/-/utils-network-1.0.6.tgz", - "integrity": "sha512-a7W44S+1ACuRAle9o6YuyTtt6MgxcKhK65Qf1M6rVpzfhW/rJ9gpyACbICHXst5jh2k7ngp5CT9Jyw5fByHNlQ==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-network/-/utils-network-2.1.5.tgz", + "integrity": "sha512-HUQ1Ec4Mh2MXzzKdbbbDS6xYKwpFJ2XRY7SYXbaZT8+jiNahfHbsOfe62/p8bk41Yil7E9EagzGC2JvIFJh01w==", "dev": true, "requires": { "debug": "^4.0.0", - "tslib": "^1.9.0" + "tslib": "^2.0.1" }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "ms": { @@ -3548,26 +4161,32 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true } } }, "@ionic/utils-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-1.0.6.tgz", - "integrity": "sha512-3defzcaHsdZQgQMKIDMki4Klp9hDKVbRfDCet6f6Xpmd8ycgIgW4wBbtcJRkasps2KJYJLs810mvI/1szOYrSA==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.5.tgz", + "integrity": "sha512-XnYNSwfewUqxq+yjER1hxTKggftpNjFLJH0s37jcrNDwbzmbpFTQTVAp4ikNK4rd9DOebX/jbeZb8jfD86IYxw==", "dev": true, "requires": { "debug": "^4.0.0", - "tslib": "^1.9.0" + "tslib": "^2.0.1" }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "ms": { @@ -3575,30 +4194,36 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true } } }, "@ionic/utils-process": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-1.0.8.tgz", - "integrity": "sha512-N6T6fwZczPW0+BAxiE6UgrlSXpb2di02D91aRkTM5aX2mQJ3kHI/O7nJ6uasksyipcwr3ou0HWtRMjcu+demYg==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.8.tgz", + "integrity": "sha512-VBBoyTzi+m6tgKAItl+jiTQneGwTOsctcrTG4CsEgmVOVOEhUYkPhddXqzD+oC54hPDU9ROsd3I014P5CWEuhQ==", "dev": true, "requires": { - "@ionic/utils-object": "1.0.6", - "@ionic/utils-terminal": "1.1.2", + "@ionic/utils-object": "2.1.5", + "@ionic/utils-terminal": "2.3.1", "debug": "^4.0.0", - "lodash": "^4.17.5", - "tree-kill": "1.2.1", - "tslib": "^1.9.0" + "signal-exit": "^3.0.3", + "tree-kill": "^1.2.2", + "tslib": "^2.0.1" }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "ms": { @@ -3606,26 +4231,38 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true } } }, "@ionic/utils-stream": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-2.0.5.tgz", - "integrity": "sha512-GOjEsgEyFTpX5Y6MpDDograU7PgPcclKvrhe1Lhft7VSg6RzeEzmZykzkDK89visw2Qb45G0gfyOuxLlq+WetA==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.5.tgz", + "integrity": "sha512-hkm46uHvEC05X/8PHgdJi4l4zv9VQDELZTM+Kz69odtO9zZYfnt8DkfXHJqJ+PxmtiE5mk/ehJWLnn/XAczTUw==", "dev": true, "requires": { "debug": "^4.0.0", - "tslib": "^1.9.0" + "tslib": "^2.0.1" }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "ms": { @@ -3633,41 +4270,46 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true } } }, "@ionic/utils-subprocess": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-1.0.12.tgz", - "integrity": "sha512-up+C4u96xJ4Bnr2R8BehnteUZdROxVVOOxcaghbRd2A4xvPe6pEHK9cAmIIO1qMdDWfz2ET28/AgdqRgpA5wOw==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-2.1.8.tgz", + "integrity": "sha512-pkmtf1LtXcEMPn6/cctREL2aZtZoy0+0Sl+nT0NIkOHIoBUcqrcfMWdctCSM4Mp6+2/hLWtgpHE3TOIibkWfIg==", "dev": true, "requires": { - "@ionic/utils-array": "1.2.2", - "@ionic/utils-fs": "2.0.9", - "@ionic/utils-process": "1.0.8", - "@ionic/utils-stream": "2.0.5", - "@ionic/utils-terminal": "1.1.2", + "@ionic/utils-array": "2.1.5", + "@ionic/utils-fs": "3.1.5", + "@ionic/utils-process": "2.1.8", + "@ionic/utils-stream": "3.1.5", + "@ionic/utils-terminal": "2.3.1", "cross-spawn": "^7.0.0", "debug": "^4.0.0", - "tslib": "^1.9.0" + "tslib": "^2.0.1" }, "dependencies": { "@ionic/utils-fs": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-2.0.9.tgz", - "integrity": "sha512-koOcdQlMHLIncPVZYQ+GkBHFhu7CJd0PdzDf9EfQBpOZwY66muS7UAlzVtoeY6tURYYniJlQsmg3auTIgVy9bQ==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.5.tgz", + "integrity": "sha512-a41bY2dHqWSEQQ/80CpbXSs8McyiCFf2DnIWWLukrhYWf46h4qi6M/8dxcMKrofRiqI/3F+cL3S2mOm9Zz/o2Q==", "dev": true, "requires": { "debug": "^4.0.0", - "fs-extra": "^8.0.1", - "through2": "^3.0.0", - "tslib": "^1.9.0" + "fs-extra": "^9.0.0", + "tslib": "^2.0.1" } }, "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { "path-key": "^3.1.0", @@ -3676,12 +4318,12 @@ } }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "ms": { @@ -3711,14 +4353,11 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", - "dev": true, - "requires": { - "readable-stream": "2 || 3" - } + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true }, "which": { "version": "2.0.2", @@ -3732,55 +4371,163 @@ } }, "@ionic/utils-terminal": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-1.1.2.tgz", - "integrity": "sha512-ODXbta2kvFNkMIEGwl7KX5gJTcZZHkzSLoBh3wND2H+EsG0KpIqOZKWMtkj+suuPut85wyLZ7fGfARnrNf7dtA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.1.tgz", + "integrity": "sha512-cglsSd2AckI3Ldtdfczeq64vIIDjtPspV5QJtky8f8uIdxkeOIGeRV7bCj1+BEf1hyo+ZuggQxLviHnbMZhiRw==", "dev": true, "requires": { "debug": "^4.0.0", - "tslib": "^1.9.0" + "signal-exit": "^3.0.3", + "slice-ansi": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "tslib": "^2.0.1", + "untildify": "^4.0.0", + "wrap-ansi": "^7.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } } } }, - "@mapbox/geojson-area": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-area/-/geojson-area-0.2.2.tgz", - "integrity": "sha1-GNeBSqNr8j+7zDefjiaiKSfevxA=", - "requires": { - "wgs84": "0.0.0" - } + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true }, "@mapbox/geojson-rewind": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.4.0.tgz", - "integrity": "sha512-b+1uPWBERW4Pet/969BNu61ZPDyH2ilIxBjJDFzxyS9TyszF9UrTQyYIl/G38clux3rtpAGGFSGTCSF/qR6UjA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.0.tgz", + "integrity": "sha512-73l/qJQgj/T/zO1JXVfuVvvKDgikD/7D/rHAD28S9BG1OTstgmftrmqfCx4U+zQAmtsB6HcDA3a7ymdnJZAQgg==", "requires": { - "@mapbox/geojson-area": "0.2.2", - "concat-stream": "~1.6.0", - "minimist": "1.2.0", - "sharkdown": "^0.1.0" + "concat-stream": "~2.0.0", + "minimist": "^1.2.5" }, "dependencies": { + "concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } } } }, @@ -3795,9 +4542,9 @@ "integrity": "sha1-zlblOfg1UrWNENZy6k1vya3HsjQ=" }, "@mapbox/mapbox-gl-supported": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.4.1.tgz", - "integrity": "sha512-yyKza9S6z3ELKuf6w5n6VNUB0Osu6Z93RXPfMHLIlNWohu3KqxewLOq4lMXseYJ92GwkRAxd207Pr/Z98cwmvw==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", + "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==" }, "@mapbox/point-geometry": { "version": "0.1.0", @@ -3827,54 +4574,36 @@ "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==" }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, + "@netflix/nerror": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@netflix/nerror/-/nerror-1.1.3.tgz", + "integrity": "sha512-b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==", "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" + "assert-plus": "^1.0.0", + "extsprintf": "^1.4.0", + "lodash": "^4.17.15" + }, + "dependencies": { + "extsprintf": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz", + "integrity": "sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=" + } } }, "@ngtools/webpack": { - "version": "8.3.20", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-8.3.20.tgz", - "integrity": "sha512-2e9Kat6PQEzqtNsZZpnOIvoDzyGwMELiuBYBa9keZeaXOD6TxjSyCRzHHXAldAXqvh4Uj2qjTid54Sy14CxtsQ==", + "version": "8.3.29", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-8.3.29.tgz", + "integrity": "sha512-7uB7dlAHR7RmxcQCYidnWRR1tFRJq7CzI+MM3725ibAvi4HnM5viC/HnKRTK7V+3iS1C0l0u0Gyo/769NsUDTQ==", "dev": true, "requires": { - "@angular-devkit/core": "8.3.20", + "@angular-devkit/core": "8.3.29", "enhanced-resolve": "4.1.0", "rxjs": "6.4.0", - "tree-kill": "1.2.1", + "tree-kill": "1.2.2", "webpack-sources": "1.4.3" }, "dependencies": { - "@angular-devkit/core": { - "version": "8.3.20", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.20.tgz", - "integrity": "sha512-UCfW/BJBJnioJU34QennQhA4o+rLoCXWiSrI2LM7yw8/MEM9I8KbqRETP1My3HjHkQnvP+Qh3noedpcu3Nnt8A==", - "dev": true, - "requires": { - "ajv": "6.10.2", - "fast-json-stable-stringify": "2.0.0", - "magic-string": "0.25.3", - "rxjs": "6.4.0", - "source-map": "0.7.3" - } - }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "rxjs": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", @@ -3887,12 +4616,9 @@ } }, "@ngx-translate/core": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-11.0.1.tgz", - "integrity": "sha512-nBCa1ZD9fAUY/3eskP3Lql2fNg8OMrYIej1/5GRsfcutx9tG/5fZLCv9m6UCw1aS+u4uK/vXjv1ctG/FdMvaWg==", - "requires": { - "tslib": "^1.9.0" - } + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-12.1.2.tgz", + "integrity": "sha512-ZudJsqIxTKlLmPoqK8gJY3UpMGujR0Xm7HfXL6AR79yGRS23QqpjAhMfx4v5qUCcHMmQ9/78bW8QJLfp31c7vQ==" }, "@ngx-translate/http-loader": { "version": "4.0.0", @@ -3902,180 +4628,658 @@ "tslib": "^1.9.0" } }, + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "requires": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + }, + "dependencies": { + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" + } + } + }, "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" }, - "@schematics/angular": { - "version": "8.3.15", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-8.3.15.tgz", - "integrity": "sha512-SrIxJU/7cJmfQDuBSjnGUvXi0tUb5PrFYKbL+Lek8qsaicO0y738HXjmeZqLnXoMg0J/9tOeIgdydeEtPCEjoQ==", + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + } + }, + "@npmcli/move-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", "dev": true, "requires": { - "@angular-devkit/core": "8.3.15", - "@angular-devkit/schematics": "8.3.15" + "mkdirp": "^1.0.4" }, "dependencies": { - "@angular-devkit/core": { - "version": "8.3.15", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.15.tgz", - "integrity": "sha512-FYUYNcggvRm7glfmqsRgBA1N6ubkINVx2nquZZX10AeCIs4MRqlG4UsddFbOvVckIF/4Q+tBK5P/NngpP1zGXA==", + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "@oclif/command": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.8.0.tgz", + "integrity": "sha512-5vwpq6kbvwkQwKqAoOU3L72GZ3Ta8RRrewKj9OJRolx28KLJJ8Dg9Rf7obRwt5jQA9bkYd8gqzMTrI7H3xLfaw==", + "dev": true, + "requires": { + "@oclif/config": "^1.15.1", + "@oclif/errors": "^1.3.3", + "@oclif/parser": "^3.8.3", + "@oclif/plugin-help": "^3", + "debug": "^4.1.1", + "semver": "^7.3.2" + }, + "dependencies": { + "@oclif/plugin-help": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.2.0.tgz", + "integrity": "sha512-7jxtpwVWAVbp1r46ZnTK/uF+FeZc6y4p1XcGaIUuPAp7wx6NJhIRN/iMT9UfNFX/Cz7mq+OyJz+E+i0zrik86g==", "dev": true, "requires": { - "ajv": "6.10.2", - "fast-json-stable-stringify": "2.0.0", - "magic-string": "0.25.3", - "rxjs": "6.4.0", - "source-map": "0.7.3" + "@oclif/command": "^1.5.20", + "@oclif/config": "^1.15.1", + "chalk": "^2.4.1", + "indent-string": "^4.0.0", + "lodash.template": "^4.4.0", + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "widest-line": "^3.1.0", + "wrap-ansi": "^4.0.0" } }, - "@angular-devkit/schematics": { - "version": "8.3.15", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-8.3.15.tgz", - "integrity": "sha512-BWi4gpF0RK6k4tD6YKz7cHkwlympnG/x5KZqtmnFYRvw22W3cc/zadu+xQ91EZLFmSycpV10+pZWfE6Kl4V6rA==", - "dev": true, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, "requires": { - "@angular-devkit/core": "8.3.15", - "rxjs": "6.4.0" + "ms": "^2.1.1" } }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, - "rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "tslib": "^1.9.0" + "ansi-regex": "^5.0.0" + } + }, + "wrap-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-4.0.0.tgz", + "integrity": "sha512-uMTsj9rDb0/7kk1PbcbCcwvHUxp60fGDB/NNXpVa0Q+ic/e7y5+BwTxKfQ33VYgDppSwi/FBzpetYzo8s6tfbg==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } } } } }, - "@schematics/update": { - "version": "0.803.20", - "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.803.20.tgz", - "integrity": "sha512-MseLreuHdnSLUEnRxZFVSHKKK+3mGXH12SgOSeirwATIL22Df74+Q5BYvsge/Kd2k6s9ak/NCuRXG7FAo8mkMA==", + "@oclif/config": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.17.0.tgz", + "integrity": "sha512-Lmfuf6ubjQ4ifC/9bz1fSCHc6F6E653oyaRXxg+lgT4+bYf9bk+nqrUpAbrXyABkCqgIBiFr3J4zR/kiFdE1PA==", "dev": true, "requires": { - "@angular-devkit/core": "8.3.20", - "@angular-devkit/schematics": "8.3.20", - "@yarnpkg/lockfile": "1.1.0", - "ini": "1.3.5", - "pacote": "9.5.5", - "rxjs": "6.4.0", - "semver": "6.3.0", - "semver-intersect": "1.4.0" + "@oclif/errors": "^1.3.3", + "@oclif/parser": "^3.8.0", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-wsl": "^2.1.1", + "tslib": "^2.0.0" }, "dependencies": { - "@angular-devkit/core": { - "version": "8.3.20", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.20.tgz", - "integrity": "sha512-UCfW/BJBJnioJU34QennQhA4o+rLoCXWiSrI2LM7yw8/MEM9I8KbqRETP1My3HjHkQnvP+Qh3noedpcu3Nnt8A==", + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ajv": "6.10.2", - "fast-json-stable-stringify": "2.0.0", - "magic-string": "0.25.3", - "rxjs": "6.4.0", - "source-map": "0.7.3" + "ms": "^2.1.1" } }, - "@angular-devkit/schematics": { - "version": "8.3.20", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-8.3.20.tgz", - "integrity": "sha512-sDHZakh4e3A5WenR9zr1x6Va9GNRqQlRhqT3xcbkG88v2M0YqEt7dHB7YwnOhm7zSxiWQM8PdWEQHiQ4iu9NyQ==", + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, "requires": { - "@angular-devkit/core": "8.3.20", - "rxjs": "6.4.0" + "is-docker": "^2.0.0" } }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true + } + } + }, + "@oclif/errors": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@oclif/errors/-/errors-1.3.3.tgz", + "integrity": "sha512-EJR6AIOEkt/NnARNIVAskPDVtdhtO5TTNXmhDrGqMoWVsr0R6DkkLrMyq95BmHvlVWM1nduoq4fQPuCyuF2jaA==", + "dev": true, + "requires": { + "clean-stack": "^3.0.0", + "fs-extra": "^9.0.1", + "indent-string": "^4.0.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" } }, - "rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "clean-stack": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-3.0.0.tgz", + "integrity": "sha512-RHxtgFvXsRQ+1AM7dlozLDY7ssmvUUh0XEnfnyhYgJTO6beNZHBogiaCwGM9Q3rFrUkYxOtsZRC0zAturg5bjg==", "dev": true, "requires": { - "tslib": "^1.9.0" + "escape-string-regexp": "4.0.0" } }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } } } }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/cordova": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", - "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" - }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", - "dev": true - }, - "@types/geojson": { - "version": "7946.0.7", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.7.tgz", - "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==", + "@oclif/linewrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@oclif/linewrap/-/linewrap-1.0.0.tgz", + "integrity": "sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw==", "dev": true }, - "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "@oclif/parser": { + "version": "3.8.5", + "resolved": "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.5.tgz", + "integrity": "sha512-yojzeEfmSxjjkAvMRj0KzspXlMjCfBzNRPkWw8ZwOSoNWoJn+OCS/m/S+yfV6BvAM4u2lTzX9Y5rCbrFIgkJLg==", "dev": true, "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" + "@oclif/errors": "^1.2.2", + "@oclif/linewrap": "^1.0.0", + "chalk": "^2.4.2", + "tslib": "^1.9.3" } }, - "@types/jasmine": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.0.tgz", - "integrity": "sha512-kGCRI9oiCxFS6soGKlyzhMzDydfcPix9PpTkr7h11huxOxhWwP37Tg7DYBaQ18eQTNreZEuLkhpbGSqVNZPnnw==", - "dev": true - }, - "@types/mapbox-gl": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@types/mapbox-gl/-/mapbox-gl-1.6.0.tgz", - "integrity": "sha512-dK5CzdN9ZxpLT2I4udLyKy/IpacUjkUDSl7QenqY0z7kJGXU+dxRHBJRJz8SCeuXo+7IfeSyWV7xvMOVpsWvgQ==", + "@oclif/plugin-help": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-2.2.3.tgz", + "integrity": "sha512-bGHUdo5e7DjPJ0vTeRBMIrfqTRDBfyR5w0MP41u0n3r7YG5p14lvMmiCXxi6WDaP2Hw5nqx3PnkAIntCKZZN7g==", + "dev": true, + "requires": { + "@oclif/command": "^1.5.13", + "chalk": "^2.4.1", + "indent-string": "^4.0.0", + "lodash.template": "^4.4.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0", + "widest-line": "^2.0.1", + "wrap-ansi": "^4.0.0" + }, + "dependencies": { + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "dev": true, + "requires": { + "string-width": "^2.1.1" + }, + "dependencies": { + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "wrap-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-4.0.0.tgz", + "integrity": "sha512-uMTsj9rDb0/7kk1PbcbCcwvHUxp60fGDB/NNXpVa0Q+ic/e7y5+BwTxKfQ33VYgDppSwi/FBzpetYzo8s6tfbg==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + } + } + }, + "@schematics/angular": { + "version": "10.0.7", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-10.0.7.tgz", + "integrity": "sha512-0SljGZjA68tOsn7OIps79lTy9Y96OZglLnBqO6pSLlmCkGMbjFY2ssKQXJzwR0jJ5+TWBjWjpn2U5mir4yzOuQ==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.0.7", + "@angular-devkit/schematics": "10.0.7" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "10.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-10.0.7.tgz", + "integrity": "sha512-pXaZgsQ8LHpRx4QGAUYDE8GwBQLAtoqPh6oUCwRJwBExm5rl13OGPTBWewHiq0ysV/SnFXvOjxwAaHQvC1AgZw==", + "dev": true, + "requires": { + "ajv": "6.12.3", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.5.5", + "source-map": "0.7.3" + } + }, + "@angular-devkit/schematics": { + "version": "10.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.0.7.tgz", + "integrity": "sha512-eyyYPgpjtr3h7WbnNbkDubJ/p+8TgKU6abWd+NmBfTvyeHrpVFUYZabNRcdXwUDSVzfTQKdmLynIkESj/KROrg==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.0.7", + "ora": "4.0.4", + "rxjs": "6.5.5" + } + }, + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "rxjs": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } + }, + "@schematics/update": { + "version": "0.803.29", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.803.29.tgz", + "integrity": "sha512-Syf6h6DYeu1WU9aLihMwIgVASpcHCxUYqhZyHfQABiK8NkdlZ+KAp4cOxihsZyDqIJNLWON+0/FLPAQF3BXh5Q==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.3.29", + "@angular-devkit/schematics": "8.3.29", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "pacote": "9.5.5", + "rxjs": "6.4.0", + "semver": "6.3.0", + "semver-intersect": "1.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, + "@types/cordova": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", + "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" + }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", + "dev": true + }, + "@types/geojson": { + "version": "7946.0.7", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.7.tgz", + "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==", + "dev": true + }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "dev": true, + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/jasmine": { + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.14.tgz", + "integrity": "sha512-Fkgk536sHPqcOtd+Ow+WiUNuk0TSo/BntKkF8wSvcd6M2FvPjeXcUE6Oz/bwDZiUZEaXLslAgw00Q94Pnx6T4w==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", + "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==", + "dev": true + }, + "@types/mapbox-gl": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@types/mapbox-gl/-/mapbox-gl-1.11.2.tgz", + "integrity": "sha512-IXfOnFPAbxnEhSG89MjFxuqIX6bJioPHA55yExM0qAaVdT+kfJX7P4d0wfW0Br3iSdq9ym8C9jCYHpuLT4FE6Q==", "dev": true, "requires": { "@types/geojson": "*" @@ -4088,9 +5292,9 @@ "dev": true }, "@types/node": { - "version": "12.12.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.17.tgz", - "integrity": "sha512-Is+l3mcHvs47sKy+afn2O1rV4ldZFU7W8101cNlOd+MRbjM4Onida8jSZnJdTe/0Pcf25g9BNIUsuugmE6puHA==" + "version": "12.12.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", + "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==" }, "@types/q": { "version": "0.0.32", @@ -4099,9 +5303,9 @@ "dev": true }, "@types/selenium-webdriver": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.16.tgz", - "integrity": "sha512-lMC2G0ItF2xv4UCiwbJGbnJlIuUixHrioOhNGHSCsYCJ8l4t9hMCUimCytvFv7qy6AfSzRxhRHoGa+UqaqwyeA==", + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", + "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", "dev": true }, "@types/source-list-map": { @@ -4117,9 +5321,9 @@ "dev": true }, "@types/webpack-sources": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.5.tgz", - "integrity": "sha512-zfvjpp7jiafSmrzJ2/i3LqOyTYTuJ7u1KOXlKgDlvsj9Rr0x7ZiYu5lZbXwobL7lmsRNtPXlBfmaUD8eU2Hu8w==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", + "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", "dev": true, "requires": { "@types/node": "*", @@ -4355,15 +5559,15 @@ } }, "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", "dev": true }, "adm-zip": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.13.tgz", - "integrity": "sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==", + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", "dev": true }, "after": { @@ -4390,6 +5594,24 @@ "humanize-ms": "^1.2.1" } }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "dependencies": { + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + } + } + }, "ajv": { "version": "6.9.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", @@ -4409,9 +5631,9 @@ "dev": true }, "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true }, "amdefine": { @@ -4434,12 +5656,25 @@ "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=" }, "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "dev": true, "requires": { - "string-width": "^2.0.0" + "string-width": "^3.0.0" + }, + "dependencies": { + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } } }, "ansi-colors": { @@ -4473,11 +5708,6 @@ "color-convert": "^1.9.0" } }, - "ansicolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", - "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8=" - }, "any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", @@ -4524,9 +5754,9 @@ } }, "arg": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.2.tgz", - "integrity": "sha512-+ytCkGcBtHZ3V2r2Z06AncYO8jz46UEamcspGoU8lHcEbpn6J77QK0vdWvChsclg/tM5XIJC5tnjmPp7Eq6Obg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, "argparse": { @@ -4584,11 +5814,6 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, - "array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=" - }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", @@ -4646,6 +5871,14 @@ "bn.js": "^4.0.0", "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } } }, "assert": { @@ -4678,8 +5911,7 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assign-symbols": { "version": "1.0.0", @@ -4688,10 +5920,21 @@ "dev": true }, "ast-types": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz", - "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==", - "dev": true + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "requires": { + "tslib": "^2.0.1" + }, + "dependencies": { + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + } + } }, "ast-types-flow": { "version": "0.0.7", @@ -4732,6 +5975,11 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -4774,210 +6022,15 @@ "ast-types-flow": "0.0.7" } }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - }, - "dependencies": { - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", - "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", "dev": true, "requires": { "object.assign": "^4.1.0" } }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - } - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, - "dependencies": { - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - }, - "dependencies": { - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, "backo2": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", @@ -5112,9 +6165,9 @@ }, "dependencies": { "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -5140,9 +6193,9 @@ }, "dependencies": { "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true } } @@ -5154,9 +6207,9 @@ "dev": true }, "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", + "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==", "dev": true }, "body-parser": { @@ -5207,25 +6260,135 @@ } } }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", "dev": true, "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } } }, "bplist-creator": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz", "integrity": "sha1-N98VNgkoJLh8QvlXsBNEEXNyrkU=", + "dev": true, "requires": { "stream-buffers": "~2.2.0" } @@ -5234,6 +6397,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz", "integrity": "sha1-1g1dzCDLptx+HymbNdPh+V2vuuY=", + "dev": true, "requires": { "big-integer": "^1.6.7" } @@ -5327,56 +6491,140 @@ "requires": { "bn.js": "^4.1.0", "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } } }, "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.6.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.6.tgz", - "integrity": "sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30000984", - "electron-to-chromium": "^1.3.191", - "node-releases": "^1.1.25" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", + "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.2", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz", + "integrity": "sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001035", + "electron-to-chromium": "^1.3.378", + "node-releases": "^1.1.52", + "pkg-up": "^3.1.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } } }, "browserstack": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.3.tgz", - "integrity": "sha512-AO+mECXsW4QcqC9bxwM29O7qWa7bJT94uBFzeb5brylIQwawuEziwq20dPYbins95GlWzOawgyDNdjYAo32EKg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.0.tgz", + "integrity": "sha512-HJDJ0TSlmkwnt9RZ+v5gFpa1XZTBYTj0ywvLwJ3241J7vMw2jAsGNVhKHtmCOyg+VxeLZyaibO9UL71AsUeDIw==", "dev": true, "requires": { "https-proxy-agent": "^2.2.1" } }, "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "dev": true, "requires": { "base64-js": "^1.0.2", @@ -5493,11 +6741,49 @@ "unset-value": "^1.0.0" } }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + } + } }, "caller-callsite": { "version": "2.0.0", @@ -5543,9 +6829,9 @@ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "caniuse-lite": { - "version": "1.0.30000989", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz", - "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==", + "version": "1.0.30001035", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz", + "integrity": "sha512-C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ==", "dev": true }, "canonical-path": { @@ -5554,21 +6840,6 @@ "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", "dev": true }, - "capture-stack-trace": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", - "dev": true - }, - "cardinal": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-0.4.4.tgz", - "integrity": "sha1-ylu2iltRG5D+k7ms6km97lwyv+I=", - "requires": { - "ansicolors": "~0.2.1", - "redeyed": "~0.4.0" - } - }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -5591,20 +6862,34 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, + "cheerio": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", + "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", + "dev": true, + "requires": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.1", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash": "^4.15.0", + "parse5": "^3.0.1" + } + }, "chokidar": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", + "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", "dev": true, "requires": { "anymatch": "~3.1.1", "braces": "~3.0.2", - "fsevents": "~2.1.1", + "fsevents": "~2.1.2", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.2.0" + "readdirp": "~3.4.0" }, "dependencies": { "anymatch": { @@ -5618,9 +6903,9 @@ } }, "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", "dev": true }, "braces": { @@ -5642,16 +6927,16 @@ } }, "fsevents": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.1.tgz", - "integrity": "sha512-4FRPXWETxtigtJW/gxzEDsX1LVbPAM93VleB83kZB+ellqbHMkyt2aJfuzNLRvFPnGi6bcE5SvfxgbXPeKteJw==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, "optional": true }, "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -5679,12 +6964,20 @@ "dev": true }, "readdirp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", "dev": true, "requires": { - "picomatch": "^2.0.4" + "picomatch": "^2.2.1" + }, + "dependencies": { + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + } } }, "to-regex-range": { @@ -5714,9 +7007,9 @@ } }, "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, "cipher-base": { @@ -5775,10 +7068,16 @@ } } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", + "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", "dev": true }, "cli-cursor": { @@ -5854,6 +7153,12 @@ } } }, + "cli-spinners": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.4.0.tgz", + "integrity": "sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA==", + "dev": true + }, "cli-width": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", @@ -5920,11 +7225,22 @@ "shallow-clone": "^3.0.0" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + }, + "dependencies": { + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + } + } }, "code-point-at": { "version": "1.1.0", @@ -5932,14 +7248,14 @@ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "codelyzer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-5.2.0.tgz", - "integrity": "sha512-izfUfhEOOgAizszPlEDxo71DK/C4wprZw0vkY6UWcOSTQvN1JyfXf9DXwaV7WX+/JC+hH0ShXfdtGLA9Rca7LA==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-5.2.2.tgz", + "integrity": "sha512-jB4FZ1Sx7kZhvZVdf+N2BaKTdrrNZOL0Bj10RRfrhHrb3zEvXjJvvq298JPMJAiyiCS/v4zs1QlGU0ip7xGqeA==", "dev": true, "requires": { "app-root-path": "^2.2.1", "aria-query": "^3.0.0", - "axobject-query": "^2.0.2", + "axobject-query": "2.0.2", "css-selector-tokenizer": "^0.7.1", "cssauron": "^1.4.0", "damerau-levenshtein": "^1.0.4", @@ -5999,6 +7315,12 @@ "simple-swizzle": "^0.2.2" } }, + "colorette": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.1.0.tgz", + "integrity": "sha512-6S062WDQUXi6hOfkO/sBPVwE5ASXY4G2+b4atvhJfSsuUUhIaUKlkjLe9692Ipyt5/a+IPF5aVTu3V5gvXq5cg==", + "dev": true + }, "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", @@ -6025,25 +7347,6 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, - "compare-func": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", - "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", - "requires": { - "array-ify": "^1.0.0", - "dot-prop": "^3.0.0" - }, - "dependencies": { - "dot-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", - "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", - "requires": { - "is-obj": "^1.0.0" - } - } - } - }, "compare-versions": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.5.1.tgz", @@ -6101,6 +7404,7 @@ "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -6119,20 +7423,63 @@ "make-dir": "^1.0.0", "pkg-up": "^2.0.0", "write-file-atomic": "^2.3.0" + }, + "dependencies": { + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + } } }, "configstore": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", - "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", "dev": true, "requires": { - "dot-prop": "^4.1.0", + "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" } }, "connect": { @@ -6234,96 +7581,220 @@ "dev": true }, "copy-webpack-plugin": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.0.4.tgz", - "integrity": "sha512-YBuYGpSzoCHSSDGyHy6VJ7SHojKp6WHT4D7ItcQFNAYx2hrwkMe56e97xfVR0/ovDuMTrMffXUiltvQljtAGeg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz", + "integrity": "sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA==", "dev": true, "requires": { - "cacache": "^11.3.3", - "find-cache-dir": "^2.1.0", - "glob-parent": "^3.1.0", - "globby": "^7.1.1", - "is-glob": "^4.0.1", - "loader-utils": "^1.2.3", - "minimatch": "^3.0.4", + "cacache": "^15.0.4", + "fast-glob": "^3.2.4", + "find-cache-dir": "^3.3.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.1", + "loader-utils": "^2.0.0", "normalize-path": "^3.0.0", - "p-limit": "^2.2.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^1.7.0", - "webpack-log": "^2.0.0" + "p-limit": "^3.0.1", + "schema-utils": "^2.7.0", + "serialize-javascript": "^4.0.0", + "webpack-sources": "^1.4.3" }, "dependencies": { + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, "cacache": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", - "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", "dev": true, "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" } }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" + "path-type": "^4.0.0" } }, - "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", "dev": true, "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" } }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "semver": "^6.0.0" + } + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" } }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -6331,9 +7802,9 @@ "dev": true }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", + "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -6345,277 +7816,1137 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "ssri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true } } }, "cordova": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cordova/-/cordova-9.0.0.tgz", - "integrity": "sha512-zWEPo9uGj9KNcEhU2Lpo3r4HYK21tL+at496N2LLnuCWuWVndv6QWed8+EYl/08rrcNshrEtfzXj9Ux6vQm2PQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/cordova/-/cordova-10.0.0.tgz", + "integrity": "sha512-00wMcj3X9ILhKtvRG2iEwO2qly4B+vgXFhH4WhVepWg2UVbD1opl1q9jSZ+j2AaI/vsBWW8e6M2M5FAHasnuWw==", "dev": true, "requires": { - "configstore": "^4.0.0", - "cordova-common": "^3.1.0", - "cordova-lib": "^9.0.0", + "configstore": "^5.0.1", + "cordova-common": "^4.0.2", + "cordova-create": "^3.0.0", + "cordova-lib": "^10.0.0", "editor": "^1.0.0", - "insight": "^0.10.1", - "loud-rejection": "^2.0.0", - "nopt": "^4.0.1", - "update-notifier": "^2.5.0" - } - }, - "cordova-android": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-8.1.0.tgz", - "integrity": "sha512-eAY6g9q3raJ4P03wNdSWC5MOW1EfxoomWNXsPhi7T6Q9yAqmxqn0sLEUjLL1Ib0LCH3nKQWBXdxapQ5LgbHu+g==", - "requires": { - "android-versions": "^1.4.0", - "compare-func": "^1.3.2", - "cordova-common": "^3.2.0", - "nopt": "^4.0.1", - "properties-parser": "^0.3.1", - "q": "^1.5.1", - "shelljs": "^0.5.3" - } - }, - "cordova-android-support-gradle-release": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cordova-android-support-gradle-release/-/cordova-android-support-gradle-release-3.0.1.tgz", - "integrity": "sha512-RSW55DkSckmqhX/kjj+a1YeVdy7s/AtlZn6Qa5XMQmmA4Iogq+IF2jvInZqzCF19DbI5YE95AP7VDbRk+DdDRw==", - "requires": { - "q": "^1.4.1", - "semver": "5.6.0" - } - }, - "cordova-app-hello-world": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cordova-app-hello-world/-/cordova-app-hello-world-4.0.0.tgz", - "integrity": "sha512-hTNYHUJT5YyMa1cQQE1naGyU6Eh5D5Jl33sMnCh3+q15ZwWTL/TOy3k8+mUvjTp8bwhO5eECGKULYoVO+fp9ZA==", - "dev": true - }, - "cordova-common": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-3.2.0.tgz", - "integrity": "sha512-EvlQ6PirfR65hGDoQvsluW00uSS2MTVIRKQ3c1Xvsddx7D5T5JgF3fHWkGik/Y/8yNcpI0zI2NcJyie2z/ak2A==", - "requires": { - "ansi": "^0.3.1", - "bplist-parser": "^0.1.0", - "cross-spawn": "^6.0.5", - "elementtree": "0.1.7", - "endent": "^1.1.1", - "fs-extra": "^8.0.0", - "glob": "^7.1.2", - "minimatch": "^3.0.0", - "plist": "^3.0.1", - "q": "^1.4.1", - "strip-bom": "^3.0.0", - "underscore": "^1.8.3", - "which": "^1.3.0" + "execa": "^4.0.3", + "fs-extra": "^9.0.1", + "insight": "^0.10.3", + "loud-rejection": "^2.2.0", + "nopt": "^4.0.3", + "semver": "^7.3.2", + "systeminformation": "^4.26.10", + "update-notifier": "^4.1.0" }, "dependencies": { "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } - } - } - }, - "cordova-create": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cordova-create/-/cordova-create-2.0.0.tgz", - "integrity": "sha512-72CaGg/7x+tiZlzeXKQXLTc8Jh4tbwLdu4Ib97kJ6+R3bcew/Yv/l2cVA2E0CaCuOCtouTqwi+YLcA2I4dPFTQ==", - "dev": true, - "requires": { - "cordova-app-hello-world": "^4.0.0", - "cordova-common": "^3.1.0", - "cordova-fetch": "^2.0.0", - "fs-extra": "^7.0.1", - "import-fresh": "^3.0.0", - "is-url": "^1.2.4", - "isobject": "^3.0.1", - "path-is-inside": "^1.0.2", - "tmp": "0.0.33", - "valid-identifier": "0.0.2" - }, - "dependencies": { + }, + "execa": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", + "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" } - } - } - }, - "cordova-custom-config": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cordova-custom-config/-/cordova-custom-config-5.1.0.tgz", - "integrity": "sha512-qPk1l1Rayu0PAp5kXqyvzMprc0oCqRa5pcs7iRrb0daq0I/RWIw7BngCyOJuv/wnJrTBbwxVued1+lVLe0/MeA==", - "dev": true, - "requires": { - "colors": "^1.1.2", - "elementtree": "^0.1.6", - "lodash": "^4.17.11", - "plist": "^3.0.1", - "q": "^1.4.1", - "shelljs": "^0.7.0", - "tostr": "^0.1.0", - "xcode": "^1.0.0" - }, - "dependencies": { - "shelljs": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", - "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", + }, + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", "dev": true, "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" + "pump": "^3.0.0" } - } - } - }, - "cordova-fetch": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cordova-fetch/-/cordova-fetch-2.0.1.tgz", - "integrity": "sha512-q21PeobERzE3Drli5htcl5X9Mtfvodih5VkqIwdRUsjDBCPv+I6ZonRjYGbNnXhYrYx7dm0m0j/7/Smf6Av3hg==", - "dev": true, - "requires": { - "cordova-common": "^3.1.0", - "fs-extra": "^7.0.1", - "npm-package-arg": "^6.1.0", - "pify": "^4.0.1", - "resolve": "^1.10.0", - "semver": "^5.6.0", - "which": "^1.3.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" } }, - "pify": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.1.tgz", + "integrity": "sha512-ZpZpjcJeugQfWsfyQlshVoowIIQ1qBGSVll4rfDq6JJVO//fesjoX808hXWfBjY+ROZgpKDI5TRSRBSoJiZ8eg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, - "cordova-ios": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/cordova-ios/-/cordova-ios-5.1.1.tgz", - "integrity": "sha512-asZMCj44JMe/PMrDIRC97GStPCH+GpaMNVe8hdmu8WWXJzMzRNRRJ339YYU89jitWf9ZKMdyBgrnSnQi5bJ/ZQ==", + "cordova-android": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-9.0.0.tgz", + "integrity": "sha512-2ZEgApK4LPMYW0zh/mLAH3CabzCaKE0yxQTzA2wTf0Eo2HHTJnRtDCf9spGf3nPOkubyXS6+pvzz5QzNHpVTqQ==", + "requires": { + "android-versions": "^1.5.0", + "cordova-common": "^4.0.1", + "execa": "^4.0.2", + "fs-extra": "^9.0.1", + "nopt": "^4.0.3", + "properties-parser": "^0.3.1", + "which": "^2.0.2" + }, + "dependencies": { + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" + }, + "bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "requires": { + "big-integer": "^1.6.44" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "cordova-common": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-4.0.2.tgz", + "integrity": "sha512-od7aNShyuBajzPY83mUEO8tERwwWdFklXETHiXP5Ft87CWeo/tSuwNPFztyTy8XYc74yXdogXKPTJeUHuVzB8Q==", + "requires": { + "@netflix/nerror": "^1.1.3", + "ansi": "^0.3.1", + "bplist-parser": "^0.2.0", + "cross-spawn": "^7.0.1", + "elementtree": "^0.1.7", + "endent": "^1.4.1", + "fast-glob": "^3.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "plist": "^3.0.1", + "q": "^1.5.1", + "read-chunk": "^3.2.0", + "strip-bom": "^4.0.0", + "underscore": "^1.9.2" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "endent": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/endent/-/endent-1.4.1.tgz", + "integrity": "sha512-buHTb5c8AC9NshtP6dgmNLYkiT+olskbq1z6cEGvfGCF3Qphbu/1zz5Xu+yjTDln8RbxNhPoUyJ5H8MSrp1olQ==", + "requires": { + "dedent": "^0.7.0", + "fast-json-parse": "^1.0.3", + "objectorarray": "^1.0.4" + } + }, + "execa": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", + "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "requires": { + "pump": "^3.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "objectorarray": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.4.tgz", + "integrity": "sha512-91k8bjcldstRz1bG6zJo8lWD7c6QXcB4nTDUqiEvIL1xAsLoZlOOZZG+nd6YPz+V7zY1580J4Xxh1vZtyv4i/w==" + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "underscore": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", + "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==" + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "cordova-app-hello-world": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cordova-app-hello-world/-/cordova-app-hello-world-5.0.0.tgz", + "integrity": "sha512-5My01wsYoeYwS0f/t5Ck52xPm0+2zYJ0SlvxG9vUsndDGtgiP6t/G8upPgWcyDRRz7Rs/50yZuOntmHqmJxccQ==", + "dev": true + }, + "cordova-common": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-4.0.2.tgz", + "integrity": "sha512-od7aNShyuBajzPY83mUEO8tERwwWdFklXETHiXP5Ft87CWeo/tSuwNPFztyTy8XYc74yXdogXKPTJeUHuVzB8Q==", "requires": { - "cordova-common": "^3.1.0", - "ios-sim": "^8.0.1", - "nopt": "^4.0.1", + "@netflix/nerror": "^1.1.3", + "ansi": "^0.3.1", + "bplist-parser": "^0.2.0", + "cross-spawn": "^7.0.1", + "elementtree": "^0.1.7", + "endent": "^1.4.1", + "fast-glob": "^3.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", "plist": "^3.0.1", "q": "^1.5.1", - "semver": "^6.3.0", - "shelljs": "^0.5.3", - "unorm": "^1.4.1", - "xcode": "^2.0.0", + "read-chunk": "^3.2.0", + "strip-bom": "^4.0.0", + "underscore": "^1.9.2" + }, + "dependencies": { + "bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "requires": { + "big-integer": "^1.6.44" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "cordova-create": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cordova-create/-/cordova-create-3.0.0.tgz", + "integrity": "sha512-WxZRTnt5RHxSAB9urnHFUtVBcIe1YjR4sfwHLsxakNoKkFhcie3HrV5QmNBgRQ5DkxmanRN3VSx4OrPVsNmAaQ==", + "dev": true, + "requires": { + "cordova-app-hello-world": "^5.0.0", + "cordova-common": "^4.0.1", + "cordova-fetch": "^3.0.0", + "fs-extra": "^9.0.0", + "globby": "^11.0.0", + "import-fresh": "^3.2.1", + "isobject": "^4.0.0", + "npm-package-arg": "^8.0.1", + "path-is-inside": "^1.0.2", + "tmp": "^0.2.1", + "valid-identifier": "0.0.2" + }, + "dependencies": { + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.5.tgz", + "integrity": "sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "isobject": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", + "dev": true + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "npm-package-arg": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.1.tgz", + "integrity": "sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ==", + "dev": true, + "requires": { + "hosted-git-info": "^3.0.2", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "cordova-custom-config": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cordova-custom-config/-/cordova-custom-config-5.1.0.tgz", + "integrity": "sha512-qPk1l1Rayu0PAp5kXqyvzMprc0oCqRa5pcs7iRrb0daq0I/RWIw7BngCyOJuv/wnJrTBbwxVued1+lVLe0/MeA==", + "dev": true, + "requires": { + "colors": "^1.1.2", + "elementtree": "^0.1.6", + "lodash": "^4.17.11", + "plist": "^3.0.1", + "q": "^1.4.1", + "shelljs": "^0.7.0", + "tostr": "^0.1.0", + "xcode": "^1.0.0" + }, + "dependencies": { + "shelljs": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", + "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + } + } + }, + "cordova-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cordova-fetch/-/cordova-fetch-3.0.0.tgz", + "integrity": "sha512-N6mB/1GD8BNclxnfO85E4/s46nEJjIxYeJYHRGi6MjofhigJ3NlGwTCslbTcq8IOYEh0RdoA0mS4W2jA5UcWeQ==", + "dev": true, + "requires": { + "cordova-common": "^4.0.0", + "fs-extra": "^9.0.0", + "npm-package-arg": "^8.0.1", + "pify": "^5.0.0", + "resolve": "^1.15.1", + "semver": "^7.1.3", + "which": "^2.0.2" + }, + "dependencies": { + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.5.tgz", + "integrity": "sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "npm-package-arg": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.1.tgz", + "integrity": "sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ==", + "dev": true, + "requires": { + "hosted-git-info": "^3.0.2", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "dev": true + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "cordova-ios": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/cordova-ios/-/cordova-ios-6.1.1.tgz", + "integrity": "sha512-WHNvjVhkuwRpq95rISVXtcRyd6UGZapbmU+hO/CAn1c0AIT5WnO8mg2mOjv0WDNa0mt/V5P+N2Vig1UWwfxa5Q==", + "requires": { + "cordova-common": "^4.0.2", + "fs-extra": "^9.0.0", + "ios-sim": "^8.0.2", + "nopt": "^4.0.3", + "plist": "^3.0.1", + "semver": "^7.3.2", + "unorm": "^1.6.0", + "which": "^2.0.2", + "xcode": "^3.0.1", "xml-escape": "^1.1.0" }, "dependencies": { + "bplist-creator": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.8.tgz", + "integrity": "sha512-Za9JKzD6fjLC16oX2wsXfc+qBEhJBJB1YPInoAQpMLhDuj5aVOv1baGeIQSq1Fr3OCqzvsoQcSBSwGId/Ja2PA==", + "requires": { + "stream-buffers": "~2.2.0" + } + }, + "bplist-parser": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz", + "integrity": "sha1-ONo0cYF9+dRKs4kuJ3B7u9daEbk=" + }, + "ios-sim": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/ios-sim/-/ios-sim-8.0.2.tgz", + "integrity": "sha512-P7nEG771bfd+JoMRjnis1gpZOkjTUUxu+4Ek1Z+eoaEEoT9byllU9pxfQ8Df7hL3gSkIQxNwTSLhos2I8tWUQA==", + "requires": { + "bplist-parser": "^0.0.6", + "nopt": "1.0.9", + "plist": "^3.0.1", + "simctl": "^2" + }, + "dependencies": { + "nopt": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.9.tgz", + "integrity": "sha1-O8DXy6e/sNWmdtvtfA6+SKT9RU4=", + "requires": { + "abbrev": "1" + } + } + } + }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" }, "simple-plist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.0.0.tgz", - "integrity": "sha512-043L2rO80LVF7zfZ+fqhsEkoJFvW8o59rt/l4ctx1TJWoTx7/jkiS1R5TatD15Z1oYnuLJytzE7gcnnBuIPL2g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.1.1.tgz", + "integrity": "sha512-pKMCVKvZbZTsqYR6RKgLfBHkh2cV89GXcA/0CVPje3sOiNOnXA8+rp/ciAMZ7JRaUdLzlEM6JFfUn+fS6Nt3hg==", "requires": { - "bplist-creator": "0.0.7", - "bplist-parser": "0.1.1", + "bplist-creator": "0.0.8", + "bplist-parser": "0.2.0", "plist": "^3.0.1" + }, + "dependencies": { + "bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "requires": { + "big-integer": "^1.6.44" + } + } + } + }, + "uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" } }, "xcode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xcode/-/xcode-2.0.0.tgz", - "integrity": "sha512-5xF6RCjAdDEiEsbbZaS/gBRt3jZ/177otZcpoLCjGN/u1LrfgH7/Sgeeavpr/jELpyDqN2im3AKosl2G2W8hfw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", + "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", "requires": { - "simple-plist": "^1.0.0", - "uuid": "^3.3.2" + "simple-plist": "^1.1.0", + "uuid": "^7.0.3" } } } }, "cordova-lib": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/cordova-lib/-/cordova-lib-9.0.1.tgz", - "integrity": "sha512-P9nQhq91gLOyKZkamvKNzzK89gLDpq8rKue/Vu7NUSgNzhPkiWW0w+6VRTbj/9QGVM9w2uDVhB9c9f6rrTXzCw==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/cordova-lib/-/cordova-lib-10.0.0.tgz", + "integrity": "sha512-azU/WH0x/3fQg33tU5bKCtj+Weh/bHelz9FWCVdXqVOHXmjzbi3p6p61z5Si967Tfh3TkmHRrodNxS0ovZ7iFQ==", "dev": true, "requires": { - "cordova-common": "^3.1.0", - "cordova-create": "^2.0.0", - "cordova-fetch": "^2.0.0", - "cordova-serve": "^3.0.0", - "dep-graph": "1.1.0", - "detect-indent": "^5.0.0", + "cordova-common": "^4.0.2", + "cordova-fetch": "^3.0.0", + "cordova-serve": "^4.0.0", + "dep-graph": "^1.1.0", + "detect-indent": "^6.0.0", + "detect-newline": "^3.1.0", "elementtree": "^0.1.7", - "fs-extra": "^7.0.1", - "globby": "^9.1.0", - "indent-string": "^3.2.0", + "execa": "^4.0.3", + "fs-extra": "^9.0.1", + "globby": "^11.0.1", "init-package-json": "^1.10.3", - "md5-file": "^4.0.0", - "read-chunk": "^3.1.0", - "semver": "^5.6.0", - "shebang-command": "^1.2.0", - "underscore": "^1.9.1" + "md5-file": "^5.0.0", + "pify": "^5.0.0", + "semver": "^7.3.2", + "stringify-package": "^1.0.1", + "write-file-atomic": "^3.0.3" }, "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", + "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.1.tgz", + "integrity": "sha512-ZpZpjcJeugQfWsfyQlshVoowIIQ1qBGSVll4rfDq6JJVO//fesjoX808hXWfBjY+ROZgpKDI5TRSRBSoJiZ8eg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "dev": true + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" } } } }, "cordova-plugin-advanced-http": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cordova-plugin-advanced-http/-/cordova-plugin-advanced-http-2.3.0.tgz", - "integrity": "sha512-1ldQXlTrAzi/4c2GI6Me1CTANUL2x/O5WeI1pUJ72XJ55Njj9VOYp/SU9E25K41Y9lJOb5wMjXOrIb4XyW1l0w==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-advanced-http/-/cordova-plugin-advanced-http-3.1.0.tgz", + "integrity": "sha512-zlTlNJyTttE7TV5vW2WGvHqpbKMDVrr1meZU0fy4y3ObrI/hGk2UDcDNwpZdMfaytNZwDKU4sRgsTgQYdFNBew==" + }, + "cordova-plugin-androidx-adapter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cordova-plugin-androidx-adapter/-/cordova-plugin-androidx-adapter-1.1.1.tgz", + "integrity": "sha512-ePt0WG7Y8jOFx2x3A6oXQyxzavis2ANw2hFlm7MU/H7ez1QKPXmWjA1zIIx4T/QdKWM5D8fLH60t2PyJmKSsOg==", + "requires": { + "performance-now": "^2.1.0", + "q": "^1.4.1", + "recursive-readdir": "^2.2.2" + } }, "cordova-plugin-app-version": { "version": "0.1.9", @@ -6634,9 +8965,9 @@ "integrity": "sha512-m7cughw327CjONN/qjzsTpSesLaeybksQh420/gRuSXJX5Zt9NfgsSbqqKDon6jnQ9Mm7h7imgyO2uJ34XMBtA==" }, "cordova-plugin-file-opener2": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cordova-plugin-file-opener2/-/cordova-plugin-file-opener2-2.2.1.tgz", - "integrity": "sha512-yeN242U6T+TDlrJ5m00br+lAKsf2fHXn1u1TsDxB5fFUGINZUYLKthEctCMFkQUnURWk+Nh6tc+WtdQjY581Uw==" + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/cordova-plugin-file-opener2/-/cordova-plugin-file-opener2-3.0.5.tgz", + "integrity": "sha512-tjLHDamH5+y0bJZYVe2967L1S4R8tL4Y0rJUzJGoxsyiw3FUlrJNS199POOpzZZ6Xhlntn9a2o7+84r1dMN21A==" }, "cordova-plugin-geolocation": { "version": "4.0.2", @@ -6644,9 +8975,9 @@ "integrity": "sha512-QGThnPKzPxESHkruZlpE0+5aFBVOet8al0vIJ7laSUOQHIC1dd/JY6peVIbtLboKi5Dap1wCKRubOqPqH8xcQA==" }, "cordova-plugin-inappbrowser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cordova-plugin-inappbrowser/-/cordova-plugin-inappbrowser-3.2.0.tgz", - "integrity": "sha512-tYsK0H9M8POmJTVnfyIsiRgoOxnypa9IQIbf/Hsgi7vbgUYRHtBUfvXwq4RhMqLIVrCeJLXF2hTXTDNY0a/eTA==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-inappbrowser/-/cordova-plugin-inappbrowser-4.0.0.tgz", + "integrity": "sha512-w2LZzdF3R4G/EqVZ9aWch9Pksk76uw6/S5wFP1sgn7zjsSDpJBb/JhazLnioN1NZmZiCUBbROv1S4+9JCkeCgA==" }, "cordova-plugin-ionic-keyboard": { "version": "2.2.0", @@ -6655,19 +8986,25 @@ "dev": true }, "cordova-plugin-ionic-webview": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/cordova-plugin-ionic-webview/-/cordova-plugin-ionic-webview-4.1.3.tgz", - "integrity": "sha512-hlrUF0kLjjEkZmpYlLJO0NnXmVjMmQ3MOZVXm1ytDihLPKHklYCOpCvjA5Wz3hJrPD1shFEsqi/SPnp873AsdQ==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-ionic-webview/-/cordova-plugin-ionic-webview-5.0.0.tgz", + "integrity": "sha512-Wq0kCanxubK/JroTW4Mp5soayScnRyiY1eCkbwiz1Dyt1xHOiOW/v+1miqtBHtnZhcXw25TulCKAVJzkNBdmyg==" }, "cordova-plugin-network-information": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/cordova-plugin-network-information/-/cordova-plugin-network-information-2.0.2.tgz", "integrity": "sha512-NwO3qDBNL/vJxUxBTPNOA1HvkDf9eTeGH8JSZiwy1jq2W2mJKQEDBwqWkaEQS19Yd/MQTiw0cykxg5D7u4J6cQ==" }, + "cordova-plugin-safariviewcontroller": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-safariviewcontroller/-/cordova-plugin-safariviewcontroller-1.6.0.tgz", + "integrity": "sha512-TSrVTTdIjCb1iK+FT0GSnfVhmEY5oRzB2yhlwSnxgwxhTrFHDnfTXrX4KKHWaszxGnMKNFuUFTv8K+fc0GNqEg==", + "dev": true + }, "cordova-plugin-splashscreen": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/cordova-plugin-splashscreen/-/cordova-plugin-splashscreen-5.0.3.tgz", - "integrity": "sha512-rnoDXMDfzoeHDBvsnu6JmzDE/pV5YJCAfc5hYX/Mb2BIXGgSjFJheByt0tU6kp3Wl40tSyFX4pYfBwFblBGyRg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-splashscreen/-/cordova-plugin-splashscreen-6.0.0.tgz", + "integrity": "sha512-pm4ZtJKQY4bCGXVeIInbGrXilryTevYSKgfvoQJpW9UClOWKAxSsYf2/4G2u1vcn492svOSL42OSa2MhujBWEQ==", "dev": true }, "cordova-plugin-statusbar": { @@ -6691,18 +9028,37 @@ "integrity": "sha1-F2yCSOog058c+VnvXmFWrMqWshc=" }, "cordova-res": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/cordova-res/-/cordova-res-0.8.1.tgz", - "integrity": "sha512-P6YM+XTeQoSszVFQnPazpC0yFW7SUeI+hO2fkR0JNrAkUcXU4nx2JSrR87upx2tUlmdpmilJAeTmcVV9WHu6ag==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/cordova-res/-/cordova-res-0.15.1.tgz", + "integrity": "sha512-qD4yrlVZpv4X3W3BnVDEmRVt6ZzZmFr4fIqc8lhxbVEuYb9/N3lXP9lAm7wGC323QBwYfQE4zGeyuUvnOkbJ8w==", "dev": true, "requires": { - "@ionic/utils-fs": "^2.0.1", + "@ionic/utils-array": "^2.1.1", + "@ionic/utils-fs": "^3.0.0", "debug": "^4.1.1", "elementtree": "^0.1.7", - "sharp": "^0.23.1", + "sharp": "^0.25.1", "tslib": "^1.9.3" }, "dependencies": { + "@ionic/utils-array": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.3.tgz", + "integrity": "sha512-IV7oK7kj6UZEkZ5lbS78gNSUSTqZtLOEKu9G+MqBpRTX+YKKnmsAxQuvZrnsy/pHmzJ7aKlj1V0gNAFO6w/NOA==", + "dev": true, + "requires": { + "debug": "^4.0.0", + "tslib": "1.11.2" + }, + "dependencies": { + "tslib": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz", + "integrity": "sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg==", + "dev": true + } + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -6721,30 +9077,110 @@ } }, "cordova-serve": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cordova-serve/-/cordova-serve-3.0.0.tgz", - "integrity": "sha512-h479g/5a0PXn//yiFuMrD5MDEbB+mtihNkWcE6uD/aCh/6z0FRZ9sWH3NfZbHDB+Bp1yGLYsjbH8LZBL8KOQ0w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cordova-serve/-/cordova-serve-4.0.0.tgz", + "integrity": "sha512-gzTLeBQzNP8aM/nG0/7sSfICfNazUgwvEU2kiDaybbYXmxwioo2v96h4tzE0XOyA64beyYwAyRYEEqWA4AMZjw==", "dev": true, "requires": { - "chalk": "^2.4.1", - "compression": "^1.6.0", - "express": "^4.13.3", - "opn": "^5.3.0", - "which": "^1.3.0" + "chalk": "^3.0.0", + "compression": "^1.7.4", + "express": "^4.17.1", + "open": "^7.0.3", + "which": "^2.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "open": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.1.0.tgz", + "integrity": "sha512-lLPI5KgOwEYCDKXf4np7y1PBEkj7HYIyP2DY8mVDRnx0VIIu6bNrRB0R66TuO7Mack6EnTNLm4uvcl1UoklTpA==", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "cordova-sqlite-storage": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cordova-sqlite-storage/-/cordova-sqlite-storage-4.0.0.tgz", - "integrity": "sha512-/n5KT3TyRAC7QRe9A4Sn7bMpdsBJ6aMmHat2PsMxFZBot45SOxbAEgfGmXtq0e7OEdVzk573sIn42bLS6lNLjQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cordova-sqlite-storage/-/cordova-sqlite-storage-5.1.0.tgz", + "integrity": "sha512-UmHe9yQiYblDBToh3z91WHuD6ZgmCm3VX+1QFseYQs4WVQ3+ndj22qyGby/NV0uyCgok91gB1obLjLM+9vYJEw==", "requires": { - "cordova-sqlite-storage-dependencies": "2.1.1" + "cordova-sqlite-storage-dependencies": "3.0.0" } }, "cordova-sqlite-storage-dependencies": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cordova-sqlite-storage-dependencies/-/cordova-sqlite-storage-dependencies-2.1.1.tgz", - "integrity": "sha512-1lV5Pg1FttjBmGO8z4gxtuA4BbPKtgTfUEh1Vx4boa41inizyxaowRyTeaaqEhi5gmYAaX8sRTABm9U/XckRFg==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cordova-sqlite-storage-dependencies/-/cordova-sqlite-storage-dependencies-3.0.0.tgz", + "integrity": "sha512-A7gV5lQZc0oPrJ/a+lsZmMZr7vYou4MXyQFOY+b/dwuCMsagLT0EsL7oY54tqzpvjtzLfh0aZGGm9i8DMAIFSA==" }, "cordova-unique-device-id": { "version": "1.3.2", @@ -6752,9 +9188,9 @@ "integrity": "sha512-CUt+x4xLVZaf2d6Oy0LN18f4KMQ+Nofw0vTVY+djUCuw31yWYFJ8RWRFNeztPE93WK9+E+EheSaQPPGViI+Jtg==" }, "cordova.plugins.diagnostic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/cordova.plugins.diagnostic/-/cordova.plugins.diagnostic-5.0.1.tgz", - "integrity": "sha512-nuHDm0EQZcoz1DIFLG7/cdxhFL2LHVi9hWZ+gLNO5GsMSvjMh1PRGuoBjOjvBjsqTFlYbWEetu1/tgZ/29qbfg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/cordova.plugins.diagnostic/-/cordova.plugins.diagnostic-6.0.2.tgz", + "integrity": "sha512-X3Nd0Ume1ZWndEJRtJ+BQTuTXBJfJv9hoI3PX7T/JiMMFQ/PgMwcn2DFTb27LWa65lAvMiEakMSRWmOa3/zvNg==", "requires": { "colors": "^1.1.2", "elementtree": "^0.1.6", @@ -6769,41 +9205,24 @@ } }, "core-js": { - "version": "3.4.8", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.4.8.tgz", - "integrity": "sha512-b+BBmCZmVgho8KnBUOXpvlqEMguko+0P+kXCwD4vIprsXC6ht1qgPxtb1OK6XgSlrySF71wkwBQ0Hv695bk9gQ==" + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" }, "core-js-compat": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.3.6.tgz", - "integrity": "sha512-YnwZG/+0/f7Pf6Lr3jxtVAFjtGBW9lsLYcqrxhYJai1GfvrP8DEyEpnNzj/FRQfIkOOfk1j5tTBvPBLWVVJm4A==", + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", + "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", "dev": true, "requires": { - "browserslist": "^4.7.2", - "semver": "^6.3.0" + "browserslist": "^4.8.5", + "semver": "7.0.0" }, - "dependencies": { - "browserslist": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.2.tgz", - "integrity": "sha512-uZavT/gZXJd2UTi9Ov7/Z340WOSQ3+m1iBVRUknf+okKxonL9P83S3ctiBDtuRmRu8PiCHjqyueqQ9HYlJhxiw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001004", - "electron-to-chromium": "^1.3.295", - "node-releases": "^1.1.38" - } - }, - "caniuse-lite": { - "version": "1.0.30001008", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001008.tgz", - "integrity": "sha512-b8DJyb+VVXZGRgJUa30cbk8gKHZ3LOZTBLaUEEVr2P4xpmFigOCc62CO4uzquW641Ouq1Rm9N+rWLWdSYDaDIw==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", "dev": true } } @@ -6811,7 +9230,8 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true }, "cosmiconfig": { "version": "5.2.1", @@ -6853,6 +9273,30 @@ } } }, + "coverage-istanbul-loader": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/coverage-istanbul-loader/-/coverage-istanbul-loader-2.0.3.tgz", + "integrity": "sha512-LiGRvyIuzVYs3M1ZYK1tF0HekjH0DJ8zFdUwAZq378EJzqOgToyb1690dp3TAUlP6Y+82uu42LRjuROVeJ54CA==", + "dev": true, + "requires": { + "convert-source-map": "^1.7.0", + "istanbul-lib-instrument": "^4.0.0", + "loader-utils": "^1.2.3", + "merge-source-map": "^1.1.0", + "schema-utils": "^2.6.1" + }, + "dependencies": { + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + } + } + }, "create-ecdh": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", @@ -6861,15 +9305,14 @@ "requires": { "bn.js": "^4.1.0", "elliptic": "^6.0.0" - } - }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "dev": true, - "requires": { - "capture-stack-trace": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } } }, "create-hash": { @@ -6945,9 +9388,9 @@ } }, "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true }, "css-parse": { @@ -6956,17 +9399,34 @@ "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", "dev": true }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, "css-selector-tokenizer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", - "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", "dev": true, "requires": { - "cssesc": "^0.1.0", - "fastparse": "^1.1.1", - "regexpu-core": "^1.0.0" + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" } }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true + }, "cssauron": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", @@ -6982,9 +9442,9 @@ "integrity": "sha1-s085HupNqPPpgjHizNjfnAQfFxs=" }, "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, "currently-unhandled": { @@ -7009,9 +9469,9 @@ "dev": true }, "damerau-levenshtein": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz", - "integrity": "sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", "dev": true }, "dashdash": { @@ -7024,9 +9484,9 @@ } }, "data-uri-to-buffer": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz", - "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", "dev": true }, "date-format": { @@ -7076,9 +9536,18 @@ "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" }, "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } }, "deep-extend": { "version": "0.6.0", @@ -7092,6 +9561,12 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, "default-gateway": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", @@ -7141,10 +9616,34 @@ "strip-bom": "^3.0.0" } }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + } + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, "requires": { "object-keys": "^1.0.12" } @@ -7190,20 +9689,15 @@ } } }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, "degenerator": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", - "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-2.2.0.tgz", + "integrity": "sha512-aiQcQowF01RxFI4ZLFMpzyotbQonhNpBao6dkI8JPk5a+hmSjR5ErHp2CQySmQe8os3VBqLCIh87nDBgZXvsmg==", "dev": true, "requires": { - "ast-types": "0.x.x", - "escodegen": "1.x.x", - "esprima": "3.x.x" + "ast-types": "^0.13.2", + "escodegen": "^1.8.1", + "esprima": "^4.0.0" } }, "del": { @@ -7266,6 +9760,12 @@ "path-is-inside": "^1.0.2" } }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", @@ -7316,9 +9816,9 @@ "dev": true }, "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", "dev": true, "requires": { "inherits": "^2.0.1", @@ -7332,9 +9832,9 @@ "dev": true }, "detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", + "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", "dev": true }, "detect-libc": { @@ -7343,6 +9843,12 @@ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, "detect-node": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", @@ -7380,30 +9886,12 @@ "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" - } - }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "dev": true, - "requires": { - "path-type": "^3.0.0" }, "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true } } @@ -7445,19 +9933,54 @@ "void-elements": "^2.0.0" } }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, "domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", "dev": true }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", "dev": true, "requires": { - "is-obj": "^1.0.0" + "is-obj": "^2.0.0" } }, "dotenv": { @@ -7494,9 +10017,9 @@ } }, "earcut": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.1.tgz", - "integrity": "sha512-5jIMi2RB3HtGPHcYd9Yyl0cczo84y+48lgKPxMijliNQaKAHEZJbdzLmKmdxG/mCdS/YD9DQ1gihL8mxzR0F9w==" + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz", + "integrity": "sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ==" }, "ecc-jsbn": { "version": "0.1.2", @@ -7521,9 +10044,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.304", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.304.tgz", - "integrity": "sha512-a5mqa13jCdBc+Crgk3Gyr7vpXCiFWfFq23YDCEmrPYeiDOQKZDVE6EX/Q4Xdv97n3XkcjiSBDOY0IS19yP2yeA==", + "version": "1.3.510", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.510.tgz", + "integrity": "sha512-sLtGB0znXdmo6lM8hy5wTVo+fLqvIuO8hEpgc0DvPmFZqvBu/WB7AarEwhxVKjf3rVbws/rC8Xf+AlsOb36lJQ==", "dev": true }, "elementtree": { @@ -7542,9 +10065,9 @@ } }, "elliptic": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz", - "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -7554,6 +10077,14 @@ "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } } }, "emoji-regex": { @@ -7575,31 +10106,41 @@ "dev": true }, "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "requires": { - "iconv-lite": "~0.4.13" + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } } }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, "requires": { "once": "^1.4.0" } }, "endent": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/endent/-/endent-1.3.0.tgz", - "integrity": "sha512-C8AryqPPwtydqcpO5AF6k9Bd1EpFkQtvsefJqS3y3n8TG13Jy63MascDxTOULZYqrUde+dK6BjNc6LIMr3iI2A==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/endent/-/endent-1.4.1.tgz", + "integrity": "sha512-buHTb5c8AC9NshtP6dgmNLYkiT+olskbq1z6cEGvfGCF3Qphbu/1zz5Xu+yjTDln8RbxNhPoUyJ5H8MSrp1olQ==", "requires": { "dedent": "^0.7.0", "fast-json-parse": "^1.0.3", - "objectorarray": "^1.0.3" + "objectorarray": "^1.0.4" } }, "engine.io": { @@ -7721,6 +10262,12 @@ "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", "dev": true }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, "env-paths": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", @@ -7751,26 +10298,29 @@ } }, "es-abstract": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.1.tgz", - "integrity": "sha512-cp/Tb1oA/rh2X7vqeSOvM+TSo3UkJLX70eNihgVEvnzwAgikjkTFr/QVgRCaxjm0knCNQzNoxxxcw2zO2LJdZA==", + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, "requires": { - "es-to-primitive": "^1.2.0", + "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.0", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-inspect": "^1.6.0", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", "object-keys": "^1.1.1", - "string.prototype.trimleft": "^2.0.0", - "string.prototype.trimright": "^2.0.0" + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -7792,6 +10342,18 @@ "es6-promise": "^4.0.3" } }, + "escalade": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz", + "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==", + "dev": true + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -7804,12 +10366,12 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", - "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", "dev": true, "requires": { - "esprima": "^3.1.3", + "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", "optionator": "^0.8.1", @@ -7836,9 +10398,9 @@ } }, "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "esrecurse": { @@ -7875,9 +10437,9 @@ "dev": true }, "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", "dev": true }, "eventsource": { @@ -8121,17 +10683,69 @@ "dev": true }, "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "dev": true, - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + } } }, "fast-json-parse": { @@ -8151,12 +10765,26 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", + "dev": true + }, "fastparse": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", "dev": true }, + "fastq": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", + "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", + "requires": { + "reusify": "^1.0.4" + } + }, "faye-websocket": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", @@ -8176,9 +10804,9 @@ } }, "figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", "dev": true }, "figlet": { @@ -8203,36 +10831,12 @@ "requires": { "loader-utils": "^1.2.3", "schema-utils": "^2.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "schema-utils": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.5.0.tgz", - "integrity": "sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1" - } - } } }, "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", + "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==", "dev": true }, "fileset": { @@ -8292,75 +10896,17 @@ "commondir": "^1.0.1", "make-dir": "^3.0.0", "pkg-dir": "^4.1.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, + }, + "dependencies": { "make-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", - "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { "semver": "^6.0.0" } }, - "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -8419,14 +10965,6 @@ } } }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { - "is-callable": "^1.1.3" - } - }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -8451,9 +10989,9 @@ } }, "formidable": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz", - "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", + "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==", "dev": true }, "forwarded": { @@ -8494,22 +11032,39 @@ "dev": true }, "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", "requires": { + "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + }, + "dependencies": { + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + } } }, "fs-minipass": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz", - "integrity": "sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^3.0.0" } }, "fs-write-stream-atomic": { @@ -9116,7 +11671,8 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "gauge": { "version": "2.7.4", @@ -9177,6 +11733,12 @@ "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", "dev": true }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true + }, "geojson-vt": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", @@ -9197,17 +11759,45 @@ } }, "get-uri": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.4.tgz", - "integrity": "sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", + "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", "dev": true, "requires": { - "data-uri-to-buffer": "1", - "debug": "2", - "extend": "~3.0.2", - "file-uri-to-path": "1", - "ftp": "~0.3.10", - "readable-stream": "2" + "@tootallnate/once": "1", + "data-uri-to-buffer": "3", + "debug": "4", + "file-uri-to-path": "2", + "fs-extra": "^8.1.0", + "ftp": "^0.3.10" + }, + "dependencies": { + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "get-value": { @@ -9232,9 +11822,9 @@ "dev": true }, "gl-matrix": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.1.0.tgz", - "integrity": "sha512-526NA+3EA+ztAQi0IZpSWiM0fyQXIp7IbRvfJ4wS/TjjQD0uv0fVybXwwqqSOlq33UckivI0yMDlVtboWm3k7A==" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.3.0.tgz", + "integrity": "sha512-COb7LDz+SXaHtl/h4LeaFcNdJdAQSDeVqjiIihSXNrkWObZLhDI4hIkZC11Aeqp7bcE72clzB0BnDXr2SmslRA==" }, "glob": { "version": "7.1.4", @@ -9270,19 +11860,13 @@ } } }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - }, "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", "dev": true, "requires": { - "ini": "^1.3.4" + "ini": "^1.3.5" } }, "globals": { @@ -9292,52 +11876,74 @@ "dev": true }, "globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", "dev": true, "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" }, "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true } } }, "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", "dev": true, "requires": { - "create-error-class": "^3.0.0", + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" }, "dependencies": { - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true } } @@ -9353,9 +11959,9 @@ "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" }, "handle-thing": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", - "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, "handlebars": { @@ -9398,6 +12004,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -9446,9 +12053,10 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true }, "has-unicode": { "version": "2.0.1", @@ -9464,796 +12072,572 @@ "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "highlight.js": { - "version": "9.15.10", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz", - "integrity": "sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw==" - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hosted-git-info": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz", - "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==" - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", - "dev": true - }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", - "dev": true - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "http-parser-js": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", - "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", - "dev": true - }, - "http-proxy": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", - "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", - "dev": true, - "requires": { - "eventemitter3": "^3.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "agent-base": "4", - "debug": "3.1.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "ms": "2.0.0" + "is-buffer": "^1.1.5" } } } }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", - "dev": true, - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "http-status-codes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-1.4.0.tgz", - "integrity": "sha512-JrT3ua+WgH8zBD3HEJYbeEgnuQaAnUeRRko/YojPAJjGmIfGD3KPU/asLdsLwKjfxOmQe5nXMQ0pt/7MyapVbQ==" - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", "dev": true }, - "https-proxy-agent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz", - "integrity": "sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg==", + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "dev": true, "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { - "ms": "^2.1.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true } } }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "dev": true, - "requires": { - "ms": "^2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true + "highlight.js": { + "version": "9.15.10", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz", + "integrity": "sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw==" }, - "ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { - "minimatch": "^3.0.4" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "optional": true - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", - "dev": true + "hosted-git-info": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz", + "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==" }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "import-from": "^2.1.0" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, - "import-fresh": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", - "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } + "html-entities": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==", + "dev": true }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", "dev": true, "requires": { - "resolve-from": "^3.0.0" + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" }, "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } } } }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", "dev": true }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", "dev": true }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } }, - "init-package-json": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz", - "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", + "http-proxy": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", + "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", "dev": true, "requires": { - "glob": "^7.1.1", - "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", - "promzard": "^0.3.0", - "read": "~1.0.1", - "read-package-json": "1 || 2", - "semver": "2.x || 3.x || 4 || 5", - "validate-npm-package-license": "^3.0.1", - "validate-npm-package-name": "^3.0.0" + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", "dev": true, "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" + "agent-base": "4", + "debug": "3.1.0" }, "dependencies": { - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } } } }, - "insight": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/insight/-/insight-0.10.3.tgz", - "integrity": "sha512-YOncxSN6Omh+1Oqxt+OJAvJVMDKw7l6IEG0wT2cTMGxjsTcroOGW4IR926QDzxg/uZHcFZ2cZbckDWdZhc2pZw==", + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", "dev": true, "requires": { - "async": "^2.6.2", - "chalk": "^2.4.2", - "conf": "^1.4.0", - "inquirer": "^6.3.1", - "lodash.debounce": "^4.0.8", - "os-name": "^3.1.0", - "request": "^2.88.0", - "tough-cookie": "^3.0.1", - "uuid": "^3.3.2" + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" } }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "http-status-codes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-1.4.0.tgz", + "integrity": "sha512-JrT3ua+WgH8zBD3HEJYbeEgnuQaAnUeRRko/YojPAJjGmIfGD3KPU/asLdsLwKjfxOmQe5nXMQ0pt/7MyapVbQ==" + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, - "invariant": { + "https-proxy-agent": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "dev": true, "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "ionic": { - "version": "5.4.12", - "resolved": "https://registry.npmjs.org/ionic/-/ionic-5.4.12.tgz", - "integrity": "sha512-y20tofCGPRaVzgm078rFgcA/DqaefQc9hcLEpSXyTF5PUvvOMm1H4qZScSRQQZaNAaUB4fbnZ1K01zagVqN50Q==", - "dev": true, - "requires": { - "@ionic/cli-framework": "3.0.5", - "@ionic/cli-framework-prompts": "1.0.4", - "@ionic/discover": "2.0.7", - "@ionic/utils-array": "1.2.2", - "@ionic/utils-fs": "2.0.9", - "@ionic/utils-network": "1.0.6", - "@ionic/utils-process": "1.0.8", - "@ionic/utils-stream": "2.0.5", - "@ionic/utils-subprocess": "1.0.12", - "@ionic/utils-terminal": "1.1.2", - "chalk": "^3.0.0", - "debug": "^4.0.0", - "diff": "^4.0.1", - "elementtree": "^0.1.7", - "leek": "0.0.24", - "lodash": "^4.17.5", - "open": "^7.0.0", - "os-name": "^3.1.0", - "semver": "^6.0.0", - "split2": "^3.0.0", - "ssh-config": "^1.1.1", - "stream-combiner2": "^1.1.1", - "superagent": "^4.1.0", - "superagent-proxy": "^2.0.0", - "tar": "^4.3.0", - "through2": "^3.0.0", - "tslib": "^1.9.0", - "uuid": "^3.2.1" + "agent-base": "^4.3.0", + "debug": "^3.1.0" }, "dependencies": { - "@ionic/cli-framework": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@ionic/cli-framework/-/cli-framework-3.0.5.tgz", - "integrity": "sha512-pskdkbWlEM+QO4qN5Oj+SQMEPx1oyFtbqKUsUE3v7StWK1E4ovl6YsG+y4CBnYF2qDj3Vs+Yh52osarN8jM8jg==", - "dev": true, - "requires": { - "@ionic/utils-array": "1.2.2", - "@ionic/utils-fs": "2.0.9", - "@ionic/utils-object": "1.0.6", - "@ionic/utils-process": "1.0.8", - "@ionic/utils-stream": "2.0.5", - "@ionic/utils-subprocess": "1.0.12", - "@ionic/utils-terminal": "1.1.2", - "chalk": "^3.0.0", - "debug": "^4.0.0", - "lodash": "^4.17.5", - "log-update": "^3.2.0", - "minimist": "^1.2.0", - "rimraf": "^3.0.0", - "slice-ansi": "^3.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "tslib": "^1.9.0", - "untildify": "^4.0.0", - "wrap-ansi": "^6.0.0", - "write-file-atomic": "^3.0.0" - } - }, - "@ionic/utils-fs": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-2.0.9.tgz", - "integrity": "sha512-koOcdQlMHLIncPVZYQ+GkBHFhu7CJd0PdzDf9EfQBpOZwY66muS7UAlzVtoeY6tURYYniJlQsmg3auTIgVy9bQ==", - "dev": true, - "requires": { - "debug": "^4.0.0", - "fs-extra": "^8.0.1", - "through2": "^3.0.0", - "tslib": "^1.9.0" - } - }, - "@ionic/utils-process": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-1.0.8.tgz", - "integrity": "sha512-N6T6fwZczPW0+BAxiE6UgrlSXpb2di02D91aRkTM5aX2mQJ3kHI/O7nJ6uasksyipcwr3ou0HWtRMjcu+demYg==", - "dev": true, - "requires": { - "@ionic/utils-object": "1.0.6", - "@ionic/utils-terminal": "1.1.2", - "debug": "^4.0.0", - "lodash": "^4.17.5", - "tree-kill": "1.2.1", - "tslib": "^1.9.0" - } - }, - "@ionic/utils-subprocess": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-1.0.12.tgz", - "integrity": "sha512-up+C4u96xJ4Bnr2R8BehnteUZdROxVVOOxcaghbRd2A4xvPe6pEHK9cAmIIO1qMdDWfz2ET28/AgdqRgpA5wOw==", - "dev": true, - "requires": { - "@ionic/utils-array": "1.2.2", - "@ionic/utils-fs": "2.0.9", - "@ionic/utils-process": "1.0.8", - "@ionic/utils-stream": "2.0.5", - "@ionic/utils-terminal": "1.1.2", - "cross-spawn": "^7.0.0", - "debug": "^4.0.0", - "tslib": "^1.9.0" - } - }, - "@ionic/utils-terminal": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-1.1.2.tgz", - "integrity": "sha512-ODXbta2kvFNkMIEGwl7KX5gJTcZZHkzSLoBh3wND2H+EsG0KpIqOZKWMtkj+suuPut85wyLZ7fGfARnrNf7dtA==", - "dev": true, - "requires": { - "debug": "^4.0.0", - "tslib": "^1.9.0" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.0.tgz", - "integrity": "sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-wsl": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz", - "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==", - "dev": true - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true - }, - "open": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.0.0.tgz", - "integrity": "sha512-K6EKzYqnwQzk+/dzJAQSBORub3xlBTxMz+ntpZpH/LyCa1o6KjXhuN+2npAaI9jaSmU3R1Q8NWf4KUWcyytGsQ==", - "dev": true, - "requires": { - "is-wsl": "^2.1.0" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "rimraf": { + } + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", - "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { + } + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "locate-path": "^3.0.0" } }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "has-flag": "^4.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { - "readable-stream": "2 || 3" + "p-try": "^2.0.0" } }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "isexe": "^2.0.0" + "p-limit": "^2.0.0" } }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true }, - "write-file-atomic": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.1.tgz", - "integrity": "sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw==", + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "find-up": "^3.0.0" } } } }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "init-package-json": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz", + "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", + "dev": true, + "requires": { + "glob": "^7.1.1", + "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^3.0.0" + } + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + } + } + }, + "insight": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/insight/-/insight-0.10.3.tgz", + "integrity": "sha512-YOncxSN6Omh+1Oqxt+OJAvJVMDKw7l6IEG0wT2cTMGxjsTcroOGW4IR926QDzxg/uZHcFZ2cZbckDWdZhc2pZw==", + "dev": true, + "requires": { + "async": "^2.6.2", + "chalk": "^2.4.2", + "conf": "^1.4.0", + "inquirer": "^6.3.1", + "lodash.debounce": "^4.0.8", + "os-name": "^3.1.0", + "request": "^2.88.0", + "tough-cookie": "^3.0.1", + "uuid": "^3.3.2" + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, "ionic-lifecycle-interface": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/ionic-lifecycle-interface/-/ionic-lifecycle-interface-1.0.7.tgz", @@ -10265,28 +12649,45 @@ "integrity": "sha512-cgP+VIr2cTJpMfFyVHTerq6n2jeoiGboVoe3GlaAo5zoSBDAEXORwUZhv6m+lCyxlsHCS3nqPUE+MKyZU71t8Q==" }, "ios-sim": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/ios-sim/-/ios-sim-8.0.2.tgz", - "integrity": "sha512-P7nEG771bfd+JoMRjnis1gpZOkjTUUxu+4Ek1Z+eoaEEoT9byllU9pxfQ8Df7hL3gSkIQxNwTSLhos2I8tWUQA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ios-sim/-/ios-sim-9.0.0.tgz", + "integrity": "sha512-W/SXLL0jbwzErlqghkfBGI9aYTqN6+DAgwForT8O0r2yB4V4AWljAByx8GbMyzTyKnHAQvxpBCgp4PrSwoSCtQ==", + "dev": true, "requires": { - "bplist-parser": "^0.0.6", - "nopt": "1.0.9", + "@oclif/command": "^1.5.18", + "@oclif/config": "^1.13.3", + "@oclif/errors": "^1.2.2", + "@oclif/plugin-help": "^2.2.1", + "bplist-parser": "^0.2.0", + "debug": "^4.1.1", + "nopt": "^4.0.1", "plist": "^3.0.1", - "simctl": "^2" + "simctl": "^2.0.0" }, "dependencies": { "bplist-parser": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz", - "integrity": "sha1-ONo0cYF9+dRKs4kuJ3B7u9daEbk=" + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "requires": { + "big-integer": "^1.6.44" + } }, - "nopt": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.9.tgz", - "integrity": "sha1-O8DXy6e/sNWmdtvtfA6+SKT9RU4=", + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, "requires": { - "abbrev": "1" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true } } }, @@ -10334,6 +12735,12 @@ } } }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", + "dev": true + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -10355,17 +12762,18 @@ "dev": true }, "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true }, "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, "requires": { - "ci-info": "^1.5.0" + "ci-info": "^2.0.0" } }, "is-data-descriptor": { @@ -10389,9 +12797,10 @@ } }, "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true }, "is-descriptor": { "version": "0.1.6", @@ -10418,6 +12827,12 @@ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", "dev": true }, + "is-docker": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz", + "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==", + "dev": true + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -10427,17 +12842,7 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { "version": "2.0.0", @@ -10448,25 +12853,38 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", "dev": true, "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + }, + "dependencies": { + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "dev": true + } } }, - "is-npm": { + "is-interactive": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", "dev": true }, "is-number": { @@ -10490,9 +12908,10 @@ } }, "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true }, "is-path-cwd": { "version": "1.0.0", @@ -10539,37 +12958,27 @@ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", "dev": true }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", - "dev": true - }, "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, "requires": { - "has": "^1.0.1" + "has-symbols": "^1.0.1" } }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "dev": true - }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, "requires": { - "has-symbols": "^1.0.0" + "has-symbols": "^1.0.1" } }, "is-typedarray": { @@ -10578,12 +12987,6 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, - "is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -10596,10 +12999,17 @@ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, "isbinaryfile": { "version": "3.0.3", @@ -10701,57 +13111,10 @@ } } }, - "istanbul-instrumenter-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz", - "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==", - "dev": true, - "requires": { - "convert-source-map": "^1.5.0", - "istanbul-lib-instrument": "^1.7.3", - "loader-utils": "^1.1.0", - "schema-utils": "^0.3.0" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "dev": true, - "requires": { - "ajv": "^5.0.0" - } - } - } - }, "istanbul-lib-coverage": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", - "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", "dev": true }, "istanbul-lib-hook": { @@ -10764,18 +13127,23 @@ } }, "istanbul-lib-instrument": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", - "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.1", - "semver": "^5.3.0" + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "istanbul-lib-report": { @@ -10889,10 +13257,29 @@ "handlebars": "^4.1.2" } }, + "jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "requires": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "dependencies": { + "jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + } + } + }, "jasmine-core": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.5.0.tgz", - "integrity": "sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz", + "integrity": "sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==", "dev": true }, "jasmine-spec-reporter": { @@ -10939,12 +13326,6 @@ } } }, - "js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -10979,6 +13360,12 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -11030,6 +13417,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, "requires": { "graceful-fs": "^4.1.6" } @@ -11041,9 +13429,9 @@ "dev": true }, "jsonschema": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.5.tgz", - "integrity": "sha512-kVTF+08x25PQ0CjuVc0gRM9EUPb0Fe9Ln/utFOgcdxEIOHuU7ooBk/UPTd7t1M91pP35m0MU1T8M5P7vP1bRRw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.6.tgz", + "integrity": "sha512-SqhURKZG07JyKKeo/ir24QnS4/BV7a6gQy93bUSe4lUdNp0QNpIz2c9elWJQ9dpc5cQYY6cvCzgRwy0MQCLyqA==" }, "jsprim": { "version": "1.4.1", @@ -11058,26 +13446,15 @@ } }, "jszip": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz", - "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==", - "dev": true, - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - }, - "dependencies": { - "lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dev": true, - "requires": { - "immediate": "~3.0.5" - } - } + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", + "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", + "dev": true, + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" } }, "karma": { @@ -11262,9 +13639,9 @@ } }, "karma-jasmine-html-reporter": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.4.2.tgz", - "integrity": "sha512-7g0gPj8+9JepCNJR9WjDyQ2RkZ375jpdurYQyAYv8PorUCadepl8vrD6LmMqOGcM17cnrynBawQYZHaumgDjBw==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", + "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", "dev": true }, "karma-safari-launcher": { @@ -11287,6 +13664,15 @@ "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, "killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", @@ -11300,12 +13686,12 @@ "dev": true }, "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", "dev": true, "requires": { - "package-json": "^4.0.0" + "package-json": "^6.3.0" } }, "lcid": { @@ -11372,6 +13758,21 @@ } } }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -11392,6 +13793,15 @@ "webpack-sources": "^1.2.0" } }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "requires": { + "immediate": "~3.0.5" + } + }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", @@ -11432,8 +13842,7 @@ "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, "lodash._baseassign": { "version": "3.2.0", @@ -11480,6 +13889,12 @@ "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", "dev": true }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, "lodash.assign": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", @@ -11532,39 +13947,32 @@ "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", "dev": true }, - "log-update": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-3.3.0.tgz", - "integrity": "sha512-YSKm5n+YjZoGZT5lfmOqasVH1fIH9xQA9A81Y48nZ99PxAP62vdCCtua+Gcu6oTn0nqtZd/LwRV+Vflo53ZDWA==", + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", "dev": true, "requires": { - "ansi-escapes": "^3.2.0", - "cli-cursor": "^2.1.0", - "wrap-ansi": "^5.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - } + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2" } }, "log4js": { @@ -11598,9 +14006,9 @@ } }, "loglevel": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.4.tgz", - "integrity": "sha512-p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g==", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz", + "integrity": "sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==", "dev": true }, "loose-envify": { @@ -11653,32 +14061,32 @@ } }, "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { - "pify": "^3.0.0" + "semver": "^6.0.0" }, "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "make-error": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", - "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, "make-fetch-happen": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.1.tgz", - "integrity": "sha512-b4dfaMvUDR67zxUq1+GN7Ke9rH5WvGRmoHuMH7l+gmUCR2tCXFP6mpeJ9Dp+jB6z8mShRopSf1vLRBhRs8Cu5w==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", + "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", "dev": true, "requires": { "agentkeepalive": "^3.4.1", @@ -11752,39 +14160,46 @@ } }, "mapbox-gl": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.6.0.tgz", - "integrity": "sha512-eCHiC8mDa/pOxSi7Z4s4qFWYN8h2uV3zXn6Yf8znbjlMNuYeusV8o3NZb/3rkL6m6gh+UJJL7KTUAc3tedMblA==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.12.0.tgz", + "integrity": "sha512-B3URR4qY9R/Bx+DKqP8qmGCai8IOZYMSZF7ZSvcCZaYTaOYhQQi8ErTEDZtFMOR0ZPj7HFWOkkhl5SqvDfpJpA==", "requires": { - "@mapbox/geojson-rewind": "^0.4.0", + "@mapbox/geojson-rewind": "^0.5.0", "@mapbox/geojson-types": "^1.0.2", "@mapbox/jsonlint-lines-primitives": "^2.0.2", - "@mapbox/mapbox-gl-supported": "^1.4.0", + "@mapbox/mapbox-gl-supported": "^1.5.0", "@mapbox/point-geometry": "^0.1.0", - "@mapbox/tiny-sdf": "^1.1.0", + "@mapbox/tiny-sdf": "^1.1.1", "@mapbox/unitbezier": "^0.0.0", "@mapbox/vector-tile": "^1.3.1", "@mapbox/whoots-js": "^3.1.0", - "csscolorparser": "~1.0.2", - "earcut": "^2.2.0", + "csscolorparser": "~1.0.3", + "earcut": "^2.2.2", "geojson-vt": "^3.2.1", - "gl-matrix": "^3.0.0", + "gl-matrix": "^3.2.1", "grid-index": "^1.1.0", - "minimist": "0.0.8", + "minimist": "^1.2.5", "murmurhash-js": "^1.0.0", "pbf": "^3.2.1", "potpack": "^1.0.1", "quickselect": "^2.0.0", "rw": "^1.3.3", - "supercluster": "^7.0.0", - "tinyqueue": "^2.0.0", + "supercluster": "^7.1.0", + "tinyqueue": "^2.0.3", "vt-pbf": "^3.1.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + } } }, "md5-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-4.0.0.tgz", - "integrity": "sha512-UC0qFwyAjn4YdPpKaDNw6gNxRf7Mcx7jC1UGCY4boCzgvU2Aoc1mOGzTtrjjLKhM5ivsnhoKpQVxKPp+1j1qwg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-5.0.0.tgz", + "integrity": "sha512-xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw==", "dev": true }, "md5.js": { @@ -11828,17 +14243,32 @@ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "merge2": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", - "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", - "dev": true + "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==" }, "methods": { "version": "1.1.2", @@ -11875,6 +14305,14 @@ "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } } }, "mime": { @@ -11919,6 +14357,19 @@ "normalize-url": "1.9.1", "schema-utils": "^1.0.0", "webpack-sources": "^1.1.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } } }, "minimalistic-assert": { @@ -11947,22 +14398,65 @@ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "minipass": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.5.0.tgz", - "integrity": "sha512-9FwMVYhn6ERvMR8XFdOavRz4QK/VJV8elU1x50vYexf9lslDcWe/f4HBRxCPd185ekRSjU6CfYyJCECa/CQy7Q==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "dev": true, "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.3.tgz", + "integrity": "sha512-cFOknTvng5vqnwOpDsZTWhNll6Jf8o2x+/diplafmxpuIymAjzoOolZG0VvQf3V2HgqzJNhnuKHYp2BqDgz8IQ==", + "dev": true, + "requires": { + "minipass": "^3.0.0" } }, "minizlib": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz", - "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz", + "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==", "dev": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "mississippi": { @@ -12073,7 +14567,8 @@ "version": "2.14.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true + "dev": true, + "optional": true }, "nanomatch": { "version": "1.2.13", @@ -12101,44 +14596,167 @@ "dev": true }, "native-run": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/native-run/-/native-run-0.3.0.tgz", - "integrity": "sha512-Yj7E4wetdDyRYAVjHK/D2xCKgUDvDUws1+YmZS2tkrM1xSzUaYVaMj+cD8WCLc1w2fphR9PXnWaFNG0pljkQMw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/native-run/-/native-run-1.2.2.tgz", + "integrity": "sha512-EMojaKmZ9xo0iZtlIhwSavwaKiDhvxmvF7F+hLtamZMkMfiQQIYFZ+k6H1Rj1EXR4LxhRl53KG0HZVFAWAj9Sw==", "dev": true, "requires": { - "@ionic/utils-fs": "^2.0.0", + "@ionic/utils-fs": "^3.0.0", + "@ionic/utils-terminal": "^2.3.1", + "bplist-parser": "0.2.0", "debug": "^4.1.1", "elementtree": "^0.1.7", "ini": "^1.3.5", - "node-ioslib": "0.0.9", + "plist": "^3.0.1", "split2": "^3.1.0", - "through2": "^3.0.0", - "tslib": "^1.9.3", + "through2": "^4.0.2", + "tslib": "^2.0.1", "yauzl": "^2.10.0" }, "dependencies": { + "@ionic/utils-terminal": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.1.tgz", + "integrity": "sha512-cglsSd2AckI3Ldtdfczeq64vIIDjtPspV5QJtky8f8uIdxkeOIGeRV7bCj1+BEf1hyo+ZuggQxLviHnbMZhiRw==", + "dev": true, + "requires": { + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "slice-ansi": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "tslib": "^2.0.1", + "untildify": "^4.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "requires": { + "big-integer": "^1.6.44" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ms": "^2.1.1" + "ansi-regex": "^5.0.0" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "requires": { + "readable-stream": "3" + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", "dev": true }, - "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { - "readable-stream": "2 || 3" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } } } @@ -12164,7 +14782,8 @@ "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true }, "node-abi": { "version": "2.12.0", @@ -12175,10 +14794,16 @@ "semver": "^5.4.1" } }, + "node-addon-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.0.0.tgz", + "integrity": "sha512-sSHCgWfJ+Lui/u+0msF3oyCgvdkhxDbkCS6Q8uiJquzOimkJBvX6hl5aSSA7DR1XbMpdM8r7phjcF63sF4rkKg==", + "dev": true + }, "node-fetch-npm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", - "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", + "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", "dev": true, "requires": { "encoding": "^0.1.11", @@ -12192,35 +14817,6 @@ "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==", "dev": true }, - "node-ioslib": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/node-ioslib/-/node-ioslib-0.0.9.tgz", - "integrity": "sha512-rHRbH1glQ+mmC8EuBLl89OO/WjicAUszW3OKRzzHdedVyWZ/yD3eg3GzHkaNgWtTwFl/0x29OyC4aQp7LdYlYA==", - "dev": true, - "requires": { - "bplist-parser": "^0.1.1", - "debug": "^4.1.1", - "plist": "^3.0.1", - "tslib": "^1.9.3" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, "node-libs-browser": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", @@ -12261,21 +14857,10 @@ } }, "node-releases": { - "version": "1.1.39", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.39.tgz", - "integrity": "sha512-8MRC/ErwNCHOlAFycy9OPca46fQYUjbJRDcZTHVWIGXIjYLM73k70vv3WkYutVnM4cCo4hE0MqBVVZjP6vjISA==", - "dev": true, - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } + "version": "1.1.60", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz", + "integrity": "sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==", + "dev": true }, "noop-logger": { "version": "0.1.1", @@ -12284,9 +14869,9 @@ "dev": true }, "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", "requires": { "abbrev": "1", "osenv": "^0.1.4" @@ -12341,9 +14926,18 @@ } }, "npm-bundled": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz", - "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", "dev": true }, "npm-package-arg": { @@ -12359,13 +14953,14 @@ } }, "npm-packlist": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.6.tgz", - "integrity": "sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg==", + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", "dev": true, "requires": { "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" } }, "npm-pick-manifest": { @@ -12380,9 +14975,9 @@ } }, "npm-registry-fetch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.2.tgz", - "integrity": "sha512-Z0IFtPEozNdeZRPh3aHHxdG+ZRpzcbQaJLthsm3VhNf6DScicTFRHZzK82u8RsJUsUHkX+QH/zcB/5pmd20H4A==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.5.tgz", + "integrity": "sha512-yQ0/U4fYpCCqmueB2g8sc+89ckQ3eXpmU4+Yi2j5o/r0WkKvE2+Y0tK3DEILAtn2UaQTkjTHxIXe2/CSdit+/Q==", "dev": true, "requires": { "JSONStream": "^1.3.4", @@ -12395,9 +14990,9 @@ }, "dependencies": { "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true } } @@ -12422,6 +15017,15 @@ "set-blocking": "~2.0.0" } }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, "num2fraction": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", @@ -12482,14 +15086,26 @@ } }, "object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + }, + "object-is": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", + "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true }, "object-visit": { "version": "1.0.1", @@ -12513,13 +15129,13 @@ } }, "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, "object.pick": { @@ -12532,47 +15148,9 @@ } }, "objectorarray": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.3.tgz", - "integrity": "sha512-kPoflSYkAf/Onvjr4ZLaq37vDuOXjVzfwLCRuORRzYGdXkHa/vacPT0RgR+KmtkwOYFcxTMM62BRrZk8GGKHjw==", - "requires": { - "tape": "^4.8.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "resolve": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "tape": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.11.0.tgz", - "integrity": "sha512-yixvDMX7q7JIs/omJSzSZrqulOV51EC9dK8dM0TzImTIkHWfe2/kFyL5v+d9C+SrCMaICk59ujsqFAVidDqDaA==", - "requires": { - "deep-equal": "~1.0.1", - "defined": "~1.0.0", - "for-each": "~0.3.3", - "function-bind": "~1.1.1", - "glob": "~7.1.4", - "has": "~1.0.3", - "inherits": "~2.0.4", - "minimist": "~1.2.0", - "object-inspect": "~1.6.0", - "resolve": "~1.11.1", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.1.2", - "through": "~2.3.8" - } - } - } + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.4.tgz", + "integrity": "sha512-91k8bjcldstRz1bG6zJo8lWD7c6QXcB4nTDUqiEvIL1xAsLoZlOOZZG+nd6YPz+V7zY1580J4Xxh1vZtyv4i/w==" }, "obuf": { "version": "1.1.2", @@ -12662,6 +15240,123 @@ "word-wrap": "~1.2.3" } }, + "ora": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.4.tgz", + "integrity": "sha512-77iGeVU1cIdRhgFzCK8aw1fbtT1B/iZAvWjS+l/o1x0RShMgxHUZaD2yDpWsNCPwXg9z1ZA78Kbdvr8kBmG/Ww==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.2.0", + "is-interactive": "^1.0.0", + "log-symbols": "^3.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "original": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", @@ -12716,6 +15411,12 @@ "os-tmpdir": "^1.0.0" } }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, "p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", @@ -12750,10 +15451,13 @@ } }, "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } }, "p-retry": { "version": "3.0.1", @@ -12770,49 +15474,59 @@ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, "pac-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz", - "integrity": "sha512-44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-4.1.0.tgz", + "integrity": "sha512-ejNgYm2HTXSIYX9eFlkvqFp8hyJ374uDf0Zq5YUAifiSh1D6fo+iBivQZirGvVv8dCYUsLhmLBRhlAYvBKI5+Q==", "dev": true, "requires": { - "agent-base": "^4.2.0", - "debug": "^4.1.1", - "get-uri": "^2.0.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^3.0.0", - "pac-resolver": "^3.0.0", + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4", + "get-uri": "3", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "5", + "pac-resolver": "^4.1.0", "raw-body": "^2.2.0", - "socks-proxy-agent": "^4.0.1" + "socks-proxy-agent": "5" }, "dependencies": { + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, - "https-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", - "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" } }, "ms": { @@ -12820,32 +15534,49 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "socks-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4", + "socks": "^2.3.3" + } } } }, "pac-resolver": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz", - "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-4.1.0.tgz", + "integrity": "sha512-d6lf2IrZJJ7ooVHr7BfwSjRO1yKSJMaiiWYSHcrxSIUtZrCa4KKGwcztdkZ/E9LFleJfjoi1yl+XLR7AX24nbQ==", "dev": true, "requires": { - "co": "^4.6.0", - "degenerator": "^1.0.4", + "degenerator": "^2.2.0", "ip": "^1.1.5", - "netmask": "^1.0.6", - "thunkify": "^2.1.2" + "netmask": "^1.0.6" } }, "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", "dev": true, "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "pacote": { @@ -12884,6 +15615,34 @@ "which": "^1.3.1" }, "dependencies": { + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, "npm-pick-manifest": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz", @@ -12894,6 +15653,21 @@ "npm-package-arg": "^6.0.0", "semver": "^5.4.1" } + }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } } } }, @@ -13050,9 +15824,9 @@ } }, "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", "dev": true, "requires": { "create-hash": "^1.1.2", @@ -13071,8 +15845,7 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "picomatch": { "version": "2.0.7", @@ -13101,49 +15874,49 @@ } }, "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { - "find-up": "^3.0.0" + "find-up": "^4.0.0" }, "dependencies": { "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, "p-try": { @@ -13151,6 +15924,12 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true } } }, @@ -13173,15 +15952,10 @@ "xmldom": "0.1.x" } }, - "polarcape-cordova-plugin-document-handler": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/polarcape-cordova-plugin-document-handler/-/polarcape-cordova-plugin-document-handler-1.1.1.tgz", - "integrity": "sha512-W50pCiX39VS08II7dKOxVFAGiMqq1qfi1ylF7zjjydrqqevoMdQ1QArYYjH3GctclhTKM+ab2m9aeS9n544APg==" - }, "portfinder": { - "version": "1.0.25", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", - "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", + "version": "1.0.27", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.27.tgz", + "integrity": "sha512-bJ3U3MThKnyJ9Dx1Idtm5pQmxXqw08+XOHhi/Lie8OF1OlhVaBFhsntAIhkZYjfDcCzszSr0w1yCbccThhzgxQ==", "dev": true, "requires": { "async": "^2.6.2", @@ -13280,12 +16054,25 @@ "postcss": "^7.0.0", "postcss-load-config": "^2.0.0", "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } } }, "postcss-value-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", - "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", "dev": true }, "potpack": { @@ -13294,15 +16081,15 @@ "integrity": "sha512-15vItUAbViaYrmaB/Pbw7z6qX2xENbFSTA7Ii4tgbPtasxm5v6ryKhKtL91tpWovDJzTiZqdwzhcFBCwiMVdVw==" }, "prebuild-install": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.2.tgz", - "integrity": "sha512-INDfXzTPnhT+WYQemqnAXlP7SvfiFMopMozSgXCZ+RDLb279gKfIuLk4o7PgEawLp3WrMgIYGBpkxpraROHsSA==", + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.5.tgz", + "integrity": "sha512-YmMO7dph9CYKi5IR/BzjOJlRzpxGGVo1EsLSUZ0mt/Mq0HWZIHOKHHcHdT69yG54C9m6i45GpItwRHpk0Py7Uw==", "dev": true, "requires": { "detect-libc": "^1.0.3", "expand-template": "^2.0.3", "github-from-package": "0.0.0", - "minimist": "^1.2.0", + "minimist": "^1.2.3", "mkdirp": "^0.5.1", "napi-build-utils": "^1.0.1", "node-abi": "^2.7.0", @@ -13317,10 +16104,21 @@ }, "dependencies": { "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true + }, + "simple-get": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", + "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", + "dev": true, + "requires": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } } } }, @@ -13336,12 +16134,6 @@ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -13351,7 +16143,8 @@ "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true }, "promise": { "version": "7.3.1", @@ -13405,9 +16198,9 @@ } }, "protocol-buffers-schema": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.3.2.tgz", - "integrity": "sha512-Xdayp8sB/mU+sUV4G7ws8xtYMGdQnxbeIfLjyO9TZZRJdztBGhlmbI5x1qcY4TG5hBkIKGnc28i7nXxaugu88w==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.4.0.tgz", + "integrity": "sha512-G/2kcamPF2S49W5yaMGdIpkG6+5wZF0fzBteLKgEHjbNzqjZQ85aAs1iJGto31EJaSTkNvHs5IXuHSaTLWBAiA==" }, "protoduck": { "version": "5.0.1", @@ -13419,9 +16212,9 @@ } }, "protractor": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.2.tgz", - "integrity": "sha512-zlIj64Cr6IOWP7RwxVeD8O4UskLYPoyIcg0HboWJL9T79F1F0VWtKkGTr/9GN6BKL+/Q/GmM7C9kFVCfDbP5sA==", + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.4.tgz", + "integrity": "sha512-BaL4vePgu3Vfa/whvTUAlgaCAId4uNSGxIFSCXMgj7LMYENPWLp85h5RBi9pdpX/bWQ8SF6flP7afmi2TC4eHw==", "dev": true, "requires": { "@types/q": "^0.0.32", @@ -13432,13 +16225,13 @@ "glob": "^7.0.3", "jasmine": "2.8.0", "jasminewd2": "^2.1.0", - "optimist": "~0.6.0", "q": "1.4.1", "saucelabs": "^1.5.0", "selenium-webdriver": "3.6.0", "source-map-support": "~0.4.0", "webdriver-js-extender": "2.1.0", - "webdriver-manager": "^12.0.6" + "webdriver-manager": "^12.0.6", + "yargs": "^12.0.5" }, "dependencies": { "ansi-regex": { @@ -13453,6 +16246,12 @@ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -13466,6 +16265,47 @@ "supports-color": "^2.0.0" } }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, "del": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", @@ -13481,41 +16321,125 @@ "rimraf": "^2.2.8" } }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "p-try": "^2.0.0" } }, - "jasmine": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", - "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "exit": "^0.1.2", - "glob": "^7.0.6", - "jasmine-core": "~2.8.0" + "p-limit": "^2.0.0" } }, - "jasmine-core": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", - "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", - "dev": true - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "q": { @@ -13524,18 +16448,6 @@ "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", "dev": true }, - "selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", - "dev": true, - "requires": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" - } - }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -13566,29 +16478,10 @@ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, - "tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.1" - } - }, - "webdriver-js-extender": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", - "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", - "dev": true, - "requires": { - "@types/selenium-webdriver": "^3.0.0", - "selenium-webdriver": "^3.0.1" - } - }, "webdriver-manager": { - "version": "12.1.6", - "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.6.tgz", - "integrity": "sha512-B1mOycNCrbk7xODw7Jgq/mdD3qzPxMaTsnKIQDy2nXlQoyjTrJTTD0vRpEZI9b8RibPEyQvh9zIZ0M1mpOxS3w==", + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz", + "integrity": "sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA==", "dev": true, "requires": { "adm-zip": "^0.4.9", @@ -13603,6 +16496,36 @@ "semver": "^5.3.0", "xml2js": "^0.4.17" } + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } } } }, @@ -13617,49 +16540,58 @@ } }, "proxy-agent": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.1.1.tgz", - "integrity": "sha512-WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-4.0.0.tgz", + "integrity": "sha512-8P0Y2SkwvKjiGU1IkEfYuTteioMIDFxPL4/j49zzt5Mz3pG1KO+mIrDG1qH0PQUHTTczjwGcYl+EzfXiFj5vUQ==", "dev": true, "requires": { - "agent-base": "^4.2.0", + "agent-base": "^6.0.0", "debug": "4", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^3.0.0", + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", "lru-cache": "^5.1.1", - "pac-proxy-agent": "^3.0.1", + "pac-proxy-agent": "^4.1.0", "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^4.0.1" + "socks-proxy-agent": "^5.0.0" }, "dependencies": { + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" } }, "https-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", - "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } + "agent-base": "6", + "debug": "4" } }, "ms": { @@ -13667,13 +16599,24 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "socks-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4", + "socks": "^2.3.3" + } } } }, "proxy-from-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", - "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, "prr": { @@ -13705,13 +16648,20 @@ "parse-asn1": "^5.0.0", "randombytes": "^2.0.1", "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } } }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -13746,6 +16696,15 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "pupa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz", + "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -13849,30 +16808,6 @@ "requires": { "loader-utils": "^1.1.0", "schema-utils": "^2.0.1" - }, - "dependencies": { - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "schema-utils": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.5.0.tgz", - "integrity": "sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1" - } - } } }, "rc": { @@ -13917,7 +16852,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", - "dev": true, "requires": { "pify": "^4.0.1", "with-open-file": "^0.1.6" @@ -13926,8 +16860,7 @@ "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" } } }, @@ -13986,6 +16919,7 @@ "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -14028,19 +16962,12 @@ "resolve": "^1.1.6" } }, - "redeyed": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-0.4.4.tgz", - "integrity": "sha1-N+mQpvKyGyoRwuakj9QTVpjLqX8=", + "recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", "requires": { - "esprima": "~1.0.4" - }, - "dependencies": { - "esprima": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", - "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" - } + "minimatch": "3.0.4" } }, "reflect-metadata": { @@ -14055,9 +16982,9 @@ "dev": true }, "regenerate-unicode-properties": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", "dev": true, "requires": { "regenerate": "^1.4.0" @@ -14070,12 +16997,12 @@ "dev": true }, "regenerator-transform": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", - "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", "dev": true, "requires": { - "private": "^0.1.6" + "@babel/runtime": "^7.8.4" } }, "regex-not": { @@ -14088,57 +17015,32 @@ "safe-regex": "^1.1.0" } }, - "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", "dev": true, "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, "registry-auth-token": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", - "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz", + "integrity": "sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==", "dev": true, "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" + "rc": "^1.2.8" } }, "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "dev": true, - "requires": { - "rc": "^1.0.1" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", "dev": true, "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } + "rc": "^1.2.8" } }, "remove-trailing-separator": { @@ -14159,15 +17061,6 @@ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, "request": { "version": "2.88.0", "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", @@ -14282,6 +17175,15 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -14292,14 +17194,6 @@ "signal-exit": "^3.0.2" } }, - "resumer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", - "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", - "requires": { - "through": "~2.3.4" - } - }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", @@ -14312,6 +17206,11 @@ "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", "dev": true }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, "rfdc": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", @@ -14352,6 +17251,11 @@ "is-promise": "^2.1.0" } }, + "run-parallel": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" + }, "run-queue": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", @@ -14367,9 +17271,9 @@ "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" }, "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", "requires": { "tslib": "^1.9.0" } @@ -14439,14 +17343,34 @@ "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" }, "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + } } }, "select-hose": { @@ -14455,6 +17379,29 @@ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", "dev": true }, + "selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "requires": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "dependencies": { + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + } + } + }, "selfsigned": { "version": "1.10.7", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", @@ -14470,12 +17417,20 @@ "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" }, "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", "dev": true, "requires": { - "semver": "^5.0.3" + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "semver-dsl": { @@ -14526,10 +17481,13 @@ } }, "serialize-javascript": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz", - "integrity": "sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA==", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } }, "serve-index": { "version": "1.9.1", @@ -14646,47 +17604,30 @@ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "requires": { - "kind-of": "^6.0.2" - } - }, - "sharkdown": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/sharkdown/-/sharkdown-0.1.1.tgz", - "integrity": "sha512-exwooSpmo5s45lrexgz6Q0rFQM574wYIX3iDZ7RLLqOb7IAoQZu9nxlZODU972g19sR69OIpKP2cpHTzU+PHIg==", - "requires": { - "cardinal": "~0.4.2", - "minimist": "0.0.5", - "split": "~0.2.10" - }, - "dependencies": { - "minimist": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.5.tgz", - "integrity": "sha1-16oye87PUY+RBqxrjwA/o7zqhWY=" - } + "kind-of": "^6.0.2" } }, "sharp": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.23.2.tgz", - "integrity": "sha512-BSo0tq6Jtzwa6GDKvVMNNPCP/HLczrFLGVcorYv7OtxlKx4UPHy7x9DdfT8F+PK7FCFDemVRwtsjWpvaJI9v6w==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.25.4.tgz", + "integrity": "sha512-umSzJJ1oBwIOfwFFt/fJ7JgCva9FvrEU2cbbm7u/3hSDZhXvkME8WE5qpaJqLIe2Har5msF5UG4CzYlEg5o3BQ==", "dev": true, "requires": { "color": "^3.1.2", "detect-libc": "^1.0.3", - "nan": "^2.14.0", + "node-addon-api": "^3.0.0", "npmlog": "^4.1.2", - "prebuild-install": "^5.3.2", - "semver": "^6.3.0", - "simple-get": "^3.1.0", - "tar": "^5.0.5", + "prebuild-install": "^5.3.4", + "semver": "^7.3.2", + "simple-get": "^4.0.0", + "tar": "^6.0.2", "tunnel-agent": "^0.6.0" }, "dependencies": { "chownr": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true }, "fs-minipass": { @@ -14717,23 +17658,29 @@ "yallist": "^4.0.0" } }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true }, "tar": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/tar/-/tar-5.0.5.tgz", - "integrity": "sha512-MNIgJddrV2TkuwChwcSNds/5E9VijOiw7kAc1y5hTNJoLDSuIyid2QtLYiCYNnICebpuvjhPQZsXwUL0O3l7OQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz", + "integrity": "sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==", "dev": true, "requires": { - "chownr": "^1.1.3", + "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^3.0.0", "minizlib": "^2.1.0", - "mkdirp": "^0.5.0", + "mkdirp": "^1.0.3", "yallist": "^4.0.0" } }, @@ -14759,9 +17706,9 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "shelljs": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz", - "integrity": "sha1-xUmCuZbHbvDB5rWfvcWCX1txMRM=" + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.2.6.tgz", + "integrity": "sha1-kEktcv/MgVmXa6umL7D2iE8MM3g=" }, "signal-exit": { "version": "3.0.2", @@ -14775,13 +17722,6 @@ "requires": { "shelljs": "^0.2.6", "tail": "^0.4.0" - }, - "dependencies": { - "shelljs": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.2.6.tgz", - "integrity": "sha1-kEktcv/MgVmXa6umL7D2iE8MM3g=" - } } }, "simple-concat": { @@ -14791,14 +17731,31 @@ "dev": true }, "simple-get": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.0.tgz", + "integrity": "sha512-ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ==", "dev": true, "requires": { - "decompress-response": "^4.2.0", + "decompress-response": "^6.0.0", "once": "^1.3.1", "simple-concat": "^1.0.0" + }, + "dependencies": { + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "requires": { + "mimic-response": "^3.1.0" + } + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true + } } }, "simple-plist": { @@ -14855,15 +17812,15 @@ } }, "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -14872,9 +17829,9 @@ }, "dependencies": { "ansi-styles": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.0.tgz", - "integrity": "sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", @@ -14905,9 +17862,9 @@ } }, "smart-buffer": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.2.tgz", - "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", "dev": true }, "snapdragon": { @@ -15128,13 +18085,22 @@ } }, "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", "dev": true, "requires": { "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } } }, "sockjs-client": { @@ -15178,13 +18144,13 @@ } }, "socks": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.2.tgz", - "integrity": "sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", "dev": true, "requires": { - "ip": "^1.1.5", - "smart-buffer": "4.0.2" + "ip": "1.1.5", + "smart-buffer": "^4.1.0" } }, "socks-proxy-agent": { @@ -15311,9 +18277,9 @@ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" }, "spdy": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz", - "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, "requires": { "debug": "^4.1.0", @@ -15370,9 +18336,9 @@ "dev": true }, "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -15391,14 +18357,6 @@ "chalk": "^2.0.1" } }, - "split": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/split/-/split-0.2.10.tgz", - "integrity": "sha1-Zwl8YB1pfOE2j0GPBs0gHPBSGlc=", - "requires": { - "through": "2" - } - }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -15544,9 +18502,9 @@ } }, "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, "streamroller": { @@ -15620,32 +18578,24 @@ "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz", "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==" }, - "string.prototype.trim": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", - "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.0", - "function-bind": "^1.0.2" - } - }, - "string.prototype.trimleft": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.0.0.tgz", - "integrity": "sha1-aLaqjhYsaoDnbjqKDC50cYbicf8=", + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "dev": true, "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.0.2" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" } }, - "string.prototype.trimright": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.0.0.tgz", - "integrity": "sha1-q0pW2AKgH75yk+EehPJNyBZGYd0=", + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "dev": true, "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.0.2" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" } }, "string_decoder": { @@ -15656,6 +18606,12 @@ "safe-buffer": "~5.1.0" } }, + "stringify-package": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", + "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==", + "dev": true + }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", @@ -15683,6 +18639,11 @@ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -15697,30 +18658,6 @@ "requires": { "loader-utils": "^1.2.3", "schema-utils": "^2.0.1" - }, - "dependencies": { - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "schema-utils": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.5.0.tgz", - "integrity": "sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1" - } - } } }, "stylus": { @@ -15780,35 +18717,48 @@ } }, "superagent": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-4.1.0.tgz", - "integrity": "sha512-FT3QLMasz0YyCd4uIi5HNe+3t/onxMyEho7C3PSqmti3Twgy2rXT4fmkTz6wRL6bTF4uzPcfkUCa8u4JWHw8Ag==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-5.3.1.tgz", + "integrity": "sha512-wjJ/MoTid2/RuGCOFtlacyGNxN9QLMgcpYLDQlWFIhhdJ93kNscFonGvrpAHSCVjRVj++DGCglocF7Aej1KHvQ==", "dev": true, "requires": { - "component-emitter": "^1.2.0", + "component-emitter": "^1.3.0", "cookiejar": "^2.1.2", - "debug": "^4.1.0", - "form-data": "^2.3.3", - "formidable": "^1.2.0", - "methods": "^1.1.1", - "mime": "^2.4.0", - "qs": "^6.6.0", - "readable-stream": "^3.0.6" + "debug": "^4.1.1", + "fast-safe-stringify": "^2.0.7", + "form-data": "^3.0.0", + "formidable": "^1.2.2", + "methods": "^1.1.2", + "mime": "^2.4.6", + "qs": "^6.9.4", + "readable-stream": "^3.6.0", + "semver": "^7.3.2" }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" + } + }, + "form-data": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", + "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" } }, "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", "dev": true }, "ms": { @@ -15817,27 +18767,39 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "qs": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", + "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", + "dev": true + }, "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true } } }, "superagent-proxy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/superagent-proxy/-/superagent-proxy-2.0.0.tgz", - "integrity": "sha512-TktJma5jPdiH1BNN+reF/RMW3b8aBTCV7KlLFV0uYcREgNf3pvo7Rdt564OcFHwkGb3mYEhHuWPBhSbOwiNaYw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/superagent-proxy/-/superagent-proxy-2.1.0.tgz", + "integrity": "sha512-DnarpKN6Xn8e3pYlFV4Yvsj9yxLY4q5FIsUe5JvN7vjzP+YCfzXv03dTkZSD2yzrSadsNYHf0IgOUJwKjX457A==", "dev": true, "requires": { "debug": "^3.1.0", - "proxy-agent": "3" + "proxy-agent": "^4.0.0" }, "dependencies": { "debug": { @@ -15858,9 +18820,9 @@ } }, "supercluster": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.0.0.tgz", - "integrity": "sha512-8VuHI8ynylYQj7Qf6PBMWy1PdgsnBiIxujOgc9Z83QvJ8ualIYWNx2iMKyKeC4DZI5ntD9tz/CIwwZvIelixsA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.0.tgz", + "integrity": "sha512-LDasImUAFMhTqhK+cUXfy9C2KTUqJ3gucLjmNLNFmKWOnDUBxLFLH9oKuXOTCLveecmxh8fbk8kgh6Q0gsfe2w==", "requires": { "kdbush": "^3.0.0" } @@ -15879,6 +18841,12 @@ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", "dev": true }, + "systeminformation": { + "version": "4.26.10", + "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-4.26.10.tgz", + "integrity": "sha512-bO4FIzrjESAfh4KHwkUJym3jvKtJ4oJ2PG0BBQGBmKa0pF2oanpkB7CF4ZsSX7vfp3+GKaLzioVwpV/3Tyk+lQ==", + "dev": true + }, "tail": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/tail/-/tail-0.4.0.tgz", @@ -15891,18 +18859,37 @@ "dev": true }, "tar": { - "version": "4.4.10", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz", - "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz", + "integrity": "sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==", "dev": true, "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.5", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "tar-fs": { @@ -15931,9 +18918,9 @@ }, "dependencies": { "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -15944,18 +18931,15 @@ } }, "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "dev": true, - "requires": { - "execa": "^0.7.0" - } + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", + "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==", + "dev": true }, "terser": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.9.tgz", - "integrity": "sha512-NFGMpHjlzmyOtPL+fDw3G7+6Ueh/sz4mkaUYa4lJCxOPTNzd0Uj0aZJOmsDYoSQyfuVoWDMSWTPU3huyOm2zdA==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", + "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -15972,54 +18956,183 @@ } }, "terser-webpack-plugin": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", - "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-3.0.3.tgz", + "integrity": "sha512-bZFnotuIKq5Rqzrs+qIwFzGdKdffV9epG5vDSEbYzvKAhPeR5RbbrQysfPgbIIMhNAQtZD2hGwBfSKUXjXZZZw==", "dev": true, "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^1.7.0", + "cacache": "^15.0.4", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.0.0", + "p-limit": "^2.3.0", + "schema-utils": "^2.6.6", + "serialize-javascript": "^3.1.0", "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" + "terser": "^4.6.13", + "webpack-sources": "^1.4.3" }, "dependencies": { + "cacache": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "dev": true, + "requires": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "dev": true, "requires": { "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-worker": { + "version": "26.1.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.1.0.tgz", + "integrity": "sha512-Z9P5pZ6UC+kakMbNJn+tA2RdVdNX5WH1x+5UCBZ9MxIK24pjYtFt96fK+UwBTrjLYm232g1xz0L3eTh51OW+yQ==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" } }, "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "semver": "^6.0.0" } }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, + "serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true + }, + "ssri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, @@ -16047,7 +19160,8 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true }, "through2": { "version": "2.0.5", @@ -16059,24 +19173,12 @@ "xtend": "~4.0.1" } }, - "thunkify": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", - "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=", - "dev": true - }, "thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true - }, "timers-browserify": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", @@ -16138,6 +19240,12 @@ } } }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -16184,9 +19292,9 @@ } }, "tree-kill": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz", - "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true }, "trim-right": { @@ -16196,9 +19304,9 @@ "dev": true }, "ts-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-6.2.1.tgz", - "integrity": "sha512-Dd9FekWuABGgjE1g0TlQJ+4dFUfYGbYcs52/HQObE0ZmUNjQlmLAS7xXsSzy23AMaMwipsx5sNHvoEpT2CZq1g==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-6.2.2.tgz", + "integrity": "sha512-HDo5kXZCBml3EUPcc7RlZOV/JGlLHwppTLEHb3SHnr5V7NXD4klMEkrhJe5wgRbaWsSXi+Y1SIBN/K9B6zWGWQ==", "dev": true, "requires": { "chalk": "^2.3.0", @@ -16260,22 +19368,40 @@ } }, "ts-node": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.5.4.tgz", - "integrity": "sha512-izbVCRV68EasEPQ8MSIGBNK9dc/4sYJJKYA+IarMQct1RtEot6Xp0bXuClsbUSnKpg50ho+aOAx8en5c+y4OFw==", + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz", + "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==", "dev": true, "requires": { "arg": "^4.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", - "source-map-support": "^0.5.6", - "yn": "^3.0.0" + "source-map-support": "^0.5.17", + "yn": "3.1.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } } }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" }, "tslint": { "version": "5.20.1", @@ -16338,9 +19464,9 @@ } }, "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", "dev": true }, "type-is": { @@ -16439,9 +19565,9 @@ "dev": true }, "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==" + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", + "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==" }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", @@ -16460,15 +19586,15 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", "dev": true }, "unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", "dev": true }, "union-value": { @@ -16502,29 +19628,29 @@ } }, "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, "requires": { - "crypto-random-string": "^1.0.0" + "crypto-random-string": "^2.0.0" } }, "universal-analytics": { - "version": "0.4.20", - "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.20.tgz", - "integrity": "sha512-gE91dtMvNkjO+kWsPstHRtSwHXz0l2axqptGYp5ceg4MsuurloM0PU3pdOfpb5zBXUvyjT4PwhWK2m39uczZuw==", + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", + "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", "dev": true, "requires": { - "debug": "^3.0.0", - "request": "^2.88.0", + "debug": "^4.1.1", + "request": "^2.88.2", "uuid": "^3.0.0" }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" @@ -16535,13 +19661,58 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } } } }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true }, "unorm": { "version": "1.6.0", @@ -16600,12 +19771,6 @@ "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", - "dev": true - }, "upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", @@ -16613,35 +19778,74 @@ "dev": true }, "update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz", + "integrity": "sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==", "dev": true, "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" }, "dependencies": { - "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" } } } @@ -16690,12 +19894,20 @@ } }, "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "^1.0.1" + "prepend-http": "^2.0.0" + }, + "dependencies": { + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + } } }, "use": { @@ -16772,7 +19984,8 @@ "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true }, "uuid-js": { "version": "0.7.5", @@ -16843,14 +20056,25 @@ } }, "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", + "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", "dev": true, "requires": { - "chokidar": "^2.0.2", + "chokidar": "^3.4.1", "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.0" + } + }, + "watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" }, "dependencies": { "chokidar": { @@ -16858,6 +20082,7 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, + "optional": true, "requires": { "anymatch": "^2.0.0", "async-each": "^1.0.1", @@ -16877,7 +20102,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "dev": true, + "optional": true } } }, @@ -16890,11 +20116,30 @@ "minimalistic-assert": "^1.0.0" } }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, "web-animations-js": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/web-animations-js/-/web-animations-js-2.3.2.tgz", "integrity": "sha512-TOMFWtQdxzjWp8qx4DAraTWTsdhxVSiWa6NkPFSaPtZ1diKUxTn4yTix73A1euG1WbSOMMPcY51cnjTIHrGtDA==" }, + "webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "requires": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + } + }, "webpack": { "version": "4.39.2", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.39.2.tgz", @@ -16927,16 +20172,144 @@ }, "dependencies": { "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "terser-webpack-plugin": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz", + "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^3.1.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } } } }, @@ -16981,17 +20354,17 @@ }, "dependencies": { "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", "dev": true } } }, "webpack-dev-server": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz", - "integrity": "sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", "dev": true, "requires": { "ansi-html": "0.0.7", @@ -17002,31 +20375,31 @@ "debug": "^4.1.1", "del": "^4.1.1", "express": "^4.17.1", - "html-entities": "^1.2.1", + "html-entities": "^1.3.1", "http-proxy-middleware": "0.19.1", "import-local": "^2.0.0", "internal-ip": "^4.3.0", "ip": "^1.1.5", "is-absolute-url": "^3.0.3", "killable": "^1.0.1", - "loglevel": "^1.6.4", + "loglevel": "^1.6.8", "opn": "^5.5.0", "p-retry": "^3.0.1", - "portfinder": "^1.0.25", + "portfinder": "^1.0.26", "schema-utils": "^1.0.0", "selfsigned": "^1.10.7", "semver": "^6.3.0", "serve-index": "^1.9.1", - "sockjs": "0.3.19", + "sockjs": "0.3.20", "sockjs-client": "1.4.0", - "spdy": "^4.0.1", + "spdy": "^4.0.2", "strip-ansi": "^3.0.1", "supports-color": "^6.1.0", "url": "^0.11.0", "webpack-dev-middleware": "^3.7.2", "webpack-log": "^2.0.0", "ws": "^6.2.1", - "yargs": "12.0.5" + "yargs": "^13.3.2" }, "dependencies": { "ansi-regex": { @@ -17061,55 +20434,34 @@ "upath": "^1.1.1" } }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } } } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -17119,21 +20471,6 @@ "ms": "^2.1.1" } }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", @@ -17143,21 +20480,12 @@ "locate-path": "^3.0.0" } }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -17168,23 +20496,6 @@ "path-exists": "^3.0.0" } }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -17197,21 +20508,10 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -17232,12 +20532,57 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -17256,6 +20601,34 @@ "has-flag": "^3.0.0" } }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, "ws": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", @@ -17266,29 +20639,27 @@ } }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", + "cliui": "^5.0.0", "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" } }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -17344,27 +20715,20 @@ } }, "websocket-driver": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", - "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", "dev": true, "requires": { - "http-parser-js": ">=0.4.0 <0.4.11", - "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, - "wgs84": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/wgs84/-/wgs84-0.0.0.tgz", - "integrity": "sha1-NP3FVZF7blfPKigu0ENxDASc3HY=" - }, "when": { "version": "3.6.4", "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", @@ -17400,12 +20764,52 @@ } }, "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "dev": true, "requires": { - "string-width": "^2.1.1" + "string-width": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "windows-release": { @@ -17451,7 +20855,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.6.tgz", "integrity": "sha512-SQS05JekbtwQSgCYlBsZn/+m2gpn4zWsqpCYIrCHva0+ojXcnmUEPsBN6Ipoz3vmY/81k5PvYEWSxER2g4BTqA==", - "dev": true, "requires": { "p-finally": "^1.0.0", "p-try": "^2.1.0", @@ -17461,14 +20864,12 @@ "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" } } }, @@ -17544,24 +20945,22 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, "ws": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.1.2.tgz", - "integrity": "sha512-gftXq3XI81cJCgkUiAVixA0raD9IVmXqsylCrjRygw4+UOOGzPoxnQ6r/CnVL9i+mDncJo94tSkyrtuuQVBmrg==", - "dev": true, - "requires": { - "async-limiter": "^1.0.0" - } + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", + "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==", + "dev": true }, "xcode": { "version": "1.1.0", @@ -17574,9 +20973,9 @@ } }, "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", "dev": true }, "xml-escape": { @@ -17645,9 +21044,9 @@ "dev": true }, "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "yargonaut": { @@ -17755,9 +21154,9 @@ "dev": true }, "zone.js": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.9.1.tgz", - "integrity": "sha512-GkPiJL8jifSrKReKaTZ5jkhrMEgXbXYC+IPo1iquBjayRa0q86w3Dipjn8b415jpitMExe9lV8iTsv8tk3DGag==" + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", + "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==" } } } diff --git a/package.json b/package.json index fff5f49f..5f7ae8ce 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "author": "studer-raimann ag", "homepage": "https://studer-raimann.ch/", "private": true, - "version": "4.0.3", + "version": "4.2.0", "scripts": { "start": "ionic cordova emulate", "build:release:ios": "NODE_OPTIONS=--max_old_space_size=4096 ionic cordova build ios --release --prod --device", @@ -26,94 +26,96 @@ "@angular/platform-browser": "^8.2.14", "@angular/platform-browser-dynamic": "^8.2.14", "@angular/router": "^8.2.14", - "@ionic-native/app-version": "^5.18.0", - "@ionic-native/core": "^5.18.0", - "@ionic-native/diagnostic": "^5.18.0", - "@ionic-native/file": "^5.18.0", - "@ionic-native/file-opener": "^5.18.0", - "@ionic-native/http": "^5.18.0", - "@ionic-native/in-app-browser": "^5.25.0", - "@ionic-native/ionic-webview": "^5.25.0", - "@ionic-native/network": "^5.18.0", - "@ionic-native/splash-screen": "^5.18.0", - "@ionic-native/sqlite": "^5.18.0", - "@ionic-native/status-bar": "^5.18.0", - "@ionic-native/unique-device-id": "^5.18.0", - "@ionic-native/zip": "^5.20.0", - "@ionic/angular": "^4.11.6", - "@ngx-translate/core": "^11.0.1", + "@ionic-native/app-version": "^5.29.0", + "@ionic-native/core": "^5.29.0", + "@ionic-native/diagnostic": "^5.29.0", + "@ionic-native/file": "^5.29.0", + "@ionic-native/file-opener": "^5.29.0", + "@ionic-native/http": "^5.29.0", + "@ionic-native/in-app-browser": "^5.29.0", + "@ionic-native/ionic-webview": "^5.29.0", + "@ionic-native/network": "^5.29.0", + "@ionic-native/safari-view-controller": "^5.29.0", + "@ionic-native/splash-screen": "^5.29.0", + "@ionic-native/sqlite": "^5.29.0", + "@ionic-native/status-bar": "^5.29.0", + "@ionic-native/unique-device-id": "^5.29.0", + "@ionic-native/zip": "^5.29.0", + "@ionic/angular": "^4.11.10", + "@ngx-translate/core": "^12.1.2", "@ngx-translate/http-loader": "^4.0.0", - "cordova-android": "^8.1.0", - "cordova-android-support-gradle-release": "^3.0.1", - "cordova-ios": "^5.1.1", - "cordova-plugin-advanced-http": "^2.3.0", + "cordova-android": "^9.0.0", + "cordova-ios": "^6.1.1", + "cordova-plugin-advanced-http": "^3.1.0", + "cordova-plugin-androidx-adapter": "^1.1.1", "cordova-plugin-app-version": "^0.1.9", - "cordova-plugin-file": "^6.0.1", - "cordova-plugin-file-opener2": "^2.2.0", + "cordova-plugin-file": "^6.0.2", + "cordova-plugin-file-opener2": "^3.0.5", "cordova-plugin-geolocation": "^4.0.2", - "cordova-plugin-inappbrowser": "^3.2.0", - "cordova-plugin-ionic-webview": "^4.1.3", + "cordova-plugin-inappbrowser": "^4.0.0", + "cordova-plugin-ionic-webview": "^5.0.0", "cordova-plugin-network-information": "^2.0.2", "cordova-plugin-statusbar": "^2.4.3", "cordova-plugin-video-player": "^1.0.1", "cordova-plugin-whitelist": "^1.3.4", "cordova-plugin-zip": "^3.1.0", - "cordova-sqlite-storage": "^4.0.0", + "cordova-sqlite-storage": "^5.1.0", "cordova-unique-device-id": "^1.3.2", - "cordova.plugins.diagnostic": "^5.0.1", - "core-js": "^3.4.8", + "cordova.plugins.diagnostic": "^6.0.2", + "core-js": "^3.6.5", "http-status-codes": "^1.4.0", "ionic-lifecycle-interface": "^1.0.7", "ionicons": "^4.6.2", - "jsonschema": "^1.2.5", - "mapbox-gl": "^1.6.0", - "polarcape-cordova-plugin-document-handler": "^1.1.0", + "jsonschema": "^1.2.6", + "mapbox-gl": "^1.12.0", "reflect-metadata": "^0.1.13", - "rxjs": "^6.5.2", + "rxjs": "^6.6.2", "text-encoding": "^0.7.0", - "tslib": "^1.10.0", + "tslib": "^1.13.0", "typeorm": "^0.1.21", "uuid-js": "^0.7.5", "web-animations-js": "^2.3.2", - "zone.js": "^0.9.1" + "zone.js": "^0.10.3" }, "devDependencies": { - "@angular-devkit/architect": "^0.803.20", - "@angular-devkit/build-angular": "^0.803.20", - "@angular-devkit/core": "^8.3.20", - "@angular-devkit/schematics": "^8.3.20", - "@angular/cli": "^8.3.20", + "@angular-devkit/architect": "^0.803.29", + "@angular-devkit/build-angular": "^0.803.29", + "@angular-devkit/core": "^8.3.29", + "@angular-devkit/schematics": "^8.3.29", + "@angular/cli": "^8.3.29", "@angular/compiler-cli": "^8.2.14", "@angular/language-service": "^8.2.14", - "@ionic/angular-toolkit": "^2.1.1", - "@ionic/lab": "^2.0.18", - "@types/jasmine": "^3.5.0", - "@types/mapbox-gl": "^1.6.0", - "@types/node": "^12.12.17", + "@ionic/angular-toolkit": "^2.3.3", + "@ionic/cli": "^6.12.1", + "@ionic/lab": "^3.2.9", + "@types/jasmine": "^3.5.14", + "@types/mapbox-gl": "^1.11.2", + "@types/node": "^12.12.54", "@types/uuid-js": "^0.7.1", - "codelyzer": "^5.2.0", + "codelyzer": "^5.2.2", "colors": "^1.4.0", - "cordova": "^9.0.0", + "cordova": "^10.0.0", "cordova-custom-config": "^5.1.0", "cordova-plugin-device": "^2.0.3", - "cordova-plugin-ionic-keyboard": "^2.1.3", - "cordova-plugin-splashscreen": "^5.0.3", - "cordova-res": "^0.8.1", + "cordova-plugin-ionic-keyboard": "^2.2.0", + "cordova-plugin-safariviewcontroller": "^1.6.0", + "cordova-plugin-splashscreen": "^6.0.0", + "cordova-res": "^0.15.1", + "deepmerge": "^4.2.2", "dotenv": "^8.2.0", - "ionic": "^5.4.12", - "ios-sim": "^8.0.2", - "jasmine-core": "^3.5.0", + "ios-sim": "^9.0.0", + "jasmine-core": "^3.6.0", "jasmine-spec-reporter": "~4.2.1", "karma": "^4.4.1", "karma-chrome-launcher": "^3.1.0", "karma-coverage-istanbul-reporter": "^2.1.1", "karma-jasmine": "^2.0.1", - "karma-jasmine-html-reporter": "^1.4.2", + "karma-jasmine-html-reporter": "^1.5.4", "karma-safari-launcher": "^1.0.0", - "native-run": "^0.3.0", - "protractor": "~5.4.0", - "ts-loader": "^6.2.1", - "ts-node": "^8.5.4", + "native-run": "^1.2.2", + "protractor": "^5.4.4", + "ts-loader": "^6.2.2", + "ts-node": "^8.10.2", "tslint": "^5.20.1", "typescript": "~3.5.3", "xml-js": "^1.6.11" @@ -139,10 +141,6 @@ "cordova-plugin-whitelist": {}, "cordova-plugin-statusbar": {}, "cordova-plugin-file": {}, - "polarcape-cordova-plugin-document-handler": {}, - "cordova-android-support-gradle-release": { - "ANDROID_SUPPORT_VERSION": "28.+" - }, "cordova-plugin-app-version": {}, "cordova-plugin-file-opener2": { "ANDROID_SUPPORT_V4_VERSION": "28.+" @@ -152,22 +150,22 @@ "cordova-unique-device-id": {}, "cordova-custom-config": {}, "cordova-plugin-geolocation": {}, - "cordova-plugin-ionic-webview": { - "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+" - }, + "cordova-plugin-ionic-webview": {}, "cordova-plugin-network-information": {}, "cordova.plugins.diagnostic": { - "ANDROID_SUPPORT_VERSION": "28.+" + "ANDROIDX_VERSION": "1.+" }, "cordova-plugin-advanced-http": { - "OKHTTP_VERSION": "3.10.0" + "OKHTTP_VERSION": "3.14.9" }, "cordova-sqlite-storage": {}, - "cordova-plugin-zip": {} + "cordova-plugin-zip": {}, + "cordova-plugin-androidx-adapter": {}, + "cordova-plugin-safariviewcontroller": {} }, "platforms": [ "android", "ios" ] } -} \ No newline at end of file +} diff --git a/src/app/actions/download-and-open-file-external-action.ts b/src/app/actions/download-and-open-file-external-action.ts index 63da6e89..a4a81d99 100644 --- a/src/app/actions/download-and-open-file-external-action.ts +++ b/src/app/actions/download-and-open-file-external-action.ts @@ -1,26 +1,23 @@ /** angular */ -import {AlertController, ModalController} from "@ionic/angular"; +import { AlertController, ModalController } from "@ionic/angular"; +/** misc */ +import { TranslateService } from "@ngx-translate/core"; +import { OfflineException } from "../exceptions/OfflineException"; +import { LoadingPage, LoadingPageType } from "../fallback/loading/loading.component"; +import { ILIASObject } from "../models/ilias-object"; /** models */ -import {Settings} from "../models/settings"; -import {ILIASObject} from "../models/ilias-object"; -import { - ILIASObjectAction, - ILIASObjectActionAlert, - ILIASObjectActionResult, - ILIASObjectActionNoMessage -} from "./object-action"; +import { Settings } from "../models/settings"; +import { FileService } from "../services/file.service"; /** logging */ -import {Log} from "../services/log.service"; -/** misc */ -import {TranslateService} from "@ngx-translate/core"; -import {OfflineException} from "../exceptions/OfflineException"; -import {FileService} from "../services/file.service"; -import {SynchronizationService} from "../services/synchronization.service"; -import {LoadingPage, LoadingPageType} from "../fallback/loading/loading.component"; -import {catchError} from "rxjs/operators"; +import { Logger } from "../services/logging/logging.api"; +import { Logging } from "../services/logging/logging.service"; +import { SynchronizationService } from "../services/synchronization.service"; +import { ILIASObjectAction, ILIASObjectActionAlert, ILIASObjectActionNoMessage, ILIASObjectActionResult } from "./object-action"; export class DownloadAndOpenFileExternalAction extends ILIASObjectAction { + private readonly log: Logger = Logging.getLogger("DownloadAndOpenFileExternalAction"); + constructor( public title: string, public fileObject: ILIASObject, @@ -44,7 +41,7 @@ export class DownloadAndOpenFileExternalAction extends ILIASObjectAction { await loadingPage.present(); try { // Download is only executed if a newer version is available in ILIAS - Log.write(this, "Do we need to download the file first? ", this.fileObject.needsDownload); + this.log.info(() => `Do we need to download the file first? ${this.fileObject.needsDownload}`); if (this.fileObject.needsDownload && this.file.isOffline()) { await loadingPage.dismiss(); return Promise.reject(new OfflineException("File requires download and is offline at the same time.")); diff --git a/src/app/actions/download-file-action.ts b/src/app/actions/download-file-action.ts index 6bcbf193..1d1e6cac 100644 --- a/src/app/actions/download-file-action.ts +++ b/src/app/actions/download-file-action.ts @@ -1,24 +1,21 @@ /** angular */ -import {AlertController} from "@ionic/angular"; +import { AlertController } from "@ionic/angular"; +import { TranslateService } from "@ngx-translate/core"; +import { OfflineException } from "../exceptions/OfflineException"; /** models */ -import {ILIASObject} from "../models/ilias-object"; -import {User} from "../models/user"; -import {Settings} from "../models/settings"; +import { ILIASObject } from "../models/ilias-object"; +import { Settings } from "../models/settings"; +import { User } from "../models/user"; +import { FileService } from "../services/file.service"; /** logging */ -import {Log} from "../services/log.service"; +import { Logger } from "../services/logging/logging.api"; +import { Logging } from "../services/logging/logging.service"; /** misc */ -import { - ILIASObjectActionNoMessage, - ILIASObjectActionResult, - ILIASObjectAction, - ILIASObjectActionAlert -} from "./object-action"; -import {TranslateService} from "@ngx-translate/core"; -import {FileService} from "../services/file.service"; -import {OfflineException} from "../exceptions/OfflineException"; +import { ILIASObjectAction, ILIASObjectActionAlert, ILIASObjectActionNoMessage, ILIASObjectActionResult } from "./object-action"; export class DownloadFileAction extends ILIASObjectAction { + private readonly log: Logger = Logging.getLogger("DownloadFileAction"); constructor(public title: string, public fileObject: ILIASObject, @@ -30,7 +27,7 @@ export class DownloadFileAction extends ILIASObjectAction { async execute(): Promise { // Download is only executed if a newer version is available in ILIAS - Log.write(this, "Do we need to download the file first? ", this.fileObject.needsDownload); + this.log.info(() => `Do we need to download the file first? ${this.fileObject.needsDownload}`); if (this.fileObject.needsDownload && this.file.isOffline()) throw new OfflineException("File requireds download and is offline at the same time."); @@ -79,7 +76,7 @@ export class DownloadFileAction extends ILIASObjectAction { this.file.download(this.fileObject, true).then(() => { resolve(new ILIASObjectActionNoMessage()); }, (error) => { - Log.describe(this, "Could not download file: ", error); + this.log.error(() => `Could not download file: ${JSON.stringify(error)}`); reject(new Error(this.translate.instant("actions.offline_and_no_local_file"))); }); }; diff --git a/src/app/actions/open-object-in-ilias-action.ts b/src/app/actions/open-object-in-ilias-action.ts index 6485519a..a845e8b5 100644 --- a/src/app/actions/open-object-in-ilias-action.ts +++ b/src/app/actions/open-object-in-ilias-action.ts @@ -1,60 +1,111 @@ /** angular */ -import {InjectionToken} from "@angular/core"; -import {ModalController, Platform} from "@ionic/angular"; +import { InjectionToken } from "@angular/core"; +import { SafariViewController } from "@ionic-native/safari-view-controller/ngx"; +import { ModalController, Platform } from "@ionic/angular"; /** ionic-native */ -import {InAppBrowser, InAppBrowserOptions} from "@ionic-native/in-app-browser/ngx"; +import { InAppBrowser, InAppBrowserOptions } from "@ionic-native/in-app-browser/ngx"; /** logging */ -import {Logger} from "../services/logging/logging.api"; -import {Logging} from "../services/logging/logging.service"; +import { Logger } from "../services/logging/logging.api"; +import { Logging } from "../services/logging/logging.service"; /** misc */ -import {ILIASObjectAction, ILIASObjectActionAlert, ILIASObjectActionResult, ILIASObjectActionNoMessage} from "./object-action"; -import {Builder} from "../services/builder.base"; -import {IllegalStateError} from "../error/errors"; -import {LeaveAppAction, LeaveAppDialog, LeaveAppDialogNavParams} from "../fallback/open-browser/leave-app.dialog"; +import { ILIASObjectAction, ILIASObjectActionAlert, ILIASObjectActionResult, ILIASObjectActionNoMessage } from "./object-action"; +import { Builder } from "../services/builder.base"; +import { IllegalStateError } from "../error/errors"; +import { LeaveAppAction, LeaveAppDialog, LeaveAppDialogNavParams } from "../fallback/open-browser/leave-app.dialog"; export class OpenObjectInILIASAction extends ILIASObjectAction { private readonly log: Logger = Logging.getLogger(OpenObjectInILIASAction.name); + private openDialog: Promise | undefined = undefined; constructor( readonly title: string, private readonly target: Builder>, private readonly browser: InAppBrowser, private readonly platform: Platform, - private readonly modal: ModalController - ) { super() } + private readonly modal: ModalController, + private readonly safariViewController: SafariViewController, + ) { + super() + } async execute(): Promise { const ilasLink: string = await this.target.build(); - if(this.platform.is("android")) this.openUserDialog(() => this.openBrowserAndroid(ilasLink)); - else if(this.platform.is("ios")) this.openUserDialog(() => this.openBrowserIos(ilasLink)); + if (this.platform.is("android")) this.openUserDialog(() => this.openBrowserAndroid(ilasLink)); + else if (this.platform.is("ios")) this.openUserDialog(() => this.openBrowserIos(ilasLink)); else throw new IllegalStateError("Unsupported platform, unable to open browser for unsupported platform."); return new ILIASObjectActionNoMessage(); } - private openUserDialog(leaveAction: LeaveAppAction): void { + private async openUserDialog(leaveAction: LeaveAppAction): Promise { + if (this.openDialog !== undefined) { + return; + } + this.log.debug(() => "Open leave app modal."); - this.modal.create({ + + // Safe modal ref before resolving promise, which stops the user from opening it more than once + this.openDialog = this.modal.create({ component: LeaveAppDialog, - componentProps: {leaveApp: leaveAction}, + componentProps: { + leaveApp: (): void => { + this.modal.dismiss(); + leaveAction(); + } + }, cssClass: "modal-fullscreen", - }).then((it: HTMLIonModalElement) => it.present()); + }); + const modal: HTMLIonModalElement = await this.openDialog; + await modal.present(); + await modal.onDidDismiss(); + this.openDialog = undefined; } - private openBrowserIos(link: string): void { - this.log.trace(() => "Open ios browser (internal)."); + private async openBrowserIos(link: string): Promise { this.log.trace(() => `Navigate to url: ${link}`); - const options: InAppBrowserOptions = { - location: "no", - clearcache: "yes", - clearsessioncache: "yes" - }; + const sfViewControllerAvailable: boolean = await this.safariViewController.isAvailable(); + + const uri: string = encodeURI(link); + if (sfViewControllerAvailable) { + // Use SFViewController + this.log.trace(() => "Open ios browser (SFViewController)."); + this.safariViewController.show({ + url: uri, + hidden: false, + animated: true, + transition: "curl", + enterReaderModeIfAvailable: false, + tintColor: getComputedStyle(document.body).getPropertyValue("--ion-color-primary-tint") + }).subscribe((result: {event: string}) => { + switch (result.event) { + case "opened": + this.log.debug(() => "SFViewController open event") + break; + case "loaded": + this.log.debug(() => "SFViewController open event") + break; + case "closed": + this.log.debug(() => "SFViewController open event") + break; + } + }, + (error: unknown) => console.error(() => `Encountered error while opening SFViewController: ${JSON.stringify(error)}`) + ); + } else { + // Use WKWebView + this.log.trace(() => "Open ios browser (WKWebView)."); + const options: InAppBrowserOptions = { + location: "no", + clearcache: "yes", + clearsessioncache: "yes" + }; - //encode url or the browser will be stuck in a loading screen of death as soon as it reads the | character. (20.02.18) - this.browser.create(encodeURI(link), "_blank", options); + //encode url or the browser will be stuck in a loading screen of death as soon as it reads the | character. (20.02.18) + this.browser.create(uri, "_blank", options); + } } @@ -70,7 +121,7 @@ export class OpenObjectInILIASAction extends ILIASObjectAction { this.browser.create(encodeURI(link), "_system", options); } - alert(): ILIASObjectActionAlert|undefined { + alert(): ILIASObjectActionAlert | undefined { return undefined; } } diff --git a/src/app/actions/remove-local-files-action.ts b/src/app/actions/remove-local-files-action.ts index d176d194..595a08b3 100644 --- a/src/app/actions/remove-local-files-action.ts +++ b/src/app/actions/remove-local-files-action.ts @@ -1,16 +1,16 @@ import {ILIASObject} from "../models/ilias-object"; import {ILIASObjectAction, ILIASObjectActionAlert, ILIASObjectActionSuccess, ILIASObjectActionResult} from "./object-action"; -import {FileService} from "../services/file.service"; import {TranslateService} from "@ngx-translate/core"; +import {UserStorageService} from "../services/filesystem/user-storage.service"; export class RemoveLocalFilesAction extends ILIASObjectAction { - constructor(public title: string, public containerObject: ILIASObject, public file: FileService, public translate: TranslateService) { + constructor(public title: string, public containerObject: ILIASObject, public userStorage: UserStorageService, public translate: TranslateService) { super(); } async execute(): Promise { - await this.file.removeRecursive(this.containerObject); + await this.userStorage.removeRecursive(this.containerObject); return new ILIASObjectActionSuccess(this.translate.instant("actions.removed_local_files")); } diff --git a/src/app/actions/unmark-as-favorite-action.ts b/src/app/actions/unmark-as-favorite-action.ts index a6dd2887..3f6ab78c 100644 --- a/src/app/actions/unmark-as-favorite-action.ts +++ b/src/app/actions/unmark-as-favorite-action.ts @@ -1,20 +1,20 @@ import {ILIASObject} from "../models/ilias-object"; -import {FileService} from "../services/file.service"; import {ILIASObjectAction, ILIASObjectActionAlert, ILIASObjectActionNoMessage, ILIASObjectActionResult} from "./object-action"; +import {UserStorageService} from "../services/filesystem/user-storage.service"; export class UnMarkAsFavoriteAction extends ILIASObjectAction { constructor( public title: string, public object: ILIASObject, - public file: FileService + public userStorage: UserStorageService ) { super(); } async execute(): Promise { // if the object is currently downloading, the syncService will execute the removal - if(this.object.isFavorite !== 2) await this.object.removeFromFavorites(this.file); + if(this.object.isFavorite !== 2) await this.object.removeFromFavorites(this.userStorage); else await this.object.setIsFavorite(0); return new ILIASObjectActionNoMessage(); } diff --git a/src/app/app-initialisation.ts b/src/app/app-initialisation.ts new file mode 100644 index 00000000..2300a728 --- /dev/null +++ b/src/app/app-initialisation.ts @@ -0,0 +1,164 @@ +import { APP_INITIALIZER, FactoryProvider, Inject, Injectable } from "@angular/core"; +import { Network } from "@ionic-native/network/ngx"; +import { SQLite } from "@ionic-native/sqlite/ngx"; +import { StatusBar } from "@ionic-native/status-bar/ngx"; +import { Platform } from "@ionic/angular"; +import { TranslateService } from "@ngx-translate/core"; +import { getConnection } from "typeorm/browser"; +import { PEGASUS_CONNECTION_NAME } from "./config/typeORM-config"; +import { Settings } from "./models/settings"; +import { User } from "./models/user"; +import { AuthenticationProvider } from "./providers/authentication.provider"; +import { SQLiteDatabaseService } from "./services/database.service"; +import { Database } from "./services/database/database"; +import { DB_MIGRATION, DBMigration } from "./services/migration/migration.api"; + +@Injectable({ + providedIn: "root" +}) +export class AppInitialisation { + + private readonly FALLBACK_LANGUAGE: string = "de"; + private readonly SUPPORTED_LANGUAGES: Set = new Set(["de", "fr", "en", "it"]); + + constructor( + private readonly platform: Platform, + private readonly sqlite: SQLite, + private readonly network: Network, + private readonly database: Database, + @Inject(DB_MIGRATION) private readonly migration: DBMigration, + private readonly translate: TranslateService, + private readonly statusBar: StatusBar + ) { + } + + async init(): Promise { + await this.platform.ready(); + this.configureStatusBar(); + await this.initDatabase(); + this.initStaticSettingsMember(); + this.initStaticLegacyDatabaseMembers(); + await this.loadUser(); + await this.bootstrapLanguage(); + } + + private initStaticSettingsMember(): void { + Settings.NETWORK = this.network; + } + + private initStaticLegacyDatabaseMembers(): void { + SQLiteDatabaseService.connection = getConnection(PEGASUS_CONNECTION_NAME); + } + + private async loadUser(): Promise { + await AuthenticationProvider.loadUserFromDatabase(); + } + + private async initDatabase(): Promise { + await this.database.ready(PEGASUS_CONNECTION_NAME); + await this.migration.migrate(); + } + + private async bootstrapLanguage(): Promise { + if(AuthenticationProvider.isLoggedIn()) { + const user: User = AuthenticationProvider.getUser(); + const setting: Settings = await Settings.findByUserId(user.id); + this.translate.use(setting.language); + } else { + // get the language of the navigator an check if it is supported. default is de + const language: string = !!navigator.language ? navigator.language : this.FALLBACK_LANGUAGE; + const languages: ReadonlyArray = !!navigator.languages && navigator.languages.length > 0 ? + navigator.languages : [this.FALLBACK_LANGUAGE]; + + const browserLanguages: Set = Intl + // @ts-ignore (TS 3.5 does not have a type dev for this intl function) + .getCanonicalLocales([language, ...languages]) + .map((it) => it.split("-")[0]) + .reduceRight((col, child) => col.add(child), new Set()); // Sets in js are ordered + + let lng: string = this.FALLBACK_LANGUAGE; + for (const langCode of browserLanguages) { + if (this.SUPPORTED_LANGUAGES.has(langCode)) { + lng = langCode; + break; + } + } + this.translate.use(lng); + } + this.translate.setDefaultLang(this.FALLBACK_LANGUAGE); + } + + private configureStatusBar(): void { + this.statusBar.styleLightContent(); + } +} + +/* +export const INIT_APP: FactoryProvider = { + provide: APP_INITIALIZER, + useFactory: ( + platform: Platform, + sqlite: SQLite, + network: Network, + database: Database, + migration: DBMigration, + translate: TranslateService, + statusBar: StatusBar + ): (() => Promise) => async(): Promise => { + // cordova ready + await platform.ready(); + + // Set members on classes which are not injectable + Settings.NETWORK = network; + SQLiteDatabaseService.SQLITE = sqlite; + + await database.ready(PEGASUS_CONNECTION_NAME); + await migration.migrate(); + + await AuthenticationProvider.loadUserFromDatabase(); + + if(AuthenticationProvider.isLoggedIn()) { + const user: User = AuthenticationProvider.getUser(); + const setting: Settings = await Settings.findByUserId(user.id); + translate.use(setting.language); + } else { + // get the language of the navigator an check if it is supported. default is de + const language: string = !!navigator.language ? navigator.language : FALLBACK_LANGUAGE; + const languages: ReadonlyArray = !!navigator.languages && navigator.languages.length > 0 ? + navigator.languages : [FALLBACK_LANGUAGE]; + + const browserLanguages: Set = Intl + // @ts-ignore (TS 3.5 does not have a type dev for this intl function) + .getCanonicalLocales([language, ...languages]) + .map((it) => it.split("-")[0]) + .reduceRight((col, child) => col.add(child), new Set()); // Sets in js are ordered + + let lng: string = FALLBACK_LANGUAGE; + for (const langCode of browserLanguages) { + if (SUPPORTED_LANGUAGES.has(langCode)) { + lng = langCode; + break; + } + } + translate.use(lng); + } + translate.setDefaultLang(FALLBACK_LANGUAGE); + + statusBar.styleLightContent(); + }, + deps: [ + AppInitialisation + ], + multi: true +}; + */ +export const INIT_APP: FactoryProvider = { + provide: APP_INITIALIZER, + useFactory: ( + app: AppInitialisation + ): (() => Promise) => app.init.bind(app), + deps: [ + AppInitialisation + ], + multi: true +}; diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index bacdb093..ee22a138 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -7,14 +7,16 @@ const routes: Routes = [ {path: "", redirectTo: "tabs", pathMatch: "full"}, {path: "tabs", loadChildren: "./tabs/tabs.module#TabsPageModule", canActivate: [AuthenticationProvider]}, {path: "login", loadChildren: "./pages/login/login.module#LoginPageModule"}, + {path: "onboarding", loadChildren: "./pages/onboarding/onboarding.module#OnboardingPageModule"}, {path: "learnplace/:id", loadChildren: "./learnplace/learnplace.module#LearnplaceModule", canActivate: [AuthenticationProvider]}, - {path: "**", redirectTo: "login"} + {path: "learningmodule", loadChildren: "./learningmodule/learning-module.module#LearningModuleModule", canActivate: [AuthenticationProvider]}, + {path: "**", redirectTo: "login"}, ]; @NgModule({ imports: [RouterModule.forRoot(routes, { - enableTracing: isDevMode(), - relativeLinkResolution: "corrected" + relativeLinkResolution: "corrected", + enableTracing: isDevMode() }), ], //, {enableTracing: true} exports: [RouterModule], diff --git a/src/app/app.component.html b/src/app/app.component.html index 13b96776..f2787955 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,3 +1,3 @@ - + diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 9a3b3183..36717418 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,33 +1,30 @@ /** angular */ -import {Component, Inject, NgZone} from "@angular/core"; -import {Config, Events, ModalController, NavController, Platform, ToastController} from "@ionic/angular"; -import {Router} from "@angular/router"; +import { Component } from "@angular/core"; +import { Router } from "@angular/router"; +import { AppVersion } from "@ionic-native/app-version/ngx"; /** ionic-native */ -import {Network} from "@ionic-native/network/ngx"; -import {SplashScreen} from "@ionic-native/splash-screen/ngx"; -import {SQLite} from "@ionic-native/sqlite/ngx"; -import {StatusBar} from "@ionic-native/status-bar/ngx"; -import {AppVersion} from "@ionic-native/app-version/ngx"; -/** services */ -import {SQLiteDatabaseService} from "./services/database.service"; -import {Database} from "./services/database/database"; -import {FooterToolbarService} from "./services/footer-toolbar.service"; -import {Logger} from "./services/logging/logging.api"; -import {Logging} from "./services/logging/logging.service"; -import {DB_MIGRATION, DBMigration} from "./services/migration/migration.api"; -import {SynchronizationService} from "./services/synchronization.service"; +import { SplashScreen } from "@ionic-native/splash-screen/ngx"; +import { ModalController, NavController, Platform, ToastController } from "@ionic/angular"; +import { TranslateService } from "@ngx-translate/core"; /** models */ -import {Settings} from "./models/settings"; -import {User} from "./models/user"; -import {TranslateService} from "@ngx-translate/core"; -import {PEGASUS_CONNECTION_NAME} from "./config/typeORM-config"; -import {OnboardingPage} from "./pages/onboarding/onboarding"; -import {AuthenticationProvider} from "./providers/authentication.provider"; -import {ObjectListPage} from "./pages/object-list/object-list"; -import {ThemeProvider} from "./providers/theme/theme.provider"; +import { Settings } from "./models/settings"; +import { User } from "./models/user"; +import { ObjectListPage } from "./pages/object-list/object-list"; +import { AuthenticationProvider } from "./providers/authentication.provider"; +import { NetworkProvider } from "./providers/network.provider"; +import { ThemeProvider } from "./providers/theme/theme.provider"; +import { Logger } from "./services/logging/logging.api"; +import { Logging } from "./services/logging/logging.service"; +import { SynchronizationService } from "./services/synchronization.service"; /** misc */ import getMessage = Logging.getMessage; +interface NavigatorSplashScreen { + splashscreen: { + hide(): void; + } +} + @Component({ selector: "app-root", templateUrl: "app.component.html" @@ -46,114 +43,85 @@ export class AppComponent { * the current app architecture. This will be changed on release 2.0.0. */ constructor( - readonly footerToolbar: FooterToolbarService, - private readonly navCtrl: NavController, private readonly router: Router, - private readonly events: Events, - private readonly platform: Platform, - private readonly translate: TranslateService, - private readonly toast: ToastController, private readonly sync: SynchronizationService, - private readonly statusBar: StatusBar, - private readonly network: Network, private readonly splashScreen: SplashScreen, - private readonly database: Database, private readonly modal: ModalController, - private readonly config: Config, private readonly auth: AuthenticationProvider, private readonly appVersionPlugin: AppVersion, - private readonly ngZone: NgZone, private readonly themeProvider: ThemeProvider, - @Inject(DB_MIGRATION) private readonly dbMigration: DBMigration, - sqlite: SQLite + private readonly platform: Platform, + private readonly navCtrl: NavController, + private readonly toastCtrl: ToastController, + private readonly translate: TranslateService, + private readonly networkProvider: NetworkProvider, ) { - // Set members on classes which are not injectable - Settings.NETWORK = this.network; - SQLiteDatabaseService.SQLITE = sqlite; - - // init after platform is ready and native stuff is available - this.platform.ready().then(() => { - this.initializeApp(); - this.log.info(() => "Platform is ready"); - }).catch((error) => { - const message: string = getMessage(error, `Error occurred: \n${JSON.stringify(error)}`); - const errorType: string = (error instanceof Error) ? error.name : "N/a"; - this.log.warn(() => `Could not initialize app. Error type: ${errorType} Message: ${message}`) - }); + this.splashScreen.hide(); + this.initializeApp(); } /** * Initialize everything that has to be done on start up. */ private async initializeApp(): Promise { - this.log.info(() => "Initialize app"); - // database - await this.database.ready(PEGASUS_CONNECTION_NAME); - await this.dbMigration.migrate(); - // user and login-dependent features - await AuthenticationProvider.loadUserFromDatabase(); - this.user = AuthenticationProvider.getUser(); + try { + this.log.debug(() => "Initialize app component"); - await this.configureTranslation(); + this.user = AuthenticationProvider.getUser(); - if(AuthenticationProvider.isLoggedIn()) { - await this.sync.resetOfflineSynchronization(true); - await this.themeProvider.loadResources(); - await this.navCtrl.navigateRoot("tabs"); - } else { - await this.presentOnboardingModal(); - } + await this.initBackButton(); - // style and navigation - this.statusBar.styleLightContent(); - this.initializeBackButton(); + // This function call may logs the user out, therefore re validate if user is logged in afterwards + await this.validateUserLoginSessionVersion(); + + if(AuthenticationProvider.isLoggedIn()) { + // await this.sync.resetOfflineSynchronization(true); + await this.themeProvider.synchronizeAndSetCustomTheme(); + await this.startDownloadingOfflineContent(); + } else { + await this.presentOnboardingModal(); + } + // Network events + this.networkProvider.initNetworkEvents(); + + this.log.info(() => "App component init successful"); + } catch (error) { + const message: string = getMessage(error, `Error occurred: \n${JSON.stringify(error)}`); + const errorType: string = (error instanceof Error) ? error.name : "N/a"; + this.log.fatal(() => `Could not initialize app. Error type: ${errorType} Message: ${message}`) + } finally { + this.log.trace(() => "Hide splash screen"); + ((navigator as unknown) as NavigatorSplashScreen).splashscreen.hide(); + } + } + + private async validateUserLoginSessionVersion(): Promise { if(AuthenticationProvider.isLoggedIn()) { + this.log.debug(() => "Validate user login session version"); const currentAppVersion: string = await this.appVersionPlugin.getVersionNumber(); if(this.user.lastVersionLogin !== currentAppVersion) { await this.auth.logout(); - return; + this.log.info(() => "Old user session detected logout user"); } - - const settings: Settings = await Settings.findByUserId(this.user.id); - if(settings.downloadOnStart && window.navigator.onLine) this.sync.loadAllOfflineContent(); } - - this.splashScreen.hide(); } - /** - * Configures the {@link TranslateService} depending on the given - */ - private async configureTranslation(): Promise { - if(AuthenticationProvider.isLoggedIn()) { - const setting: Settings = await Settings.findByUserId(this.user.id); - this.translate.use(setting.language); - } else { - // get the language of the navigator an check if it is supported. default is de - let lng: string = "de"; - const navLng: string = navigator.language.split("-")[0]; - ["de", "en", "it"].forEach(s => {if(navLng.match(`/${s}/i`)) lng = s;}); - this.translate.use(lng); - } - this.translate.setDefaultLang("de"); + private async startDownloadingOfflineContent(): Promise { + this.log.debug(() => "Start downloading offline content if user activated the option"); + const settings: Settings = await Settings.findByUserId(this.user.id); + if(settings.downloadOnStart && window.navigator.onLine) this.sync.loadAllOfflineContent(); } /** * displays the introduction-slides */ - async presentOnboardingModal(): Promise { - await this.modal.create({ - component: OnboardingPage, - cssClass: "modal-fullscreen", - }).then((it: HTMLIonModalElement) => it.present()); + private async presentOnboardingModal(): Promise { + await this.navCtrl.navigateRoot(["/onboarding"]); } - /** - * Registers actions for the back button. - */ - private initializeBackButton(): void { + private async initBackButton(): Promise { let backButtonTapped: boolean = false; this.platform.backButton.subscribeWithPriority(0, () => { @@ -206,10 +174,10 @@ export class AppComponent { setTimeout(() => { backButtonTapped = false; }, 3000); - this.toast.create({ + this.toastCtrl.create({ message: this.translate.instant("message.back_to_exit"), duration: 3000 - }).then(function(it) { return it.present(); }); + }).then((it: HTMLIonToastElement) => it.present()); break; case "close": @@ -229,7 +197,5 @@ export class AppComponent { this.navCtrl.back(); } }); - - this.config.set("backButtonText", this.translate.instant("back")); } } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 2e93fcdd..82c38b24 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,102 +1,82 @@ -import {OnboardingPageModule} from "./pages/onboarding/onboarding.module"; -import {AppComponent} from "./app.component"; -/** angular */ -import {IonicModule, IonicRouteStrategy, ModalController, NavController, Platform} from "@ionic/angular"; -import {RouteReuseStrategy} from "@angular/router"; -import {FormsModule} from "@angular/forms"; -import {HttpClient, HttpClientModule, XhrFactory} from "@angular/common/http"; -import {ClassProvider, ErrorHandler, FactoryProvider, NgModule} from "@angular/core"; -import {BrowserModule} from "@angular/platform-browser"; -import {BrowserAnimationsModule} from "@angular/platform-browser/animations"; +import { HttpClient, HttpClientModule, XhrFactory } from "@angular/common/http"; +import { ClassProvider, ErrorHandler, FactoryProvider, NgModule } from "@angular/core"; +import { FormsModule } from "@angular/forms"; +import { BrowserModule } from "@angular/platform-browser"; +import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; +import { RouteReuseStrategy } from "@angular/router"; +import { AppVersion } from "@ionic-native/app-version/ngx"; /** ionic-native */ -import {Diagnostic} from "@ionic-native/diagnostic/ngx"; -import {File} from "@ionic-native/file/ngx"; -import {HTTP} from "@ionic-native/http/ngx"; -import {InAppBrowser} from "@ionic-native/in-app-browser/ngx"; -import {Network} from "@ionic-native/network/ngx"; -import {SplashScreen} from "@ionic-native/splash-screen/ngx"; -import {SQLite} from "@ionic-native/sqlite/ngx"; -import {StatusBar} from "@ionic-native/status-bar/ngx"; -import {AppVersion} from "@ionic-native/app-version/ngx"; -import {TranslateService, TranslateModule, TranslateLoader, MissingTranslationHandler} from "@ngx-translate/core"; -import {Zip} from "@ionic-native/zip/ngx"; -import {TranslateHttpLoader} from "@ngx-translate/http-loader"; +import { Diagnostic } from "@ionic-native/diagnostic/ngx"; +import { FileOpener } from "@ionic-native/file-opener/ngx"; +import { File } from "@ionic-native/file/ngx"; +import { HTTP } from "@ionic-native/http/ngx"; +import { InAppBrowser } from "@ionic-native/in-app-browser/ngx"; +import { WebView } from "@ionic-native/ionic-webview/ngx"; +import { Network } from "@ionic-native/network/ngx"; +import { SafariViewController } from "@ionic-native/safari-view-controller/ngx"; +import { SplashScreen } from "@ionic-native/splash-screen/ngx"; +import { SQLite } from "@ionic-native/sqlite/ngx"; +import { StatusBar } from "@ionic-native/status-bar/ngx"; +import { UniqueDeviceID } from "@ionic-native/unique-device-id/ngx"; +import { Zip } from "@ionic-native/zip/ngx"; +/** angular */ +import { IonicModule, IonicRouteStrategy, ModalController, NavController, Platform } from "@ionic/angular"; +import { MissingTranslationHandler, TranslateLoader, TranslateModule, TranslateService } from "@ngx-translate/core"; +import { TranslateHttpLoader } from "@ngx-translate/http-loader"; +import { OPEN_OBJECT_IN_ILIAS_ACTION_FACTORY, OpenObjectInILIASAction } from "./actions/open-object-in-ilias-action"; +import { INIT_APP } from "./app-initialisation"; +import { AppRoutingModule } from "./app-routing.module"; +import { AppComponent } from "./app.component"; +import { IlObjIconComponent } from "./components/icon/il-obj-icon.component"; +/** configs */ +import { CONFIG_PROVIDER, ILIASConfigProvider } from "./config/ilias-config"; +import { Oauth2DataSupplierImpl, TokenResponseConsumerImpl } from "./config/ilias.rest-config"; +import { TypeORMConfigurationAdapter } from "./config/typeORM-config"; +/** misc */ +import { PegasusErrorHandler } from "./error-handler"; +// below: unused pages +import { LoadingPage } from "./fallback/loading/loading.component"; +import { LocationFallbackScreen } from "./fallback/location/location-fallback.component"; /** pages and screens */ // import {OnboardingPage} from "./pages/onboarding/onboarding"; -import {LeaveAppDialog} from "./fallback/open-browser/leave-app.dialog"; -// below: unused pages -import {LoadingPage} from "./fallback/loading/loading.component"; -import {HardwareFeaturePage} from "./pages/test-hardware-feature/test-hardware-feature"; -import {RoamingFallbackScreen} from "./fallback/roaming/roaming-fallback.component"; -import {WifiFallbackScreen} from "./fallback/wifi/wifi-fallback.component"; -import {LocationFallbackScreen} from "./fallback/location/location-fallback.component"; -//import {SyncFinishedModal} from "./pages/sync-finished-modal/sync-finished-modal"; -//import {TestPage} from "./pages/test/test"; -/** services */ -import {Builder} from "./services/builder.base"; -import {Database} from "./services/database/database"; -import {DATABASE_CONFIGURATION_ADAPTER, DatabaseConnectionRegistry} from "./services/database/database.api"; -import {GeolocationModule} from "./services/device/geolocation/geolocation.module"; -import {DiagnosticUtil} from "./services/device/hardware-features/diagnostics.util"; -import {Hardware} from "./services/device/hardware-features/hardware-feature.service"; -import {CssStyleService} from "./services/theme/css-style.service"; -import {FileService} from "./services/file.service"; -import {FilesystemModule} from "./services/filesystem/filesystem.module"; -import {FooterToolbarService} from "./services/footer-toolbar.service"; -import {PegasusMissingTranslationHandler} from "./services/language/translation-missing-handler"; -import {DEFAULT_LINK_BUILDER, DefaultLinkBuilder, DefaultLinkBuilderImpl} from "./services/link/default.builder"; -import {LINK_BUILDER, LinkBuilderImpl} from "./services/link/link-builder.service"; -import {LOADING_LINK_BUILDER, LoadingLinkBuilder, LoadingLinkBuilderImpl} from "./services/link/loading.builder"; -import {LOGIN_LINK_BUILDER, LoginLinkBuilder, LoginLinkBuilderImpl} from "./services/link/login.builder"; -import {NEWS_LINK_BUILDER, NewsLinkBuilder, NewsLinkBuilderImpl} from "./services/link/news.builder"; -import {RESOURCE_LINK_BUILDER, ResourceLinkBuilder, ResourceLinkBuilderImpl} from "./services/link/resource.builder"; -import {TIMELINE_LINK_BUILDER, TimelineLinkBuilder, TimelineLinkBuilderImpl} from "./services/link/timeline.builder"; -import {DB_MIGRATION, MIGRATION_SUPPLIER} from "./services/migration/migration.api"; -import {SimpleMigrationSupplier, TypeOrmDbMigration} from "./services/migration/migration.service"; -import {NEWS_SYNCHRONIZATION, NewsSynchronizationImpl} from "./services/news/news.synchronization"; -import {SynchronizationService} from "./services/synchronization.service"; -import {UserStorageService} from "./services/filesystem/user-storage.service"; +import { LeaveAppDialog } from "./fallback/open-browser/leave-app.dialog"; +import { LeaveAppDialogService } from "./fallback/open-browser/leave-app.service"; +import { RoamingFallbackScreen } from "./fallback/roaming/roaming-fallback.component"; +import { WifiFallbackScreen } from "./fallback/wifi/wifi-fallback.component"; import { - AuthTokenSupplier, - INSTALLATION_LINK_PROVIDER, - InstallationLinkSupplier, - InstallationLinkSupplierImpl, - TOKEN_SUPPLIER, - TokenSupplier -} from "./services/link/link-builder.supplier"; -/** providers */ -import {DataProvider} from "./providers/data-provider.provider"; -import {AuthenticationProvider} from "./providers/authentication.provider"; -import {IconProvider} from "./providers/theme/icon.provider"; -import {FILE_DOWNLOADER, FileDownloaderImpl} from "./providers/file-transfer/file-download"; -import {FILE_UPLOADER, FileUploaderImpl} from "./providers/file-transfer/file-upload"; -import {DataProviderFileObjectHandler} from "./providers/handlers/file-object-handler"; -import {HttpClient as PegasusHttpClient, PegasusXhrFactory} from "./providers/http"; -import {ILIASRestProvider} from "./providers/ilias-rest.provider"; -import {ILIAS_REST, ILIASRestImpl, ILIASTokenManager, TOKEN_MANAGER} from "./providers/ilias/ilias.rest"; -import {OAUTH2_DATA_SUPPLIER, TOKEN_RESPONSE_CONSUMER} from "./providers/ilias/ilias.rest-api"; -import {NEWS_REST, NewsRestImpl} from "./providers/ilias/news.rest"; -import {NEWS_FEED, NewsFeedImpl} from "./services/news/news.feed"; -import {USER_REPOSITORY, UserRepository, UserTypeORMRepository} from "./providers/repository/repository.user"; -import {UniqueDeviceID} from "@ionic-native/unique-device-id/ngx"; -/** configs */ -import {CONFIG_PROVIDER, ILIASConfigProvider} from "./config/ilias-config"; -import {Oauth2DataSupplierImpl, TokenResponseConsumerImpl} from "./config/ilias.rest-config"; -import {TypeORMConfigurationAdapter} from "./config/typeORM-config"; + OPEN_HTML_LEARNING_MODULE_ACTION_FACTORY, + OpenHtmlLearningModuleAction, + OpenHtmlLearningModuleActionFunction +} from "./learningmodule/actions/open-html-learning-module-action"; +import { + OPEN_SCORM_LEARNING_MODULE_ACTION_FACTORY, + OpenScormLearningModuleAction, + OpenScormLearningModuleActionFunction +} from "./learningmodule/actions/open-scorm-learning-module-action"; +/** learning modules */ +import { LEARNING_MODULE_LOADER, RestLearningModuleLoader } from "./learningmodule/services/learning-module-loader"; +import { LEARNING_MODULE_MANAGER, LearningModuleManager, LearningModuleManagerImpl } from "./learningmodule/services/learning-module-manager"; +import { + LEARNING_MODULE_PATH_BUILDER, + LearningModulePathBuilder, + LearningModulePathBuilderImpl +} from "./learningmodule/services/learning-module-path-builder"; +// actions for learnplaces +import { OPEN_LEARNPLACE_ACTION_FACTORY, OpenLearnplaceAction, OpenLearnplaceActionFunction } from "./learnplace/actions/open-learnplace-action"; +import { + REMOVE_LOCAL_LEARNPLACE_ACTION_FUNCTION, + RemoveLocalLearnplaceAction, + RemoveLocalLearnplaceActionFunction +} from "./learnplace/actions/remove-local-learnplace-action"; +// providers for learnplaces +import { LEARNPLACE_REPOSITORY, TypeORMLearnplaceRepository } from "./learnplace/providers/repository/learnplace.repository"; +import { MAP_REPOSITORY, TypeORMMapRepository } from "./learnplace/providers/repository/map.repository"; +import { TypeORMVisitJournalRepository, VISIT_JOURNAL_REPOSITORY } from "./learnplace/providers/repository/visitjournal.repository"; +import { ILIASLearnplaceAPI, LEARNPLACE_API } from "./learnplace/providers/rest/learnplace.api"; /** learnplaces */ // services for learnplaces -import {LEARNPLACE_MANAGER, LearnplaceManager, LearnplaceManagerImpl} from "./learnplace/services/learnplace.management"; -import {LEARNPLACE_LOADER, LearnplaceLoader, RestLearnplaceLoader} from "./learnplace/services/loader/learnplace"; -import {HttpResourceTransfer, LEARNPLACE_PATH_BUILDER, LearnplacePathBuilderImpl, RESOURCE_TRANSFER} from "./learnplace/services/loader/resource"; -import {MAP_SERVICE, VisibilityManagedMapService} from "./learnplace/services/map.service"; -import {VisibilityStrategyApplier} from "./learnplace/services/visibility/visibility.context"; -import {AfterVisitPlaceStrategy, AlwaysStrategy, NeverStrategy, OnlyAtPlaceStrategy} from "./learnplace/services/visibility/visibility.strategy"; -import { - SynchronizedVisitJournalWatch, - VISIT_JOURNAL_SYNCHRONIZATION, - VISIT_JOURNAL_WATCH, - VisitJournalSynchronizationImpl -} from "./learnplace/services/visitjournal.service"; +import { LEARNPLACE_MANAGER, LearnplaceManager, LearnplaceManagerImpl } from "./learnplace/services/learnplace.management"; +import { LEARNPLACE_LOADER, RestLearnplaceLoader } from "./learnplace/services/loader/learnplace"; import { AccordionMapper, LinkBlockMapper, @@ -105,36 +85,65 @@ import { VideoBlockMapper, VisitJournalMapper } from "./learnplace/services/loader/mappers"; -// providers for learnplaces -import {LEARNPLACE_REPOSITORY, TypeORMLearnplaceRepository} from "./learnplace/providers/repository/learnplace.repository"; -import {MAP_REPOSITORY, TypeORMMapRepository} from "./learnplace/providers/repository/map.repository"; -import {TypeORMVisitJournalRepository, VISIT_JOURNAL_REPOSITORY} from "./learnplace/providers/repository/visitjournal.repository"; -import {ILIASLearnplaceAPI, LEARNPLACE_API} from "./learnplace/providers/rest/learnplace.api"; -// actions for learnplaces -import {OPEN_LEARNPLACE_ACTION_FACTORY, OpenLearnplaceAction, OpenLearnplaceActionFunction} from "./learnplace/actions/open-learnplace-action"; +import { HttpResourceTransfer, LEARNPLACE_PATH_BUILDER, LearnplacePathBuilderImpl, RESOURCE_TRANSFER } from "./learnplace/services/loader/resource"; +import { MAP_SERVICE, VisibilityManagedMapService } from "./learnplace/services/map.service"; +import { VisibilityStrategyApplier } from "./learnplace/services/visibility/visibility.context"; +import { AfterVisitPlaceStrategy, AlwaysStrategy, NeverStrategy, OnlyAtPlaceStrategy } from "./learnplace/services/visibility/visibility.strategy"; import { - REMOVE_LOCAL_LEARNPLACE_ACTION_FUNCTION, - RemoveLocalLearnplaceAction, - RemoveLocalLearnplaceActionFunction -} from "./learnplace/actions/remove-local-learnplace-action"; -/** learning modules */ -import { - OPEN_LEARNING_MODULE_ACTION_FACTORY, - OpenLearningModuleAction, - OpenLearningModuleActionFunction -} from "./learningmodule/actions/open-learning-module-action"; -import {LEARNING_MODULE_LOADER, LearningModuleLoader, RestLearningModuleLoader} from "./learningmodule/services/learning-module-loader"; -import {LEARNING_MODULE_MANAGER, LearningModuleManagerImpl} from "./learningmodule/services/learning-module-manager"; + SynchronizedVisitJournalWatch, + VISIT_JOURNAL_SYNCHRONIZATION, + VISIT_JOURNAL_WATCH, + VisitJournalSynchronizationImpl +} from "./learnplace/services/visitjournal.service"; +import { OnboardingPageModule } from "./pages/onboarding/onboarding.module"; +import { HardwareFeaturePage } from "./pages/test-hardware-feature/test-hardware-feature"; +import { AuthenticationProvider } from "./providers/authentication.provider"; +/** providers */ +import { DataProvider } from "./providers/data-provider.provider"; +import { FILE_DOWNLOADER, FileDownloaderImpl } from "./providers/file-transfer/file-download"; +import { FILE_UPLOADER, FileUploaderImpl } from "./providers/file-transfer/file-upload"; +import { HttpClient as PegasusHttpClient, PegasusXhrFactory } from "./providers/http"; +import { ILIASRestProvider } from "./providers/ilias-rest.provider"; +import { ILIAS_REST, ILIASRestImpl, ILIASTokenManager, TOKEN_MANAGER } from "./providers/ilias/ilias.rest"; +import { OAUTH2_DATA_SUPPLIER, TOKEN_RESPONSE_CONSUMER } from "./providers/ilias/ilias.rest-api"; +import { NEWS_REST, NewsRestImpl } from "./providers/ilias/news.rest"; +import { USER_REPOSITORY, UserRepository, UserTypeORMRepository } from "./providers/repository/repository.user"; +import { IconProvider } from "./providers/theme/icon.provider"; +//import {SyncFinishedModal} from "./pages/sync-finished-modal/sync-finished-modal"; +//import {TestPage} from "./pages/test/test"; +/** services */ +import { Builder } from "./services/builder.base"; +import { Database } from "./services/database/database"; +import { DATABASE_CONFIGURATION_ADAPTER, DatabaseConnectionRegistry } from "./services/database/database.api"; +import { GeolocationModule } from "./services/device/geolocation/geolocation.module"; +import { DiagnosticUtil } from "./services/device/hardware-features/diagnostics.util"; +import { Hardware } from "./services/device/hardware-features/hardware-feature.service"; +import { FileService } from "./services/file.service"; +import { FilesystemModule } from "./services/filesystem/filesystem.module"; +import { UserStorageService } from "./services/filesystem/user-storage.service"; +import { FooterToolbarService } from "./services/footer-toolbar.service"; +import { PegasusMissingTranslationHandler } from "./services/language/translation-missing-handler"; +import { DEFAULT_LINK_BUILDER, DefaultLinkBuilder, DefaultLinkBuilderImpl } from "./services/link/default.builder"; +import { LINK_BUILDER, LinkBuilderImpl } from "./services/link/link-builder.service"; import { - LEARNING_MODULE_PATH_BUILDER, - LearningModulePathBuilder, - LearningModulePathBuilderImpl -} from "./learningmodule/services/learning-module-path-builder"; -/** misc */ -import {PegasusErrorHandler} from "./error-handler"; -import {AppRoutingModule} from "./app-routing.module"; -import {OPEN_OBJECT_IN_ILIAS_ACTION_FACTORY, OpenObjectInILIASAction} from "./actions/open-object-in-ilias-action"; -import {WebView} from "@ionic-native/ionic-webview/ngx"; + AuthTokenSupplier, + INSTALLATION_LINK_PROVIDER, + InstallationLinkSupplier, + InstallationLinkSupplierImpl, + TOKEN_SUPPLIER, + TokenSupplier +} from "./services/link/link-builder.supplier"; +import { LOADING_LINK_BUILDER, LoadingLinkBuilder, LoadingLinkBuilderImpl } from "./services/link/loading.builder"; +import { LOGIN_LINK_BUILDER, LoginLinkBuilder, LoginLinkBuilderImpl } from "./services/link/login.builder"; +import { NEWS_LINK_BUILDER, NewsLinkBuilder, NewsLinkBuilderImpl } from "./services/link/news.builder"; +import { RESOURCE_LINK_BUILDER, ResourceLinkBuilder, ResourceLinkBuilderImpl } from "./services/link/resource.builder"; +import { TIMELINE_LINK_BUILDER, TimelineLinkBuilder, TimelineLinkBuilderImpl } from "./services/link/timeline.builder"; +import { DB_MIGRATION, MIGRATION_SUPPLIER } from "./services/migration/migration.api"; +import { SimpleMigrationSupplier, TypeOrmDbMigration } from "./services/migration/migration.service"; +import { NEWS_FEED, NewsFeedImpl } from "./services/news/news.feed"; +import { NEWS_SYNCHRONIZATION, NewsSynchronizationImpl } from "./services/news/news.synchronization"; +import { SynchronizationService } from "./services/synchronization.service"; +import { CssStyleService } from "./services/theme/css-style.service"; @NgModule({ declarations: [ @@ -142,7 +151,6 @@ import {WebView} from "@ionic-native/ionic-webview/ngx"; //ModalPage, // OnboardingPage, LeaveAppDialog, - //TestPage, LoadingPage, //SyncFinishedModal, @@ -156,7 +164,6 @@ import {WebView} from "@ionic-native/ionic-webview/ngx"; entryComponents: [ // OnboardingPage, LeaveAppDialog, - //SyncFinishedModal, LoadingPage, //HardwareFeaturePage, @@ -186,6 +193,9 @@ import {WebView} from "@ionic-native/ionic-webview/ngx"; providers: [ {provide: RouteReuseStrategy, useClass: IonicRouteStrategy}, + // Application initializer + INIT_APP, + // from src/config/ilias-config { provide: CONFIG_PROVIDER, @@ -374,14 +384,14 @@ import {WebView} from "@ionic-native/ionic-webview/ngx"; // Actions { provide: OPEN_OBJECT_IN_ILIAS_ACTION_FACTORY, - useFactory: (browser: InAppBrowser, platform: Platform, modal: ModalController): + useFactory: (browser: InAppBrowser, platform: Platform, modal: ModalController, safariViewController: SafariViewController): (title: string, urlBuilder: Builder>) => OpenObjectInILIASAction => { return ( title: string, urlBuilder: Builder> - ): OpenObjectInILIASAction => new OpenObjectInILIASAction(title, urlBuilder, browser, platform, modal); + ): OpenObjectInILIASAction => new OpenObjectInILIASAction(title, urlBuilder, browser, platform, modal, safariViewController); }, - deps: [InAppBrowser, Platform, ModalController] + deps: [InAppBrowser, Platform, ModalController, SafariViewController] }, AlwaysStrategy, NeverStrategy, @@ -412,36 +422,59 @@ import {WebView} from "@ionic-native/ionic-webview/ngx"; { provide: OPEN_LEARNPLACE_ACTION_FACTORY, - useFactory: (loader: LearnplaceLoader): OpenLearnplaceActionFunction => + useFactory: (manager: LearnplaceManager, userRepository: UserRepository): OpenLearnplaceActionFunction => (nav: NavController, learnplaceObjectId: number, learnplaceName: string, modalController: ModalController): OpenLearnplaceAction => - new OpenLearnplaceAction(loader, nav, learnplaceObjectId, learnplaceName, modalController) + new OpenLearnplaceAction(manager, nav, learnplaceObjectId, learnplaceName, modalController, userRepository) , - deps: [LEARNPLACE_LOADER] + deps: [LEARNPLACE_MANAGER, USER_REPOSITORY] }, { - provide: OPEN_LEARNING_MODULE_ACTION_FACTORY, - useFactory: (loader: LearningModuleLoader): OpenLearningModuleActionFunction => + provide: OPEN_HTML_LEARNING_MODULE_ACTION_FACTORY, + useFactory: ( + browser: InAppBrowser, + modalController: ModalController, + manager: LearningModuleManager, + leaveAppService: LeaveAppDialogService + ): OpenHtmlLearningModuleActionFunction => ( nav: NavController, learningModuleObjectId: number, - learningModuleName: string, - modalController: ModalController, - browser: InAppBrowser, pathBuilder: LearningModulePathBuilder, - translate: TranslateService, + translate: TranslateService ): - OpenLearningModuleAction => new OpenLearningModuleAction( - loader, + OpenHtmlLearningModuleAction => new OpenHtmlLearningModuleAction( nav, learningModuleObjectId, - learningModuleName, modalController, browser, - pathBuilder, translate, + pathBuilder, + manager, + leaveAppService + ) + , + deps: [InAppBrowser, ModalController, LEARNING_MODULE_MANAGER, LeaveAppDialogService] + }, + { + provide: OPEN_SCORM_LEARNING_MODULE_ACTION_FACTORY, + useFactory: ( + manager: LearningModuleManager, + modalController: ModalController, + leaveAppDialogService: LeaveAppDialogService + ): OpenScormLearningModuleActionFunction => + ( + learningModuleObjectId: number, + navCtrl: NavController + ): + OpenScormLearningModuleAction => new OpenScormLearningModuleAction( + learningModuleObjectId, + modalController, + navCtrl, + manager, + leaveAppDialogService ) , - deps: [LEARNING_MODULE_LOADER] + deps: [LEARNING_MODULE_MANAGER, ModalController, LeaveAppDialogService] }, { provide: LEARNING_MODULE_PATH_BUILDER, @@ -475,7 +508,6 @@ import {WebView} from "@ionic-native/ionic-webview/ngx"; CssStyleService, FileService, SynchronizationService, - DataProviderFileObjectHandler, StatusBar, InAppBrowser, File, @@ -499,7 +531,9 @@ import {WebView} from "@ionic-native/ionic-webview/ngx"; IconProvider, AppVersion, Zip, - UniqueDeviceID + UniqueDeviceID, + FileOpener, + SafariViewController, ], exports: [ TranslateModule diff --git a/src/app/components/icon/il-obj-icon.component.html b/src/app/components/icon/il-obj-icon.component.html new file mode 100644 index 00000000..e1d226a1 --- /dev/null +++ b/src/app/components/icon/il-obj-icon.component.html @@ -0,0 +1,4 @@ +
+ + +
diff --git a/src/app/components/icon/il-obj-icon.component.scss b/src/app/components/icon/il-obj-icon.component.scss new file mode 100644 index 00000000..e8aa5301 --- /dev/null +++ b/src/app/components/icon/il-obj-icon.component.scss @@ -0,0 +1,20 @@ +.container { + display: inline-block; + position: relative; + width: 100%; + height: 100%; +} + +.icon { + width: 100%; + height: 100%; + max-height: 5em; +} + +.sub-icon { + position: absolute; + top: 50%; + left: 60%; + width: 50%; + height: 50%; +} diff --git a/src/app/components/icon/il-obj-icon.component.spec.ts b/src/app/components/icon/il-obj-icon.component.spec.ts new file mode 100644 index 00000000..09488f3b --- /dev/null +++ b/src/app/components/icon/il-obj-icon.component.spec.ts @@ -0,0 +1,40 @@ +import {async, ComponentFixture, TestBed} from "@angular/core/testing"; +import {IonicModule} from "@ionic/angular"; + +import {IlObjIconComponent} from "./il-obj-icon.component"; +import {ThemeProvider} from "../../providers/theme/theme.provider"; +import {createSpyObject} from "../../../test.util.spec"; +import {FeaturePolicyService} from "../../services/policy/feature-policy.service"; +import {GenericILIASObjectPresenter} from "../../presenters/object-presenter"; +import {ILIASObject} from "../../models/ilias-object"; + +describe("IlObjIconComponent", () => { + let component: IlObjIconComponent; + let fixture: ComponentFixture; + const spyThemeProvider: jasmine.SpyObj = createSpyObject(ThemeProvider); + const spyFeaturePolicy: jasmine.SpyObj = createSpyObject(FeaturePolicyService); + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [IlObjIconComponent], + imports: [ + IonicModule.forRoot() + ], + providers: [ + {provide: ThemeProvider, useValue: spyThemeProvider}, + {provide: FeaturePolicyService, useValue: spyFeaturePolicy} + ] + }).compileComponents(); + + fixture = TestBed.createComponent(IlObjIconComponent); + component = fixture.componentInstance; + })); + + it("should create", () => { + const obj: ILIASObject = new ILIASObject(0); + component.presenter = new GenericILIASObjectPresenter(obj, spyThemeProvider); + component.ilObject = obj; + fixture.detectChanges(); + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/icon/il-obj-icon.component.ts b/src/app/components/icon/il-obj-icon.component.ts new file mode 100644 index 00000000..4619da0b --- /dev/null +++ b/src/app/components/icon/il-obj-icon.component.ts @@ -0,0 +1,57 @@ +import {AfterViewInit, Component, ElementRef, Input, OnInit, Renderer2, ViewChild} from "@angular/core"; +import {SafeUrl} from "@angular/platform-browser"; +import {ILIASObject} from "src/app/models/ilias-object"; +import {ILIASObjectPresenter} from "src/app/presenters/object-presenter"; +import {ThemeProvider} from "src/app/providers/theme/theme.provider"; +import {FeaturePolicyService} from "src/app/services/policy/feature-policy.service"; + +@Component({ + selector: "app-icon", + templateUrl: "./il-obj-icon.component.html", + styleUrls: ["./il-obj-icon.component.scss"], +}) +export class IlObjIconComponent implements OnInit, AfterViewInit { + @Input("presenter") presenter: ILIASObjectPresenter; + @Input("ilObject") ilObject: ILIASObject; + @Input("size") size: number; + + @ViewChild("container", {static: false}) container: ElementRef; + + linkIcon: Promise; + showSubIcon: boolean; + + constructor( + private readonly theme: ThemeProvider, + private readonly featurePolicy: FeaturePolicyService, + private readonly renderer: Renderer2) {} + + ngOnInit(): void { + this.linkIcon = this.theme.getIconSrc("overlay") + + this.showSubIcon = this.shouldOpenInIlias(); + } + + ngAfterViewInit(): void { + if (!this.size) { + this.renderer.setStyle(this.container.nativeElement, "height", "100%"); + this.renderer.setStyle(this.container.nativeElement, "width", "100%"); + } else { + this.renderer.setStyle(this.container.nativeElement, "height", `${this.size}em`); + this.renderer.setStyle(this.container.nativeElement, "width", `${this.size}em`); + } + } + + shouldOpenInIlias(): boolean { + if (!this.ilObject) return false; + if (!this.featurePolicy.isObjectAvailable(this.ilObject.type)) return true; + if (this.ilObject.isLinked()) return true; + if (this.ilObject.isContainer()) return false; + if (this.ilObject.isLearnplace()) return false; + if (this.ilObject.type === "htlm") return false; + if (this.ilObject.type === "sahs") return false; + if (this.ilObject.type === "file") return false; + + return true; + } + +} diff --git a/src/app/components/icon/il-obj-icon.module.ts b/src/app/components/icon/il-obj-icon.module.ts new file mode 100644 index 00000000..d2c95cc6 --- /dev/null +++ b/src/app/components/icon/il-obj-icon.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IlObjIconComponent } from './il-obj-icon.component'; + +@NgModule({ + declarations: [IlObjIconComponent], + imports: [ + CommonModule + ], + exports: [IlObjIconComponent] +}) +export class IconModule { } diff --git a/src/app/config/ilias-config.ts b/src/app/config/ilias-config.ts index 98be9eee..d14161a7 100644 --- a/src/app/config/ilias-config.ts +++ b/src/app/config/ilias-config.ts @@ -1,9 +1,11 @@ /** angular */ import {Injectable, InjectionToken} from "@angular/core"; +import { TranslateService } from "@ngx-translate/core"; +import { AuthenticationProvider } from "../providers/authentication.provider"; /** misc */ -import {ILIASConfig} from "./ilias-config"; import {HttpClient, HttpResponse} from "../providers/http"; import {isDefined} from "../util/util.function"; +import { Optional } from "../util/util.optional"; const CONFIG_FILE: string = "./assets/config.json"; @@ -19,6 +21,7 @@ export interface ILIASInstallation { readonly apiKey: string; readonly apiSecret: string; readonly accessTokenTTL: number; + readonly privacyPolicy: string; } export const CONFIG_PROVIDER: InjectionToken = new InjectionToken("Token for ConfigProvider"); @@ -47,7 +50,14 @@ export interface ConfigProvider { * @returns {Promise} the resulting ILIAS installation * @throw {ReferenceError} if the given id does not exists */ - loadInstallation(installationId: number): Promise + loadInstallation(installationId: number): Promise> + + /** + * Returns the last loaded installation + * + * @returns {Promise} the resulting ILIAS installation + */ + getInstallation(): Promise>> } /** @@ -57,34 +67,60 @@ export interface ConfigProvider { * @author nmaerchy * @version 1.0.0 */ -@Injectable({ - providedIn: "root" -}) +@Injectable() export class ILIASConfigProvider implements ConfigProvider { - private readonly config: Promise; + private readonly config: Promise; + private installation: Promise> = Promise.resolve(Optional.empty()); + + constructor( + private readonly http: HttpClient, + private readonly translate: TranslateService + ) { + this.config = this.loadFile(); + this.observeTranslation(); + } + + observeTranslation(): void { + this.translate.onLangChange.subscribe(async (lang: string) => { + if (AuthenticationProvider.isLoggedIn()) + await this.loadInstallation(AuthenticationProvider.getUser().installationId); + }); + } - constructor( - private readonly http: HttpClient - ) { - this.config = this.loadFile(); - } + async getInstallation(): Promise>> { + return this.installation; + } - async loadConfig(): Promise { return this.config } + async loadConfig(): Promise { return this.config } - async loadInstallation(installationId: number): Promise { + async loadInstallation(installationId: number): Promise>> { - const iliasConfig: ILIASConfig = await this.config; + const iliasConfig: ILIASConfig = await this.config; - const installation: ILIASInstallation | undefined = iliasConfig.installations - .find(it => it.id == installationId); + let installation: ILIASInstallation | undefined = iliasConfig.installations + .find(it => it.id == installationId); - if (isDefined(installation)) { - return installation; - } + installation = { + id: installation.id, + title: installation.title, + url: installation.url, + clientId: installation.clientId, + apiKey: installation.apiKey, + apiSecret: installation.apiSecret, + accessTokenTTL: installation.accessTokenTTL, + privacyPolicy: installation.privacyPolicy + ? installation.privacyPolicy + : `https://www.ilias-pegasus.de/${await this.translate.get("privacy").toPromise()}/` + }; - throw new ReferenceError(`Installation with id '${installationId}' does not exists in file: ${CONFIG_FILE}`); - } + if (isDefined(installation)) { + this.installation = Promise.resolve(Optional.of(installation)); + return Optional.of(installation); + } + + throw new ReferenceError(`Installation with id '${installationId}' does not exists in file: ${CONFIG_FILE}`); + } private async loadFile(): Promise { const response: HttpResponse = await this.http.get(CONFIG_FILE); @@ -111,7 +147,11 @@ const configSchema: object = { "clientId": {"type": "string"}, "apiKey": {"type": "string"}, "apiSecret": {"type": "string"}, - "accessTokenTTL": {"type": "number"} + "accessTokenTTL": {"type": "number"}, + "privacyPolicy": { + "type": "string", + "default": "https://www.ilias-pegasus.de/datenschutz/" + } }, "required": ["id", "title", "url", "clientId", "apiKey", "apiSecret", "accessTokenTTL"] } diff --git a/src/app/config/ilias.rest-config.ts b/src/app/config/ilias.rest-config.ts index 4b2b95a9..56b65bd9 100644 --- a/src/app/config/ilias.rest-config.ts +++ b/src/app/config/ilias.rest-config.ts @@ -11,8 +11,6 @@ import { import {User} from "../models/user"; import {CONFIG_PROVIDER, ConfigProvider, ILIASInstallation} from "./ilias-config"; import {AuthenticationProvider} from "../providers/authentication.provider"; -import {DomSanitizer} from "@angular/platform-browser"; -import {USER_REPOSITORY, UserRepository} from "../providers/repository/repository.user"; const apiURL: string = "/Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/REST/api.php"; @@ -41,7 +39,7 @@ export class Oauth2DataSupplierImpl implements OAuth2DataSupplier{ async getClientCredentials(): Promise { const currentUser: User = AuthenticationProvider.getUser(); - const installation: ILIASInstallation = await this.configProvider.loadInstallation(currentUser.installationId); + const installation: ILIASInstallation = (await this.configProvider.loadInstallation(currentUser.installationId)).get(); return { clientId: installation.apiKey, diff --git a/src/app/entity/user.entity.ts b/src/app/entity/user.entity.ts index d44baaaf..fb6f870a 100644 --- a/src/app/entity/user.entity.ts +++ b/src/app/entity/user.entity.ts @@ -34,6 +34,9 @@ export class UserEntity { @Column() lastTokenUpdate: number; + @Column() + totalUsedStorage: number; + @ManyToMany(type => NewsEntity, { cascadeInsert: true, cascadeUpdate: true, diff --git a/src/app/error-handler.ts b/src/app/error-handler.ts index a9d94772..0eabc28a 100644 --- a/src/app/error-handler.ts +++ b/src/app/error-handler.ts @@ -1,19 +1,18 @@ -import {ErrorHandler, Injectable} from "@angular/core"; -import {AlertController} from "@ionic/angular"; -import {isNullOrUndefined, isNumber, isObject, isString} from "./util/util.function"; -import {TranslateService} from "@ngx-translate/core"; -import {Logger} from "./services/logging/logging.api"; -import {Logging} from "./services/logging/logging.service"; +import { ErrorHandler, Injectable } from "@angular/core"; +import { AlertController } from "@ionic/angular"; +import { TranslateService } from "@ngx-translate/core"; // errors and exceptions -import {Error} from "tslint/lib/error"; -import {TimeoutError} from "rxjs"; -import {HttpRequestError, JsonValidationError, UnfinishedHttpRequestError} from "./providers/http"; -import {HardwareAccessError} from "./services/device/hardware-features/hardware-access.errors"; -import {FileErrorException} from "./exceptions/FileErrorException"; -import {CantOpenFileTypeException} from "./exceptions/CantOpenFileTypeException"; -import {NoWLANException} from "./exceptions/noWLANException"; -import {OfflineException} from "./exceptions/OfflineException"; -import {RESTAPIException} from "./exceptions/RESTAPIException"; +import { Error } from "tslint/lib/error"; +import { CantOpenFileTypeException } from "./exceptions/CantOpenFileTypeException"; +import { FileErrorException } from "./exceptions/FileErrorException"; +import { NoWLANException } from "./exceptions/noWLANException"; +import { OfflineException } from "./exceptions/OfflineException"; +import { RESTAPIException } from "./exceptions/RESTAPIException"; +import { HttpRequestError, JsonValidationError, UnfinishedHttpRequestError } from "./providers/http"; +import { HardwareAccessError } from "./services/device/hardware-features/hardware-access.errors"; +import { Logger } from "./services/logging/logging.api"; +import { Logging } from "./services/logging/logging.service"; +import { isNullOrUndefined, isNumber, isObject, isString } from "./util/util.function"; interface AlertEntry { alert: HTMLIonAlertElement, @@ -79,7 +78,7 @@ export class PegasusErrorHandler implements ErrorHandler { return; } - if(unwrappedError instanceof TimeoutError) { + if(unwrappedError.name === "TimeoutError") { this.log.warn(() => "Unable to sync due to request timeout."); this.displayAlert(PegasusErrorHandler.ERROR_TITLE, this.translate.instant("actions.server_not_reachable")); return; diff --git a/src/app/fallback/loading/loading.component.ts b/src/app/fallback/loading/loading.component.ts index 97bcac03..5ee6719f 100644 --- a/src/app/fallback/loading/loading.component.ts +++ b/src/app/fallback/loading/loading.component.ts @@ -1,6 +1,5 @@ -import {Component} from "@angular/core"; -import {FooterToolbarService} from "../../services/footer-toolbar.service"; -import {Subject} from "rxjs"; +import { Component } from "@angular/core"; +import { LoadingService } from "./loading.service"; export enum LoadingPageType { generic, @@ -9,20 +8,16 @@ export enum LoadingPageType { } @Component({ - templateUrl: "loading.html" + templateUrl: "loading.html", + styleUrls: ["loading.scss"] }) export class LoadingPage { - // subject where processes can post their progress - static progress: Subject; // the type of object that is being loaded static type: LoadingPageType = LoadingPageType.generic; - progress: number = 0; constructor( - readonly footerToolbar: FooterToolbarService, + readonly loadingService: LoadingService, ) { - if(!LoadingPage.progress) LoadingPage.progress = new Subject(); - LoadingPage.progress.subscribe((progress: number) => this.progress = progress); } translateKeyForType(key: string): string { diff --git a/src/app/fallback/loading/loading.html b/src/app/fallback/loading/loading.html index d9702346..41599b01 100644 --- a/src/app/fallback/loading/loading.html +++ b/src/app/fallback/loading/loading.html @@ -1,63 +1,63 @@ - - +
-
-
-
-
- - -
-
+
+
+
+
+ + +
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
+
- - - - - -

- {{ translateKeyForType("loading") | translate:{value: null} }} -

- - {{ translateKeyForType("loading_subtitle") | translate:{value: null} }} + + + +

+ {{ translateKeyForType("loading") | translate }} +

+ + {{ translateKeyForType("loading_subtitle") | translate }} -
- - -

A new loading Animation with every Version:
Candles Animation by Akhil Sai Ram (2018)

+
+ + + + +

A new loading Animation with every Version:
Candles Animation by Akhil Sai Ram + (2018)

diff --git a/src/app/fallback/loading/loading.scss b/src/app/fallback/loading/loading.scss new file mode 100644 index 00000000..466140aa --- /dev/null +++ b/src/app/fallback/loading/loading.scss @@ -0,0 +1,640 @@ + // colors +$lightsOnBg: #FEF4AD; +$lightsOutBg: #F8AE39; +$candleColor:#FFFFFD; +$candleShadow:#673C63; +$floorColor:#AD9598; +$fireColor:#FF9800; +$fireColor2:#FFC107; +$fireShadow: #E7C980; +$angerColor:#F44336; +$primaryColor: #FEF4AD; +$secondaryColor:rgb(0,0,0); +$candleInsetShadow:#95c6f2; +$smokeColor:grey; +//sizes +$floorWidth: 350px; +$floorHeight:5px; +$candleWidth:35px; +$candleHeight:100px; +$stickWidth:3px; +$stickHeight:15px; + +body +{ + background-color:$lightsOnBg; + animation:change-background 3s infinite linear; +} + +ion-progress-bar +{ + --progress-background: var(--ion-color-primary-contrast); + --buffer-background: var(--ion-color-primary-contrast); +} + +.wrapper +{ + position:absolute; + left:50%; + top:70%; + transform:scale(1.5,1.5) translate(-50%,-50%); +} +.floor +{ + position:absolute; + left:50%; + top:50%; + width:$floorWidth; + height:$floorHeight; + background:$candleShadow; + transform:translate(-50%,-50%); + box-shadow:0px 2px 5px #111; + z-index:2; +} +.candles +{ + position:absolute; + left:50%; + top:50%; + width:250px; + height:150px; + // background:$secondaryColor; + // opacity:0.8; + transform:translate(-50%,-100%); + z-index:1; +} +.candle1 +{ + position:absolute; + left:50%; + top:50%; + width:$candleWidth; + height:$candleHeight; + background:#fff; + border:3px solid $candleShadow; + border-bottom:0px; + border-radius:3px; + transform-origin:center right; + transform:translate(60%,-25%); + box-shadow: -2px 0px 0px $candleInsetShadow inset; + animation:expand-body 3s infinite linear; +} +.candle1__stick,.candle2__stick +{ + position:absolute; + left:50%; + top:0%; + width:$stickWidth; + height:$stickHeight; + background:$candleShadow; + border-radius:8px; + transform:translate(-50%,-100%); +} +.candle2__stick +{ + height:$stickHeight*0.8; + transform-origin: bottom center; + animation:stick-animation 3s infinite linear; +} +.candle1__eyes,.candle2__eyes +{ + position:absolute; + left:50%; + top:0%; + width:$candleWidth; + height:30px; + transform:translate(-50%,0%); +} +.candle1__eyes-one +{ + position:absolute; + left:30%; + top:20%; + width:5px; + height:5px; + border-radius:100%; + background:$candleShadow; + transform:translate(-70%,0%); + animation:blink-eyes 3s infinite linear; +} +.candle1__eyes-two +{ + position:absolute; + left:70%; + top:20%; + width:5px; + height:5px; + border-radius:100%; + background:$candleShadow; + transform:translate(-70%,0%); + animation:blink-eyes 3s infinite linear; +} +.candle1__mouth +{ + position:absolute; + left:40%; + top:20%; + width:0px; + height:0px; + border-radius:20px; + background:$candleShadow; + transform:translate(-50%,-50%); + animation: uff 3s infinite linear; +} +.candle__smoke-one +{ + position:absolute; + left:30%; + top:50%; + width:30px; + height:3px; + background:$smokeColor; + transform:translate(-50%,-50%); + animation:move-left 3s infinite linear; +} +.candle__smoke-two +{ + position:absolute; + left:30%; + top:40%; + width:10px; + height:10px; + border-radius:10px; + background:$smokeColor; + transform:translate(-50%,-50%); + animation:move-top 3s infinite linear; +} + +.candle2 +{ + position:absolute; + left:20%; + top:65%; + width:$candleWidth*1.20; + height:$candleHeight*0.60; + background:#fff; + border:3px solid $candleShadow; + border-bottom:0px; + border-radius:3px; + transform:translate(60%,-15%); + transform-origin:center right; + box-shadow: -2px 0px 0px $candleInsetShadow inset; + animation: shake-left 3s infinite linear; +} +.candle2__eyes-one +{ + position:absolute; + left:30%; + top:50%; + width:5px; + height:5px; + display:inline-block; + border:0px solid $candleShadow; + border-radius:100%; + float:left; + background:$candleShadow; + transform:translate(-80%,0%); + animation:changeto-lower 3s infinite linear; +} +.candle2__eyes-two +{ + position:absolute; + left:70%; + top:50%; + width:5px; + height:5px; + display:inline-block; + border:0px solid $candleShadow; + border-radius:100%; + float:left; + background:$candleShadow; + transform:translate(-80%,0%); + animation:changeto-greater 3s infinite linear; + +} +.light__wave +{ + position:absolute; + top:35%; + left:35%; + width:75px; + height:75px; + border-radius:100%; + z-index:0; + transform:translate(-25%,-50%) scale(2.5,2.5); + border:2px solid rgba(255,255,255,0.2); + animation:expand-light 3s infinite linear; +} +.candle2__fire +{ + position:absolute; + top:50%; + left:40%; + display: block; + width: 16px; + height: 20px; + background-color: red; + border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; + background:$fireColor; + transform:translate(-50%,-50%); + animation: dance-fire 3s infinite linear; +} + +//animations + +//animation for blinking eyes +@keyframes blink-eyes{ + 0%,35% + { + opacity:1; + transform:translate(-70%,0%); + } + 36%,39% + { + opacity:0; + transform:translate(-70%,0%); + } + 40% + { + opacity:1; + transform:translate(-70%,0%); + } + 50%,65% + { + transform:translate(-140%,0%); + } + 66% + { + transform:translate(-70%,0%); + } +} +@keyframes expand-body +{ +0%,40% +{ + transform:scale(1,1) translate(60%,-25%); +} +45%,55% +{ + transform:scale(1.1,1.1) translate(60%,-28%); +} +60% +{ + transform:scale(0.89,0.89) translate(60%,-25%); +} +65% +{ + transform:scale(1,1) translate(60%,-25%); + +} +70% +{ + transform:scale(0.95,0.95) translate(60%,-25%); +} +75% +{ + transform:scale(1,1) translate(60%,-25%); +} + +} + +@keyframes uff{ +0%,40%{ + width:0px; + height:0px; +} +50%,54% +{ + width:15px; + height:15px; + left:30%; +} +59% +{ + width:5px; + height:5px; + left:20%; +} +62% +{ + width:2px; + height:2px; + left:20%; +} +67% +{ + width:0px; + height:0px; + left:30%; +} + +} + +@keyframes change-background +{ +0%,59%,98%,100%{ + background:$lightsOnBg; +} +61%,97% +{ + background:$lightsOutBg; +} + +} +@keyframes move-left{ +0%,59%,100% +{ + width:0px; + left:40%; +} +60% +{ + width:30px; + left:30%; +} +68% +{ + width:0px; + left:20%; +} +} + +@keyframes move-top{ +0%,64%,100% +{ + width:0px; + height:0px; + top:0%; +} +65% +{ + width:10px; + height:10px; + top:40%; + left:40%; +} +80% +{ + width:0px; + height:0px; + top:20%; +} +} +@keyframes shake-left{ +0%,40%{ + left:20%; + transform:translate(60%,-15%); +} +50%,54% +{ + left:20%; + transform:translate(60%,-15%); +} +59% +{ + left:20%; + transform:translate(60%,-15%); +} +62% +{ + left:18%; + transform:translate(60%,-15%); +} +65% +{ + left:21%; + transform:translate(60%,-15%); +} +67% +{ + left:20%; + transform:translate(60%,-15%); +} +75% +{ + left:20%; + transform:scale(1.15,0.85) translate(60%,-15%); + background:#fff; + border-color:$candleShadow; + +} + +// 80% +// { +// background:$angerColor; +// alpha:0.5; +// border-color:$angerColor; +// } + +91% +{ + left:20%; + transform:scale(1.18,0.82) translate(60%,-10%); + background:$angerColor; + border-color:$angerColor; + box-shadow: -2px 0px 0px $angerColor inset; +} +92% +{ + left:20%; + transform:scale(0.85,1.15) translate(60%,-15%); +} +95% +{ + left:20%; + transform:scale(1.05,0.95) translate(60%,-15%); +} +97% +{ + left:20%; + transform:scale(1.0,1.0) translate(60%,-15%); +} + +} +@keyframes stick-animation{ + 0%,40%{ + left:50%; + top:0%; + transform:translate(-50%,-100%); +} +50%,54% +{ + left:50%; + top:0%; + transform:translate(-50%,-100%); +} +59% +{ + left:50%; + top:0%; + transform:translate(-50%,-100%); +} +62% +{ + left:50%; + top:0%; + transform:rotateZ(-15deg) translate(-50%,-100%); +} +65% +{ + left:50%; + top:0%; + transform:rotateZ(15deg) translate(-50%,-100%); +} +70% +{ + left:50%; + top:0%; + transform:rotateZ(-5deg) translate(-50%,-100%); +} +72% +{ + left:50%; + top:0%; + transform:rotateZ(5deg) translate(-50%,-100%); +} +74%,84% +{ + left:50%; + top:0%; + transform:rotateZ(0deg) translate(-50%,-100%); +} +85% +{ + transform:rotateZ(180deg) translate(0%,120%); +} +92% +{ + left:50%; + top:0%; + transform:translate(-50%,-100%); +} + +} +@keyframes expand-light +{ +10%,29%,59%,89% +{ + transform:translate(-25%,-50%) scale(0,0); + border:2px solid rgba(255,255,255,0); +} +90%,20%,50% +{ + transform:translate(-25%,-50%) scale(1,1); +} +95%,96%,26%,27%,56%,57% +{ + transform:translate(-25%,-50%) scale(2.0,2.0); + border:2px solid rgba(255,255,255,0.5); +} +0%,28%,58%,100% +{ + transform:translate(-25%,-50%) scale(2.5,2.5); + border:2px solid rgba(255,255,255,0.2); +} + +} +@keyframes dance-fire +{ +59%,89% +{ + left:40%; + width:0px; + height:0px; +} +90%,0%,7%,15%,23%,31%,39%,47%,55% +{ + left:40.8%; + width:16px; + height:20px; + background:$fireColor2; +} +94%,3%,11%,19%,27%,35%,43%,51%,58% +{ + left:41.2%; + width:16px; + height:20px; + background:$fireColor; +} +} +@keyframes changeto-lower +{ +0%,70%,90% +{ + padding:0px; + display:inline-block; + border-radius:100%; + background:$candleShadow; + border-width:0 0 0 0; + border:0px solid $candleShadow; + transform:translate(-90%,0%); +} +71%,89% +{ + background:none; + border: solid $candleShadow; + border-radius:0px; + border-width: 0 2px 2px 0; + display:inline-block; + padding: 1px; + float:left; + transform-origin:bottom left; + transform: rotate(-45deg) translate(-50%,-65%); + -webkit-transform: rotate(-45deg) translate(-50%,-65%); +} +} + +@keyframes changeto-greater +{ +0%,70%,90% +{ +top:50%; + padding:0px; + display:inline-block; + border-radius:100%; + background:$candleShadow; + border-width:0 0 0 0; + border:0px solid $candleShadow; + transform:translate(-80%,0%); +} +71%,89% +{ + top:30%; + background:none; + border: solid $candleShadow; + border-radius:0px; + border-width: 0 2px 2px 0; + display:inline-block; + padding: 1px; + float:left; + transform-origin:bottom left; + transform: rotate(135deg) translate(-80%,20%); + -webkit-transform: rotate(135deg) translate(-80%,20%); +} +} + +#marker-icon { + padding-top: 25%; + height: auto !important; + width: 20vh !important; + margin: auto !important; + display: block !important; + +} + +#middle-button { + top: 10%; + margin: auto !important; + display: block !important; +} + +.big-spinner { + stroke: #FFFFFF; + fill: #FFFFFF; +} + +.loading-subtitle { + color: var(--ion-color-primary-contrast); +} + + diff --git a/src/app/fallback/loading/loading.service.ts b/src/app/fallback/loading/loading.service.ts new file mode 100644 index 00000000..84a037bf --- /dev/null +++ b/src/app/fallback/loading/loading.service.ts @@ -0,0 +1,34 @@ +import { Injectable } from "@angular/core"; +import { Observable, ReplaySubject } from "rxjs"; +import { map } from "rxjs/operators"; + +@Injectable({ + providedIn: "root" +}) +export class LoadingService { + private readonly MAX: number = 1; + private readonly MIN: number = 0; + private readonly _progress: ReplaySubject = new ReplaySubject(); + readonly progress: Observable = this._progress.asObservable(); + + constructor() { + this.progress = this._progress + .asObservable() + .pipe( + map((it) => Math.max(Math.min(this.MIN, it), this.MAX)) + ); + this.start(); + } + + start(): void { + this._progress.next(this.MIN); + } + + set(step: number): void { + this._progress.next(step); + } + + finish(): void { + this._progress.next(this.MAX); + } +} diff --git a/src/app/fallback/location/location-fallback.component.ts b/src/app/fallback/location/location-fallback.component.ts index d6092168..90e54fc1 100644 --- a/src/app/fallback/location/location-fallback.component.ts +++ b/src/app/fallback/location/location-fallback.component.ts @@ -3,7 +3,8 @@ import {Diagnostic} from "@ionic-native/diagnostic/ngx"; import {ModalController} from "@ionic/angular"; @Component({ - templateUrl: "location-fallbackscreen.html" + templateUrl: "location-fallbackscreen.html", + styleUrls: ["location-fallbackscreen.scss"] }) export class LocationFallbackScreen { diff --git a/src/app/fallback/location/location-fallbackscreen.scss b/src/app/fallback/location/location-fallbackscreen.scss new file mode 100644 index 00000000..1b722bf1 --- /dev/null +++ b/src/app/fallback/location/location-fallbackscreen.scss @@ -0,0 +1,18 @@ + +#marker-icon { + padding-top: 25%; + height: auto !important; + width: 20vh !important; + margin: auto !important; + display: block !important; + +} + +#middle-button { + top: 10%; + // height: auto !important; + // width: 20vh !important; + margin: auto !important; + display: block !important; + +} diff --git a/src/app/fallback/open-browser/leave-app.dialog.html b/src/app/fallback/open-browser/leave-app.dialog.html index 00a32f89..6f8a0c53 100644 --- a/src/app/fallback/open-browser/leave-app.dialog.html +++ b/src/app/fallback/open-browser/leave-app.dialog.html @@ -1,28 +1,23 @@ - - - - - - - - + + - + - + - -

- - {{'fallback.browser' | translate:{value: null} }} -

-
- - {{'fallback.browser_ok' | translate:{value: null} }} - - - {{'fallback.browser_no' | translate:{value: null} }} - + +

+ + {{'fallback.browser' | translate:{app_name: (this.appName | async)} }} +

+
+ + {{'fallback.browser_ok' | translate }} + + + {{'fallback.browser_no' | translate }} +
diff --git a/src/app/fallback/open-browser/leave-app.dialog.ts b/src/app/fallback/open-browser/leave-app.dialog.ts index 691f6353..01e42c43 100644 --- a/src/app/fallback/open-browser/leave-app.dialog.ts +++ b/src/app/fallback/open-browser/leave-app.dialog.ts @@ -1,5 +1,6 @@ /** angular */ import {Component} from "@angular/core"; +import { AppVersion } from "@ionic-native/app-version/ngx"; import {ModalController, NavParams} from "@ionic/angular"; /** ionic-native */ import {InAppBrowserOptions} from "@ionic-native/in-app-browser"; @@ -9,47 +10,47 @@ import {Logging} from "../../services/logging/logging.service"; /** misc */ import {TranslateService} from "@ngx-translate/core"; import {CssStyleService} from "../../services/theme/css-style.service"; +import { ViewController } from "@ionic/core"; @Component({ - templateUrl: "leave-app.dialog.html" + templateUrl: "leave-app.dialog.html", + styleUrls: ["leave-app.scss"] }) export class LeaveAppDialog { - private readonly log: Logger = Logging.getLogger(LeaveAppDialog.name); + private readonly log: Logger = Logging.getLogger("LeaveAppDialog"); private readonly params: LeaveAppDialogNavParams; + readonly appName: Promise; themeIonicContrastColor: string; constructor( private readonly nav: NavParams, private readonly modalCtrl: ModalController, - private readonly translate: TranslateService + private readonly appVersion: AppVersion, + private readonly cssStyle: CssStyleService, ) { this.params = nav.data; + this.appName = this.appVersion.getAppName(); } ionViewWillEnter(): void { this.themeIonicContrastColor = "light"; - if(CssStyleService.customIsSet) { - this.themeIonicContrastColor = CssStyleService.customColorContrast ? "light" : "dark"; + if(this.cssStyle.customIsSet) { + this.themeIonicContrastColor = this.cssStyle.customColorContrast ? "light" : "dark"; } } - dismiss(): void { + async dismiss(): Promise { this.log.trace(() => "User action -> dismiss"); - this.modalCtrl.dismiss(); + await this.modalCtrl.dismiss({}, "cancel"); } - leaveApp(): void { + async leaveApp(): Promise { this.log.trace(() => "User action -> leave app"); - const options: InAppBrowserOptions = { - location: "yes", - clearcache: "yes", - clearsessioncache: "yes" - }; + // The leave app function is responsible for closing the modal, because it somehow does not work in here this.params.leaveApp(); - this.modalCtrl.dismiss(); } } diff --git a/src/app/fallback/open-browser/leave-app.scss b/src/app/fallback/open-browser/leave-app.scss new file mode 100644 index 00000000..0b30e4ec --- /dev/null +++ b/src/app/fallback/open-browser/leave-app.scss @@ -0,0 +1,27 @@ + +#webr-icon { + height: auto !important; + width: 60% !important; + + @media screen and (orientation:landscape) { + height: 40% !important; + width: auto !important; + } + + margin: auto !important; + display: block !important; +} + +.return-to-app-row { + @media screen and (orientation:landscape) { + padding-top: 0; + } +} + +h1 { + color: var(--ion-color-primary-contrast); +} + +a { + color: var(--ion-color-primary-contrast); +} diff --git a/src/app/fallback/open-browser/leave-app.service.ts b/src/app/fallback/open-browser/leave-app.service.ts new file mode 100644 index 00000000..522a90c1 --- /dev/null +++ b/src/app/fallback/open-browser/leave-app.service.ts @@ -0,0 +1,27 @@ +import { Injectable } from "@angular/core"; +import { ModalController } from "@ionic/angular"; +import { LeaveAppDialog, LeaveAppDialogNavParams } from "./leave-app.dialog"; + +@Injectable({ + providedIn: "root" +}) +export class LeaveAppDialogService { + + + constructor( + private readonly modalCtrl: ModalController, + ) { + } + + async present(): Promise { + const modal: HTMLIonModalElement = await this.modalCtrl.create({ + component: LeaveAppDialog, + componentProps: { + leaveApp: (): Promise => modal.dismiss() + }, + cssClass: "modal-fullscreen" + }); + + await modal.present(); + } +} diff --git a/src/app/learningmodule/actions/open-learning-module-action.ts b/src/app/learningmodule/actions/open-html-learning-module-action.ts similarity index 58% rename from src/app/learningmodule/actions/open-learning-module-action.ts rename to src/app/learningmodule/actions/open-html-learning-module-action.ts index 9d4e9e90..a8f46d63 100644 --- a/src/app/learningmodule/actions/open-learning-module-action.ts +++ b/src/app/learningmodule/actions/open-html-learning-module-action.ts @@ -2,26 +2,30 @@ import {ILIASObjectAction, ILIASObjectActionAlert, ILIASObjectActionNoMessage, I import {ModalController, NavController} from "@ionic/angular"; import {InjectionToken} from "@angular/core"; import {LoadingPage, LoadingPageType} from "../../fallback/loading/loading.component"; -import {LearningModuleLoader} from "../services/learning-module-loader"; import {InAppBrowser, InAppBrowserOptions} from "@ionic-native/in-app-browser/ngx"; +import { LeaveAppDialogService } from "../../fallback/open-browser/leave-app.service"; import {User} from "../../models/user"; import {AuthenticationProvider} from "../../providers/authentication.provider"; -import {LearningModule} from "../../models/learning-module"; -import {ILIASObject} from "../../models/ilias-object"; +import { Logger } from "../../services/logging/logging.api"; +import { Logging } from "../../services/logging/logging.service"; +import {LearningModule} from "../models/learning-module"; import {LearningModulePathBuilder} from "../services/learning-module-path-builder"; import {TranslateService} from "@ngx-translate/core"; +import {LearningModuleManager} from "../services/learning-module-manager"; -export class OpenLearningModuleAction extends ILIASObjectAction { +export class OpenHtmlLearningModuleAction extends ILIASObjectAction { + + private readonly log: Logger = Logging.getLogger("OpenHtmlLearningModuleAction"); constructor( - private readonly loader: LearningModuleLoader, private readonly nav: NavController, private readonly learningModuleObjectId: number, - private readonly learningModuleName: string, private readonly modal: ModalController, private readonly browser: InAppBrowser, - private readonly pathBuilder: LearningModulePathBuilder, private readonly translate: TranslateService, + private readonly pathBuilder: LearningModulePathBuilder, + private readonly learningModuleManager: LearningModuleManager, + private readonly leaveAppDialogService: LeaveAppDialogService, ) {super()} async execute(): Promise { @@ -34,31 +38,21 @@ export class OpenLearningModuleAction extends ILIASObjectAction { await loadingPage.present(); try { const user: User = AuthenticationProvider.getUser(); - const obj: ILIASObject = await ILIASObject.findByObjIdAndUserId(this.learningModuleObjectId, user.id); - const alreadyLoaded: boolean = await obj.objectIsUnderFavorite(); - if(!alreadyLoaded) await this.loader.load(this.learningModuleObjectId); + await this.learningModuleManager.checkAndDownload(this.learningModuleObjectId, user.id); this.openHTMLModule(); await loadingPage.dismiss(); return new ILIASObjectActionNoMessage(); } catch (error) { await loadingPage.dismiss(); - throw error; + await this.leaveAppDialogService.present(); } } async openHTMLModule(): Promise { - console.log("opening learning module"); + this.log.info(() => "Opening HTLM learning module"); const user: User = AuthenticationProvider.getUser(); const lm: LearningModule = await LearningModule.findByObjIdAndUserId(this.learningModuleObjectId, user.id); - const url: string = await lm.getLocalStartFileUrl(this.pathBuilder); - const browserOptions: InAppBrowserOptions = { - location: "no", - clearsessioncache: "yes", - clearcache: "yes", - footer:"yes", - closebuttoncaption: this.translate.instant("close") - }; - this.browser.create(url, "_blank", browserOptions); + await this.nav.navigateForward(["/learningmodule", "htlm", lm.objId]); } alert(): ILIASObjectActionAlert | undefined { @@ -66,16 +60,13 @@ export class OpenLearningModuleAction extends ILIASObjectAction { } } -export interface OpenLearningModuleActionFunction { +export interface OpenHtmlLearningModuleActionFunction { ( nav: NavController, learningModuleObjectId: number, - learningModuleName: string, - modalController: ModalController, - browser: InAppBrowser, pathBuilder: LearningModulePathBuilder, - translate: TranslateService, - ): OpenLearningModuleAction + translate: TranslateService + ): OpenHtmlLearningModuleAction } -export const OPEN_LEARNING_MODULE_ACTION_FACTORY: InjectionToken = new InjectionToken("token for open learning module action factory"); +export const OPEN_HTML_LEARNING_MODULE_ACTION_FACTORY: InjectionToken = new InjectionToken("token for opening html learning module action factory"); diff --git a/src/app/learningmodule/actions/open-scorm-learning-module-action.ts b/src/app/learningmodule/actions/open-scorm-learning-module-action.ts new file mode 100644 index 00000000..9c624610 --- /dev/null +++ b/src/app/learningmodule/actions/open-scorm-learning-module-action.ts @@ -0,0 +1,60 @@ +import { InjectionToken } from "@angular/core"; +import { ModalController, NavController } from "@ionic/angular"; +import { ILIASObjectAction, ILIASObjectActionAlert, ILIASObjectActionNoMessage, ILIASObjectActionResult } from "../../actions/object-action"; +import { LoadingPage, LoadingPageType } from "../../fallback/loading/loading.component"; +import { LeaveAppDialogService } from "../../fallback/open-browser/leave-app.service"; +import { User } from "../../models/user"; +import { AuthenticationProvider } from "../../providers/authentication.provider"; +import { Logger } from "../../services/logging/logging.api"; +import { Logging } from "../../services/logging/logging.service"; +import { LearningModuleManager } from "../services/learning-module-manager"; + +export class OpenScormLearningModuleAction extends ILIASObjectAction { + + private readonly log: Logger = Logging.getLogger("OpenScormLearningModuleAction"); + + constructor( + private readonly learningModuleObjectId: number, + private readonly modal: ModalController, + private readonly navCtrl: NavController, + private readonly learningModuleManager: LearningModuleManager, + private readonly leaveAppDialogService: LeaveAppDialogService + ) {super()} + + async execute(): Promise { + const loadingPage: HTMLIonModalElement = await this.modal.create({ + component: LoadingPage, + cssClass: "modal-fullscreen" + }); + LoadingPage.type = LoadingPageType.learningmodule; + await loadingPage.present(); + try { + const user: User = AuthenticationProvider.getUser(); + await this.learningModuleManager.checkAndDownload(this.learningModuleObjectId, user.id); + this.openSCORMModule(); + await loadingPage.dismiss(); + return new ILIASObjectActionNoMessage(); + } catch (error) { + await loadingPage.dismiss(); + await this.leaveAppDialogService.present(); + } + } + + async openSCORMModule(): Promise { + this.log.info(() => "Opening SCORM learning module"); + await this.navCtrl.navigateForward(["/learningmodule", "sahs", this.learningModuleObjectId]); + } + + alert(): ILIASObjectActionAlert | undefined { + return undefined; + } +} + +export interface OpenScormLearningModuleActionFunction { + ( + learningModuleObjectId: number, + navCtrl: NavController, + ): OpenScormLearningModuleAction +} + +export const OPEN_SCORM_LEARNING_MODULE_ACTION_FACTORY: InjectionToken = new InjectionToken("token for open learning module action factory"); diff --git a/src/app/learningmodule/learning-module.module.ts b/src/app/learningmodule/learning-module.module.ts new file mode 100644 index 00000000..d007a125 --- /dev/null +++ b/src/app/learningmodule/learning-module.module.ts @@ -0,0 +1,21 @@ +import {CommonModule} from "@angular/common"; +import {NgModule} from "@angular/core"; +import {FormsModule, ReactiveFormsModule} from "@angular/forms"; +import {RouterModule, Routes} from "@angular/router"; +import {IonicModule} from "@ionic/angular"; + +const routes: Routes = [ + {path: "sahs", loadChildren: "./pages/scorm/scorm.module#ScormPageModule"}, + {path: "htlm", loadChildren: "./pages/htlm/htlm.module#HtlmPageModule"}, +]; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + ReactiveFormsModule, + IonicModule, + RouterModule.forChild(routes), + ] +}) +export class LearningModuleModule {} diff --git a/src/app/models/learning-module.ts b/src/app/learningmodule/models/learning-module.ts similarity index 85% rename from src/app/models/learning-module.ts rename to src/app/learningmodule/models/learning-module.ts index ab0ef752..b2333898 100644 --- a/src/app/models/learning-module.ts +++ b/src/app/learningmodule/models/learning-module.ts @@ -1,8 +1,8 @@ -import {ActiveRecord, SQLiteConnector} from "./active-record"; -import {SQLiteDatabaseService} from "../services/database.service"; -import {LearningModulePathBuilder} from "../learningmodule/services/learning-module-path-builder"; +import {ActiveRecord, SQLiteConnector} from "../../models/active-record"; +import {SQLiteDatabaseService} from "../../services/database.service"; +import {LearningModulePathBuilder} from "../services/learning-module-path-builder"; -export class LearningModule extends ActiveRecord { +export class LearningModule extends ActiveRecord { /** * objId of the ILIAS object corresponding to the lm */ @@ -39,7 +39,7 @@ export class LearningModule extends ActiveRecord { const db: SQLiteDatabaseService = await SQLiteDatabaseService.instance(); const response: any = await db.query("SELECT * FROM learning_modules WHERE objId = ? AND userId = ?", [objId, userId]); const lm: LearningModule = new LearningModule(); - if (response.rows.length == 0) { + if (response.rows.length === 0) { lm.objId = objId; lm.userId = userId; return lm; diff --git a/src/app/learningmodule/pages/htlm/htlm.html b/src/app/learningmodule/pages/htlm/htlm.html new file mode 100644 index 00000000..56624278 --- /dev/null +++ b/src/app/learningmodule/pages/htlm/htlm.html @@ -0,0 +1,16 @@ + + + + + {{title}} + + + + + + + + + + + diff --git a/src/app/learningmodule/pages/htlm/htlm.module.ts b/src/app/learningmodule/pages/htlm/htlm.module.ts new file mode 100644 index 00000000..2568ced1 --- /dev/null +++ b/src/app/learningmodule/pages/htlm/htlm.module.ts @@ -0,0 +1,27 @@ +/** angular */ +import {IonicModule} from "@ionic/angular"; +import {NgModule} from "@angular/core"; +import {CommonModule} from "@angular/common"; +import {FormsModule} from "@angular/forms"; +import {Routes, RouterModule} from "@angular/router"; +/** misc */ +import {HtlmPage} from "./htlm"; +import { TranslateModule } from "@ngx-translate/core"; + + +const routes: Routes = [ + {path: ":id", component: HtlmPage, pathMatch: "full"} +]; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + TranslateModule, + RouterModule.forChild(routes) + ], + declarations: [HtlmPage] +}) + +export class HtlmPageModule {} diff --git a/src/app/learningmodule/pages/htlm/htlm.ts b/src/app/learningmodule/pages/htlm/htlm.ts new file mode 100644 index 00000000..9c2538c9 --- /dev/null +++ b/src/app/learningmodule/pages/htlm/htlm.ts @@ -0,0 +1,52 @@ +import { Component, ElementRef, Inject, Injectable, ViewChild } from "@angular/core"; +import { DomSanitizer, SafeResourceUrl, SafeUrl } from "@angular/platform-browser"; +import {ActivatedRoute, ParamMap} from "@angular/router"; +import { WebView } from "@ionic-native/ionic-webview/ngx"; +import { Observable, Subject } from "rxjs"; +import { Logger } from "../../../services/logging/logging.api"; +import { Logging } from "../../../services/logging/logging.service"; +import {LEARNING_MODULE_PATH_BUILDER, LearningModulePathBuilder} from "../../services/learning-module-path-builder"; +import {AuthenticationProvider} from "../../../providers/authentication.provider"; +import {LearningModule} from "../../models/learning-module"; +import {User} from "../../../models/user"; +import {ILIASObject} from "../../../models/ilias-object"; + +@Component({ + selector: "page-htlm", + templateUrl: "htlm.html" +}) +export class HtlmPage { + + private readonly safeEntryPoint: Subject = new Subject(); + title: string = ""; + entryPoint: Observable = this.safeEntryPoint.asObservable(); + + private readonly log: Logger = Logging.getLogger("ScormPage"); + + constructor( + private readonly route: ActivatedRoute, + @Inject(LEARNING_MODULE_PATH_BUILDER) private readonly pathBuilder: LearningModulePathBuilder, + private readonly sanitizer: DomSanitizer, + private readonly webView: WebView + ) {} + + async ionViewDidEnter(): Promise { + // get data for the lm + const params: ParamMap = this.route.snapshot.paramMap; + const lmId: number = parseInt(params.get("id"), 10); + const user: User = AuthenticationProvider.getUser(); + const lm: LearningModule = await LearningModule.findByObjIdAndUserId(lmId, user.id); + const obj: ILIASObject = await ILIASObject.findByObjIdAndUserId(lm.objId, user.id); + this.title = obj.title; + + // get manifest + const url: SafeResourceUrl = this.sanitizer.bypassSecurityTrustResourceUrl( + this.webView.convertFileSrc( + await lm.getLocalStartFileUrl(this.pathBuilder) + ) + ); + this.safeEntryPoint.next(url); + this.safeEntryPoint.complete(); + } + +} diff --git a/src/app/learningmodule/pages/scorm/scorm.css b/src/app/learningmodule/pages/scorm/scorm.css new file mode 100644 index 00000000..419152c7 --- /dev/null +++ b/src/app/learningmodule/pages/scorm/scorm.css @@ -0,0 +1,18 @@ +* { margin: 0px; } +html, body, iframe { height:100%; } +html, body { overflow-y:hidden; font-family:Helvetica, "Helvetica Neue", Arial; font-size:12px; } +iframe { display:block; width:100%; } + +html, body, iframe , a, img, table, tbody, tr, td, table td, table th { + border : 0px none; + padding: 0px; +} + +a:link { color: #0000FF; } +a:visited { color: #0000FF; } +a:hover { color: #000080; } +a:active { color: #0000FF; } + +#btnExit {margin-left:5px;} +#btnAbandon {margin-left:5px;} +#btnSuspendAll {margin-left:5px;} diff --git a/src/app/learningmodule/pages/scorm/scorm.html b/src/app/learningmodule/pages/scorm/scorm.html new file mode 100644 index 00000000..37a7d945 --- /dev/null +++ b/src/app/learningmodule/pages/scorm/scorm.html @@ -0,0 +1,32 @@ + + + + + {{title}} + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
diff --git a/src/app/learningmodule/pages/scorm/scorm.module.ts b/src/app/learningmodule/pages/scorm/scorm.module.ts new file mode 100644 index 00000000..c1926399 --- /dev/null +++ b/src/app/learningmodule/pages/scorm/scorm.module.ts @@ -0,0 +1,27 @@ +/** angular */ +import {IonicModule} from "@ionic/angular"; +import {NgModule} from "@angular/core"; +import {CommonModule} from "@angular/common"; +import {FormsModule} from "@angular/forms"; +import {Routes, RouterModule} from "@angular/router"; +/** misc */ +import {ScormPage} from "./scorm"; +import { TranslateModule } from "@ngx-translate/core"; + + +const routes: Routes = [ + {path: ":id", component: ScormPage, pathMatch: "full"} +]; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + TranslateModule, + RouterModule.forChild(routes) + ], + declarations: [ScormPage] +}) + +export class ScormPageModule {} diff --git a/src/app/learningmodule/pages/scorm/scorm.ts b/src/app/learningmodule/pages/scorm/scorm.ts new file mode 100644 index 00000000..f55f0c6b --- /dev/null +++ b/src/app/learningmodule/pages/scorm/scorm.ts @@ -0,0 +1,45 @@ +import { Component, ElementRef, Inject, Injectable, ViewChild } from "@angular/core"; +import {ActivatedRoute, ParamMap} from "@angular/router"; +import { Logger } from "../../../services/logging/logging.api"; +import { Logging } from "../../../services/logging/logging.service"; +import {LEARNING_MODULE_PATH_BUILDER, LearningModulePathBuilder} from "../../services/learning-module-path-builder"; +import {AuthenticationProvider} from "../../../providers/authentication.provider"; +import {LearningModule} from "../../models/learning-module"; +import {User} from "../../../models/user"; +import {ILIASObject} from "../../../models/ilias-object"; + +@Component({ + selector: "page-scorm", + templateUrl: "scorm.html", + styleUrls: ["./scorm.css"] +}) +export class ScormPage { + + title: string = ""; + + private readonly log: Logger = Logging.getLogger("ScormPage"); + + constructor( + private readonly route: ActivatedRoute, + @Inject(LEARNING_MODULE_PATH_BUILDER) private readonly pathBuilder: LearningModulePathBuilder, + ) {} + + async ionViewDidEnter(): Promise { + // get data for the lm + const params: ParamMap = this.route.snapshot.paramMap; + const lmId: number = parseInt(params.get("id"), 10); + const user: User = AuthenticationProvider.getUser(); + const lm: LearningModule = await LearningModule.findByObjIdAndUserId(lmId, user.id); + const obj: ILIASObject = await ILIASObject.findByObjIdAndUserId(lm.objId, user.id); + this.title = obj.title; + + // get manifest + let manifest: string = await lm.getLocalStartFileUrl(this.pathBuilder); + manifest = manifest.replace("file://", "_app_file_"); + this.log.info(() => `got manifest file at ${manifest}`); + + //@ts-ignore + window.Run.ManifestByURL(manifest, true); + } + +} diff --git a/src/app/learningmodule/services/learning-module-loader.ts b/src/app/learningmodule/services/learning-module-loader.ts index 8985b2e8..36359589 100644 --- a/src/app/learningmodule/services/learning-module-loader.ts +++ b/src/app/learningmodule/services/learning-module-loader.ts @@ -1,16 +1,18 @@ -import {Inject, Injectable, InjectionToken} from "@angular/core"; -import {ILIAS_REST, ILIASRequestOptions, ILIASRest} from "../../providers/ilias/ilias.rest"; -import {HttpResponse} from "../../providers/http"; -import {AuthenticationProvider} from "../../providers/authentication.provider"; -import {ILIASObject} from "../../models/ilias-object"; -import {User} from "../../models/user"; -import {UserStorageService} from "../../services/filesystem/user-storage.service"; -import {LINK_BUILDER, LinkBuilder} from "../../services/link/link-builder.service"; -import {DownloadRequestOptions, FILE_DOWNLOADER, FileDownloader} from "../../providers/file-transfer/file-download"; -import {Zip} from "@ionic-native/zip/ngx"; -import {LearningModule} from "../../models/learning-module"; -import {LEARNING_MODULE_PATH_BUILDER, LearningModulePathBuilder} from "./learning-module-path-builder"; -import {LoadingPage} from "../../fallback/loading/loading.component"; +import { Inject, Injectable, InjectionToken } from "@angular/core"; +import { Zip } from "@ionic-native/zip/ngx"; +import { LoadingService } from "../../fallback/loading/loading.service"; +import { ILIASObject } from "../../models/ilias-object"; +import { User } from "../../models/user"; +import { AuthenticationProvider } from "../../providers/authentication.provider"; +import { DownloadRequestOptions, FILE_DOWNLOADER, FileDownloader } from "../../providers/file-transfer/file-download"; +import { HttpResponse } from "../../providers/http"; +import { ILIAS_REST, ILIASRequestOptions, ILIASRest } from "../../providers/ilias/ilias.rest"; +import { FileStorageService } from "../../services/filesystem/file-storage.service"; +import { UserStorageMamager } from "../../services/filesystem/user-storage.mamager"; +import { LINK_BUILDER, LinkBuilder } from "../../services/link/link-builder.service"; +import { LearningModule } from "../models/learning-module"; +import { LEARNING_MODULE_PATH_BUILDER, LearningModulePathBuilder } from "./learning-module-path-builder"; +import { LearningModuleStorageUtilisation } from "./learning-module-storage-utilisation"; export interface LearningModuleLoader { /** @@ -28,8 +30,11 @@ export const LEARNING_MODULE_LOADER: InjectionToken = new }) export class RestLearningModuleLoader implements LearningModuleLoader { constructor( - protected readonly zip: Zip, - protected readonly userStorage: UserStorageService, + private readonly storageUtilisation: LearningModuleStorageUtilisation, + private readonly zip: Zip, + private readonly fileStorage: FileStorageService, + private readonly userStorageManager: UserStorageMamager, + private readonly loadingService: LoadingService, @Inject(ILIAS_REST) private readonly iliasRest: ILIASRest, @Inject(FILE_DOWNLOADER) private readonly downloader: FileDownloader, @Inject(LINK_BUILDER) private readonly linkBuilder: LinkBuilder, @@ -37,16 +42,16 @@ export class RestLearningModuleLoader implements LearningModuleLoader { ) {} async load(objId: number): Promise { - LoadingPage.progress.next(0); + this.loadingService.start(); // get data for the learning module const user: User = AuthenticationProvider.getUser(); const obj: ILIASObject = await ILIASObject.findByObjIdAndUserId(objId, user.id); const request: LearningModuleData = await this.getLearningModuleData(obj.refId); - LoadingPage.progress.next(.2); + this.loadingService.set(.2); const lm: LearningModule = await LearningModule.findByObjIdAndUserId(objId, user.id); // path to the tmp directory for downloading - const localTmpZipDir: string = await this.pathBuilder.inLocalLmDir("tmp", true); + const localTmpZipDir: string = await this.pathBuilder.dirInLocalLmDir("tmp", true); // name of the zip file containing the learning module const tmpZipFile: string = `tmp_${objId}.zip`; // url to get the zip file containing the learning module @@ -55,7 +60,10 @@ export class RestLearningModuleLoader implements LearningModuleLoader { // return if the module did not change and is already loaded const lmLoaded: boolean = await LearningModule.existsByObjIdAndUserId(objId, user.id); const lmUpToDate: boolean = lm.timestamp >= request.timestamp; - if(lmLoaded && lmUpToDate) return; + if(lmLoaded && lmUpToDate) { + this.loadingService.finish(); + return; + } // download the zip file const downloadOptions: DownloadRequestOptions = { @@ -68,15 +76,19 @@ export class RestLearningModuleLoader implements LearningModuleLoader { }; // user-dependant path to all learning modules - const localAllLmsDir: string = await this.pathBuilder.inLocalLmDir("", true); + const localAllLmsDir: string = await this.pathBuilder.dirInLocalLmDir("", true); // extract the zip file, place the lm in a specific directory, then delete the zip file await this.downloader.download(downloadOptions); - LoadingPage.progress.next(.6); + this.loadingService.set(.6); + console.log(`UNZIPPING in ${localTmpZipDir} file ${tmpZipFile} => dir ${request.zipDirName}`); await this.zip.unzip(`${localTmpZipDir}${tmpZipFile}`, localTmpZipDir); - LoadingPage.progress.next(.9); - await this.userStorage.moveAndReplaceDir(localTmpZipDir, request.zipDirName, localAllLmsDir, this.pathBuilder.lmDirName(objId)); - await this.userStorage.removeFileIfExists(localTmpZipDir, tmpZipFile); - LoadingPage.progress.next(1); + this.loadingService.set(.9); + + // Remove object because the app would report wrong storage numbers after the update got removed by the user. + await this.userStorageManager.removeObjectFromUserStorage(user.id, objId, this.storageUtilisation); + await this.fileStorage.moveAndReplaceDir(localTmpZipDir, request.zipDirName, localAllLmsDir, this.pathBuilder.lmDirName(objId)); + await this.fileStorage.removeFileIfExists(localTmpZipDir, tmpZipFile); + this.loadingService.finish(); // save the lm in the local database lm.relativeStartFile = request.startFile; diff --git a/src/app/learningmodule/services/learning-module-manager.ts b/src/app/learningmodule/services/learning-module-manager.ts index 3ba26497..a86bc8ed 100644 --- a/src/app/learningmodule/services/learning-module-manager.ts +++ b/src/app/learningmodule/services/learning-module-manager.ts @@ -4,26 +4,40 @@ * @author mschneiter * @version 1.0.0 */ -import {Inject, Injectable, InjectionToken} from "@angular/core"; -import {UserStorageService} from "../../services/filesystem/user-storage.service"; -import {LEARNING_MODULE_PATH_BUILDER, LearningModulePathBuilder} from "./learning-module-path-builder"; -import {LearningModule} from "../../models/learning-module"; -import {User} from "../../models/user"; -import {AuthenticationProvider} from "../../providers/authentication.provider"; -import {File, DirectoryEntry} from "@ionic-native/file/ngx"; +import { Inject, Injectable, InjectionToken } from "@angular/core"; +import { ILIASObject } from "../../models/ilias-object"; +import { User } from "../../models/user"; +import { AuthenticationProvider } from "../../providers/authentication.provider"; +import { FileStorageService } from "../../services/filesystem/file-storage.service"; +import { UserStorageMamager } from "../../services/filesystem/user-storage.mamager"; +import { Logger } from "../../services/logging/logging.api"; +import { Logging } from "../../services/logging/logging.service"; +import { LearningModule } from "../models/learning-module"; +import { LEARNING_MODULE_LOADER, LearningModuleLoader } from "./learning-module-loader"; +import { LEARNING_MODULE_PATH_BUILDER, LearningModulePathBuilder } from "./learning-module-path-builder"; +import { LearningModuleStorageUtilisation } from "./learning-module-storage-utilisation"; export interface LearningModuleManager { /** - * Removes the learning module with the given id. - * All stored files of the module will be removed as well. + * Loads all relevant data of the learning module + * the given {@code objectId} and stores them. + * + * @param {number} objectId - ILIAS object id of the learning module */ - remove(objectId: number, userId: number): Promise; + load(objectId: number): Promise; /** - * Calculates the used storage of the learning module. The used storage within the sqlite database is not included. + * Checks whether the learning module is available on the mobile device + * and downloads it if this is not the case */ - storageSpaceUsage(objectId: number, userId: number): Promise; + checkAndDownload(objectId: number, userId: number): Promise; + + /** + * Removes the learning module with the given id. + * All stored files of the module will be removed as well. + */ + remove(objectId: number, userId: number): Promise; } export const LEARNING_MODULE_MANAGER: InjectionToken = new InjectionToken("token for learning module manager."); @@ -36,28 +50,46 @@ export const LEARNING_MODULE_MANAGER: InjectionToken = ne */ @Injectable() export class LearningModuleManagerImpl implements LearningModuleManager { + + private readonly log: Logger = Logging.getLogger("LearningModuleManagerImpl"); + constructor( - protected readonly fileSystem: File, - protected readonly userStorage: UserStorageService, + private readonly storageUtilisation: LearningModuleStorageUtilisation, + private readonly fileStorage: FileStorageService, + private readonly userStorageManager: UserStorageMamager, + @Inject(LEARNING_MODULE_LOADER) private readonly loader: LearningModuleLoader, @Inject(LEARNING_MODULE_PATH_BUILDER) private readonly pathBuilder: LearningModulePathBuilder, ) {} + async checkAndDownload(objectId: number, userId: number): Promise { + const obj: ILIASObject = await ILIASObject.findByObjIdAndUserId(objectId, userId); + + this.log.debug(() => `Learning module needs download: ${obj.needsDownload} -> ${!!obj.needsDownload}`); + if (obj.needsDownload !== false) { + await this.load(objectId); + obj.needsDownload = false; + await obj.save(); + } + } + + async load(objectId: number): Promise { + await this.loader.load(objectId); + const user: User = AuthenticationProvider.getUser(); + await this.userStorageManager.addObjectToUserStorage(user.id, objectId, this.storageUtilisation); + } + async remove(objId: number, userId: number): Promise { + this.log.debug(() => `Remove learning module object: "${objId}", user: "${userId}"`); + await this.userStorageManager.removeObjectFromUserStorage(userId, objId, this.storageUtilisation); + // remove from database - const user: User = AuthenticationProvider.getUser(); - const lm: LearningModule = await LearningModule.findByObjIdAndUserId(objId, user.id); + const lm: LearningModule = await LearningModule.findByObjIdAndUserId(objId, userId); await lm.destroy(); + // remove from file system - const localLmDir: string = await this.pathBuilder.inLocalLmDir("", false); + const localLmDir: string = await this.pathBuilder.dirInLocalLmDir("", false); const lmDirName: string = this.pathBuilder.lmDirName(objId); - await this.userStorage.removeDir(localLmDir, lmDirName); - } - - async storageSpaceUsage(objId: number, userId: number): Promise { - const lmDirPath: string = await this.pathBuilder.getLmDirByObjId(objId); - const dir: DirectoryEntry = await this.fileSystem.resolveDirectoryUrl(lmDirPath); - let size: number = -1; - dir.getMetadata(it => size = it.size); - return size; + this.log.debug(() => `Remove learning module dir: "${lmDirName}", Path: "${localLmDir}"`); + await this.fileStorage.removeDir(localLmDir, lmDirName); } } diff --git a/src/app/learningmodule/services/learning-module-path-builder.ts b/src/app/learningmodule/services/learning-module-path-builder.ts index 1894c40b..a197ca3b 100644 --- a/src/app/learningmodule/services/learning-module-path-builder.ts +++ b/src/app/learningmodule/services/learning-module-path-builder.ts @@ -1,7 +1,7 @@ import {Injectable, InjectionToken} from "@angular/core"; import {File} from "@ionic-native/file/ngx"; import {Platform} from "@ionic/angular"; -import {UserStorageService} from "../../services/filesystem/user-storage.service"; +import {FileStorageService} from "../../services/filesystem/file-storage.service"; /** * Builds directory paths for learning module. @@ -23,12 +23,17 @@ export interface LearningModulePathBuilder { /** * constructs the absolute path for a location relative to the root directory (with ending /) */ - inLocalLmDir(location: string, createRecursive: boolean): Promise; + dirInLocalLmDir(location: string, createRecursive: boolean): Promise; /** * constructs the absolute path to the directory containing the contents of the learning module (with ending /) */ getLmDirByObjId(objId: number): Promise; + + /** + * Constructs the absolute base path of the learning modules, without an ending slash. + */ + absoluteBasePath(): Promise; } export const LEARNING_MODULE_PATH_BUILDER: InjectionToken = new InjectionToken("token for learning module path builder"); @@ -40,20 +45,26 @@ export class LearningModulePathBuilderImpl implements LearningModulePathBuilder constructor( private readonly file: File, private readonly platform: Platform, - private readonly userStorage: UserStorageService, + private readonly fileStorage: FileStorageService, ) {} lmDirName(objId: number): string { return `lm_${objId}/`; } - async inLocalLmDir(path: string, createRecursive: boolean): Promise { + async absoluteBasePath(): Promise { + const baseDir: string = this.withoutEndingSlash(this.lmsBaseDirName); + return this.fileStorage.dirForUser(baseDir, true); + } + + async dirInLocalLmDir(path: string = "", createRecursive: boolean = false): Promise { path = this.withoutEndingSlash(path); - return this.userStorage.dirForUser(`${this.lmsBaseDirName}${path}`, createRecursive); + const baseDir: string = path.length ? this.lmsBaseDirName : this.withoutEndingSlash(this.lmsBaseDirName); + return this.fileStorage.dirForUser(`${baseDir}${path}`, createRecursive); } async getLmDirByObjId(objId: number): Promise { - return this.inLocalLmDir(this.lmDirName(objId), false); + return this.dirInLocalLmDir(this.lmDirName(objId), false); } /** diff --git a/src/app/learningmodule/services/learning-module-storage-utilisation.ts b/src/app/learningmodule/services/learning-module-storage-utilisation.ts new file mode 100644 index 00000000..6e3e2cf6 --- /dev/null +++ b/src/app/learningmodule/services/learning-module-storage-utilisation.ts @@ -0,0 +1,39 @@ +import { Inject, Injectable } from "@angular/core"; +import { DirectoryEntry, File } from "@ionic-native/file/ngx"; +import { StorageUtilization } from "../../services/filesystem/user-storage.mamager"; +import { UserStorageService } from "../../services/filesystem/user-storage.service"; +import { Logger } from "../../services/logging/logging.api"; +import { Logging } from "../../services/logging/logging.service"; +import { LEARNING_MODULE_PATH_BUILDER, LearningModulePathBuilder } from "./learning-module-path-builder"; + +@Injectable({ + providedIn: "root" +}) +export class LearningModuleStorageUtilisation implements StorageUtilization { + + private readonly log: Logger = Logging.getLogger("LearningModuleStorageUtilisation"); + + constructor( + private readonly fileSystem: File, + @Inject(LEARNING_MODULE_PATH_BUILDER) private readonly pathBuilder: LearningModulePathBuilder, + ) { + } + + async getUsedStorage(objectId: number, userId: number): Promise { + try { + const lmDirPath: string = await this.pathBuilder.getLmDirByObjId(objectId); + const dir: DirectoryEntry = await this.fileSystem.resolveDirectoryUrl(lmDirPath); + return UserStorageService.getDirSizeRecursive(dir.nativeURL, this.fileSystem); + } catch (error) { + // Cordova file plugin throws its own error objects. Code 1 means NOT_FOUND_ERR. + // See: https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/#list-of-error-codes-and-meanings + if (error.code === 1) { + this.log.debug(() => `Directory of learning module with objId: ${objectId}, of user: ${userId} does not exist assume size 0 Byte`); + return 0; + } + + this.log.error(() => `Failed to calculate size for learning module with objId: ${objectId}, for user: ${userId}, reason: ${error.message}`); + throw error; + } + } +} diff --git a/src/app/learnplace/actions/open-learnplace-action.ts b/src/app/learnplace/actions/open-learnplace-action.ts index d4262da3..cf3d1b1d 100644 --- a/src/app/learnplace/actions/open-learnplace-action.ts +++ b/src/app/learnplace/actions/open-learnplace-action.ts @@ -1,9 +1,12 @@ +import { UserEntity } from "../../entity/user.entity"; import {LoadingPage, LoadingPageType} from "../../fallback/loading/loading.component"; import {ILIASObjectAction, ILIASObjectActionAlert, ILIASObjectActionNoMessage, ILIASObjectActionResult} from "../../actions/object-action"; -import {LearnplaceLoader} from "../services/loader/learnplace"; import {ModalController, NavController} from "@ionic/angular"; -import {InjectionToken} from "@angular/core"; +import { Inject, InjectionToken } from "@angular/core"; +import { USER_REPOSITORY, UserRepository } from "../../providers/repository/repository.user"; import {LearnplaceNavParams} from "../pages/learnplace-tabs/learnplace.nav-params"; +import {LearnplaceManager} from "../services/learnplace.management"; +import {ILIASObject} from "../../models/ilias-object"; /** * Opens a learnplace. A learnplace has its own view and content. @@ -14,11 +17,12 @@ import {LearnplaceNavParams} from "../pages/learnplace-tabs/learnplace.nav-param export class OpenLearnplaceAction extends ILIASObjectAction { constructor( - private readonly loader: LearnplaceLoader, + private readonly manager: LearnplaceManager, private readonly nav: NavController, private readonly learnplaceObjectId: number, private readonly learnplaceName: string, - private readonly modal: ModalController + private readonly modal: ModalController, + private readonly userRepository: UserRepository ) {super()} async execute(): Promise { @@ -30,7 +34,13 @@ export class OpenLearnplaceAction extends ILIASObjectAction { LoadingPage.type = LoadingPageType.learnplace; await loadingPage.present(); try { - await this.loader.load(this.learnplaceObjectId); + // load the learnplace if not contained in favorites + // TODO how to handle changes of ILIAS object? + const user: UserEntity = (await this.userRepository.findAuthenticatedUser()).get(); + const ilObj: ILIASObject = await ILIASObject.findByObjIdAndUserId(this.learnplaceObjectId, user.id); + if(!ilObj.needsDownload) + await this.manager.load(this.learnplaceObjectId); + // open page for learnplace LearnplaceNavParams.learnplaceObjectId = this.learnplaceObjectId; LearnplaceNavParams.learnplaceName = this.learnplaceName; await this.nav.navigateForward(["learnplace", this.learnplaceObjectId]); diff --git a/src/app/learnplace/directives/accordion/accordion.directive.ts b/src/app/learnplace/directives/accordion/accordion.directive.ts index 09bfa7b2..81ff855e 100644 --- a/src/app/learnplace/directives/accordion/accordion.directive.ts +++ b/src/app/learnplace/directives/accordion/accordion.directive.ts @@ -26,7 +26,7 @@ export class AccordionBlock implements OnInit, OnDestroy { @Input("value") readonly accordion: AccordionBlockModel; - private expanded: boolean = false; + expanded: boolean = false; private accordionSubscription?: Subscription; diff --git a/src/app/learnplace/directives/linkblock/link-block.html b/src/app/learnplace/directives/linkblock/link-block.html index 3a732229..12e821f7 100644 --- a/src/app/learnplace/directives/linkblock/link-block.html +++ b/src/app/learnplace/directives/linkblock/link-block.html @@ -2,7 +2,7 @@ - {{linkLabel}} + {{!!linkLabel ? linkLabel : ("learnplace.block.link.title_unknown" | translate)}} diff --git a/src/app/learnplace/directives/pictureblock/pictureblock.directive.ts b/src/app/learnplace/directives/pictureblock/pictureblock.directive.ts index d1d60df4..2edd0081 100644 --- a/src/app/learnplace/directives/pictureblock/pictureblock.directive.ts +++ b/src/app/learnplace/directives/pictureblock/pictureblock.directive.ts @@ -15,7 +15,7 @@ import {WebView} from "@ionic-native/ionic-webview/ngx"; export class PictureBlock implements OnInit { @Input("value") - readonly pictureBlock: PictureBlockModel; + pictureBlock: PictureBlockModel; embeddedSrc?: SafeUrl; diff --git a/src/app/learnplace/pages/content/content.component.ts b/src/app/learnplace/pages/content/content.component.ts index 35d5cb58..7671ecfa 100644 --- a/src/app/learnplace/pages/content/content.component.ts +++ b/src/app/learnplace/pages/content/content.component.ts @@ -1,37 +1,45 @@ -import {ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject} from "@angular/core"; -import {ViewDidLeave, ViewWillEnter, ViewDidEnter} from "ionic-lifecycle-interface"; -import {NEVER, Observable} from "rxjs"; -import {shareReplay, tap} from "rxjs/operators"; -import {BlockModel} from "../../services/block.model"; -import {BLOCK_SERVICE, BlockService} from "../../services/block.service"; -import {LearnplaceNavParams} from "../learnplace-tabs/learnplace.nav-params"; +import { Component, Inject, NgZone, OnDestroy } from "@angular/core"; +import { ViewDidLeave, ViewWillEnter } from "ionic-lifecycle-interface"; +import { ReplaySubject, Subject } from "rxjs"; +import { takeUntil } from "rxjs/operators"; +import { BlockModel } from "../../services/block.model"; +import { BLOCK_SERVICE, BlockService } from "../../services/block.service"; +import { LearnplaceNavParams } from "../learnplace-tabs/learnplace.nav-params"; @Component({ - templateUrl: "content.html" + templateUrl: "content.html", + styleUrls: ["content.scss"] }) -export class ContentPage implements ViewWillEnter, ViewDidEnter, ViewDidLeave { +export class ContentPage implements ViewWillEnter, ViewDidLeave, OnDestroy { - blockList: Observable> = NEVER; + private readonly dispose$: Subject = new Subject(); + readonly blockList: ReplaySubject> = new ReplaySubject>(1); constructor( @Inject(BLOCK_SERVICE) private readonly blockService: BlockService, - private readonly detectorRef: ChangeDetectorRef, + private readonly zone: NgZone, ) { } ionViewWillEnter(): void { // we detect property changes, when a block list is emitted to update the UI with the new block list - this.blockList = this.blockService.getBlockList(LearnplaceNavParams.learnplaceObjectId) + this.blockService.getBlockList(LearnplaceNavParams.learnplaceObjectId) .pipe( - tap(() => this.detectorRef.detectChanges()), - shareReplay(1) - ); - } - - ionViewDidEnter(): void { - this.detectorRef.detectChanges(); + takeUntil(this.dispose$) + ).subscribe((it) => { + console.log("Block List: ", it); + this.zone.run(() => this.blockList.next(it)); + }); } + // Ionic won't call this callback if the entire learnplace tab nav gets popped. ionViewDidLeave(): void { + this.dispose$.next(); this.blockService.shutdown(); } + + ngOnDestroy(): void { + this.ionViewDidLeave(); + this.dispose$.complete(); + this.blockList.complete(); + } } diff --git a/src/app/learnplace/pages/content/content.html b/src/app/learnplace/pages/content/content.html index 0533561f..3df3cceb 100644 --- a/src/app/learnplace/pages/content/content.html +++ b/src/app/learnplace/pages/content/content.html @@ -1,15 +1,9 @@ - - + - - - - - -
+
-

{{"learnplace.block.no_content" | translate}}

+

{{"learnplace.block.no_content" | translate}}

diff --git a/src/app/learnplace/pages/content/content.scss b/src/app/learnplace/pages/content/content.scss index 1d94db70..c67730ec 100644 --- a/src/app/learnplace/pages/content/content.scss +++ b/src/app/learnplace/pages/content/content.scss @@ -1,16 +1,16 @@ -ion-content{ - - h1{ - text-align:left; +ion-content { + h1 { + text-align: left; } - h2{ - text-align:left; - padding-top: .67em; + + h2 { + text-align: left; + padding-top: .67em; } p { - font-size: 1.8em; - padding-top: .25em; - text-align: left; + font-size: 1.8em; + padding-top: .25em; + text-align: left; } } diff --git a/src/app/learnplace/pages/learnplace-tabs/learnplace-tabs.component.ts b/src/app/learnplace/pages/learnplace-tabs/learnplace-tabs.component.ts index fb41872b..3c8f2dac 100644 --- a/src/app/learnplace/pages/learnplace-tabs/learnplace-tabs.component.ts +++ b/src/app/learnplace/pages/learnplace-tabs/learnplace-tabs.component.ts @@ -7,6 +7,7 @@ import {LearnplaceNavParams} from "./learnplace.nav-params"; @Component({ templateUrl: "learnplace-tabs.html", + styleUrls: ["learnplace-tabs.scss"] }) export class LearnplaceTabsPage implements ViewWillEnter, ViewDidLeave { diff --git a/src/app/learnplace/pages/learnplace-tabs/learnplace-tabs.html b/src/app/learnplace/pages/learnplace-tabs/learnplace-tabs.html index 3913d6ea..8cc1a752 100644 --- a/src/app/learnplace/pages/learnplace-tabs/learnplace-tabs.html +++ b/src/app/learnplace/pages/learnplace-tabs/learnplace-tabs.html @@ -11,16 +11,17 @@ - - - - - - Map - - - - Content - - - + + + + + + {{"map" | translate}} + + + + {{"content" | translate}} + + + + diff --git a/src/app/learnplace/pages/learnplace-tabs/learnplace-tabs.scss b/src/app/learnplace/pages/learnplace-tabs/learnplace-tabs.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/app/learnplace/pages/map/map.component.ts b/src/app/learnplace/pages/map/map.component.ts index 9609a792..7136a820 100644 --- a/src/app/learnplace/pages/map/map.component.ts +++ b/src/app/learnplace/pages/map/map.component.ts @@ -1,5 +1,4 @@ -import {ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, ViewChild} from "@angular/core"; -import {IonContent} from "@ionic/angular"; +import { ChangeDetectorRef, Component, Inject, OnDestroy, ViewChild } from "@angular/core"; import {ViewDidLeave, ViewWillEnter, ViewDidEnter} from "ionic-lifecycle-interface"; import {Subscription} from "rxjs"; import {Logger} from "../../../services/logging/logging.api"; @@ -11,9 +10,10 @@ import {LearnplaceNavParams} from "../learnplace-tabs/learnplace.nav-params"; @Component({ selector: "map", - templateUrl: "map.html" + templateUrl: "map.html", + styleUrls: ["map.scss"] }) -export class MapPage implements ViewWillEnter, ViewDidEnter, ViewDidLeave { +export class MapPage implements ViewWillEnter, ViewDidEnter, ViewDidLeave, OnDestroy { @ViewChild("map", {"static": false}) mapElement: Element; @@ -48,11 +48,22 @@ export class MapPage implements ViewWillEnter, ViewDidEnter, ViewDidLeave { this.detectorRef.detectChanges(); } + // Ionic won't call this callback if the entire learnplace tab nav gets popped. ionViewDidLeave(): void { this.mapService.shutdown(); this.mapSubscription.unsubscribe(); - while (this.mapElement.firstChild) { - this.mapElement.removeChild(this.mapElement.firstChild); + if (!!this.mapElement) { + while (this.mapElement.firstChild) { + this.mapElement.removeChild(this.mapElement.firstChild); + } + } + this.mapSubscription = undefined; + } + + ngOnDestroy(): void { + // workaround + if (this.mapSubscription !== undefined) { + this.ionViewDidLeave(); } } diff --git a/src/app/learnplace/pages/map/map.html b/src/app/learnplace/pages/map/map.html index d7320ea9..4fab1bd8 100644 --- a/src/app/learnplace/pages/map/map.html +++ b/src/app/learnplace/pages/map/map.html @@ -1,17 +1,11 @@ - - - - - - - +
-
+
-

{{map?.getDescriptionLangVar() | translate}}

+

{{map?.getDescriptionLangVar() | translate}}

diff --git a/src/app/learnplace/pages/map/map.scss b/src/app/learnplace/pages/map/map.scss new file mode 100644 index 00000000..a737a5c5 --- /dev/null +++ b/src/app/learnplace/pages/map/map.scss @@ -0,0 +1,10 @@ + +#map { + height: 100%; + width: 100%; + position: absolute !important; + top: 0 !important; + left: 0 !important; + right: 0 !important; + z-index: 0; +} \ No newline at end of file diff --git a/src/app/learnplace/providers/rest/json.schema.ts b/src/app/learnplace/providers/rest/json.schema.ts index b328365c..15b19e3e 100644 --- a/src/app/learnplace/providers/rest/json.schema.ts +++ b/src/app/learnplace/providers/rest/json.schema.ts @@ -228,3 +228,177 @@ export const journalEntriesJsonSchema: object = { "required": ["userId", "timestamp"] } }; + +export const iliasObjectJsonSchema: object = { + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "http://example.com/example.json", + "type": "object", + "title": "The root schema", + "description": "The root schema comprises the entire JSON document.", + "default": {}, + "examples": [ + { + "objId": "1917", + "title": "test obj", + "description": "", + "hasPageLayout": false, + "hasTimeline": false, + "permissionType": "read", + "refId": "919", + "parentRefId": "176", + "type": "htlm", + "link": "https://test.studer-raimann.ch/pegasus-ilias54-php7/goto.php?target=htlm_919&client_id=default", + "repoPath": [ + "ILIAS", + "Demo srag", + "test obj" + ] + } + ], + "required": [ + "objId", + "title", + "description", + "hasPageLayout", + "hasTimeline", + "permissionType", + "refId", + "parentRefId", + "type", + "link", + "repoPath" + ], + "properties": { + "objId": { + "$id": "#/properties/objId", + "type": "string", + "title": "The objId schema", + "description": "An explanation about the purpose of this instance.", + "default": "", + "examples": [ + "1917" + ] + }, + "title": { + "$id": "#/properties/title", + "type": "string", + "title": "The title schema", + "description": "An explanation about the purpose of this instance.", + "default": "", + "examples": [ + "obj example" + ] + }, + "description": { + "$id": "#/properties/description", + "type": "string", + "title": "The description schema", + "description": "An explanation about the purpose of this instance.", + "default": "", + "examples": [ + "" + ] + }, + "hasPageLayout": { + "$id": "#/properties/hasPageLayout", + "type": "boolean", + "title": "The hasPageLayout schema", + "description": "An explanation about the purpose of this instance.", + "default": false, + "examples": [ + false + ] + }, + "hasTimeline": { + "$id": "#/properties/hasTimeline", + "type": "boolean", + "title": "The hasTimeline schema", + "description": "An explanation about the purpose of this instance.", + "default": false, + "examples": [ + false + ] + }, + "permissionType": { + "$id": "#/properties/permissionType", + "type": "string", + "title": "The permissionType schema", + "description": "An explanation about the purpose of this instance.", + "default": "", + "examples": [ + "read" + ] + }, + "refId": { + "$id": "#/properties/refId", + "type": "string", + "title": "The refId schema", + "description": "An explanation about the purpose of this instance.", + "default": "", + "examples": [ + "919" + ] + }, + "parentRefId": { + "$id": "#/properties/parentRefId", + "type": "string", + "title": "The parentRefId schema", + "description": "An explanation about the purpose of this instance.", + "default": "", + "examples": [ + "176" + ] + }, + "type": { + "$id": "#/properties/type", + "type": "string", + "title": "The type schema", + "description": "An explanation about the purpose of this instance.", + "default": "", + "examples": [ + "htlm" + ] + }, + "link": { + "$id": "#/properties/link", + "type": "string", + "title": "The link schema", + "description": "An explanation about the purpose of this instance.", + "default": "", + "examples": [ + "https://test.studer-raimann.ch/pegasus-ilias54-php7/goto.php?target=htlm_919&client_id=default" + ] + }, + "repoPath": { + "$id": "#/properties/repoPath", + "type": "array", + "title": "The repoPath schema", + "description": "An explanation about the purpose of this instance.", + "default": [], + "examples": [ + [ + "ILIAS", + "Demo srag" + ] + ], + "additionalItems": true, + "items": { + "$id": "#/properties/repoPath/items", + "anyOf": [ + { + "$id": "#/properties/repoPath/items/anyOf/0", + "type": "string", + "title": "The first anyOf schema", + "description": "An explanation about the purpose of this instance.", + "default": "", + "examples": [ + "ILIAS", + "Demo srag" + ] + } + ] + } + } + }, + "additionalProperties": true +} diff --git a/src/app/learnplace/providers/rest/learnplace.api.ts b/src/app/learnplace/providers/rest/learnplace.api.ts index 0ffe4132..3a139c0a 100644 --- a/src/app/learnplace/providers/rest/learnplace.api.ts +++ b/src/app/learnplace/providers/rest/learnplace.api.ts @@ -1,10 +1,11 @@ -import {BlockObject, JournalEntry, LearnPlace} from "./learnplace.pojo"; -import {ILIAS_REST, ILIASRequestOptions, ILIASRest} from "../../../providers/ilias/ilias.rest"; -import {Inject, Injectable, InjectionToken} from "@angular/core"; -import {HttpResponse} from "../../../providers/http"; -import {blocksJsonSchema, journalEntriesJsonSchema, learnplaceJsonSchema} from "./json.schema"; -import {Logger} from "../../../services/logging/logging.api"; -import {Logging} from "../../../services/logging/logging.service"; +import { Inject, Injectable, InjectionToken } from "@angular/core"; +import { IliasObjectService } from "src/app/services/ilias-object.service"; +import { HttpResponse } from "../../../providers/http"; +import { ILIAS_REST, ILIASRequestOptions, ILIASRest } from "../../../providers/ilias/ilias.rest"; +import { Logger } from "../../../services/logging/logging.api"; +import { Logging } from "../../../services/logging/logging.service"; +import { blocksJsonSchema, journalEntriesJsonSchema, learnplaceJsonSchema } from "./json.schema"; +import { BlockObject, ILIASLinkBlock, JournalEntry, LearnPlace } from "./learnplace.pojo"; const DEFAULT_REQUEST_OPTIONS: ILIASRequestOptions = {accept: "application/json"}; @@ -70,7 +71,8 @@ export class ILIASLearnplaceAPI implements LearnplaceAPI { private log: Logger = Logging.getLogger(ILIASLearnplaceAPI.name); constructor( - @Inject(ILIAS_REST) private readonly iliasRest: ILIASRest + @Inject(ILIAS_REST) private readonly iliasRest: ILIASRest, + private readonly ilObjService: IliasObjectService ) {} /** @@ -143,8 +145,31 @@ export class ILIASLearnplaceAPI implements LearnplaceAPI { const response: HttpResponse = await this.iliasRest.get(`/v2/ilias-app/learnplace/${learnplaceObjectId}/blocks`, DEFAULT_REQUEST_OPTIONS); - return response.handle(it => + const blocks: BlockObject = response.handle(it => it.json(blocksJsonSchema) ); + + await this.downloadLinkBlockRelatedILIASObject(blocks); + return blocks; + } + + /** + * Downloads the link block related ILIAS object. + * + * @param {BlockObject} blocks - The blocks of the current learnplace, which are used to fetch the related ilias objects + * @private + */ + private async downloadLinkBlockRelatedILIASObject(blocks: BlockObject): Promise { + const linkBlocks: Array = blocks.iliasLink.concat( + blocks.accordion.reduceRight( + (prev, curr) => prev.concat(curr.iliasLink), + new Array()) + ); + + if (linkBlocks.length === 0) { + return; + } + + await this.ilObjService.downloadIlObjByRefID(linkBlocks.map(block => block.refId)); } } diff --git a/src/app/learnplace/services/learnplace.management.ts b/src/app/learnplace/services/learnplace.management.ts index 2f7b7c21..e408ee65 100644 --- a/src/app/learnplace/services/learnplace.management.ts +++ b/src/app/learnplace/services/learnplace.management.ts @@ -7,6 +7,10 @@ import {VideoBlockEntity} from "../entity/videoblock.entity"; import {LEARNPLACE_REPOSITORY, LearnplaceRepository} from "../providers/repository/learnplace.repository"; import {File, FileEntry, RemoveResult} from "@ionic-native/file/ngx"; import {LEARNPLACE_PATH_BUILDER, LearnplacePathBuilder} from "./loader/resource"; +import {StorageUtilization, UserStorageMamager} from "../../services/filesystem/user-storage.mamager"; +import {LEARNPLACE_LOADER, LearnplaceLoader} from "./loader/learnplace"; +import {AuthenticationProvider} from "../../providers/authentication.provider"; +import {User} from "../../models/user"; /** * Describes a service to manage learnplaces. @@ -16,6 +20,16 @@ import {LEARNPLACE_PATH_BUILDER, LearnplacePathBuilder} from "./loader/resource" */ export interface LearnplaceManager { + /** + * Loads all relevant data of the learnplace matching + * the given {@code objectId} and stores them. + * + * @param {number} objectId - ILIAS object id of the learnplace + * + * @throws {LearnplaceLoadingError} if the learnplace could not be loaded + */ + load(objectId: number): Promise; + /** * Removes the learnplace with the given id. * All stored files of the learnplace will be removed as well. @@ -37,7 +51,7 @@ export interface LearnplaceManager { * * @returns {Promise} The used storage in bytes. */ - storageSpaceUsage(objectId: number, userId: number): Promise; + getUsedStorage(objectId: number, userId: number): Promise; } export const LEARNPLACE_MANAGER: InjectionToken = new InjectionToken("token for learnplace manager."); @@ -49,18 +63,26 @@ export const LEARNPLACE_MANAGER: InjectionToken = new Injecti * @version 1.0.0 */ @Injectable() -export class LearnplaceManagerImpl implements LearnplaceManager{ +export class LearnplaceManagerImpl implements LearnplaceManager, StorageUtilization{ private log: Logger = Logging.getLogger(LearnplaceManagerImpl.name); constructor( private readonly file: File, + private readonly userStorageManager: UserStorageMamager, @Inject(LEARNPLACE_REPOSITORY) private readonly learnplaceRepository: LearnplaceRepository, - @Inject(LEARNPLACE_PATH_BUILDER) private readonly pathBuilder: LearnplacePathBuilder + @Inject(LEARNPLACE_PATH_BUILDER) private readonly pathBuilder: LearnplacePathBuilder, + @Inject(LEARNPLACE_LOADER) private readonly loader: LearnplaceLoader ){} + async load(objectId: number): Promise { + await this.loader.load(objectId); + const user: User = AuthenticationProvider.getUser(); + await this.userStorageManager.addObjectToUserStorage(user.id, objectId, this); + } async remove(objectId: number, userId: number): Promise { + await this.userStorageManager.removeObjectFromUserStorage(userId, objectId, this); return (await this.learnplaceRepository.findByObjectIdAndUserId(objectId, userId)).ifPresent(async(it) => { @@ -105,9 +127,9 @@ export class LearnplaceManagerImpl implements LearnplaceManager{ return [dirPath, filename]; } - async storageSpaceUsage(objectId: number, userId: number): Promise { - let size: number = 0; - await (await this.learnplaceRepository.findByObjectIdAndUserId(objectId, userId)).ifPresent(async(it) => { + async getUsedStorage(objectId: number, userId: number): Promise { + let size: number = 0; + await (await this.learnplaceRepository.findByObjectIdAndUserId(objectId, userId)).ifPresent(async(it) => { const paths: Array = []; const basePath: string = await this.pathBuilder.getStorageLocation(); @@ -118,6 +140,16 @@ export class LearnplaceManagerImpl implements LearnplaceManager{ paths.push(`${basePath}${picture.thumbnail}`); }); + it.accordionBlocks.forEach((acc) => { + acc.videoBlocks.forEach((video: VideoBlockEntity) => paths.push(`${basePath}${video.url}`)); + acc.pictureBlocks.forEach((picture: PictureBlockEntity) => { + paths.push(`${basePath}${picture.url}`); + paths.push(`${basePath}${picture.thumbnail}`); + }); + }); + + this.log.debug(() => `Learnplace ${objectId} of user ${userId} contains ${paths.length} files`); + for(const fullPath of paths) { const [path, filename]: [string, string] = this.splitIntoPathNamePair(fullPath); const result: FileEntry = await this.file.getFile(await this.file.resolveDirectoryUrl(path), filename, {create: false}); @@ -125,6 +157,8 @@ export class LearnplaceManagerImpl implements LearnplaceManager{ } }); - return size; + this.log.debug(() => `Total size of learnplace ${objectId} owned by user ${userId}: ${size}`); + + return size; } } diff --git a/src/app/learnplace/services/loader/learnplace.ts b/src/app/learnplace/services/loader/learnplace.ts index 3b247405..99204a2a 100644 --- a/src/app/learnplace/services/loader/learnplace.ts +++ b/src/app/learnplace/services/loader/learnplace.ts @@ -161,8 +161,7 @@ export class RestLearnplaceLoader implements LearnplaceLoader { this.videoBlocks = videoBlocks; this.accordionBlocks = accordionBlocks; }) - ) - .pipe( + ).pipe( mergeMap(it => from(this.learnplaceRepository.save(it))), mergeMap(_ => EMPTY), // we want to emit void, so we map the save observable to an empty one catchError((error, _) => { diff --git a/src/app/learnplace/services/visibility/visibility.strategy.ts b/src/app/learnplace/services/visibility/visibility.strategy.ts index 8e295d77..c92aaa1d 100644 --- a/src/app/learnplace/services/visibility/visibility.strategy.ts +++ b/src/app/learnplace/services/visibility/visibility.strategy.ts @@ -1,20 +1,19 @@ - -import {Subscription, Observable, Subscriber, from, of, forkJoin, TeardownLogic } from "rxjs"; -import {map, filter, withLatestFrom, takeWhile, mergeMap, tap, finalize, mergeAll, shareReplay } from "rxjs/operators"; -import {VisibilityAware} from "./visibility.context"; -import {Inject, Injectable} from "@angular/core"; -import {LEARNPLACE_REPOSITORY, LearnplaceRepository} from "../../providers/repository/learnplace.repository"; -import {LearnplaceEntity} from "../../entity/learnplace.entity"; -import {NoSuchElementError} from "../../../error/errors"; -import {Geolocation} from "../../../services/device/geolocation/geolocation.service"; -import {IliasCoordinates} from "../geodesy"; -import {LEARNPLACE_API, LearnplaceAPI} from "../../providers/rest/learnplace.api"; -import {isDefined} from "../../../util/util.function"; -import {VisitJournalEntity} from "../../entity/visit-journal.entity"; -import {USER_REPOSITORY, UserRepository} from "../../../providers/repository/repository.user"; -import {UserEntity} from "../../../entity/user.entity"; -import {Logger} from "../../../services/logging/logging.api"; -import {Logging} from "../../../services/logging/logging.service"; +import { Inject, Injectable } from "@angular/core"; +import { combineLatest, defer, forkJoin, from, Observable, of, Subject, Subscriber, Subscription, TeardownLogic } from "rxjs"; +import { filter, finalize, map, mergeAll, mergeMap, shareReplay, takeUntil, tap } from "rxjs/operators"; +import { UserEntity } from "../../../entity/user.entity"; +import { NoSuchElementError } from "../../../error/errors"; +import { USER_REPOSITORY, UserRepository } from "../../../providers/repository/repository.user"; +import { Geolocation } from "../../../services/device/geolocation/geolocation.service"; +import { Logger } from "../../../services/logging/logging.api"; +import { Logging } from "../../../services/logging/logging.service"; +import { isDefined } from "../../../util/util.function"; +import { LearnplaceEntity } from "../../entity/learnplace.entity"; +import { VisitJournalEntity } from "../../entity/visit-journal.entity"; +import { LEARNPLACE_REPOSITORY, LearnplaceRepository } from "../../providers/repository/learnplace.repository"; +import { LEARNPLACE_API, LearnplaceAPI } from "../../providers/rest/learnplace.api"; +import { IliasCoordinates } from "../geodesy"; +import { VisibilityAware } from "./visibility.context"; /** * Enumerator for available strategies. @@ -148,7 +147,7 @@ export class OnlyAtPlaceStrategy implements MembershipAwareStrategy, ShutdownVis private membershipId: string = ""; - private watch: Subscription | undefined = undefined; + private readonly dispose$: Subject = new Subject(); private readonly log: Logger = Logging.getLogger(OnlyAtPlaceStrategy.name); @@ -186,17 +185,19 @@ export class OnlyAtPlaceStrategy implements MembershipAwareStrategy, ShutdownVis subscriber.next(object); - const learnplaceCoordinates: Observable<[IliasCoordinates, LearnplaceEntity]> = from(this.learnplaceRepository.find(this.membershipId)) - .pipe( + console.log("Watch position for visibility 'Only at Place' membership id: ", this.membershipId); + + const learnplaceCoordinates: Observable<[IliasCoordinates, LearnplaceEntity]> = + defer(() => this.learnplaceRepository.find(this.membershipId)).pipe( map((it) => it.orElseThrow(() => new NoSuchElementError(`No learnplace found: id=${this.membershipId}`))), map((it): [IliasCoordinates, LearnplaceEntity] => [new IliasCoordinates(it.location.latitude, it.location.longitude), it]) ); this.log.trace(() => "Watch position for visibility 'Only at Place'"); - this.watch = this.geolocation.watchPosition() + const watch: Subscription = combineLatest([this.geolocation.watchPosition(), learnplaceCoordinates]) .pipe( - filter(it => isDefined(it.coords)), - withLatestFrom(learnplaceCoordinates) + filter(it => isDefined(it[0].coords)), + takeUntil(this.dispose$) ) .subscribe({ next: (location): void => { @@ -212,7 +213,7 @@ export class OnlyAtPlaceStrategy implements MembershipAwareStrategy, ShutdownVis complete: (): void => subscriber.complete() }); - return (): void => this.watch.unsubscribe(); + return (): void => watch.unsubscribe(); }); } @@ -220,8 +221,7 @@ export class OnlyAtPlaceStrategy implements MembershipAwareStrategy, ShutdownVis * Stops watching the device's location. */ shutdown(): void { - if (isDefined(this.watch)) - this.watch.unsubscribe(); + this.dispose$.next(); } } @@ -236,7 +236,7 @@ export class AfterVisitPlaceStrategy implements MembershipAwareStrategy, Shutdow private membershipId: string = ""; - private running: boolean = false; + private readonly dispose$: Subject = new Subject(); constructor( @Inject(LEARNPLACE_REPOSITORY) private readonly learnplaceRepository: LearnplaceRepository, @@ -274,7 +274,6 @@ export class AfterVisitPlaceStrategy implements MembershipAwareStrategy, Shutdow */ on(object: T): Observable { - this.running = true; const learnplace: Observable = from(this.learnplaceRepository.find(this.membershipId)) .pipe( map(it => it.orElseThrow(() => new NoSuchElementError(`No learnplace found with id: ${this.membershipId}`))), @@ -298,7 +297,6 @@ export class AfterVisitPlaceStrategy implements MembershipAwareStrategy, Shutdow return of( of(object), this.geolocation.watchPosition().pipe( - takeWhile(() => this.running), filter(it => isDefined(it.coords)), filter(it => { const currentCoordinates: IliasCoordinates = new IliasCoordinates(it.coords.latitude, it.coords.longitude); @@ -323,7 +321,8 @@ export class AfterVisitPlaceStrategy implements MembershipAwareStrategy, Shutdow object.visible = true; this.shutdown(); return object; - }) + }), + takeUntil(this.dispose$), ) ).pipe(mergeAll()); }), mergeAll()); @@ -333,6 +332,6 @@ export class AfterVisitPlaceStrategy implements MembershipAwareStrategy, Shutdow * Stops watching the device's location. */ shutdown(): void { - this.running = false; + this.dispose$.next(); } } diff --git a/src/app/learnplace/services/visitjournal.service.ts b/src/app/learnplace/services/visitjournal.service.ts index 278d545d..bf461460 100644 --- a/src/app/learnplace/services/visitjournal.service.ts +++ b/src/app/learnplace/services/visitjournal.service.ts @@ -1,5 +1,5 @@ -import {mergeMap, filter, takeWhile, map, tap, catchError, withLatestFrom } from "rxjs/operators"; +import { mergeMap, filter, takeWhile, map, tap, catchError, withLatestFrom, takeUntil } from "rxjs/operators"; import {Inject, Injectable, InjectionToken} from "@angular/core"; import {LEARNPLACE_API, LearnplaceAPI} from "../providers/rest/learnplace.api"; import {VISIT_JOURNAL_REPOSITORY, VisitJournalRepository} from "../providers/repository/visitjournal.repository"; @@ -15,7 +15,7 @@ import {IllegalStateError} from "../../error/errors"; import {IliasCoordinates} from "./geodesy"; import {LearnplaceEntity} from "../entity/learnplace.entity"; import {UserEntity} from "../../entity/user.entity"; -import {Observable, from, combineLatest, of } from "rxjs"; +import { Observable, from, combineLatest, of, Subject } from "rxjs"; /** * Describes a synchronization that manages un-synchronized visit journal entries. @@ -108,10 +108,9 @@ export const VISIT_JOURNAL_WATCH: InjectionToken = new Inject @Injectable() export class SynchronizedVisitJournalWatch implements VisitJournalWatch { + private readonly dispose$: Subject = new Subject(); private learnplaceObjectId: number | undefined = undefined; - private running: boolean = false; - private readonly log: Logger = Logging.getLogger(SynchronizedVisitJournalWatch.name); constructor( @@ -139,19 +138,19 @@ export class SynchronizedVisitJournalWatch implements VisitJournalWatch { throw new IllegalStateError(`Can not start ${SynchronizedVisitJournalWatch.name} without learnplace id`); } - this.running = true; - const user: Observable = from(this.userRepository.findAuthenticatedUser()).pipe(map(it => it.get())); const learnplace: Observable = user.pipe( mergeMap(it => this.learnplaceRepository.findByObjectIdAndUserId(this.learnplaceObjectId, it.id)), - map(it => it.get()),); + map(it => it.get()) + ); this.log.trace(() => "Start watching the device's location"); const position: Observable = this.geolocation.watchPosition().pipe( filter(it => isDefined(it.coords)), // filter errors map(it => new IliasCoordinates(it.coords.latitude, it.coords.longitude)), - takeWhile(_ => this.running),); + takeUntil(this.dispose$) + ); combineLatest([user, learnplace, position]) .pipe( @@ -176,7 +175,8 @@ export class SynchronizedVisitJournalWatch implements VisitJournalWatch { withLatestFrom(learnplace, (visitJournal: VisitJournalEntity, learnplace: LearnplaceEntity): LearnplaceEntity => learnplace.applies(function(): void { this.visitJournal.push(visitJournal); - })) + })), + takeUntil(this.dispose$) ) .subscribe((it: LearnplaceEntity) => { this.learnplaceRepository.save(it); @@ -187,7 +187,7 @@ export class SynchronizedVisitJournalWatch implements VisitJournalWatch { * Stops watching the device's location. */ stop(): void { - this.running = false; + this.dispose$.next(); } /** diff --git a/src/app/migrations/V__11-total-user-storage.ts b/src/app/migrations/V__11-total-user-storage.ts new file mode 100644 index 00000000..0d618a8b --- /dev/null +++ b/src/app/migrations/V__11-total-user-storage.ts @@ -0,0 +1,27 @@ +/** + * Adds additional attributes on the users and settings tables + * + * @author mschneiter + * @version 1.0.0 + */ +import {Migration, MigrationVersion} from "../services/migration/migration.api"; +import {QueryRunner} from "typeorm/browser"; + +export class TotalUserStorage implements Migration { + + readonly version: MigrationVersion = new MigrationVersion("V__11"); + + async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + "ALTER TABLE users " + + "ADD totalUsedStorage INTEGER" + ); + } + + async down(queryRunner: QueryRunner): Promise { + await queryRunner.query( + "ALTER TABLE users " + + "DROP COLUMN totalUsedStorage" + ); + } +} diff --git a/src/app/migrations/V__12-remove-legacy-objects-fields.ts b/src/app/migrations/V__12-remove-legacy-objects-fields.ts new file mode 100644 index 00000000..aec0deae --- /dev/null +++ b/src/app/migrations/V__12-remove-legacy-objects-fields.ts @@ -0,0 +1,64 @@ +/** + * Removes unused legacy fields from the object table: + * - offlineAvailableOwner + * - isNew + * - isUpdated + * + * @author nschaefli + * @version 1.0.0 + */ +import {Migration, MigrationVersion} from "../services/migration/migration.api"; +import {QueryRunner} from "typeorm/browser"; + +export class RemoveLegacyObjectsFields implements Migration { + + readonly version: MigrationVersion = new MigrationVersion("V__12"); + + async up(queryRunner: QueryRunner): Promise { + try { + // sqlite does not support the ALTER TABLE "" DROP COLUMN ""; statement ... + await queryRunner.startTransaction(); + await queryRunner.query("CREATE TABLE IF NOT EXISTS migration_objects ( " + + "id INTEGER PRIMARY KEY AUTOINCREMENT," + + "userId INTEGER," + + "objId INTEGER," + + "refId INTEGER," + + "parentRefId INTEGER," + + "type TEXT," + + "title TEXT," + + "description TEXT," + + "link TEXT," + + "isOfflineAvailable INTEGER," + + "isFavorite INTEGER," + + "data TEXT," + + "repoPath TEXT," + + "needsDownload INTEGER," + + "hasPageLayout BOOLEAN NOT NULL DEFAULT 0 CHECK (hasPageLayout IN (0,1))," + + "hasTimeline BOOLEAN NOT NULL DEFAULT 0 CHECK (hasTimeline IN (0,1))," + + "permissionType TEXT NOT NULL DEFAULT 'visible'," + + "createdAt DATETIME DEFAULT CURRENT_TIMESTAMP," + + "updatedAt DATETIME" + + ");"); + + await queryRunner.query("" + + "INSERT INTO migration_objects(id, userId, objId, refId, parentRefId, type, title, description, link, isOfflineAvailable, isFavorite, data, repoPath, needsDownload, hasPageLayout, hasTimeline, permissionType, createdAt, updatedAt) " + + "SELECT id, userId, objId, refId, parentRefId, type, title, description, link, isOfflineAvailable, isFavorite, data, repoPath, needsDownload, hasPageLayout, hasTimeline, permissionType, createdAt, updatedAt " + + "FROM objects;"); + + await queryRunner.query("DROP TABLE objects;"); + await queryRunner.query("ALTER TABLE migration_objects RENAME TO objects;"); + + await queryRunner.commitTransaction(); + } catch (error) { + await queryRunner.rollbackTransaction(); + throw error; + } + } + + async down(queryRunner: QueryRunner): Promise { + await queryRunner.query( + "ALTER TABLE objects " + + "ADD totalUsedStorage TEXT" + ); + } +} diff --git a/src/app/models/active-record.ts b/src/app/models/active-record.ts index 8a7de44e..4ba51eb7 100644 --- a/src/app/models/active-record.ts +++ b/src/app/models/active-record.ts @@ -1,7 +1,9 @@ /** logging */ -import {Log} from "../services/log.service"; +import { EntityManager } from "typeorm/browser"; /** misc */ -import {DatabaseService, SQLiteDatabaseService} from "../services/database.service"; +import { SQLiteDatabaseService } from "../services/database.service"; +import { Logger } from "../services/logging/logging.api"; +import { Logging } from "../services/logging/logging.service"; export interface DatabaseConnector { /** @@ -19,14 +21,22 @@ export interface DatabaseConnector { * @param sql * @param params */ - query(sql: string, params?: Array); + query(sql: string, params?: Array): Promise; + + /** + * Executes queries in a transaction. + * In order to execute queries the supplied entity manager MUST be used! + * + * @param project + */ + transaction(project: (entityManager: EntityManager) => Promise): Promise; /** * Read data from database with given ID and return fields and values * Returns a promise that resolves the data * @param id */ - read(id: number): Promise; + read(id: number): Promise; /** * Persist data with given values in database. If id is zero, create entry otherwise update entry @@ -34,14 +44,14 @@ export interface DatabaseConnector { * @param id * @param values */ - save(id: number, values: Array): Promise; + save(id: number, values: Array): Promise; /** * Deletes the object with given primary ID from database * @param id */ - destroy(id: number): Promise; + destroy(id: number): Promise; } @@ -50,36 +60,37 @@ export interface DatabaseConnector { */ export class SQLiteConnector implements DatabaseConnector { + private readonly log: Logger = Logging.getLogger("SQLiteConnector"); + table: string; dbFields: Array; - protected database: DatabaseService; constructor(table: string, dbFields: Array) { this.table = table; this.dbFields = dbFields; } - query(sql: string, params = []) { - return SQLiteDatabaseService.instance() - .then(db => db.query(sql, params)); + async query(sql: string, params: Array = []): Promise { + const db: SQLiteDatabaseService = await SQLiteDatabaseService.instance(); + return db.query(sql, params); + } + + async transaction(project: (entityManager: EntityManager) => Promise): Promise { + const db: SQLiteDatabaseService = await SQLiteDatabaseService.instance(); + return db.transaction(project); } - read(id: number): Promise { - return this.query("SELECT * FROM " + this.table + " WHERE id = ?", [id]).then((response: any) => { - if (response.rows.length == 0) { - const error = new Error("ActiveRecord: Could not find database entry with primary key `" + id + "` in table " + this.table); - return Promise.reject(error); + async read(id: number): Promise { + return this.query(`SELECT * FROM ${this.table} WHERE id = ?`, [id]).then((response: any) => { + if (response.rows.length === 0) { + throw new Error(`ActiveRecord: Could not find database entry with primary key ${id} in table ${this.table}`); } - return Promise.resolve(response.rows.item(0)); + return response.rows.item(0); }); } - save(id: number, values: Array): Promise { - if (id > 0) { - return this.update(values, id); - } else { - return this.create(values); - } + async save(id: number, values: Array): Promise { + return id > 0 ? this.update(values, id) : this.create(values); } /** @@ -88,10 +99,9 @@ export class SQLiteConnector implements DatabaseConnector { * @param value * @returns {string[]} */ - private nTimes(n, value) { + private nTimes(n: number, value: string): Array { const placeholders: Array = []; - for (let i = 0; i < n; i++) { - i = i; // just to shut up the linter + for (let i: number = 0; i < n; i++) { placeholders.push(value); } return placeholders; @@ -100,54 +110,60 @@ export class SQLiteConnector implements DatabaseConnector { /** * Crates an entry for the DB and returns the ID. * @param values - * @returns {Promise} + * @returns {Promise} */ - private create(values): Promise { + private async create(values: Array): Promise { this.setArrayValueToNow("createdAt", values); - return this.query("INSERT INTO " + this.table + "(" + this.dbFields.join() + ") VALUES (" + this.nTimes(this.dbFields.length, "?").join() + ")", values) - .then((response: any) => Promise.resolve( response.insertId)); + return this.transaction(async(em: EntityManager) => { + await em.query(`INSERT INTO ${this.table}(${this.dbFields.join()}) VALUES (${this.nTimes(this.dbFields.length, "?").join()});`, values); + const latestDataEntry: Array<{ id: number }> = await em.query(`SELECT id FROM ${this.table} ORDER BY id DESC LIMIT 1;`); + return latestDataEntry[0].id; + }); + + // const result: any = await this.query(`INSERT INTO ${this.table}(${this.dbFields.join()}) VALUES (${this.nTimes(this.dbFields.length, "?").join()})`, values) + // return result.insertId; }; /** * updates the entry into the db an returns the ID * @param values * @param id - * @returns {Promise} + * @returns {Promise} */ - private update(values, id): Promise { + private async update(values: Array, id: number): Promise { this.setArrayValueToNow("updatedAt", values); - return this.query("UPDATE " + this.table + " SET " + this.dbFields.join("=?,") + "=? WHERE id = " + id, values).then( () => { - return Promise.resolve( id); - }); + await this.query(`UPDATE ${this.table} SET ${this.dbFields.join("=?,")}=? WHERE id = ${id};`, values); + return id; }; /** * + * @param field * @param values */ - private setArrayValueToNow(field, values) { - const pos = this.dbFields.indexOf(field); + private setArrayValueToNow(field: string, values: Array): void { + const pos: number = this.dbFields.indexOf(field); if (pos > -1) { - const date = new Date().toISOString(); + const date: string = new Date().toISOString(); values[pos] = date; } }; - destroy(id: number): Promise { - Log.describe(this, "deleting item with table and id: ", {table: this.table, id: id}); - return this.query("DELETE FROM " + this.table + " WHERE id = ?", [id]); + async destroy(id: number): Promise { + this.log.debug(() => `Deleting item with table "${this.table}" and id: ${id}`); + await this.query(`DELETE FROM ${this.table} WHERE id = ?`, [id]); } } /** * Base class for models that need to persis data in the database */ -export abstract class ActiveRecord { +export abstract class ActiveRecord { _id: number = 0; protected connector: DatabaseConnector; - constructor(id = 0, connector: DatabaseConnector) { + protected constructor(id: number = 0, connector: DatabaseConnector) { this._id = id; this.connector = connector; } @@ -155,24 +171,24 @@ export abstract class ActiveRecord { /** * Initialize object properties from connector */ - read(): Promise { - return this.connector.read(this._id).then((data) => { - for (const key in data) { - if (this.connector.dbFields.indexOf(key) > -1) { - this[key] = data[key]; - } - } - return Promise.resolve(this); - }); + async read(): Promise { + const data: object = await this.connector.read(this._id); + for (const key in data) { + if (this.connector.dbFields.indexOf(key) > -1) { + this[key] = data[key]; + } + } + + return (this as unknown) as T; } /** * Build the ActiveRecord object from a given JS Object (handles primary key and all properties) * @param object */ - readFromObject(object: Object) { + readFromObject(object: object): void { for (const property in object) { - if (property == "id") { + if (property === "id") { this._id = object[property]; } else if (object.hasOwnProperty(property)) { this[property] = object[property]; @@ -185,7 +201,7 @@ export abstract class ActiveRecord { * Returns the primary key * @returns {number} */ - get id() { + get id(): number { return this._id; } @@ -194,11 +210,9 @@ export abstract class ActiveRecord { * Persist object in database, new objects are created while existing are updated * Returns a Promise resolving the saved object */ - save(): Promise { - return this.connector.save(this._id, this.getDbFieldValues()).then((newId) => { - this._id = newId; - return Promise.resolve(this); - }); + async save(): Promise { + this._id = await this.connector.save(this._id, this.getDbFieldValues()); + return (this as unknown) as T; } /** @@ -206,7 +220,7 @@ export abstract class ActiveRecord { * Note: delete is a reserved word ;) * @returns {Promise} */ - destroy(): Promise { + destroy(): Promise { return this.connector.destroy(this._id); } diff --git a/src/app/models/desktop-item.ts b/src/app/models/desktop-item.ts index 77471a3c..cbdfadf2 100644 --- a/src/app/models/desktop-item.ts +++ b/src/app/models/desktop-item.ts @@ -1,11 +1,16 @@ /** logging */ -import {Log} from "../services/log.service"; +import { EntityManager } from "typeorm/browser"; +import { SQLiteDatabaseService } from "../services/database.service"; +import { Logger } from "../services/logging/logging.api"; +import { Logging } from "../services/logging/logging.service"; /** misc */ -import {ActiveRecord, SQLiteConnector} from "./active-record"; -import {SQLiteDatabaseService} from "../services/database.service"; -import {ILIASObject} from "./ilias-object"; +import { ActiveRecord, SQLiteConnector } from "./active-record"; +import { ILIASObject } from "./ilias-object"; + +export class DesktopItem extends ActiveRecord { + + private static readonly log: Logger = Logging.getLogger("DesktopItem"); -export class DesktopItem extends ActiveRecord { /** * Internal user-ID */ @@ -28,55 +33,58 @@ export class DesktopItem extends ActiveRecord { * @param userId * @param desktopItems */ - static storeDesktopItems(userId: number, desktopItems: Array): Promise { - return SQLiteDatabaseService.instance() - .then(db => db.query("SELECT * FROM desktop WHERE userId = ?", [userId])) - .then((response: any) => { - const existingItems: Array = []; - const promises = []; - for (let i = 0; i < response.rows.length; i++) { - const desktopItem = new DesktopItem(); - desktopItem.readFromObject(response.rows.item(i)); - existingItems.push(desktopItem); - } - // Store new delivered desktopItems - desktopItems.forEach(desktopItem => { - const index = existingItems.findIndex(item => { - return (item.objId == desktopItem.objId); - }); - if (index == -1) { - // Item does not yet exist, create - const newDesktopItem = new DesktopItem(); - newDesktopItem.userId = userId; - newDesktopItem.objId = desktopItem.objId; - promises.push(newDesktopItem.save()); - } - }); - // Delete items no longer delivered - existingItems.forEach(existingItem => { - const index = desktopItems.findIndex(item => { - return (item.objId == existingItem.objId); - }); - if (index == -1) { - promises.push(existingItem.destroy()); - } - }); + static async storeDesktopItems(userId: number, desktopItems: Array): Promise { + const db: SQLiteDatabaseService = await SQLiteDatabaseService.instance(); + const response: any = await db.query("SELECT * FROM desktop WHERE userId = ?", [userId]); + const existingItems: Array = []; + + for (let i: number = 0; i < response.rows.length; i++) { + const desktopItem: DesktopItem = new DesktopItem(); + desktopItem.readFromObject(response.rows.item(i)); + existingItems.push(desktopItem); + } - return Promise.all(promises); + // Store new delivered desktopItems + for (const desktopItem of desktopItems) { + const index: number = existingItems.findIndex(item => { + return (item.objId == desktopItem.objId); }); + if (index == -1) { + // Item does not yet exist, create + const newDesktopItem: DesktopItem = new DesktopItem(); + newDesktopItem.userId = userId; + newDesktopItem.objId = desktopItem.objId; + await newDesktopItem.save(); + } + } + + // Delete items no longer delivered + for (const existingItem of existingItems) { + const index: number = desktopItems.findIndex(item => { + return (item.objId == existingItem.objId); + }); + if (index == -1) { + await existingItem.destroy(); + } + } } /** * The overriden method makes sure the save action is atomic. We don't want the same input item twice on the desktop. * @returns {Promise} */ - save(): Promise { - return this.connector.query("INSERT OR REPLACE INTO " + this.connector.table + "(userId, objId) VALUES (" + this.userId + ", " + this.objId + ")") - .then((response: any) => Promise.resolve( response.insertId)) - .then((newId) => { - this._id = newId; - return Promise.resolve(this); + async save(): Promise { + await this.connector.transaction(async(em: EntityManager) => { + await em.query(`INSERT OR REPLACE INTO ${this.connector.table}(userId, objId) VALUES (${this.userId}, ${this.objId})`); + const latestDataEntry: Array<{ id: number }> = await em.query( + `SELECT * FROM ${this.connector.table} WHERE userId = ? AND objId = ?;`, + [this.userId, this.objId] + ); + this._id = latestDataEntry[0].id; }); + // const response: unknown = await this.connector.query(`INSERT OR REPLACE INTO ${this.connector.table}(userId, objId) VALUES (${this.userId}, ${this.objId})`); + // this._id = (response as { insertId: number }).insertId; + return this; } /** @@ -84,23 +92,19 @@ export class DesktopItem extends ActiveRecord { * @param userId * @returns {Promise} */ - static findByUserId(userId: number): Promise> { - return SQLiteDatabaseService.instance() - .then(db => { - const sql = - "SELECT objects.* FROM desktop " + - "INNER JOIN objects ON (objects.objId = desktop.objId AND objects.userId = desktop.userId) " + - "WHERE desktop.userId = ?"; - return db.query(sql, [userId]) - }).then((response: any) => { - const iliasObjectPromises = []; - for (let i = 0; i < response.rows.length; i++) { - iliasObjectPromises.push(ILIASObject.find(response.rows.item(i).id)); - Log.describe(this, "Desktop item row: ", response.rows.item(i)) - } + static async findByUserId(userId: number): Promise> { + const db: SQLiteDatabaseService = await SQLiteDatabaseService.instance(); + const sql: string = + "SELECT objects.* FROM desktop " + + "INNER JOIN objects ON (objects.objId = desktop.objId AND objects.userId = desktop.userId) " + + "WHERE desktop.userId = ?"; + const response: any = await db.query(sql, [userId]); + const desktopItems: Array = []; + for (let i: number = 0; i < response.rows.length; i++) { + desktopItems.push(await ILIASObject.find(response.rows.item(i).id)); + DesktopItem.log.trace(() => `Desktop item row: ${JSON.stringify(response.rows.item(i))}`); + } - return Promise.all(iliasObjectPromises) - .then(desktopItems => desktopItems.sort(ILIASObject.compare)); - }); + return desktopItems.sort(ILIASObject.compare); } } diff --git a/src/app/models/file-data.ts b/src/app/models/file-data.ts index 2852c73b..7e1cb996 100644 --- a/src/app/models/file-data.ts +++ b/src/app/models/file-data.ts @@ -5,7 +5,7 @@ import {User} from "./user"; /** * Holds additional meta data for ILIAS file objects */ -export class FileData extends ActiveRecord { +export class FileData extends ActiveRecord { /** * Internal ID of the corresponding ILIASObject diff --git a/src/app/models/ilias-object.ts b/src/app/models/ilias-object.ts index a3c75020..07f8699e 100644 --- a/src/app/models/ilias-object.ts +++ b/src/app/models/ilias-object.ts @@ -1,13 +1,18 @@ -import {ActiveRecord, SQLiteConnector} from "./active-record"; -import {FileData} from "./file-data"; -import {User} from "./user"; -/** services */ -import {SQLiteDatabaseService} from "../services/database.service"; -import {FileService} from "../services/file.service"; -/** logging */ -import {Log} from "../services/log.service"; +import { SQLiteDatabaseService } from "../services/database.service"; +import { UserStorageService } from "../services/filesystem/user-storage.service"; +import { Logger } from "../services/logging/logging.api"; +import { Logging } from "../services/logging/logging.service"; +import { ActiveRecord, SQLiteConnector } from "./active-record"; +import { FileData } from "./file-data"; +import { User } from "./user"; + +export const enum FavouriteStatus { + NONE = 0, + DOWNLOADED = 1, + PENDING = 2 +} -export class ILIASObject extends ActiveRecord { +export class ILIASObject extends ActiveRecord { // A nice technique to simulate class constants :) ILIASObject.OFFLINE_OWNER_USER => 'user' static get OFFLINE_OWNER_USER(): string { @@ -18,6 +23,8 @@ export class ILIASObject extends ActiveRecord { return "system"; } + private readonly log: Logger = Logging.getLogger("ILIASObject"); + /** * Internal user-ID */ @@ -68,21 +75,6 @@ export class ILIASObject extends ActiveRecord { */ isOfflineAvailable: boolean; - /** - * The owner that was setting this object to "offline available", either 'user' or 'system' - */ - offlineAvailableOwner: string; - - /** - * Object is marked as new - */ - isNew: boolean; - - /** - * Object is marked as updated - */ - isUpdated: boolean; - /** * Object is marked as favorite */ @@ -130,9 +122,6 @@ export class ILIASObject extends ActiveRecord { "description", "link", "isOfflineAvailable", - "offlineAvailableOwner", - "isNew", - "isUpdated", "isFavorite", "data", "repoPath", @@ -178,7 +167,7 @@ export class ILIASObject extends ActiveRecord { try { return JSON.parse(this._repoPath); } catch (e) { - Log.error(this, "Could not get json from: " + this._repoPath); + this.log.error(() => `Could not get json from: ${this._repoPath}`); return []; } } @@ -194,7 +183,7 @@ export class ILIASObject extends ActiveRecord { } else if ( path === null) { this._repoPath = null; }else { - Log.describe(this, "repo path is: ", path); + this.log.error(() => `repo path is: ${JSON.stringify(path)}`); throw new Error("Please provide a string or a list of strings for repoPath in ilias-object.ts"); } } @@ -273,6 +262,16 @@ export class ILIASObject extends ActiveRecord { }); } + /** + * Checks whether the object is in cache, meaning that it is offline available + * and not a favorite + */ + async isCache(): Promise { + if(!this.isOfflineAvailable) return false; + const underFav: boolean = await this.objectIsUnderFavorite(); + return underFav && !this.isFavorite; + } + /** * Checks whether the object is contained within a favorite-object */ @@ -301,8 +300,8 @@ export class ILIASObject extends ActiveRecord { /** * removes the offline-data, sets the isOfflineAvailable-flags accordingly and sets isFavorite to false */ - async removeFromFavorites(fileService: FileService, ignoreDeletionErrors: boolean = false): Promise { - await this.setIsFavorite(0); + async removeFromFavorites(userStorage: UserStorageService, ignoreDeletionErrors: boolean = false): Promise { + await this.setIsFavorite(FavouriteStatus.NONE); const underFavorite: boolean = await this.objectIsUnderFavorite(); const objectsStack: Array = underFavorite ? [] : [this]; @@ -312,9 +311,8 @@ export class ILIASObject extends ActiveRecord { const newObjects: Array = await ILIASObject.findByParentRefId(ilObj.refId, this.userId); for (let i: number = 0; i < newObjects.length; i++) if (!newObjects[i].isFavorite) objectsStack.push(newObjects[i]); - try { - await fileService.removeObject(ilObj); + await userStorage.removeObject(ilObj); } catch (e) { if(!ignoreDeletionErrors) throw e; } @@ -324,7 +322,7 @@ export class ILIASObject extends ActiveRecord { /** * Set property 'isFavorite' of the 'iliasObject' */ - async setIsFavorite(value: number): Promise { + async setIsFavorite(value: FavouriteStatus): Promise { this.isFavorite = value; await this.save(); } @@ -383,13 +381,21 @@ export class ILIASObject extends ActiveRecord { * @returns {Promise} */ static async findByRefIdAndUserId(refId: number, userId: number): Promise { + // Workaround sometimes the ids are strings instead of numbers ... + if (typeof refId === "string") { + refId = Number.parseInt(refId, 10); + } + if (typeof userId === "string") { + userId = Number.parseInt(userId, 10); + } const db: SQLiteDatabaseService = await SQLiteDatabaseService.instance(); - const response: any = await db.query("SELECT * FROM objects WHERE refId = ? AND userId = ?", [refId, userId]); + const response: any = await db.query("SELECT * FROM objects WHERE refId = ? AND userId = ?;", [refId, userId]); if (response.rows.length == 0) { const object: ILIASObject = new ILIASObject(); object.userId = userId; + object.refId = refId; return Promise.resolve(object); - } else if(response.rows.length == 1) { + } else if(response.rows.length === 1) { return ILIASObject.find(response.rows.item(0).id); } else if(response.rows.length > 1) { @@ -398,7 +404,7 @@ export class ILIASObject extends ActiveRecord { // We destroy all overdue instances. for (let i: number = 1; i < response.rows.length; i++) { - (await ILIASObject.find(response.rows.item(i).id)).destroy(); + await (await ILIASObject.find(response.rows.item(i).id)).destroy(); } // After finding and deletion we return the found object. @@ -416,13 +422,21 @@ export class ILIASObject extends ActiveRecord { * @returns {Promise} */ static async findByObjIdAndUserId(refId: number, userId: number): Promise { + // Workaround sometimes the ids are strings instead of numbers ... + if (typeof refId === "string") { + refId = Number.parseInt(refId, 10); + } + if (typeof userId === "string") { + userId = Number.parseInt(userId, 10); + } + const db: SQLiteDatabaseService = await SQLiteDatabaseService.instance(); const response: any = await db.query("SELECT * FROM objects WHERE objId = ? AND userId = ?", [refId, userId]); if (response.rows.length == 0) { const object: ILIASObject = new ILIASObject(); object.userId = userId; return Promise.resolve(object); - } else if(response.rows.length == 1) { + } else if(response.rows.length === 1) { return ILIASObject.find(response.rows.item(0).id); } else if(response.rows.length > 1) { @@ -431,7 +445,7 @@ export class ILIASObject extends ActiveRecord { // We destroy all overdue instances. for (let i: number = 1; i < response.rows.length; i++) { - (await ILIASObject.find(response.rows.item(i).id)).destroy(); + await (await ILIASObject.find(response.rows.item(i).id)).destroy(); } // After finding and deletion we return the found object. @@ -469,17 +483,15 @@ export class ILIASObject extends ActiveRecord { return ILIASObject.queryDatabase(sql, parameters); } - protected static queryDatabase(sql: string, parameters: Array<{}>): Promise> { - return SQLiteDatabaseService.instance() - .then(db => db.query(sql, parameters)) - .then((response: any) => { - const promises = []; - for (let i = 0; i < response.rows.length; i++) { - promises.push(ILIASObject.find(response.rows.item(i).id)); - } + private static async queryDatabase(sql: string, parameters: Array<{}>): Promise> { + const db: SQLiteDatabaseService = await SQLiteDatabaseService.instance(); + const response: any = await db.query(sql, parameters); + const results: Array = []; + for (let i: number = 0; i < response.rows.length; i++) { + results.push(await ILIASObject.find(response.rows.item(i).id)); + } - return Promise.all(promises) - }); + return results; } /** @@ -488,55 +500,51 @@ export class ILIASObject extends ActiveRecord { * @param userId * @returns {Promise} */ - static findByParentRefIdRecursive(parentRefId: number, userId: number): Promise> { + static async findByParentRefIdRecursive(parentRefId: number, userId: number): Promise> { + // Workaround sometimes the ids are strings instead of numbers ... + if (typeof parentRefId === "string") { + parentRefId = Number.parseInt(parentRefId, 10); + } + if (typeof userId === "string") { + userId = Number.parseInt(userId, 10); + } const iliasObjects: Array = []; - return ILIASObject.findByParentRefId(parentRefId, userId).then(children => { - const childrenPromises: Array>> = []; - children.forEach(child => { - iliasObjects.push(child); - childrenPromises.push(ILIASObject.findByParentRefIdRecursive(child.refId, userId)); - }); - return Promise.all(childrenPromises); - }).then(promiseResults => { - promiseResults.forEach((list: Array) => { - list.forEach(child => { - iliasObjects.push(child); - }); - }); - return Promise.resolve(iliasObjects); - }); + const children: Array = await ILIASObject.findByParentRefId(parentRefId, userId); + iliasObjects.push(...children); + + for (const child of children) { + iliasObjects.push(...(await ILIASObject.findByParentRefIdRecursive(child.refId, userId))); + } + + return iliasObjects; } /** * Set property 'isOfflineAvailable' of the 'iliasObject' and its content to 'value' */ static async setOfflineAvailableRecursive(iliasObject: ILIASObject, user: User, value: boolean): Promise { - ILIASObject.findByParentRefIdRecursive(iliasObject.refId, user.id).then(objects => { - objects.push(iliasObject); - objects.forEach(o => { - o.isOfflineAvailable = value; - if(value) o.offlineAvailableOwner = undefined; // TODO sync how to set this value - o.save(); - }); - }) + const iliasObjects: Array = await ILIASObject.findByParentRefIdRecursive(iliasObject.refId, user.id); + iliasObjects.push(iliasObject); + for (const entry of iliasObjects) { + entry.isOfflineAvailable = value; + await entry.save(); + } } /** * updates the needsDownload state depending on the object type recursivly. This object and every parent recursively. * @returns {Promise} returns a list of the changed objects */ - updateNeedsDownload(childNeedsUpdate = null): Promise> { - Log.write(this, "recursive update needs download. going through: " + this.title); - if (this.type == "file") { + async updateNeedsDownload(childNeedsUpdate = null): Promise> { + this.log.debug(() => `Recursive update needs download. going through: ${this.title}`); + if (this.type === "file") { // A file needs to check its file state and then escalate. return FileData.find(this.id).then(fileData => { - if (this.id && fileData.isUpdated()) - this.isUpdated = true; return this.saveAndEscalateNeedsDownload(fileData.needsDownload()); }); } else if (this.isContainer()) { - //performance improvmente, if a child needs update we certainly need to update too. + //performance improvement, if a child needs update we certainly need to update too. if(childNeedsUpdate !== null && childNeedsUpdate) return this.saveAndEscalateNeedsDownload(true); // A container needs to check all its children. @@ -549,35 +557,31 @@ export class ILIASObject extends ActiveRecord { } else { this.needsDownload = false; - return Promise.resolve([]); + return []; //we do not need to escalate. we don't even save :-) } } /** * - * @returns {Promise} return a list of all ILIASObjects touched. + * @returns {Promise>} return a list of all ILIASObjects touched. */ - protected saveAndEscalateNeedsDownload(newValue): Promise> { + private async saveAndEscalateNeedsDownload(newValue: boolean): Promise> { if (newValue == this.needsDownload) { - Log.write(this, `Needs download stays the same for ${this.title}. No need for escalation.`); - return Promise.resolve([this]); + this.log.debug(() => `Needs download stays the same for "${this.title}", with objId: ${this.objId}. No need for escalation.`); + return Array.of(this); } this.needsDownload = newValue; - return this.save() - .then(() => this.parent) - .then((parent) => { - if (parent) { - return parent.updateNeedsDownload(this.needsDownload) - .then((objects) => { - objects.push(this); - return Promise.resolve(objects); - }); - } else { - return Promise.resolve([this]); - } - }); + await this.save(); + const parent: ILIASObject = await this.parent; + if (parent) { + const objects: Array = await parent.updateNeedsDownload(this.needsDownload); + objects.push(this); + return objects; + } else { + return Array.of(this); + } } static findByUserId(userId: number): Promise> { @@ -619,7 +623,7 @@ export class ILIASObject extends ActiveRecord { * Note: delete is a reserved word ;) * @returns {Promise} */ - destroy(): Promise { + destroy(): Promise { return super.destroy(); } } diff --git a/src/app/models/settings.ts b/src/app/models/settings.ts index 0e8dcf98..1ad0b764 100644 --- a/src/app/models/settings.ts +++ b/src/app/models/settings.ts @@ -1,12 +1,12 @@ /** ionic-native */ -import {Network} from "@ionic-native/network/ngx"; +import { Network } from "@ionic-native/network/ngx"; /** misc */ -import {ActiveRecord, SQLiteConnector} from "./active-record"; -import {SQLiteDatabaseService} from "../services/database.service"; -import {FileData} from "./file-data"; -import {ILIASObject} from "./ilias-object"; +import { ActiveRecord, SQLiteConnector } from "./active-record"; +import { SQLiteDatabaseService } from "../services/database.service"; +import { FileData } from "./file-data"; +import { ILIASObject } from "./ilias-object"; -export class Settings extends ActiveRecord { +export class Settings extends ActiveRecord { static NETWORK: Network; @@ -18,7 +18,7 @@ export class Settings extends ActiveRecord { /** * Language for app */ - language: string = "de"; + language: string = "fr"; /** * Max. allowed size for automatic downloads (mega bytes) @@ -28,7 +28,7 @@ export class Settings extends ActiveRecord { /** * Max. allowed quota for all files the app is storing (mega bytes) */ - quotaSize: number = 100000; + quotaSize: number = 10000; /** * If true, execute offline-data-sync when starting the app @@ -68,9 +68,9 @@ export class Settings extends ActiveRecord { "themeTimestamp" ])); - if(id == 0) { + if (id == 0) { let userLang: string = navigator.language.split("-")[0]; // use navigator lang if available - userLang = /(de|en|it)/gi.test(userLang) ? userLang : "en"; + userLang = /(de|en|it|fr)/gi.test(userLang) ? userLang : "en"; this.language = userLang; } @@ -81,23 +81,17 @@ export class Settings extends ActiveRecord { * @param userId * @returns {Promise} */ - static findByUserId(userId: number): Promise { - return new Promise((resolve, reject) => { - SQLiteDatabaseService.instance().then(db => { - db.query("SELECT * FROM settings WHERE userId = ?", [userId]).then((response) => { - const settings: Settings = new Settings(); - if (response.rows.length == 0) { - settings.userId = userId; - resolve(settings); - } else { - settings.readFromObject(response.rows.item(0)); - resolve(settings); - } - }, (error) => { - reject(error); - }); - }); - }); + static async findByUserId(userId: number): Promise { + const db: SQLiteDatabaseService = await SQLiteDatabaseService.instance(); + const response: any = await db.query("SELECT * FROM settings WHERE userId = ?;", [userId]); + const settings: Settings = new Settings(); + if (response.rows.length === 0) { + settings.userId = userId; + return settings; + } else { + settings.readFromObject(response.rows.item(0)); + return settings; + } } /** @@ -105,24 +99,23 @@ export class Settings extends ActiveRecord { * @returns {boolean} */ shouldntDownloadBecauseOfWLAN(): boolean { - return window.hasOwnProperty("cordova") && this.downloadWlan && (Settings.NETWORK.type != "wifi" && Settings.NETWORK.type != "ethernet"); + return window.hasOwnProperty("cordova") && this.downloadWlan && (Settings.NETWORK.type !== "wifi" && Settings.NETWORK.type !== "ethernet"); } fileTooBig(fileObject: ILIASObject): boolean { const fileSize: number = parseInt(fileObject.data.fileSize, 10); - return fileSize > this.downloadSize * 1000 * 1000; + return fileSize > this.downloadSize * 1000**2; } - quotaExceeds(fileObject: ILIASObject): Promise { - //only check files... - if(fileObject.type != "file") { - return Promise.resolve(false); + async quotaExceeds(fileObject: ILIASObject): Promise { + //only check files... + if (fileObject.type !== "file") { + return false; } - return FileData.getTotalDiskSpace().then( used => { - const fileSize: number = parseInt(fileObject.data.fileSize, 10); - return Promise.resolve(this.quotaSize * 1000 * 1000 < used + fileSize); - }); + const used: number = await FileData.getTotalDiskSpace(); + const fileSize: number = parseInt(fileObject.data.fileSize, 10); + return (this.quotaSize * 1000**2) < (used + fileSize); } } diff --git a/src/app/models/user.ts b/src/app/models/user.ts index 0c515fe8..dd580391 100644 --- a/src/app/models/user.ts +++ b/src/app/models/user.ts @@ -2,7 +2,7 @@ import {ActiveRecord, SQLiteConnector} from "./active-record"; import {SQLiteDatabaseService} from "../services/database.service"; import {Settings} from "./settings"; -export class User extends ActiveRecord { +export class User extends ActiveRecord { /** * The internal user-ID in ILIAS corresponding to the installation given by installationID @@ -39,6 +39,11 @@ export class User extends ActiveRecord { */ lastVersionLogin: string; + /** + * Total storage used by the user + */ + totalUsedStorage: number = 0; + /** * Holds the app settings */ @@ -52,7 +57,8 @@ export class User extends ActiveRecord { "accessToken", "refreshToken", "lastTokenUpdate", - "lastVersionLogin" + "lastVersionLogin", + "totalUsedStorage" ])); } @@ -77,7 +83,7 @@ export class User extends ActiveRecord { static find(id: number): Promise { const user = new User(id); return user.read() - .then(activeRecord => activeRecord as User) + .then(activeRecord => activeRecord as User) } @@ -164,7 +170,7 @@ export class User extends ActiveRecord { * Note: delete is a reserved word ;) * @returns {Promise} */ - destroy(): Promise { + destroy(): Promise { return super.destroy(); } @@ -172,17 +178,17 @@ export class User extends ActiveRecord { * Find all users of this app */ static findAllUsers(): Promise> { - return SQLiteDatabaseService.instance() - .then(db => db.query("SELECT * FROM users")) - .then((response: any) => { - const users = []; - for (let i = 0; i < response.rows.length; i++) { - const user = new User(); - user.readFromObject(response.rows.item(i)); - users.push(user); - } - - return Promise.resolve(users); - }); + return SQLiteDatabaseService.instance() + .then(db => db.query("SELECT * FROM users")) + .then((response: any) => { + const users = []; + for (let i = 0; i < response.rows.length; i++) { + const user = new User(); + user.readFromObject(response.rows.item(i)); + users.push(user); + } + + return Promise.resolve(users); + }); } } diff --git a/src/app/pages/desktop/desktop.html b/src/app/pages/desktop/desktop.html index 1c476506..cd595d55 100644 --- a/src/app/pages/desktop/desktop.html +++ b/src/app/pages/desktop/desktop.html @@ -1,43 +1,74 @@ - - -
- Home -
+ + + + {{"home.title" | translate}} + - - + - - - - {{ 'object-list.title' | translate}} + + +
+ + + +
+ + {{ 'object-list.title' | translate}} +
- - - - {{ 'favorites.title' | translate}} +
+ + + + +
+ + + +
+ + {{ 'favorites.title' | translate}} +
- - - - {{ 'news.title' | translate}} + + + +
+ + + +
+ + {{ 'news.title' | translate}} +
- - - - {{ 'repository' | translate}} + + + +
+ + + +
+ {{ 'repository' | translate}}
- - - - {{ 'menu' | translate}} + + + +
+ + + +
+ {{ ('menu' | translate)}}
diff --git a/src/app/pages/desktop/desktop.scss b/src/app/pages/desktop/desktop.scss new file mode 100644 index 00000000..0b9575e0 --- /dev/null +++ b/src/app/pages/desktop/desktop.scss @@ -0,0 +1,53 @@ +.page_desktop { + --background: var(--custom-background, var(--ion-background-color)); +} + +.tile { + opacity: 0.9; + border-radius: var(--page-desktop-border-radius, 2%); + border: + var(--page-desktop-border-color, transparent) + solid + var(--page-desktop-border-width, 0px); +} + +.big-card { + height: 25vh; +} + +.small-card { + height: 15vh; +} + +.tile-image { + // min-height: 20px; + // min-width: 20px; + height: 100%; + width: 100%; + max-width: 100%; + max-height: 100%; + padding: .5em; +} + +.svg-icon { + color: var(--ion-color-secondary, transparent); + fill: none; + stroke: var(--icon-stroke-color, #282828); + stroke-miterlimit: 10; +} + +.black-stroke { + stroke: var(--icon-stroke-color-strong, black) !important; +} + +.tile4 { + display: var(--page-desktop-tile-4-display, block); +} + +.tile5 { + display: var(--page-desktop-tile-4-display, block); +} + +.tile-title{ + color: var(--page-desktop-text-color, rgba(0,0,0,0.8)) !important; +} diff --git a/src/app/pages/desktop/desktop.ts b/src/app/pages/desktop/desktop.ts index 16bc0641..03392404 100644 --- a/src/app/pages/desktop/desktop.ts +++ b/src/app/pages/desktop/desktop.ts @@ -1,13 +1,11 @@ /** angular */ -import {Component, Inject} from "@angular/core"; -import {NavController} from "@ionic/angular"; -/** services */ -import {Builder} from "../../services/builder.base"; -import {LINK_BUILDER, LinkBuilder} from "../../services/link/link-builder.service"; +import { Component, Inject } from "@angular/core"; /** misc */ -import {OPEN_OBJECT_IN_ILIAS_ACTION_FACTORY, OpenObjectInILIASAction} from "../../actions/open-object-in-ilias-action"; -import {ILIASInstallation} from "../../config/ilias-config"; -import {ThemeProvider} from "../../providers/theme/theme.provider"; +import { OPEN_OBJECT_IN_ILIAS_ACTION_FACTORY, OpenObjectInILIASAction } from "../../actions/open-object-in-ilias-action"; +import { ThemeProvider } from "../../providers/theme/theme.provider"; +/** services */ +import { Builder } from "../../services/builder.base"; +import { LINK_BUILDER, LinkBuilder } from "../../services/link/link-builder.service"; /** * Generated class for the DesktopPage page. @@ -19,33 +17,28 @@ import {ThemeProvider} from "../../providers/theme/theme.provider"; @Component({ selector: "page-desktop", templateUrl: "desktop.html", + styleUrls: ["desktop.scss"] }) export class DesktopPage { - readonly installations: Array = []; + private readonly REF_ID_REPOSITORY: number = 1; constructor( - private readonly navCtrl: NavController, @Inject(OPEN_OBJECT_IN_ILIAS_ACTION_FACTORY) private readonly openInIliasActionFactory: (title: string, urlBuilder: Builder>) => OpenObjectInILIASAction, @Inject(LINK_BUILDER) - private readonly linkBuilder: LinkBuilder + private readonly linkBuilder: LinkBuilder, + private themeProvider: ThemeProvider ) {} // count the number of loaded SVGs and set theme once all of them are loaded - private svgLoaded(): void { - ThemeProvider.setCustomColor(); - } - - // navigate to a tab - async navigateTo(url: string): Promise { - await this.navCtrl.navigateForward(`tabs/${url}`); + async svgLoaded(): Promise { + await this.themeProvider.setCustomColor(); } // open repo in Browser inApp for iOS, external for Android async openILIASRepository(): Promise { - const REFID_REPOSITORY: number = 1; - this.openInIliasActionFactory(undefined, this.linkBuilder.default().target(REFID_REPOSITORY)).execute(); + await this.openInIliasActionFactory(undefined, this.linkBuilder.default().target(this.REF_ID_REPOSITORY)).execute(); } } diff --git a/src/app/pages/info/info.html b/src/app/pages/info/info.html index ae286e6c..3350b45e 100644 --- a/src/app/pages/info/info.html +++ b/src/app/pages/info/info.html @@ -7,161 +7,172 @@ - {{'info.title' | translate:{value: null} }} + {{'info.title' | translate}}
- -
-
- - + + - ILIAS Pegasus - Version 4.0.2 + {{this.appName | async}} - - - - - Lernwelt -

Basierend auf ILIAS-Pegasus

-

Version 2.0.2

+

{{'info.version-card.title' | translate}}

+

{{'info.version-card.content' | translate}} {{this.version | async}} ({{this.versionCode | async}})

-
- + + + - Anregungen und Hinweise zu Fehlern + {{'info.reporting-card.title' | translate}} -

Hast du einen Fehler gefunden? Bitte hilf uns die App zu verbessern. Melde dich bei:

+

{{'info.reporting-card.content' | translate}}:

support@ilias-pegasus.de
-
- - -

Zentralstelle für die Weiterbildung im Handwerk e. V.

-

Bereitstellung und Design

-
+
+ + + + Zentralstelle für die Weiterbildung im Handwerk e. V. + {{'info.reporting-card-zwh.subtitle' | translate}} + - Ansprechpartnerin:
+ {{'info.reporting-card-zwh.content' | translate}}:
Anna Wunderle (UX & UI Design)
Tel: 0211/302009-56
-

awunderle@zwh.de

- + awunderle@zwh.de
- - https://zwh.de - -
- - +
+ + +  https://zwh.de + +
+
+ + + + Zentralstelle für die Weiterbildung im Handwerk e. V. + {{'info.reporting-card-zwh.subtitle' | translate}} + + + {{'info.reporting-card-zwh.content' | translate}}:
+ Anna Wunderle (UX & UI Design)
+ Tel: 0211/302009-23
+ mutiq@zwh.de +
+
+ + +  https://iq-lernen.de + +
+
+ + + Image contains a set of government and company icons which contributed to the app financially. + + + + - Inhaltshinweis + {{'info.content-card.title' | translate}} -

Trotz sorgfältiger inhaltlicher Kontrolle übernehmen wir keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschliesslich deren Betreiber verantwortlich. Für die Optimierung der App werden Nutzungsdaten anonymisiert protokolliert und ausgewertet.

+

{{'info.content-card.content' | translate}}

-
- - - - - Studierendenrat der Universität Freiburg - Finanzierung - + + + + + + + {{'info.stura-card.title' | translate}} Universität Freiburg + {{'info.stura-card.subtitle' | translate}} + -

Die Spezifikation und die Entwicklung der ersten Version der App wurden finanziert durch das Studierendenvorschlagsbudget des Studierendenrates der Universität Freiburg.

+

{{'info.stura-card.content' | translate}}

- -  https://www.stura.uni-freiburg.de - + + +  https://www.stura.uni-freiburg.de +
-
- - + + + + - Rechenzentrum Albert-Ludwigs-Universität Freiburg - Projektleitung + {{'info.freiburg-card.title' | translate}} Albert-Ludwigs-Universität Freiburg + {{'info.freiburg-card.subtitle' | translate}} -

Das Rechenzentrum der Universität Freiburg hat die Spezifikations- und Umsetzungsphase der App geleitet.

+

{{'info.freiburg-card.content' | translate}}

- -  https://www.rz.uni-freiburg.de - + + +  https://www.rz.uni-freiburg.de +
-
- - + + + + - Hochschulrechenzentrum Philipps-Universität Marburg - Verantwortlich für das ILIAS RESTPlugin + {{'info.marburg-card.title' | translate}} Philipps-Universität Marburg + {{'info.marburg-card.subtitle' | translate}} -

Das Hochschulrechenzentrum der Philipps-Universität Marburg ermöglicht mit dem ILIAS RESTPlugin die Schnittstelle zu ILIAS.

+

{{'info.marburg-card.content' | translate}}

- -  https://www.uni-marburg.de/hrz - + + +  https://www.uni-marburg.de/hrz +
-
- - - - ILIAS SIG Mobile - Community und Koordination Weiterentwicklung - + + + + + + ILIAS SIG Mobile + {{'info.sig-card.subtitle' | translate}} + -

Die Special Interest Group (SIG) ILIAS Mobile ist verantwortlich für die Koordination der Weiterentwicklung der App und bietet einen Raum für Diskussionen rund um die App.

+

{{'info.sig-card.content' | translate}}

- -  https://www.ilias.de/SIG-Mobile - + + +  https://www.ilias.de/SIG-Mobile +
-
- - - - - studer + raimann ag - App-Entwicklung & Wartung - + + + + + + + studer + raimann ag + {{'info.sturai-card.subtitle' | translate}} + -

Die App wurde umgesetzt und wird gewartet durch die studer + raimann ag, IT- and Learning-Solutions.

+

{{'info.sturai-card.content' | translate}}

- -  https://www.studer-raimann.ch - + + +  https://www.studer-raimann.ch +
-
-
- - - -

{{ 'info.instructions1' | translate:[]}}

- -
-
- → - -
-
- -

{{ 'info.instructions2' | translate:[]}}

-
-
-
-
+
diff --git a/src/app/pages/info/info.scss b/src/app/pages/info/info.scss new file mode 100644 index 00000000..57b6df72 --- /dev/null +++ b/src/app/pages/info/info.scss @@ -0,0 +1,34 @@ +.page_info { + --background: var(--custom-background, var(--ion-background-color)); + + ion-card { + margin: 1em 1em; + width: auto; + border-radius: 0; + --background: var(--ion-color-primary-contrast); + --ion-text-color: var(--ion-color-dark); + --color: var(--ion-color-step-600, #666); + --border-radius: 0; + } + + .version-card ion-card-content p:first-child { + display: var(--page-version-card-custom, none); + margin: 0; + } + + .reporting-card { + display: var(--page-reporting-card-community, block); + } + + .reporting-card-iq { + display: var(--page-reporting-card-iq, none); + } + + .reporting-card-zwh { + display: var(--page-reporting-card-zwh, none); + } + + .stura-card, .freiburg-card, .marburg-card { + display: var(--page-info-card-community, block); + } +} diff --git a/src/app/pages/info/info.ts b/src/app/pages/info/info.ts index c10b6dc1..0d2a228b 100644 --- a/src/app/pages/info/info.ts +++ b/src/app/pages/info/info.ts @@ -2,6 +2,7 @@ import {Component} from "@angular/core"; /** ionic-native */ import {InAppBrowser} from "@ionic-native/in-app-browser/ngx"; +import {AppVersion} from "@ionic-native/app-version/ngx"; /* Generated class for the InfoPage page. @@ -12,14 +13,23 @@ import {InAppBrowser} from "@ionic-native/in-app-browser/ngx"; @Component({ selector: "page-info", templateUrl: "info.html", + styleUrls: ["info.scss"] }) export class InfoPage { tab: string = "info"; + readonly version: Promise; + readonly versionCode: Promise; + readonly appName: Promise; constructor( - private readonly browser: InAppBrowser - ) {} + private readonly browser: InAppBrowser, + private readonly appVersion: AppVersion, + ) { + this.version = this.appVersion.getVersionNumber(); + this.versionCode = this.appVersion.getVersionCode(); + this.appName = this.appVersion.getAppName(); + } // call(number) { // ( window).location = number; diff --git a/src/app/pages/login/login.html b/src/app/pages/login/login.html index 65385b6d..52341e14 100644 --- a/src/app/pages/login/login.html +++ b/src/app/pages/login/login.html @@ -1,35 +1,36 @@ -