diff --git a/Programmation mobile/Cours de programmation mobile.md b/Programmation mobile/Cours de programmation mobile.md
new file mode 100644
index 0000000..3cff690
--- /dev/null
+++ b/Programmation mobile/Cours de programmation mobile.md
@@ -0,0 +1,34 @@
+# Intro
+
+3 scénces ensemble
+
+On va faire de l'hybride : genre ionic. À partir langages web (html/css/js) qui va générer du code pour les plateformes.
+
+3 méthodes de faire des applis mobiles
+
+- natives
+- hybrides
+ Moins cher, moins long à développer, compétences et maintenance plus accessibles.
+- web
+ Cool pour cout, temps de dev, maintenance, mais pas d'accès aux API natives, UI/UX bof, performances laissent à désirer.
+
+Native :
+
+Ultra personnalisable, performances top niveau, accès aux API. Mais plus cher, nécessite plus de maintenance (car une app pour chaque OS), et plus de compétences.
+
+# IONIC
+
+Basé sur Angular v2 et + (partie logique), HTML5 et Sass (CSS/SCSS)
+
+Angular basé sur TypeScript (JS avec des types), le tout asé sur du Cordova (build l'app pour le tel).
+
+C'est juste un framework front Ionic, il faudra le connecter avec un backend (API REST / JSON)
+
+## Structure
+
+- app
+- pages : toutes le spages de l'app
+- provider : connexion avec le backend
+- theme : personnalisation css
+-
+
diff --git a/Programmation mobile/src/trompette/.editorconfig b/Programmation mobile/src/trompette/.editorconfig
new file mode 100644
index 0000000..51873bc
--- /dev/null
+++ b/Programmation mobile/src/trompette/.editorconfig
@@ -0,0 +1,17 @@
+# EditorConfig helps developers define and maintain consistent coding styles between different editors and IDEs
+# editorconfig.org
+
+root = true
+
+[*]
+indent_style = space
+indent_size = 2
+
+# We recommend you to keep these unchanged
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[*.md]
+trim_trailing_whitespace = false
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/.gitignore b/Programmation mobile/src/trompette/.gitignore
new file mode 100644
index 0000000..db63ea7
--- /dev/null
+++ b/Programmation mobile/src/trompette/.gitignore
@@ -0,0 +1,35 @@
+# Specifies intentionally untracked files to ignore when using Git
+# http://git-scm.com/docs/gitignore
+
+*~
+*.sw[mnpcod]
+*.log
+*.tmp
+*.tmp.*
+log.txt
+*.sublime-project
+*.sublime-workspace
+.vscode/
+npm-debug.log*
+
+.idea/
+.ionic/
+.sourcemaps/
+.sass-cache/
+.tmp/
+.versions/
+coverage/
+dist/
+node_modules/
+tmp/
+temp/
+platforms/
+plugins/
+plugins/android.json
+plugins/ios.json
+www/
+$RECYCLE.BIN/
+
+.DS_Store
+Thumbs.db
+UserInterfaceState.xcuserstate
diff --git a/Programmation mobile/src/trompette/README.md b/Programmation mobile/src/trompette/README.md
new file mode 100644
index 0000000..fd993ff
--- /dev/null
+++ b/Programmation mobile/src/trompette/README.md
@@ -0,0 +1,96 @@
+# The Ionic Super Starter 🎮
+
+
+
+The Ionic Super Starter is a batteries-included starter project for Ionic apps
+complete with pre-built pages, providers, and best practices for Ionic
+development.
+
+The goal of the Super Starter is to get you from zero to app store faster than
+before, with a set of opinions from the Ionic team around page layout,
+data/user management, and project structure.
+
+The way to use this starter is to pick and choose the various page types you
+want use, and remove the ones you don't. If you want a blank slate, this
+starter isn't for you (use the `blank` type instead).
+
+One of the big advances in Ionic was moving from a rigid route-based navigation
+system to a flexible push/pop navigation system modeled off common native SDKs.
+We've embraced this pattern to provide a set of reusable pages that can be
+navigated to anywhere in the app. Take a look at the [Settings
+page](https://github.com/ionic-team/starters/blob/master/ionic-angular/official/super/src/pages/settings/settings.html)
+for a cool example of a page navigating to itself to provide a different UI
+without duplicating code.
+
+## Table of Contents
+
+1. [Getting Started](#getting-started)
+2. [Pages](#pages)
+3. [Providers](#providers)
+4. [i18n](#i18n) (adding languages)
+
+## Getting Started
+
+To test this starter out, install the latest version of the Ionic CLI and run:
+
+```bash
+ionic start mySuperApp super
+```
+
+## Pages
+
+The Super Starter comes with a variety of ready-made pages. These pages help
+you assemble common building blocks for your app so you can focus on your
+unique features and branding.
+
+The app loads with the `FirstRunPage` set to `TutorialPage` as the default. If
+the user has already gone through this page once, it will be skipped the next
+time they load the app.
+
+If the tutorial is skipped but the user hasn't logged in yet, the Welcome page
+will be displayed which is a "splash" prompting the user to log in or create an
+account.
+
+Once the user is authenticated, the app will load with the `MainPage` which is
+set to be the `TabsPage` as the default.
+
+The entry and main pages can be configured easily by updating the corresponding
+variables in
+[src/pages/index.ts](https://github.com/ionic-team/starters/blob/master/ionic-angular/official/super/src/pages/index.ts).
+
+Please read the
+[Pages](https://github.com/ionic-team/starters/tree/master/ionic-angular/official/super/src/pages)
+readme, and the readme for each page in the source for more documentation on
+each.
+
+## Providers
+
+The Super Starter comes with some basic implementations of common providers.
+
+### User
+
+The `User` provider is used to authenticate users through its
+`login(accountInfo)` and `signup(accountInfo)` methods, which perform `POST`
+requests to an API endpoint that you will need to configure.
+
+### Api
+
+The `Api` provider is a simple CRUD frontend to an API. Simply put the root of
+your API url in the Api class and call get/post/put/patch/delete
+
+## i18n
+
+Ionic Super Starter comes with internationalization (i18n) out of the box with
+[ngx-translate](https://github.com/ngx-translate/core). This makes it easy to
+change the text used in the app by modifying only one file.
+
+### Adding Languages
+
+To add new languages, add new files to the `src/assets/i18n` directory,
+following the pattern of LANGCODE.json where LANGCODE is the language/locale
+code (ex: en/gb/de/es/etc.).
+
+### Changing the Language
+
+To change the language of the app, edit `src/app/app.component.ts` and modify
+`translate.use('en')` to use the LANGCODE from `src/assets/i18n/`
diff --git a/Programmation mobile/src/trompette/config.xml b/Programmation mobile/src/trompette/config.xml
new file mode 100644
index 0000000..c12ab40
--- /dev/null
+++ b/Programmation mobile/src/trompette/config.xml
@@ -0,0 +1,85 @@
+
+
+ trompette
+ An awesome Ionic/Cordova app.
+ Ionic Framework Team
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Programmation mobile/src/trompette/ionic.config.json b/Programmation mobile/src/trompette/ionic.config.json
new file mode 100644
index 0000000..d5d2629
--- /dev/null
+++ b/Programmation mobile/src/trompette/ionic.config.json
@@ -0,0 +1,7 @@
+{
+ "name": "trompette",
+ "integrations": {
+ "cordova": {}
+ },
+ "type": "ionic-angular"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/package-lock.json b/Programmation mobile/src/trompette/package-lock.json
new file mode 100644
index 0000000..c694fc2
--- /dev/null
+++ b/Programmation mobile/src/trompette/package-lock.json
@@ -0,0 +1,6567 @@
+{
+ "name": "trompette",
+ "version": "0.0.1",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@angular-devkit/build-optimizer": {
+ "version": "0.0.35",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.0.35.tgz",
+ "integrity": "sha512-7JxZZAYFSCc0tP6+NrRn3b2Cd1b9d+a3+OfwVNyNsNd2unelqUMko2hm0KLbC8BXcXt/OILg1E/ZgLAXSS47nw==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "1.1.0",
+ "source-map": "0.5.7",
+ "typescript": "2.6.2",
+ "webpack-sources": "1.3.0"
+ }
+ },
+ "@angular/animations": {
+ "version": "5.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-5.2.11.tgz",
+ "integrity": "sha512-J7wKHkFn3wV28/Y1Qm4yjGXVCwXzj1JR5DRjGDTFnxTRacUFx7Nj0ApGhN0b2+V0NOvgxQOvEW415Y22kGoblw==",
+ "requires": {
+ "tslib": "1.9.3"
+ }
+ },
+ "@angular/common": {
+ "version": "5.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/common/-/common-5.2.11.tgz",
+ "integrity": "sha512-LniJjGAeftUJDJh+2+LEjltcGen08C/VMxQ/eUYmesytKy1sN+MWzh3GbpKfEWtWmyUsYTG9lAAJNo3L3jPwsw==",
+ "requires": {
+ "tslib": "1.9.3"
+ }
+ },
+ "@angular/compiler": {
+ "version": "5.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-5.2.11.tgz",
+ "integrity": "sha512-ICvB1ud1mxaXUYLb8vhJqiLhGBVocAZGxoHTglv6hMkbrRYcnlB3FZJFOzBvtj+krkd1jamoYLI43UAmesqQ6Q==",
+ "requires": {
+ "tslib": "1.9.3"
+ }
+ },
+ "@angular/compiler-cli": {
+ "version": "5.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-5.2.11.tgz",
+ "integrity": "sha512-dwrQ0yxoCM/XzKzlm7pTsyg4/6ECjT9emZufGj8t12bLMO8NDn1IJOsqXJA1+onEgQKhlr0Ziwi+96TvDTb1Cg==",
+ "requires": {
+ "chokidar": "1.7.0",
+ "minimist": "1.2.0",
+ "reflect-metadata": "0.1.12",
+ "tsickle": "0.27.5"
+ }
+ },
+ "@angular/core": {
+ "version": "5.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/core/-/core-5.2.11.tgz",
+ "integrity": "sha512-h2vpvXNAdOqKzbVaZcHnHGMT5A8uDnizk6FgGq6SPyw9s3d+/VxZ9LJaPjUk3g2lICA7og1tUel+2YfF971MlQ==",
+ "requires": {
+ "tslib": "1.9.3"
+ }
+ },
+ "@angular/forms": {
+ "version": "5.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-5.2.11.tgz",
+ "integrity": "sha512-wBllFlIubPclAFRXUc84Kc7TMeKOftzrQraVZ7ooTNeFLLa/FZLN2K8HGyRde8X/XDsMu1XAmjNfkz++spwTzA==",
+ "requires": {
+ "tslib": "1.9.3"
+ }
+ },
+ "@angular/http": {
+ "version": "5.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/http/-/http-5.2.11.tgz",
+ "integrity": "sha512-eR7wNXh1+6MpcQNb3sq4bJVX03dx50Wl3kpPG+Q7N1VSL0oPQSobaTrR17ac3oFCEfSJn6kkUCqtUXha6wcNHg==",
+ "requires": {
+ "tslib": "1.9.3"
+ }
+ },
+ "@angular/platform-browser": {
+ "version": "5.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-5.2.11.tgz",
+ "integrity": "sha512-6YZ4IpBFqXx88vEzBZG2WWnaSYXbFWDgG0iT+bZPHAfwsbmqbcMcs7Ogu+XZ4VmK02dTqbrFh7U4P2W+sqrzow==",
+ "requires": {
+ "tslib": "1.9.3"
+ }
+ },
+ "@angular/platform-browser-dynamic": {
+ "version": "5.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.2.11.tgz",
+ "integrity": "sha512-5kKPNULcXNwkyBjpHfF+pq+Yxi8Zl866YSOK9t8txoiQ9Ctw97kMkEJcTetk6MJgBp/NP3YyjtoTAm8oXLerug==",
+ "requires": {
+ "tslib": "1.9.3"
+ }
+ },
+ "@ionic-native/camera": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/@ionic-native/camera/-/camera-4.3.3.tgz",
+ "integrity": "sha512-ZMOoKT5nKCyCsHWdUgeUXohxlb59Qmrxv5mhRE9OjU4Kjscr979UarxKlL5v4e7AjoQojeuPW1RDh0Jd1RRaxw=="
+ },
+ "@ionic-native/core": {
+ "version": "4.15.0",
+ "resolved": "https://registry.npmjs.org/@ionic-native/core/-/core-4.15.0.tgz",
+ "integrity": "sha512-WlFcBktHnufiu+SB1u2GemEkDrXE94+LUkg59BQL1Tr0j+7EXcNY20JUUFCnQZP+uTJbUxaYZEa36B8UKBBpbA=="
+ },
+ "@ionic-native/splash-screen": {
+ "version": "4.15.0",
+ "resolved": "https://registry.npmjs.org/@ionic-native/splash-screen/-/splash-screen-4.15.0.tgz",
+ "integrity": "sha512-wTvbZINANRCzbFi03hTEK5fG16K1Iz+VvqyshKDtCm3ZQwZk0lGpQF+9bN5ZanXk0OsgfteHNp4q82td27mo2g=="
+ },
+ "@ionic-native/status-bar": {
+ "version": "4.15.0",
+ "resolved": "https://registry.npmjs.org/@ionic-native/status-bar/-/status-bar-4.15.0.tgz",
+ "integrity": "sha512-90VC7KMzoTBNCikS81Uj4+Wa7HOadxDm63t+vdBQgGgOgmLj56+PY5DJBVvOOd0uKiUqsFlKIKg7nLjwSPHz3A=="
+ },
+ "@ionic/app-scripts": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@ionic/app-scripts/-/app-scripts-3.2.0.tgz",
+ "integrity": "sha512-JZkRPg/qtOW3u3Dy/Z2EQ8D41ytK14tnuNck782JBAyL4kc6cCju589YNuiJc3DionAGu/B0Qsmv9czw/McHQg==",
+ "dev": true,
+ "requires": {
+ "@angular-devkit/build-optimizer": "0.0.35",
+ "autoprefixer": "7.2.6",
+ "chalk": "2.4.1",
+ "chokidar": "1.7.0",
+ "clean-css": "4.2.1",
+ "cross-spawn": "5.1.0",
+ "dotenv-webpack": "1.5.7",
+ "express": "4.16.4",
+ "fs-extra": "4.0.3",
+ "glob": "7.1.3",
+ "json-loader": "0.5.7",
+ "node-sass": "4.9.0",
+ "os-name": "2.0.1",
+ "postcss": "6.0.23",
+ "proxy-middleware": "0.15.0",
+ "reflect-metadata": "0.1.12",
+ "rollup": "0.50.0",
+ "rollup-plugin-commonjs": "8.2.6",
+ "rollup-plugin-node-resolve": "3.0.0",
+ "source-map": "0.6.1",
+ "tiny-lr": "1.1.1",
+ "tslint": "5.11.0",
+ "tslint-eslint-rules": "4.1.1",
+ "uglify-es": "3.2.2",
+ "webpack": "3.8.1",
+ "ws": "3.3.2",
+ "xml2js": "0.4.19"
+ },
+ "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
+ }
+ }
+ },
+ "@ionic/storage": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@ionic/storage/-/storage-2.2.0.tgz",
+ "integrity": "sha512-2pszrzmI+fAar2Rx0WmJDVpc15D1k5tvLkB49NLYWJ2pOMaO/3/vp7mg/mEbg3rdsPE9FRbYI6vdKjQ2pP1EWA==",
+ "requires": {
+ "localforage": "1.7.1",
+ "localforage-cordovasqlitedriver": "1.7.0",
+ "tslib": "1.9.3"
+ }
+ },
+ "@ngx-translate/core": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-8.0.0.tgz",
+ "integrity": "sha1-dR/WtRLYDzp0jS3o38lt/vopr+A="
+ },
+ "@ngx-translate/http-loader": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-2.0.1.tgz",
+ "integrity": "sha1-qmd4jmS/qGUmkad7Ais7QDEgkRM="
+ },
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "dev": true
+ },
+ "accepts": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
+ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
+ "dev": true,
+ "requires": {
+ "mime-types": "2.1.20",
+ "negotiator": "0.6.1"
+ }
+ },
+ "acorn": {
+ "version": "5.7.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
+ "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
+ "dev": true
+ },
+ "acorn-dynamic-import": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz",
+ "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
+ "dev": true,
+ "requires": {
+ "acorn": "4.0.13"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
+ "dev": true
+ }
+ }
+ },
+ "ajv": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "dev": true,
+ "requires": {
+ "co": "4.6.0",
+ "fast-deep-equal": "1.1.0",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.3.1"
+ }
+ },
+ "ajv-keywords": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
+ "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
+ "dev": true
+ },
+ "align-text": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2",
+ "longest": "1.0.1",
+ "repeat-string": "1.6.1"
+ }
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.3"
+ }
+ },
+ "anymatch": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
+ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
+ "requires": {
+ "micromatch": "2.3.11",
+ "normalize-path": "2.1.1"
+ }
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "dev": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+ "dev": true,
+ "requires": {
+ "delegates": "1.0.0",
+ "readable-stream": "2.3.6"
+ }
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "1.0.3"
+ }
+ },
+ "arr-diff": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "requires": {
+ "arr-flatten": "1.1.0"
+ }
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "dev": true
+ },
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
+ },
+ "asn1": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": "2.1.2"
+ }
+ },
+ "asn1.js": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
+ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.1"
+ }
+ },
+ "assert": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
+ "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
+ "dev": true,
+ "requires": {
+ "util": "0.10.3"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+ "dev": true
+ },
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.1"
+ }
+ }
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
+ },
+ "async": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
+ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
+ "dev": true,
+ "requires": {
+ "lodash": "4.17.11"
+ }
+ },
+ "async-each": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
+ "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0="
+ },
+ "async-foreach": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
+ "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
+ "dev": true
+ },
+ "async-limiter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
+ "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==",
+ "dev": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "dev": true
+ },
+ "atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
+ },
+ "autoprefixer": {
+ "version": "7.2.6",
+ "resolved": "http://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.6.tgz",
+ "integrity": "sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==",
+ "dev": true,
+ "requires": {
+ "browserslist": "2.11.3",
+ "caniuse-lite": "1.0.30000893",
+ "normalize-range": "0.1.2",
+ "num2fraction": "1.2.2",
+ "postcss": "6.0.23",
+ "postcss-value-parser": "3.3.1"
+ }
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "dev": true
+ },
+ "aws4": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
+ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
+ "dev": true
+ },
+ "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-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "requires": {
+ "cache-base": "1.0.1",
+ "class-utils": "0.3.6",
+ "component-emitter": "1.2.1",
+ "define-property": "1.0.0",
+ "isobject": "3.0.1",
+ "mixin-deep": "1.3.1",
+ "pascalcase": "0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "requires": {
+ "is-descriptor": "1.0.2"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "requires": {
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+ }
+ }
+ },
+ "base64-js": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
+ "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==",
+ "dev": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "dev": true,
+ "requires": {
+ "tweetnacl": "0.14.5"
+ }
+ },
+ "big.js": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
+ "dev": true
+ },
+ "binary-extensions": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz",
+ "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg=="
+ },
+ "block-stream": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "bn.js": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+ "dev": true
+ },
+ "body": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz",
+ "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=",
+ "dev": true,
+ "requires": {
+ "continuable-cache": "0.3.1",
+ "error": "7.0.2",
+ "raw-body": "1.1.7",
+ "safe-json-parse": "1.0.1"
+ },
+ "dependencies": {
+ "bytes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
+ "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=",
+ "dev": true
+ },
+ "raw-body": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz",
+ "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=",
+ "dev": true,
+ "requires": {
+ "bytes": "1.0.0",
+ "string_decoder": "0.10.31"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ }
+ }
+ },
+ "body-parser": {
+ "version": "1.18.3",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
+ "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
+ "dev": true,
+ "requires": {
+ "bytes": "3.0.0",
+ "content-type": "1.0.4",
+ "debug": "2.6.9",
+ "depd": "1.1.2",
+ "http-errors": "1.6.3",
+ "iconv-lite": "0.4.23",
+ "on-finished": "2.3.0",
+ "qs": "6.5.2",
+ "raw-body": "2.3.3",
+ "type-is": "1.6.16"
+ }
+ },
+ "boom": {
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
+ "dev": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "requires": {
+ "expand-range": "1.8.2",
+ "preserve": "0.2.0",
+ "repeat-element": "1.1.3"
+ }
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+ "dev": true
+ },
+ "browser-resolve": {
+ "version": "1.11.3",
+ "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz",
+ "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==",
+ "dev": true,
+ "requires": {
+ "resolve": "1.1.7"
+ },
+ "dependencies": {
+ "resolve": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
+ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
+ "dev": true
+ }
+ }
+ },
+ "browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "dev": true,
+ "requires": {
+ "buffer-xor": "1.0.3",
+ "cipher-base": "1.0.4",
+ "create-hash": "1.2.0",
+ "evp_bytestokey": "1.0.3",
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "browserify-cipher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "dev": true,
+ "requires": {
+ "browserify-aes": "1.2.0",
+ "browserify-des": "1.0.2",
+ "evp_bytestokey": "1.0.3"
+ }
+ },
+ "browserify-des": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "1.0.4",
+ "des.js": "1.0.0",
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "browserify-rsa": {
+ "version": "4.0.1",
+ "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "randombytes": "2.0.6"
+ }
+ },
+ "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.11.8",
+ "browserify-rsa": "4.0.1",
+ "create-hash": "1.2.0",
+ "create-hmac": "1.1.7",
+ "elliptic": "6.4.1",
+ "inherits": "2.0.3",
+ "parse-asn1": "5.1.1"
+ }
+ },
+ "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.6"
+ }
+ },
+ "browserslist": {
+ "version": "2.11.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz",
+ "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "1.0.30000893",
+ "electron-to-chromium": "1.3.80"
+ }
+ },
+ "buffer": {
+ "version": "4.9.1",
+ "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
+ "dev": true,
+ "requires": {
+ "base64-js": "1.3.0",
+ "ieee754": "1.1.12",
+ "isarray": "1.0.0"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+ "dev": true
+ },
+ "builtin-modules": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "dev": true
+ },
+ "builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+ "dev": true
+ },
+ "bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
+ "dev": true
+ },
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "requires": {
+ "collection-visit": "1.0.0",
+ "component-emitter": "1.2.1",
+ "get-value": "2.0.6",
+ "has-value": "1.0.0",
+ "isobject": "3.0.1",
+ "set-value": "2.0.0",
+ "to-object-path": "0.3.0",
+ "union-value": "1.0.0",
+ "unset-value": "1.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
+ }
+ },
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "dev": true,
+ "requires": {
+ "camelcase": "2.1.1",
+ "map-obj": "1.0.1"
+ }
+ },
+ "caniuse-lite": {
+ "version": "1.0.30000893",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000893.tgz",
+ "integrity": "sha512-kOddHcTEef+NgN/fs0zmX2brHTNATVOWMEIhlZHCuwQRtXobjSw9pAECc44Op4bTBcavRjkLaPrGomknH7+Jvg==",
+ "dev": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+ "dev": true
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "dev": true,
+ "requires": {
+ "align-text": "0.1.4",
+ "lazy-cache": "1.0.4"
+ }
+ },
+ "chalk": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.1",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "5.5.0"
+ }
+ },
+ "chokidar": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
+ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
+ "requires": {
+ "anymatch": "1.3.2",
+ "async-each": "1.0.1",
+ "fsevents": "1.2.4",
+ "glob-parent": "2.0.0",
+ "inherits": "2.0.3",
+ "is-binary-path": "1.0.1",
+ "is-glob": "2.0.1",
+ "path-is-absolute": "1.0.1",
+ "readdirp": "2.2.1"
+ }
+ },
+ "cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "requires": {
+ "arr-union": "3.1.0",
+ "define-property": "0.2.5",
+ "isobject": "3.0.1",
+ "static-extend": "0.1.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "0.1.6"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
+ }
+ },
+ "clean-css": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
+ "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
+ "dev": true,
+ "requires": {
+ "source-map": "0.6.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
+ }
+ }
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wrap-ansi": "2.1.0"
+ }
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+ "dev": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "dev": true
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "requires": {
+ "map-visit": "1.0.0",
+ "object-visit": "1.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
+ "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
+ "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==",
+ "dev": true
+ },
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "console-browserify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
+ "dev": true,
+ "requires": {
+ "date-now": "0.1.4"
+ }
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+ "dev": true
+ },
+ "constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
+ "dev": true
+ },
+ "content-disposition": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
+ "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=",
+ "dev": true
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "dev": true
+ },
+ "continuable-cache": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz",
+ "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=",
+ "dev": true
+ },
+ "cookie": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+ "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
+ "dev": true
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+ "dev": true
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
+ },
+ "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="
+ },
+ "create-ecdh": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
+ "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "elliptic": "6.4.1"
+ }
+ },
+ "create-hash": {
+ "version": "1.2.0",
+ "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "1.0.4",
+ "inherits": "2.0.3",
+ "md5.js": "1.3.5",
+ "ripemd160": "2.0.2",
+ "sha.js": "2.4.11"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.7",
+ "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "1.0.4",
+ "create-hash": "1.2.0",
+ "inherits": "2.0.3",
+ "ripemd160": "2.0.2",
+ "safe-buffer": "5.1.2",
+ "sha.js": "2.4.11"
+ }
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.3",
+ "shebang-command": "1.2.0",
+ "which": "1.3.1"
+ }
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
+ "dev": true,
+ "requires": {
+ "boom": "2.10.1"
+ }
+ },
+ "crypto-browserify": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "dev": true,
+ "requires": {
+ "browserify-cipher": "1.0.1",
+ "browserify-sign": "4.0.4",
+ "create-ecdh": "4.0.3",
+ "create-hash": "1.2.0",
+ "create-hmac": "1.1.7",
+ "diffie-hellman": "5.0.3",
+ "inherits": "2.0.3",
+ "pbkdf2": "3.0.17",
+ "public-encrypt": "4.0.3",
+ "randombytes": "2.0.6",
+ "randomfill": "1.0.4"
+ }
+ },
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "dev": true,
+ "requires": {
+ "array-find-index": "1.0.2"
+ }
+ },
+ "d": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
+ "dev": true,
+ "requires": {
+ "es5-ext": "0.10.46"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ }
+ },
+ "date-now": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
+ },
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "requires": {
+ "is-descriptor": "1.0.2",
+ "isobject": "3.0.1"
+ },
+ "dependencies": {
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "requires": {
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+ }
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "dev": true
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "dev": true
+ },
+ "des.js": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
+ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.1"
+ }
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+ "dev": true
+ },
+ "diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "dev": true
+ },
+ "diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "miller-rabin": "4.0.1",
+ "randombytes": "2.0.6"
+ }
+ },
+ "doctrine": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz",
+ "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=",
+ "dev": true,
+ "requires": {
+ "esutils": "1.1.6",
+ "isarray": "0.0.1"
+ },
+ "dependencies": {
+ "esutils": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz",
+ "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ }
+ }
+ },
+ "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
+ },
+ "dotenv": {
+ "version": "5.0.1",
+ "resolved": "http://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz",
+ "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==",
+ "dev": true
+ },
+ "dotenv-webpack": {
+ "version": "1.5.7",
+ "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-1.5.7.tgz",
+ "integrity": "sha1-xEOVqyHR/SjXmpCUKnsUsd69FF8=",
+ "dev": true,
+ "requires": {
+ "dotenv": "5.0.1"
+ }
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "dev": true,
+ "requires": {
+ "jsbn": "0.1.1",
+ "safer-buffer": "2.1.2"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+ "dev": true
+ },
+ "electron-to-chromium": {
+ "version": "1.3.80",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.80.tgz",
+ "integrity": "sha512-WClidEWEUNx7OfwXehB0qaxCuetjbKjev2SmXWgybWPLKAThBiMTF/2Pd8GSUDtoGOavxVzdkKwfFAPRSWlkLw==",
+ "dev": true
+ },
+ "elliptic": {
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz",
+ "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "brorand": "1.1.0",
+ "hash.js": "1.1.5",
+ "hmac-drbg": "1.0.1",
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.1",
+ "minimalistic-crypto-utils": "1.0.1"
+ }
+ },
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "dev": true
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "dev": true
+ },
+ "enhanced-resolve": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
+ "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "memory-fs": "0.4.1",
+ "object-assign": "4.1.1",
+ "tapable": "0.2.8"
+ }
+ },
+ "errno": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+ "dev": true,
+ "requires": {
+ "prr": "1.0.1"
+ }
+ },
+ "error": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz",
+ "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=",
+ "dev": true,
+ "requires": {
+ "string-template": "0.2.1",
+ "xtend": "4.0.1"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "0.2.1"
+ }
+ },
+ "es5-ext": {
+ "version": "0.10.46",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz",
+ "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==",
+ "dev": true,
+ "requires": {
+ "es6-iterator": "2.0.3",
+ "es6-symbol": "3.1.1",
+ "next-tick": "1.0.0"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "dev": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.46",
+ "es6-symbol": "3.1.1"
+ }
+ },
+ "es6-map": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
+ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
+ "dev": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.46",
+ "es6-iterator": "2.0.3",
+ "es6-set": "0.1.5",
+ "es6-symbol": "3.1.1",
+ "event-emitter": "0.3.5"
+ }
+ },
+ "es6-set": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
+ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
+ "dev": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.46",
+ "es6-iterator": "2.0.3",
+ "es6-symbol": "3.1.1",
+ "event-emitter": "0.3.5"
+ }
+ },
+ "es6-symbol": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+ "dev": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.46"
+ }
+ },
+ "es6-weak-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
+ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
+ "dev": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.46",
+ "es6-iterator": "2.0.3",
+ "es6-symbol": "3.1.1"
+ }
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "escope": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
+ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
+ "dev": true,
+ "requires": {
+ "es6-map": "0.1.5",
+ "es6-weak-map": "2.0.2",
+ "esrecurse": "4.2.1",
+ "estraverse": "4.2.0"
+ }
+ },
+ "esprima": {
+ "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": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+ "dev": true,
+ "requires": {
+ "estraverse": "4.2.0"
+ }
+ },
+ "estraverse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "dev": true
+ },
+ "estree-walker": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz",
+ "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "dev": true
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "dev": true
+ },
+ "event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+ "dev": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.46"
+ }
+ },
+ "events": {
+ "version": "1.1.1",
+ "resolved": "http://registry.npmjs.org/events/-/events-1.1.1.tgz",
+ "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
+ "dev": true
+ },
+ "evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dev": true,
+ "requires": {
+ "md5.js": "1.3.5",
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "5.1.0",
+ "get-stream": "3.0.0",
+ "is-stream": "1.1.0",
+ "npm-run-path": "2.0.2",
+ "p-finally": "1.0.0",
+ "signal-exit": "3.0.2",
+ "strip-eof": "1.0.0"
+ }
+ },
+ "expand-brackets": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "requires": {
+ "is-posix-bracket": "0.1.1"
+ }
+ },
+ "expand-range": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+ "requires": {
+ "fill-range": "2.2.4"
+ }
+ },
+ "express": {
+ "version": "4.16.4",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz",
+ "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==",
+ "dev": true,
+ "requires": {
+ "accepts": "1.3.5",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.18.3",
+ "content-disposition": "0.5.2",
+ "content-type": "1.0.4",
+ "cookie": "0.3.1",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "1.1.2",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "etag": "1.8.1",
+ "finalhandler": "1.1.1",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "1.1.2",
+ "on-finished": "2.3.0",
+ "parseurl": "1.3.2",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "2.0.4",
+ "qs": "6.5.2",
+ "range-parser": "1.2.0",
+ "safe-buffer": "5.1.2",
+ "send": "0.16.2",
+ "serve-static": "1.13.2",
+ "setprototypeof": "1.1.0",
+ "statuses": "1.4.0",
+ "type-is": "1.6.16",
+ "utils-merge": "1.0.1",
+ "vary": "1.1.2"
+ },
+ "dependencies": {
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+ "dev": true
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "requires": {
+ "assign-symbols": "1.0.0",
+ "is-extendable": "1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "requires": {
+ "is-plain-object": "2.0.4"
+ }
+ }
+ }
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "requires": {
+ "is-extglob": "1.0.0"
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
+ "dev": true
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
+ "dev": true
+ },
+ "faye-websocket": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
+ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
+ "dev": true,
+ "requires": {
+ "websocket-driver": "0.7.0"
+ }
+ },
+ "filename-regex": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY="
+ },
+ "fill-range": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
+ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
+ "requires": {
+ "is-number": "2.1.0",
+ "isobject": "2.1.0",
+ "randomatic": "3.1.0",
+ "repeat-element": "1.1.3",
+ "repeat-string": "1.6.1"
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.1",
+ "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
+ "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "on-finished": "2.3.0",
+ "parseurl": "1.3.2",
+ "statuses": "1.4.0",
+ "unpipe": "1.0.0"
+ }
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "requires": {
+ "for-in": "1.0.2"
+ }
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "dev": true
+ },
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "dev": true,
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.7",
+ "mime-types": "2.1.20"
+ }
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+ "dev": true
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "requires": {
+ "map-cache": "0.2.2"
+ }
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+ "dev": true
+ },
+ "fs-extra": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
+ "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "jsonfile": "4.0.0",
+ "universalify": "0.1.2"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
+ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
+ "optional": true,
+ "requires": {
+ "nan": "2.11.1",
+ "node-pre-gyp": "0.10.0"
+ },
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.1",
+ "bundled": true,
+ "optional": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "bundled": true,
+ "optional": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.4",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "delegates": "1.0.0",
+ "readable-stream": "2.3.6"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "bundled": true,
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "chownr": {
+ "version": "1.0.1",
+ "bundled": true,
+ "optional": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.5.1",
+ "bundled": true,
+ "optional": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "bundled": true,
+ "optional": true
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "bundled": true,
+ "optional": true
+ },
+ "fs-minipass": {
+ "version": "1.2.5",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "minipass": "2.2.4"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "bundled": true,
+ "optional": true
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "aproba": "1.2.0",
+ "console-control-strings": "1.1.0",
+ "has-unicode": "2.0.1",
+ "object-assign": "4.1.1",
+ "signal-exit": "3.0.2",
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wide-align": "1.1.2"
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "bundled": true,
+ "optional": true
+ },
+ "iconv-lite": {
+ "version": "0.4.21",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "safer-buffer": "2.1.2"
+ }
+ },
+ "ignore-walk": {
+ "version": "3.0.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "minimatch": "3.0.4"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "bundled": true
+ },
+ "ini": {
+ "version": "1.3.5",
+ "bundled": true,
+ "optional": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "optional": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "requires": {
+ "brace-expansion": "1.1.11"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "bundled": true
+ },
+ "minipass": {
+ "version": "2.2.4",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "5.1.1",
+ "yallist": "3.0.2"
+ }
+ },
+ "minizlib": {
+ "version": "1.1.0",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "minipass": "2.2.4"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "bundled": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "bundled": true,
+ "optional": true
+ },
+ "needle": {
+ "version": "2.2.0",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "debug": "2.6.9",
+ "iconv-lite": "0.4.21",
+ "sax": "1.2.4"
+ }
+ },
+ "node-pre-gyp": {
+ "version": "0.10.0",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "detect-libc": "1.0.3",
+ "mkdirp": "0.5.1",
+ "needle": "2.2.0",
+ "nopt": "4.0.1",
+ "npm-packlist": "1.1.10",
+ "npmlog": "4.1.2",
+ "rc": "1.2.7",
+ "rimraf": "2.6.2",
+ "semver": "5.5.0",
+ "tar": "4.4.1"
+ }
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "abbrev": "1.1.1",
+ "osenv": "0.1.5"
+ }
+ },
+ "npm-bundled": {
+ "version": "1.0.3",
+ "bundled": true,
+ "optional": true
+ },
+ "npm-packlist": {
+ "version": "1.1.10",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "ignore-walk": "3.0.1",
+ "npm-bundled": "1.0.3"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "are-we-there-yet": "1.1.4",
+ "console-control-strings": "1.1.0",
+ "gauge": "2.7.4",
+ "set-blocking": "2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true,
+ "optional": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "bundled": true,
+ "optional": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "bundled": true,
+ "optional": true
+ },
+ "rc": {
+ "version": "1.2.7",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "deep-extend": "0.5.1",
+ "ini": "1.3.5",
+ "minimist": "1.2.0",
+ "strip-json-comments": "2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true,
+ "optional": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "2.0.0",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.1.1",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "glob": "7.1.2"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "bundled": true
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "bundled": true,
+ "optional": true
+ },
+ "sax": {
+ "version": "1.2.4",
+ "bundled": true,
+ "optional": true
+ },
+ "semver": {
+ "version": "5.5.0",
+ "bundled": true,
+ "optional": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true,
+ "optional": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true,
+ "optional": true
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "bundled": true,
+ "optional": true
+ },
+ "tar": {
+ "version": "4.4.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "chownr": "1.0.1",
+ "fs-minipass": "1.2.5",
+ "minipass": "2.2.4",
+ "minizlib": "1.1.0",
+ "mkdirp": "0.5.1",
+ "safe-buffer": "5.1.1",
+ "yallist": "3.0.2"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true
+ },
+ "wide-align": {
+ "version": "1.1.2",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "string-width": "1.0.2"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "yallist": {
+ "version": "3.0.2",
+ "bundled": true
+ }
+ }
+ },
+ "fstream": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
+ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "inherits": "2.0.3",
+ "mkdirp": "0.5.1",
+ "rimraf": "2.6.2"
+ }
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "dev": true,
+ "requires": {
+ "aproba": "1.2.0",
+ "console-control-strings": "1.1.0",
+ "has-unicode": "2.0.1",
+ "object-assign": "4.1.1",
+ "signal-exit": "3.0.2",
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wide-align": "1.1.3"
+ }
+ },
+ "gaze": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
+ "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
+ "dev": true,
+ "requires": {
+ "globule": "1.2.1"
+ }
+ },
+ "generate-function": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz",
+ "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==",
+ "dev": true,
+ "requires": {
+ "is-property": "1.0.2"
+ }
+ },
+ "generate-object-property": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
+ "dev": true,
+ "requires": {
+ "is-property": "1.0.2"
+ }
+ },
+ "get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+ "dev": true
+ },
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "dev": true
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "glob-base": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "requires": {
+ "glob-parent": "2.0.0",
+ "is-glob": "2.0.1"
+ }
+ },
+ "glob-parent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "requires": {
+ "is-glob": "2.0.1"
+ }
+ },
+ "globule": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
+ "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
+ "dev": true,
+ "requires": {
+ "glob": "7.1.3",
+ "lodash": "4.17.11",
+ "minimatch": "3.0.4"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "dev": true
+ },
+ "har-validator": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz",
+ "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
+ "dev": true,
+ "requires": {
+ "ajv": "5.5.2",
+ "har-schema": "2.0.0"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+ "dev": true
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "requires": {
+ "get-value": "2.0.6",
+ "has-values": "1.0.0",
+ "isobject": "3.0.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
+ }
+ },
+ "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=",
+ "requires": {
+ "is-number": "3.0.0",
+ "kind-of": "4.0.0"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "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.3",
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "hash.js": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz",
+ "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.1"
+ }
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+ "dev": true,
+ "requires": {
+ "boom": "2.10.1",
+ "cryptiles": "2.0.5",
+ "hoek": "2.16.3",
+ "sntp": "1.0.9"
+ }
+ },
+ "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.1.5",
+ "minimalistic-assert": "1.0.1",
+ "minimalistic-crypto-utils": "1.0.1"
+ }
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
+ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
+ "dev": true
+ },
+ "http-errors": {
+ "version": "1.6.3",
+ "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+ "dev": true,
+ "requires": {
+ "depd": "1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": "1.4.0"
+ }
+ },
+ "http-parser-js": {
+ "version": "0.4.13",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz",
+ "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=",
+ "dev": true
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "jsprim": "1.4.1",
+ "sshpk": "1.15.1"
+ }
+ },
+ "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
+ },
+ "iconv-lite": {
+ "version": "0.4.23",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
+ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": "2.1.2"
+ }
+ },
+ "ieee754": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz",
+ "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==",
+ "dev": true
+ },
+ "immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
+ },
+ "in-publish": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
+ "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
+ "dev": true
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dev": true,
+ "requires": {
+ "repeating": "2.0.1"
+ }
+ },
+ "indexof": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
+ "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "interpret": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
+ "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
+ "dev": true
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "dev": true
+ },
+ "ionic-angular": {
+ "version": "3.9.2",
+ "resolved": "https://registry.npmjs.org/ionic-angular/-/ionic-angular-3.9.2.tgz",
+ "integrity": "sha512-BEZ6magY1i5GwM9ki/MOpszUz62+g518HsGICtw9TE1D4v9Eb6n/o7e+X0vtvpK4TdouFjQ8r5XA9VPAKW9/+Q=="
+ },
+ "ionicons": {
+ "version": "3.0.0",
+ "resolved": "http://registry.npmjs.org/ionicons/-/ionicons-3.0.0.tgz",
+ "integrity": "sha1-QLja9P16MRUL0AIWD2ZJbiKpjDw="
+ },
+ "ipaddr.js": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
+ "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=",
+ "dev": true
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "requires": {
+ "kind-of": "3.2.2"
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "requires": {
+ "binary-extensions": "1.12.0"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "is-builtin-module": {
+ "version": "1.0.0",
+ "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "dev": true,
+ "requires": {
+ "builtin-modules": "1.1.1"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "requires": {
+ "kind-of": "3.2.2"
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "requires": {
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ }
+ }
+ },
+ "is-dotfile": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
+ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE="
+ },
+ "is-equal-shallow": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "requires": {
+ "is-primitive": "2.0.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+ },
+ "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.1"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "requires": {
+ "is-extglob": "1.0.0"
+ }
+ },
+ "is-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
+ "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=",
+ "dev": true
+ },
+ "is-my-ip-valid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz",
+ "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==",
+ "dev": true
+ },
+ "is-my-json-valid": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.19.0.tgz",
+ "integrity": "sha512-mG0f/unGX1HZ5ep4uhRaPOS8EkAY8/j6mDRMJrutq4CqhoJWYp7qAlonIPy3TV7p3ju4TK9fo/PbnoksWmsp5Q==",
+ "dev": true,
+ "requires": {
+ "generate-function": "2.3.1",
+ "generate-object-property": "1.2.0",
+ "is-my-ip-valid": "1.0.0",
+ "jsonpointer": "4.0.1",
+ "xtend": "4.0.1"
+ }
+ },
+ "is-number": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "requires": {
+ "kind-of": "3.2.2"
+ }
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "requires": {
+ "isobject": "3.0.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
+ }
+ },
+ "is-posix-bracket": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
+ },
+ "is-property": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true
+ },
+ "js-base64": {
+ "version": "2.4.9",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz",
+ "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==",
+ "dev": true
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
+ "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.10",
+ "esprima": "4.0.1"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true
+ },
+ "json-loader": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
+ "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==",
+ "dev": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+ "dev": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true
+ },
+ "json5": {
+ "version": "0.5.1",
+ "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11"
+ }
+ },
+ "jsonpointer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
+ "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
+ "dev": true
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+ "dev": true
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "dev": true,
+ "requires": {
+ "invert-kv": "1.0.0"
+ }
+ },
+ "lie": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
+ "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=",
+ "requires": {
+ "immediate": "3.0.6"
+ }
+ },
+ "livereload-js": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.3.0.tgz",
+ "integrity": "sha512-j1R0/FeGa64Y+NmqfZhyoVRzcFlOZ8sNlKzHjh4VvLULFACZhn68XrX5DFg2FhMvSMJmROuFxRSa560ECWKBMg==",
+ "dev": true
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0"
+ }
+ },
+ "loader-runner": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz",
+ "integrity": "sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==",
+ "dev": true
+ },
+ "loader-utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+ "dev": true,
+ "requires": {
+ "big.js": "3.2.0",
+ "emojis-list": "2.1.0",
+ "json5": "0.5.1"
+ }
+ },
+ "localforage": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.7.1.tgz",
+ "integrity": "sha1-5JJ+BCMCuGTbMPMhHxO1xvDell0=",
+ "requires": {
+ "lie": "3.1.1"
+ }
+ },
+ "localforage-cordovasqlitedriver": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/localforage-cordovasqlitedriver/-/localforage-cordovasqlitedriver-1.7.0.tgz",
+ "integrity": "sha1-i5OVd1nuaI06WNW6fAR39sy1ODg=",
+ "requires": {
+ "localforage": "1.7.1"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "2.0.0",
+ "path-exists": "3.0.0"
+ },
+ "dependencies": {
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ }
+ }
+ },
+ "lodash": {
+ "version": "4.17.11",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
+ "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
+ "dev": true
+ },
+ "lodash.assign": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
+ "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
+ "dev": true
+ },
+ "lodash.clonedeep": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
+ "dev": true
+ },
+ "lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
+ "dev": true
+ },
+ "lodash.mergewith": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz",
+ "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==",
+ "dev": true
+ },
+ "longest": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
+ "dev": true
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "dev": true,
+ "requires": {
+ "currently-unhandled": "0.4.1",
+ "signal-exit": "3.0.2"
+ }
+ },
+ "lru-cache": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
+ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ },
+ "macos-release": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-1.1.0.tgz",
+ "integrity": "sha512-mmLbumEYMi5nXReB9js3WGsB8UE6cDBWyIO62Z4DNx6GbRhDxHNjA1MlzSpJ2S2KM1wyiPRA0d19uHWYYvMHjA==",
+ "dev": true
+ },
+ "magic-string": {
+ "version": "0.22.5",
+ "resolved": "http://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz",
+ "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==",
+ "dev": true,
+ "requires": {
+ "vlq": "0.2.3"
+ }
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ },
+ "map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "requires": {
+ "object-visit": "1.0.1"
+ }
+ },
+ "math-random": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz",
+ "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w="
+ },
+ "md5.js": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+ "dev": true,
+ "requires": {
+ "hash-base": "3.0.4",
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+ "dev": true
+ },
+ "mem": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "1.2.0"
+ }
+ },
+ "memory-fs": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+ "dev": true,
+ "requires": {
+ "errno": "0.1.7",
+ "readable-stream": "2.3.6"
+ }
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "2.1.0",
+ "decamelize": "1.2.0",
+ "loud-rejection": "1.6.0",
+ "map-obj": "1.0.1",
+ "minimist": "1.2.0",
+ "normalize-package-data": "2.4.0",
+ "object-assign": "4.1.1",
+ "read-pkg-up": "1.0.1",
+ "redent": "1.0.0",
+ "trim-newlines": "1.0.0"
+ }
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+ "dev": true
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+ "requires": {
+ "arr-diff": "2.0.0",
+ "array-unique": "0.2.1",
+ "braces": "1.8.5",
+ "expand-brackets": "0.1.5",
+ "extglob": "0.3.2",
+ "filename-regex": "2.0.1",
+ "is-extglob": "1.0.0",
+ "is-glob": "2.0.1",
+ "kind-of": "3.2.2",
+ "normalize-path": "2.1.1",
+ "object.omit": "2.0.1",
+ "parse-glob": "3.0.4",
+ "regex-cache": "0.4.4"
+ }
+ },
+ "miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "brorand": "1.1.0"
+ }
+ },
+ "mime": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
+ "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.36.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz",
+ "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.20",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz",
+ "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
+ "dev": true,
+ "requires": {
+ "mime-db": "1.36.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "dev": true
+ },
+ "minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "dev": true
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.11"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ },
+ "mixin-deep": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
+ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
+ "requires": {
+ "for-in": "1.0.2",
+ "is-extendable": "1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "requires": {
+ "is-plain-object": "2.0.4"
+ }
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "requires": {
+ "minimist": "0.0.8"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ }
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "nan": {
+ "version": "2.11.1",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz",
+ "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA=="
+ },
+ "nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "requires": {
+ "arr-diff": "4.0.0",
+ "array-unique": "0.3.2",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "fragment-cache": "0.2.1",
+ "is-windows": "1.0.2",
+ "kind-of": "6.0.2",
+ "object.pick": "1.3.0",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+ }
+ }
+ },
+ "negotiator": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
+ "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
+ "dev": true
+ },
+ "neo-async": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz",
+ "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==",
+ "dev": true
+ },
+ "next-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
+ "dev": true
+ },
+ "node-gyp": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
+ "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
+ "dev": true,
+ "requires": {
+ "fstream": "1.0.11",
+ "glob": "7.1.3",
+ "graceful-fs": "4.1.11",
+ "mkdirp": "0.5.1",
+ "nopt": "3.0.6",
+ "npmlog": "4.1.2",
+ "osenv": "0.1.5",
+ "request": "2.88.0",
+ "rimraf": "2.6.2",
+ "semver": "5.3.0",
+ "tar": "2.2.1",
+ "which": "1.3.1"
+ },
+ "dependencies": {
+ "request": {
+ "version": "2.88.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+ "dev": true,
+ "requires": {
+ "aws-sign2": "0.7.0",
+ "aws4": "1.8.0",
+ "caseless": "0.12.0",
+ "combined-stream": "1.0.7",
+ "extend": "3.0.2",
+ "forever-agent": "0.6.1",
+ "form-data": "2.3.3",
+ "har-validator": "5.1.0",
+ "http-signature": "1.2.0",
+ "is-typedarray": "1.0.0",
+ "isstream": "0.1.2",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "2.1.20",
+ "oauth-sign": "0.9.0",
+ "performance-now": "2.1.0",
+ "qs": "6.5.2",
+ "safe-buffer": "5.1.2",
+ "tough-cookie": "2.4.3",
+ "tunnel-agent": "0.6.0",
+ "uuid": "3.3.2"
+ }
+ },
+ "semver": {
+ "version": "5.3.0",
+ "resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+ "dev": true
+ }
+ }
+ },
+ "node-libs-browser": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz",
+ "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==",
+ "dev": true,
+ "requires": {
+ "assert": "1.4.1",
+ "browserify-zlib": "0.2.0",
+ "buffer": "4.9.1",
+ "console-browserify": "1.1.0",
+ "constants-browserify": "1.0.0",
+ "crypto-browserify": "3.12.0",
+ "domain-browser": "1.2.0",
+ "events": "1.1.1",
+ "https-browserify": "1.0.0",
+ "os-browserify": "0.3.0",
+ "path-browserify": "0.0.0",
+ "process": "0.11.10",
+ "punycode": "1.4.1",
+ "querystring-es3": "0.2.1",
+ "readable-stream": "2.3.6",
+ "stream-browserify": "2.0.1",
+ "stream-http": "2.8.3",
+ "string_decoder": "1.1.1",
+ "timers-browserify": "2.0.10",
+ "tty-browserify": "0.0.0",
+ "url": "0.11.0",
+ "util": "0.10.4",
+ "vm-browserify": "0.0.4"
+ }
+ },
+ "node-sass": {
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.0.tgz",
+ "integrity": "sha512-QFHfrZl6lqRU3csypwviz2XLgGNOoWQbo2GOvtsfQqOfL4cy1BtWnhx/XUeAO9LT3ahBzSRXcEO6DdvAH9DzSg==",
+ "dev": true,
+ "requires": {
+ "async-foreach": "0.1.3",
+ "chalk": "1.1.3",
+ "cross-spawn": "3.0.1",
+ "gaze": "1.1.3",
+ "get-stdin": "4.0.1",
+ "glob": "7.1.3",
+ "in-publish": "2.0.0",
+ "lodash.assign": "4.2.0",
+ "lodash.clonedeep": "4.5.0",
+ "lodash.mergewith": "4.6.1",
+ "meow": "3.7.0",
+ "mkdirp": "0.5.1",
+ "nan": "2.11.1",
+ "node-gyp": "3.8.0",
+ "npmlog": "4.1.2",
+ "request": "2.79.0",
+ "sass-graph": "2.2.4",
+ "stdout-stream": "1.4.1",
+ "true-case-path": "1.0.3"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "cross-spawn": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
+ "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.3",
+ "which": "1.3.1"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+ "dev": true,
+ "requires": {
+ "abbrev": "1.1.1"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "2.7.1",
+ "is-builtin-module": "1.0.0",
+ "semver": "5.6.0",
+ "validate-npm-package-license": "3.0.4"
+ }
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "requires": {
+ "remove-trailing-separator": "1.1.0"
+ }
+ },
+ "normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
+ "requires": {
+ "path-key": "2.0.1"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "dev": true,
+ "requires": {
+ "are-we-there-yet": "1.1.5",
+ "console-control-strings": "1.1.0",
+ "gauge": "2.7.4",
+ "set-blocking": "2.0.0"
+ }
+ },
+ "num2fraction": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+ "dev": true
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "requires": {
+ "copy-descriptor": "0.1.1",
+ "define-property": "0.2.5",
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "0.1.6"
+ }
+ }
+ }
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "requires": {
+ "isobject": "3.0.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
+ }
+ },
+ "object.omit": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "requires": {
+ "for-own": "0.1.5",
+ "is-extendable": "0.1.1"
+ }
+ },
+ "object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "requires": {
+ "isobject": "3.0.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
+ }
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "dev": true,
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ },
+ "os-browserify": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
+ "dev": true
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true
+ },
+ "os-locale": {
+ "version": "1.4.0",
+ "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+ "dev": true,
+ "requires": {
+ "lcid": "1.0.0"
+ }
+ },
+ "os-name": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/os-name/-/os-name-2.0.1.tgz",
+ "integrity": "sha1-uaOGNhwXrjohc27wWZQFyajF3F4=",
+ "dev": true,
+ "requires": {
+ "macos-release": "1.1.0",
+ "win-release": "1.1.1"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "dev": true,
+ "requires": {
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "requires": {
+ "p-try": "1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "1.3.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true
+ },
+ "pako": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
+ "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==",
+ "dev": true
+ },
+ "parse-asn1": {
+ "version": "5.1.1",
+ "resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz",
+ "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==",
+ "dev": true,
+ "requires": {
+ "asn1.js": "4.10.1",
+ "browserify-aes": "1.2.0",
+ "create-hash": "1.2.0",
+ "evp_bytestokey": "1.0.3",
+ "pbkdf2": "3.0.17"
+ }
+ },
+ "parse-glob": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "requires": {
+ "glob-base": "0.3.0",
+ "is-dotfile": "1.0.3",
+ "is-extglob": "1.0.0",
+ "is-glob": "2.0.1"
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "requires": {
+ "error-ex": "1.3.2"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
+ "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
+ "dev": true
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
+ },
+ "path-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
+ "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=",
+ "dev": true
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
+ "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=",
+ "requires": {
+ "isarray": "0.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ }
+ }
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "pbkdf2": {
+ "version": "3.0.17",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
+ "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==",
+ "dev": true,
+ "requires": {
+ "create-hash": "1.2.0",
+ "create-hmac": "1.1.7",
+ "ripemd160": "2.0.2",
+ "safe-buffer": "5.1.2",
+ "sha.js": "2.4.11"
+ }
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+ "dev": true
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "2.0.4"
+ }
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
+ },
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.4.1",
+ "source-map": "0.6.1",
+ "supports-color": "5.5.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ },
+ "preserve": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
+ },
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
+ },
+ "proxy-addr": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
+ "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==",
+ "dev": true,
+ "requires": {
+ "forwarded": "0.1.2",
+ "ipaddr.js": "1.8.0"
+ }
+ },
+ "proxy-middleware": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz",
+ "integrity": "sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=",
+ "dev": true
+ },
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "psl": {
+ "version": "1.1.29",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz",
+ "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==",
+ "dev": true
+ },
+ "public-encrypt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "browserify-rsa": "4.0.1",
+ "create-hash": "1.2.0",
+ "parse-asn1": "5.1.1",
+ "randombytes": "2.0.6",
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+ "dev": true
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+ "dev": true
+ },
+ "querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
+ "dev": true
+ },
+ "randomatic": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz",
+ "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==",
+ "requires": {
+ "is-number": "4.0.0",
+ "kind-of": "6.0.2",
+ "math-random": "1.0.1"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
+ "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ=="
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+ }
+ }
+ },
+ "randombytes": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz",
+ "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "dev": true,
+ "requires": {
+ "randombytes": "2.0.6",
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "range-parser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
+ "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
+ "dev": true
+ },
+ "raw-body": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
+ "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
+ "dev": true,
+ "requires": {
+ "bytes": "3.0.0",
+ "http-errors": "1.6.3",
+ "iconv-lite": "0.4.23",
+ "unpipe": "1.0.0"
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "1.1.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "1.1.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "1.1.2",
+ "read-pkg": "1.1.0"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "2.0.0",
+ "safe-buffer": "5.1.2",
+ "string_decoder": "1.1.1",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "micromatch": "3.1.10",
+ "readable-stream": "2.3.6"
+ },
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "requires": {
+ "arr-flatten": "1.1.0",
+ "array-unique": "0.3.2",
+ "extend-shallow": "2.0.1",
+ "fill-range": "4.0.0",
+ "isobject": "3.0.1",
+ "repeat-element": "1.1.3",
+ "snapdragon": "0.8.2",
+ "snapdragon-node": "2.1.1",
+ "split-string": "3.1.0",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "requires": {
+ "debug": "2.6.9",
+ "define-property": "0.2.5",
+ "extend-shallow": "2.0.1",
+ "posix-character-classes": "0.1.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "0.1.6"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "requires": {
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "requires": {
+ "array-unique": "0.3.2",
+ "define-property": "1.0.0",
+ "expand-brackets": "2.1.4",
+ "extend-shallow": "2.0.1",
+ "fragment-cache": "0.2.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "requires": {
+ "is-descriptor": "1.0.2"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "requires": {
+ "extend-shallow": "2.0.1",
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1",
+ "to-regex-range": "2.1.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "requires": {
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "requires": {
+ "arr-diff": "4.0.0",
+ "array-unique": "0.3.2",
+ "braces": "2.3.2",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "extglob": "2.0.4",
+ "fragment-cache": "0.2.1",
+ "kind-of": "6.0.2",
+ "nanomatch": "1.2.13",
+ "object.pick": "1.3.0",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ }
+ }
+ }
+ },
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "dev": true,
+ "requires": {
+ "indent-string": "2.1.0",
+ "strip-indent": "1.0.1"
+ }
+ },
+ "reflect-metadata": {
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz",
+ "integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A=="
+ },
+ "regex-cache": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
+ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
+ "requires": {
+ "is-equal-shallow": "0.1.3"
+ }
+ },
+ "regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "requires": {
+ "extend-shallow": "3.0.2",
+ "safe-regex": "1.1.0"
+ }
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
+ },
+ "repeat-element": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
+ },
+ "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.2"
+ }
+ },
+ "request": {
+ "version": "2.79.0",
+ "resolved": "http://registry.npmjs.org/request/-/request-2.79.0.tgz",
+ "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
+ "dev": true,
+ "requires": {
+ "aws-sign2": "0.6.0",
+ "aws4": "1.8.0",
+ "caseless": "0.11.0",
+ "combined-stream": "1.0.7",
+ "extend": "3.0.2",
+ "forever-agent": "0.6.1",
+ "form-data": "2.1.4",
+ "har-validator": "2.0.6",
+ "hawk": "3.1.3",
+ "http-signature": "1.1.1",
+ "is-typedarray": "1.0.0",
+ "isstream": "0.1.2",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "2.1.20",
+ "oauth-sign": "0.8.2",
+ "qs": "6.3.2",
+ "stringstream": "0.0.6",
+ "tough-cookie": "2.3.4",
+ "tunnel-agent": "0.4.3",
+ "uuid": "3.3.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "assert-plus": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
+ "dev": true
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
+ "dev": true
+ },
+ "caseless": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
+ "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "form-data": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
+ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
+ "dev": true,
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.7",
+ "mime-types": "2.1.20"
+ }
+ },
+ "har-validator": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
+ "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "commander": "2.19.0",
+ "is-my-json-valid": "2.19.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "0.2.0",
+ "jsprim": "1.4.1",
+ "sshpk": "1.15.1"
+ }
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.3.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz",
+ "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=",
+ "dev": true
+ },
+ "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
+ },
+ "tough-cookie": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
+ "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
+ "dev": true,
+ "requires": {
+ "punycode": "1.4.1"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
+ "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
+ "dev": true
+ }
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
+ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
+ "dev": true,
+ "requires": {
+ "path-parse": "1.0.6"
+ }
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
+ },
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "dev": true,
+ "requires": {
+ "align-text": "0.1.4"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
+ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
+ "dev": true,
+ "requires": {
+ "glob": "7.1.3"
+ }
+ },
+ "ripemd160": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "dev": true,
+ "requires": {
+ "hash-base": "3.0.4",
+ "inherits": "2.0.3"
+ }
+ },
+ "rollup": {
+ "version": "0.50.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.50.0.tgz",
+ "integrity": "sha512-7RqCBQ9iwsOBPkjYgoIaeUij606mSkDMExP0NT7QDI3bqkHYQHrQ83uoNIXwPcQm/vP2VbsUz3kiyZZ1qPlLTQ==",
+ "dev": true
+ },
+ "rollup-plugin-commonjs": {
+ "version": "8.2.6",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-8.2.6.tgz",
+ "integrity": "sha512-qK0+uhktmnAgZkHkqFuajNmPw93fjrO7+CysDaxWE5jrUR9XSlSvuao5ZJP+XizxA8weakhgYYBtbVz9SGBpjA==",
+ "dev": true,
+ "requires": {
+ "acorn": "5.7.3",
+ "estree-walker": "0.5.2",
+ "magic-string": "0.22.5",
+ "resolve": "1.8.1",
+ "rollup-pluginutils": "2.3.3"
+ }
+ },
+ "rollup-plugin-node-resolve": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.0.tgz",
+ "integrity": "sha1-i4l8TDAw1QASd7BRSyXSygloPuA=",
+ "dev": true,
+ "requires": {
+ "browser-resolve": "1.11.3",
+ "builtin-modules": "1.1.1",
+ "is-module": "1.0.0",
+ "resolve": "1.8.1"
+ }
+ },
+ "rollup-pluginutils": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.3.tgz",
+ "integrity": "sha512-2XZwja7b6P5q4RZ5FhyX1+f46xi1Z3qBKigLRZ6VTZjwbN0K1IFGMlwm06Uu0Emcre2Z63l77nq/pzn+KxIEoA==",
+ "dev": true,
+ "requires": {
+ "estree-walker": "0.5.2",
+ "micromatch": "2.3.11"
+ }
+ },
+ "rxjs": {
+ "version": "5.5.11",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.11.tgz",
+ "integrity": "sha512-3bjO7UwWfA2CV7lmwYMBzj4fQ6Cq+ftHc2MvUe+WMS7wcdJ1LosDWmdjPQanYp2dBRj572p7PeU81JUxHKOcBA==",
+ "requires": {
+ "symbol-observable": "1.0.1"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "safe-json-parse": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz",
+ "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=",
+ "dev": true
+ },
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "requires": {
+ "ret": "0.1.15"
+ }
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
+ },
+ "sass-graph": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
+ "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
+ "dev": true,
+ "requires": {
+ "glob": "7.1.3",
+ "lodash": "4.17.11",
+ "scss-tokenizer": "0.2.3",
+ "yargs": "7.1.0"
+ }
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "dev": true
+ },
+ "scss-tokenizer": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
+ "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
+ "dev": true,
+ "requires": {
+ "js-base64": "2.4.9",
+ "source-map": "0.4.4"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "dev": true,
+ "requires": {
+ "amdefine": "1.0.1"
+ }
+ }
+ }
+ },
+ "semver": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
+ "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
+ "dev": true
+ },
+ "send": {
+ "version": "0.16.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
+ "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "1.1.2",
+ "destroy": "1.0.4",
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "1.6.3",
+ "mime": "1.4.1",
+ "ms": "2.0.0",
+ "on-finished": "2.3.0",
+ "range-parser": "1.2.0",
+ "statuses": "1.4.0"
+ }
+ },
+ "serve-static": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
+ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
+ "dev": true,
+ "requires": {
+ "encodeurl": "1.0.2",
+ "escape-html": "1.0.3",
+ "parseurl": "1.3.2",
+ "send": "0.16.2"
+ }
+ },
+ "serviceworker-cache-polyfill": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz",
+ "integrity": "sha1-3hnuc77yGrPAdAo3sz22JGS6ves="
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
+ },
+ "set-value": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
+ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
+ "requires": {
+ "extend-shallow": "2.0.1",
+ "is-extendable": "0.1.1",
+ "is-plain-object": "2.0.4",
+ "split-string": "3.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+ "dev": true
+ },
+ "setprototypeof": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
+ "dev": true
+ },
+ "sha.js": {
+ "version": "2.4.11",
+ "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "requires": {
+ "base": "0.11.2",
+ "debug": "2.6.9",
+ "define-property": "0.2.5",
+ "extend-shallow": "2.0.1",
+ "map-cache": "0.2.2",
+ "source-map": "0.5.7",
+ "source-map-resolve": "0.5.2",
+ "use": "3.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "0.1.6"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "requires": {
+ "define-property": "1.0.0",
+ "isobject": "3.0.1",
+ "snapdragon-util": "3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "requires": {
+ "is-descriptor": "1.0.2"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "requires": {
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "requires": {
+ "kind-of": "3.2.2"
+ }
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "dev": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "source-list-map": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
+ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ },
+ "source-map-resolve": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
+ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
+ "requires": {
+ "atob": "2.1.2",
+ "decode-uri-component": "0.2.0",
+ "resolve-url": "0.2.1",
+ "source-map-url": "0.4.0",
+ "urix": "0.1.0"
+ }
+ },
+ "source-map-support": {
+ "version": "0.5.9",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
+ "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
+ "requires": {
+ "buffer-from": "1.1.1",
+ "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=="
+ }
+ }
+ },
+ "source-map-url": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
+ },
+ "spdx-correct": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz",
+ "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==",
+ "dev": true,
+ "requires": {
+ "spdx-expression-parse": "3.0.0",
+ "spdx-license-ids": "3.0.1"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
+ "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "2.2.0",
+ "spdx-license-ids": "3.0.1"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz",
+ "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==",
+ "dev": true
+ },
+ "split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "requires": {
+ "extend-shallow": "3.0.2"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "sshpk": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.1.tgz",
+ "integrity": "sha512-mSdgNUaidk+dRU5MhYtN9zebdzF2iG0cNPWy8HG+W8y+fT1JnSkh0fzzpjOa0L7P8i1Rscz38t0h4gPcKz43xA==",
+ "dev": true,
+ "requires": {
+ "asn1": "0.2.4",
+ "assert-plus": "1.0.0",
+ "bcrypt-pbkdf": "1.0.2",
+ "dashdash": "1.14.1",
+ "ecc-jsbn": "0.1.2",
+ "getpass": "0.1.7",
+ "jsbn": "0.1.1",
+ "safer-buffer": "2.1.2",
+ "tweetnacl": "0.14.5"
+ }
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "requires": {
+ "define-property": "0.2.5",
+ "object-copy": "0.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "0.1.6"
+ }
+ }
+ }
+ },
+ "statuses": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
+ "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
+ "dev": true
+ },
+ "stdout-stream": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
+ "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "2.3.6"
+ }
+ },
+ "stream-browserify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
+ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.6"
+ }
+ },
+ "stream-http": {
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
+ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
+ "dev": true,
+ "requires": {
+ "builtin-status-codes": "3.0.0",
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.6",
+ "to-arraybuffer": "1.0.1",
+ "xtend": "4.0.1"
+ }
+ },
+ "string-template": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz",
+ "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "stringstream": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz",
+ "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "0.2.1"
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "4.0.1"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "3.0.0"
+ }
+ },
+ "sw-toolbox": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/sw-toolbox/-/sw-toolbox-3.6.0.tgz",
+ "integrity": "sha1-Jt8dHHA0hljk3qKIQxkUm3sxg7U=",
+ "requires": {
+ "path-to-regexp": "1.7.0",
+ "serviceworker-cache-polyfill": "4.0.0"
+ }
+ },
+ "symbol-observable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
+ "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ="
+ },
+ "tapable": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz",
+ "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=",
+ "dev": true
+ },
+ "tar": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
+ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
+ "dev": true,
+ "requires": {
+ "block-stream": "0.0.9",
+ "fstream": "1.0.11",
+ "inherits": "2.0.3"
+ }
+ },
+ "timers-browserify": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz",
+ "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==",
+ "dev": true,
+ "requires": {
+ "setimmediate": "1.0.5"
+ }
+ },
+ "tiny-lr": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz",
+ "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==",
+ "dev": true,
+ "requires": {
+ "body": "5.1.0",
+ "debug": "3.2.6",
+ "faye-websocket": "0.10.0",
+ "livereload-js": "2.3.0",
+ "object-assign": "4.1.1",
+ "qs": "6.5.2"
+ },
+ "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"
+ }
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true
+ }
+ }
+ },
+ "to-arraybuffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
+ "dev": true
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "requires": {
+ "kind-of": "3.2.2"
+ }
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "requires": {
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "regex-not": "1.0.2",
+ "safe-regex": "1.1.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "requires": {
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "requires": {
+ "kind-of": "3.2.2"
+ }
+ }
+ }
+ },
+ "tough-cookie": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+ "dev": true,
+ "requires": {
+ "psl": "1.1.29",
+ "punycode": "1.4.1"
+ }
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+ "dev": true
+ },
+ "true-case-path": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
+ "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
+ "dev": true,
+ "requires": {
+ "glob": "7.1.3"
+ }
+ },
+ "tsickle": {
+ "version": "0.27.5",
+ "resolved": "http://registry.npmjs.org/tsickle/-/tsickle-0.27.5.tgz",
+ "integrity": "sha512-NP+CjM1EXza/M8mOXBLH3vkFEJiu1zfEAlC5WdJxHPn8l96QPz5eooP6uAgYtw1CcKfuSyIiheNUdKxtDWCNeg==",
+ "requires": {
+ "minimist": "1.2.0",
+ "mkdirp": "0.5.1",
+ "source-map": "0.6.1",
+ "source-map-support": "0.5.9"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "tslib": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
+ "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
+ },
+ "tslint": {
+ "version": "5.11.0",
+ "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz",
+ "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "6.26.0",
+ "builtin-modules": "1.1.1",
+ "chalk": "2.4.1",
+ "commander": "2.19.0",
+ "diff": "3.5.0",
+ "glob": "7.1.3",
+ "js-yaml": "3.12.0",
+ "minimatch": "3.0.4",
+ "resolve": "1.8.1",
+ "semver": "5.6.0",
+ "tslib": "1.9.3",
+ "tsutils": "2.29.0"
+ }
+ },
+ "tslint-eslint-rules": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-4.1.1.tgz",
+ "integrity": "sha1-fDDniC8mvCdr/5HSOEl1xp2viLo=",
+ "dev": true,
+ "requires": {
+ "doctrine": "0.7.2",
+ "tslib": "1.9.3",
+ "tsutils": "1.9.1"
+ },
+ "dependencies": {
+ "tsutils": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-1.9.1.tgz",
+ "integrity": "sha1-ufmrROVa+WgYMdXyjQrur1x1DLA=",
+ "dev": true
+ }
+ }
+ },
+ "tsutils": {
+ "version": "2.29.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
+ "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
+ "dev": true,
+ "requires": {
+ "tslib": "1.9.3"
+ }
+ },
+ "tty-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true
+ },
+ "type-is": {
+ "version": "1.6.16",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
+ "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
+ "dev": true,
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "2.1.20"
+ }
+ },
+ "typescript": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.2.tgz",
+ "integrity": "sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q=",
+ "dev": true
+ },
+ "uglify-es": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.2.2.tgz",
+ "integrity": "sha512-l+s5VLzFwGJfS+fbqaGf/Dfwo1MF13jLOF2ekL0PytzqEqQ6cVppvHf4jquqFok+35USMpKjqkYxy6pQyUcuug==",
+ "dev": true,
+ "requires": {
+ "commander": "2.12.2",
+ "source-map": "0.6.1"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.12.2",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz",
+ "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==",
+ "dev": true
+ },
+ "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
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "dev": true,
+ "optional": true
+ },
+ "uglifyjs-webpack-plugin": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz",
+ "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=",
+ "dev": true,
+ "requires": {
+ "source-map": "0.5.7",
+ "uglify-js": "2.8.29",
+ "webpack-sources": "1.3.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "dev": true,
+ "requires": {
+ "center-align": "0.1.3",
+ "right-align": "0.1.3",
+ "wordwrap": "0.0.2"
+ }
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "dev": true,
+ "requires": {
+ "source-map": "0.5.7",
+ "uglify-to-browserify": "1.0.2",
+ "yargs": "3.10.0"
+ }
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "dev": true,
+ "requires": {
+ "camelcase": "1.2.1",
+ "cliui": "2.1.0",
+ "decamelize": "1.2.0",
+ "window-size": "0.1.0"
+ }
+ }
+ }
+ },
+ "ultron": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
+ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
+ "dev": true
+ },
+ "union-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
+ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
+ "requires": {
+ "arr-union": "3.1.0",
+ "get-value": "2.0.6",
+ "is-extendable": "0.1.1",
+ "set-value": "0.4.3"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ },
+ "set-value": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
+ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
+ "requires": {
+ "extend-shallow": "2.0.1",
+ "is-extendable": "0.1.1",
+ "is-plain-object": "2.0.4",
+ "to-object-path": "0.3.0"
+ }
+ }
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "dev": true
+ },
+ "unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "requires": {
+ "has-value": "0.3.1",
+ "isobject": "3.0.1"
+ },
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "requires": {
+ "get-value": "2.0.6",
+ "has-values": "0.1.4",
+ "isobject": "2.1.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
+ }
+ },
+ "upath": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz",
+ "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==",
+ "dev": true
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
+ },
+ "url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "dev": true,
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+ "dev": true
+ }
+ }
+ },
+ "use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
+ },
+ "util": {
+ "version": "0.10.4",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
+ "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+ "dev": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "3.0.2",
+ "spdx-expression-parse": "3.0.0"
+ }
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "dev": true
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "1.3.0"
+ }
+ },
+ "vlq": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz",
+ "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==",
+ "dev": true
+ },
+ "vm-browserify": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
+ "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
+ "dev": true,
+ "requires": {
+ "indexof": "0.0.1"
+ }
+ },
+ "watchpack": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
+ "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==",
+ "dev": true,
+ "requires": {
+ "chokidar": "2.0.4",
+ "graceful-fs": "4.1.11",
+ "neo-async": "2.6.0"
+ },
+ "dependencies": {
+ "anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "dev": true,
+ "requires": {
+ "micromatch": "3.1.10",
+ "normalize-path": "2.1.1"
+ }
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "1.1.0",
+ "array-unique": "0.3.2",
+ "extend-shallow": "2.0.1",
+ "fill-range": "4.0.0",
+ "isobject": "3.0.1",
+ "repeat-element": "1.1.3",
+ "snapdragon": "0.8.2",
+ "snapdragon-node": "2.1.1",
+ "split-string": "3.1.0",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "chokidar": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
+ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
+ "dev": true,
+ "requires": {
+ "anymatch": "2.0.0",
+ "async-each": "1.0.1",
+ "braces": "2.3.2",
+ "fsevents": "1.2.4",
+ "glob-parent": "3.1.0",
+ "inherits": "2.0.3",
+ "is-binary-path": "1.0.1",
+ "is-glob": "4.0.0",
+ "lodash.debounce": "4.0.8",
+ "normalize-path": "2.1.1",
+ "path-is-absolute": "1.0.1",
+ "readdirp": "2.2.1",
+ "upath": "1.1.0"
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "define-property": "0.2.5",
+ "extend-shallow": "2.0.1",
+ "posix-character-classes": "0.1.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "0.1.6"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "requires": {
+ "array-unique": "0.3.2",
+ "define-property": "1.0.0",
+ "expand-brackets": "2.1.4",
+ "extend-shallow": "2.0.1",
+ "fragment-cache": "0.2.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "1.0.2"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "2.0.1",
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1",
+ "to-regex-range": "2.1.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "dev": true,
+ "requires": {
+ "is-glob": "3.1.0",
+ "path-dirname": "1.0.2"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "2.1.1"
+ }
+ }
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
+ }
+ },
+ "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-glob": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
+ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "4.0.0",
+ "array-unique": "0.3.2",
+ "braces": "2.3.2",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "extglob": "2.0.4",
+ "fragment-cache": "0.2.1",
+ "kind-of": "6.0.2",
+ "nanomatch": "1.2.13",
+ "object.pick": "1.3.0",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ }
+ }
+ }
+ },
+ "webpack": {
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.8.1.tgz",
+ "integrity": "sha512-5ZXLWWsMqHKFr5y0N3Eo5IIisxeEeRAajNq4mELb/WELOR7srdbQk2N5XiyNy2A/AgvlR3AmeBCZJW8lHrolbw==",
+ "dev": true,
+ "requires": {
+ "acorn": "5.7.3",
+ "acorn-dynamic-import": "2.0.2",
+ "ajv": "5.5.2",
+ "ajv-keywords": "2.1.1",
+ "async": "2.6.1",
+ "enhanced-resolve": "3.4.1",
+ "escope": "3.6.0",
+ "interpret": "1.1.0",
+ "json-loader": "0.5.7",
+ "json5": "0.5.1",
+ "loader-runner": "2.3.1",
+ "loader-utils": "1.1.0",
+ "memory-fs": "0.4.1",
+ "mkdirp": "0.5.1",
+ "node-libs-browser": "2.1.0",
+ "source-map": "0.5.7",
+ "supports-color": "4.5.0",
+ "tapable": "0.2.8",
+ "uglifyjs-webpack-plugin": "0.4.6",
+ "watchpack": "1.6.0",
+ "webpack-sources": "1.3.0",
+ "yargs": "8.0.2"
+ },
+ "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
+ },
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "2.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "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
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "strip-bom": "3.0.0"
+ }
+ },
+ "os-locale": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "dev": true,
+ "requires": {
+ "execa": "0.7.0",
+ "lcid": "1.0.0",
+ "mem": "1.1.0"
+ }
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true,
+ "requires": {
+ "pify": "2.3.0"
+ }
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "2.0.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "2.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "dev": true,
+ "requires": {
+ "find-up": "2.1.0",
+ "read-pkg": "2.0.0"
+ }
+ },
+ "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"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
+ "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
+ "dev": true,
+ "requires": {
+ "camelcase": "4.1.0",
+ "cliui": "3.2.0",
+ "decamelize": "1.2.0",
+ "get-caller-file": "1.0.3",
+ "os-locale": "2.1.0",
+ "read-pkg-up": "2.0.0",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "2.1.1",
+ "which-module": "2.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "7.0.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
+ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
+ "dev": true,
+ "requires": {
+ "camelcase": "4.1.0"
+ }
+ }
+ }
+ },
+ "webpack-sources": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz",
+ "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==",
+ "dev": true,
+ "requires": {
+ "source-list-map": "2.0.1",
+ "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
+ }
+ }
+ },
+ "websocket-driver": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
+ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
+ "dev": true,
+ "requires": {
+ "http-parser-js": "0.4.13",
+ "websocket-extensions": "0.1.3"
+ }
+ },
+ "websocket-extensions": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
+ "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
+ "dev": true
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
+ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
+ "dev": true
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2"
+ }
+ },
+ "win-release": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz",
+ "integrity": "sha1-X6VeAr58qTTt/BJmVjLoSbcuUgk=",
+ "dev": true,
+ "requires": {
+ "semver": "5.6.0"
+ }
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "dev": true
+ },
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "ws": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.2.tgz",
+ "integrity": "sha512-t+WGpsNxhMR4v6EClXS8r8km5ZljKJzyGhJf7goJz9k5Ye3+b5Bvno5rjqPuIBn5mnn5GBb7o8IrIWHxX1qOLQ==",
+ "dev": true,
+ "requires": {
+ "async-limiter": "1.0.0",
+ "safe-buffer": "5.1.2",
+ "ultron": "1.1.1"
+ }
+ },
+ "xml2js": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
+ "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
+ "dev": true,
+ "requires": {
+ "sax": "1.2.4",
+ "xmlbuilder": "9.0.7"
+ }
+ },
+ "xmlbuilder": {
+ "version": "9.0.7",
+ "resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
+ "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
+ "dev": true
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "dev": true
+ },
+ "y18n": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
+ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
+ "dev": true,
+ "requires": {
+ "camelcase": "3.0.0",
+ "cliui": "3.2.0",
+ "decamelize": "1.2.0",
+ "get-caller-file": "1.0.3",
+ "os-locale": "1.4.0",
+ "read-pkg-up": "1.0.1",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "1.0.2",
+ "which-module": "1.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "5.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "dev": true
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
+ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
+ "dev": true,
+ "requires": {
+ "camelcase": "3.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "dev": true
+ }
+ }
+ },
+ "zone.js": {
+ "version": "0.8.26",
+ "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.26.tgz",
+ "integrity": "sha512-W9Nj+UmBJG251wkCacIkETgra4QgBo/vgoEkb4a2uoLzpQG7qF9nzwoLXWU5xj3Fg2mxGvEDh47mg24vXccYjA=="
+ }
+ }
+}
diff --git a/Programmation mobile/src/trompette/package.json b/Programmation mobile/src/trompette/package.json
new file mode 100644
index 0000000..31647dc
--- /dev/null
+++ b/Programmation mobile/src/trompette/package.json
@@ -0,0 +1,41 @@
+{
+ "name": "trompette",
+ "version": "0.0.1",
+ "author": "Ionic Framework",
+ "homepage": "http://ionicframework.com/",
+ "private": true,
+ "scripts": {
+ "start": "ionic-app-scripts serve",
+ "clean": "ionic-app-scripts clean",
+ "build": "ionic-app-scripts build",
+ "lint": "ionic-app-scripts lint"
+ },
+ "dependencies": {
+ "@angular/animations": "5.2.11",
+ "@angular/common": "5.2.11",
+ "@angular/compiler": "5.2.11",
+ "@angular/compiler-cli": "5.2.11",
+ "@angular/core": "5.2.11",
+ "@angular/forms": "5.2.11",
+ "@angular/http": "5.2.11",
+ "@angular/platform-browser": "5.2.11",
+ "@angular/platform-browser-dynamic": "5.2.11",
+ "@ionic-native/core": "~4.15.0",
+ "@ionic-native/splash-screen": "~4.15.0",
+ "@ionic-native/status-bar": "~4.15.0",
+ "@ionic/storage": "2.2.0",
+ "ionic-angular": "3.9.2",
+ "ionicons": "3.0.0",
+ "rxjs": "5.5.11",
+ "sw-toolbox": "3.6.0",
+ "zone.js": "0.8.26",
+ "@ionic-native/camera": "4.3.3",
+ "@ngx-translate/core": "8.0.0",
+ "@ngx-translate/http-loader": "^2.0.0"
+ },
+ "devDependencies": {
+ "@ionic/app-scripts": "3.2.0",
+ "typescript": "~2.6.2"
+ },
+ "description": "An Ionic project"
+}
diff --git a/Programmation mobile/src/trompette/resources/README.md b/Programmation mobile/src/trompette/resources/README.md
new file mode 100644
index 0000000..46c696e
--- /dev/null
+++ b/Programmation mobile/src/trompette/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/Programmation mobile/src/trompette/resources/android/icon/drawable-hdpi-icon.png b/Programmation mobile/src/trompette/resources/android/icon/drawable-hdpi-icon.png
new file mode 100644
index 0000000..b910093
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/android/icon/drawable-hdpi-icon.png differ
diff --git a/Programmation mobile/src/trompette/resources/android/icon/drawable-ldpi-icon.png b/Programmation mobile/src/trompette/resources/android/icon/drawable-ldpi-icon.png
new file mode 100644
index 0000000..16cd5db
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/android/icon/drawable-ldpi-icon.png differ
diff --git a/Programmation mobile/src/trompette/resources/android/icon/drawable-mdpi-icon.png b/Programmation mobile/src/trompette/resources/android/icon/drawable-mdpi-icon.png
new file mode 100644
index 0000000..64a6cbc
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/android/icon/drawable-mdpi-icon.png differ
diff --git a/Programmation mobile/src/trompette/resources/android/icon/drawable-xhdpi-icon.png b/Programmation mobile/src/trompette/resources/android/icon/drawable-xhdpi-icon.png
new file mode 100644
index 0000000..1605f69
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/android/icon/drawable-xhdpi-icon.png differ
diff --git a/Programmation mobile/src/trompette/resources/android/icon/drawable-xxhdpi-icon.png b/Programmation mobile/src/trompette/resources/android/icon/drawable-xxhdpi-icon.png
new file mode 100644
index 0000000..56fb29e
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/android/icon/drawable-xxhdpi-icon.png differ
diff --git a/Programmation mobile/src/trompette/resources/android/icon/drawable-xxxhdpi-icon.png b/Programmation mobile/src/trompette/resources/android/icon/drawable-xxxhdpi-icon.png
new file mode 100644
index 0000000..e4a9152
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/android/icon/drawable-xxxhdpi-icon.png differ
diff --git a/Programmation mobile/src/trompette/resources/android/splash/drawable-land-hdpi-screen.png b/Programmation mobile/src/trompette/resources/android/splash/drawable-land-hdpi-screen.png
new file mode 100644
index 0000000..66b12fe
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/android/splash/drawable-land-hdpi-screen.png differ
diff --git a/Programmation mobile/src/trompette/resources/android/splash/drawable-land-ldpi-screen.png b/Programmation mobile/src/trompette/resources/android/splash/drawable-land-ldpi-screen.png
new file mode 100644
index 0000000..7dceec7
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/android/splash/drawable-land-ldpi-screen.png differ
diff --git a/Programmation mobile/src/trompette/resources/android/splash/drawable-land-mdpi-screen.png b/Programmation mobile/src/trompette/resources/android/splash/drawable-land-mdpi-screen.png
new file mode 100644
index 0000000..0dc2ba7
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/android/splash/drawable-land-mdpi-screen.png differ
diff --git a/Programmation mobile/src/trompette/resources/android/splash/drawable-land-xhdpi-screen.png b/Programmation mobile/src/trompette/resources/android/splash/drawable-land-xhdpi-screen.png
new file mode 100644
index 0000000..39ae00c
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/android/splash/drawable-land-xhdpi-screen.png differ
diff --git a/Programmation mobile/src/trompette/resources/android/splash/drawable-land-xxhdpi-screen.png b/Programmation mobile/src/trompette/resources/android/splash/drawable-land-xxhdpi-screen.png
new file mode 100644
index 0000000..3f591b1
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/android/splash/drawable-land-xxhdpi-screen.png differ
diff --git a/Programmation mobile/src/trompette/resources/android/splash/drawable-land-xxxhdpi-screen.png b/Programmation mobile/src/trompette/resources/android/splash/drawable-land-xxxhdpi-screen.png
new file mode 100644
index 0000000..253e6f1
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/android/splash/drawable-land-xxxhdpi-screen.png differ
diff --git a/Programmation mobile/src/trompette/resources/android/splash/drawable-port-hdpi-screen.png b/Programmation mobile/src/trompette/resources/android/splash/drawable-port-hdpi-screen.png
new file mode 100644
index 0000000..e0dbb62
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/android/splash/drawable-port-hdpi-screen.png differ
diff --git a/Programmation mobile/src/trompette/resources/android/splash/drawable-port-ldpi-screen.png b/Programmation mobile/src/trompette/resources/android/splash/drawable-port-ldpi-screen.png
new file mode 100644
index 0000000..8e93c2d
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/android/splash/drawable-port-ldpi-screen.png differ
diff --git a/Programmation mobile/src/trompette/resources/android/splash/drawable-port-mdpi-screen.png b/Programmation mobile/src/trompette/resources/android/splash/drawable-port-mdpi-screen.png
new file mode 100644
index 0000000..0aaad62
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/android/splash/drawable-port-mdpi-screen.png differ
diff --git a/Programmation mobile/src/trompette/resources/android/splash/drawable-port-xhdpi-screen.png b/Programmation mobile/src/trompette/resources/android/splash/drawable-port-xhdpi-screen.png
new file mode 100644
index 0000000..64c27f8
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/android/splash/drawable-port-xhdpi-screen.png differ
diff --git a/Programmation mobile/src/trompette/resources/android/splash/drawable-port-xxhdpi-screen.png b/Programmation mobile/src/trompette/resources/android/splash/drawable-port-xxhdpi-screen.png
new file mode 100644
index 0000000..f605e6a
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/android/splash/drawable-port-xxhdpi-screen.png differ
diff --git a/Programmation mobile/src/trompette/resources/android/splash/drawable-port-xxxhdpi-screen.png b/Programmation mobile/src/trompette/resources/android/splash/drawable-port-xxxhdpi-screen.png
new file mode 100644
index 0000000..2b993cf
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/android/splash/drawable-port-xxxhdpi-screen.png differ
diff --git a/Programmation mobile/src/trompette/resources/icon.png b/Programmation mobile/src/trompette/resources/icon.png
new file mode 100644
index 0000000..bee7766
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/icon.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon-1024.png b/Programmation mobile/src/trompette/resources/ios/icon/icon-1024.png
new file mode 100644
index 0000000..bee7766
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon-1024.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon-40.png b/Programmation mobile/src/trompette/resources/ios/icon/icon-40.png
new file mode 100644
index 0000000..76cc53c
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon-40.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon-40@2x.png b/Programmation mobile/src/trompette/resources/ios/icon/icon-40@2x.png
new file mode 100644
index 0000000..64b4906
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon-40@2x.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon-40@3x.png b/Programmation mobile/src/trompette/resources/ios/icon/icon-40@3x.png
new file mode 100644
index 0000000..9f8c8f0
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon-40@3x.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon-50.png b/Programmation mobile/src/trompette/resources/ios/icon/icon-50.png
new file mode 100644
index 0000000..8bd51df
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon-50.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon-50@2x.png b/Programmation mobile/src/trompette/resources/ios/icon/icon-50@2x.png
new file mode 100644
index 0000000..2676f8f
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon-50@2x.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon-60.png b/Programmation mobile/src/trompette/resources/ios/icon/icon-60.png
new file mode 100644
index 0000000..11f3912
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon-60.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon-60@2x.png b/Programmation mobile/src/trompette/resources/ios/icon/icon-60@2x.png
new file mode 100644
index 0000000..b521048
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon-60@2x.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon-60@3x.png b/Programmation mobile/src/trompette/resources/ios/icon/icon-60@3x.png
new file mode 100644
index 0000000..dbc8303
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon-60@3x.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon-72.png b/Programmation mobile/src/trompette/resources/ios/icon/icon-72.png
new file mode 100644
index 0000000..4e5a827
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon-72.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon-72@2x.png b/Programmation mobile/src/trompette/resources/ios/icon/icon-72@2x.png
new file mode 100644
index 0000000..56fb29e
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon-72@2x.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon-76.png b/Programmation mobile/src/trompette/resources/ios/icon/icon-76.png
new file mode 100644
index 0000000..e66a90e
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon-76.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon-76@2x.png b/Programmation mobile/src/trompette/resources/ios/icon/icon-76@2x.png
new file mode 100644
index 0000000..3f5c942
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon-76@2x.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon-83.5@2x.png b/Programmation mobile/src/trompette/resources/ios/icon/icon-83.5@2x.png
new file mode 100644
index 0000000..2b367cb
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon-83.5@2x.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon-small.png b/Programmation mobile/src/trompette/resources/ios/icon/icon-small.png
new file mode 100644
index 0000000..de3146d
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon-small.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon-small@2x.png b/Programmation mobile/src/trompette/resources/ios/icon/icon-small@2x.png
new file mode 100644
index 0000000..916a02e
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon-small@2x.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon-small@3x.png b/Programmation mobile/src/trompette/resources/ios/icon/icon-small@3x.png
new file mode 100644
index 0000000..0efa99d
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon-small@3x.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon.png b/Programmation mobile/src/trompette/resources/ios/icon/icon.png
new file mode 100644
index 0000000..89f8c00
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/icon/icon@2x.png b/Programmation mobile/src/trompette/resources/ios/icon/icon@2x.png
new file mode 100644
index 0000000..a6687a1
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/icon/icon@2x.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/splash/Default-568h@2x~iphone.png b/Programmation mobile/src/trompette/resources/ios/splash/Default-568h@2x~iphone.png
new file mode 100644
index 0000000..d2128a6
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/splash/Default-568h@2x~iphone.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/splash/Default-667h.png b/Programmation mobile/src/trompette/resources/ios/splash/Default-667h.png
new file mode 100644
index 0000000..fc23e64
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/splash/Default-667h.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/splash/Default-736h.png b/Programmation mobile/src/trompette/resources/ios/splash/Default-736h.png
new file mode 100644
index 0000000..71b16ca
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/splash/Default-736h.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/splash/Default-Landscape-736h.png b/Programmation mobile/src/trompette/resources/ios/splash/Default-Landscape-736h.png
new file mode 100644
index 0000000..aaff74a
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/splash/Default-Landscape-736h.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/splash/Default-Landscape@2x~ipad.png b/Programmation mobile/src/trompette/resources/ios/splash/Default-Landscape@2x~ipad.png
new file mode 100644
index 0000000..19770a2
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/splash/Default-Landscape@2x~ipad.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/splash/Default-Landscape@~ipadpro.png b/Programmation mobile/src/trompette/resources/ios/splash/Default-Landscape@~ipadpro.png
new file mode 100644
index 0000000..6438232
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/splash/Default-Landscape@~ipadpro.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/splash/Default-Landscape~ipad.png b/Programmation mobile/src/trompette/resources/ios/splash/Default-Landscape~ipad.png
new file mode 100644
index 0000000..6fe8925
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/splash/Default-Landscape~ipad.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/splash/Default-Portrait@2x~ipad.png b/Programmation mobile/src/trompette/resources/ios/splash/Default-Portrait@2x~ipad.png
new file mode 100644
index 0000000..3d06d86
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/splash/Default-Portrait@2x~ipad.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/splash/Default-Portrait@~ipadpro.png b/Programmation mobile/src/trompette/resources/ios/splash/Default-Portrait@~ipadpro.png
new file mode 100644
index 0000000..a370419
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/splash/Default-Portrait@~ipadpro.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/splash/Default-Portrait~ipad.png b/Programmation mobile/src/trompette/resources/ios/splash/Default-Portrait~ipad.png
new file mode 100644
index 0000000..53ad4c4
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/splash/Default-Portrait~ipad.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/splash/Default@2x~iphone.png b/Programmation mobile/src/trompette/resources/ios/splash/Default@2x~iphone.png
new file mode 100644
index 0000000..6a13316
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/splash/Default@2x~iphone.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/splash/Default@2x~universal~anyany.png b/Programmation mobile/src/trompette/resources/ios/splash/Default@2x~universal~anyany.png
new file mode 100644
index 0000000..960cb82
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/splash/Default@2x~universal~anyany.png differ
diff --git a/Programmation mobile/src/trompette/resources/ios/splash/Default~iphone.png b/Programmation mobile/src/trompette/resources/ios/splash/Default~iphone.png
new file mode 100644
index 0000000..0aaad62
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/ios/splash/Default~iphone.png differ
diff --git a/Programmation mobile/src/trompette/resources/splash.png b/Programmation mobile/src/trompette/resources/splash.png
new file mode 100644
index 0000000..960cb82
Binary files /dev/null and b/Programmation mobile/src/trompette/resources/splash.png differ
diff --git a/Programmation mobile/src/trompette/src/app/app.component.ts b/Programmation mobile/src/trompette/src/app/app.component.ts
new file mode 100644
index 0000000..76135ae
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/app/app.component.ts
@@ -0,0 +1,89 @@
+import { Component, ViewChild } from '@angular/core';
+import { SplashScreen } from '@ionic-native/splash-screen';
+import { StatusBar } from '@ionic-native/status-bar';
+import { TranslateService } from '@ngx-translate/core';
+import { Config, Nav, Platform } from 'ionic-angular';
+
+import { FirstRunPage } from '../pages';
+import { Settings } from '../providers';
+
+@Component({
+ template: `
+
+
+ Pages
+
+
+
+
+
+
+
+
+
+
+ `
+})
+export class MyApp {
+ rootPage = FirstRunPage;
+
+ @ViewChild(Nav) nav: Nav;
+
+ pages: any[] = [
+ { title: 'Tutorial', component: 'TutorialPage' },
+ { title: 'Welcome', component: 'WelcomePage' },
+ { title: 'Tabs', component: 'TabsPage' },
+ { title: 'Cards', component: 'CardsPage' },
+ { title: 'Content', component: 'ContentPage' },
+ { title: 'Login', component: 'LoginPage' },
+ { title: 'Signup', component: 'SignupPage' },
+ { title: 'Master Detail', component: 'ListMasterPage' },
+ { title: 'Menu', component: 'MenuPage' },
+ { title: 'Settings', component: 'SettingsPage' },
+ { title: 'Search', component: 'SearchPage' }
+ ]
+
+ constructor(private translate: TranslateService, platform: Platform, settings: Settings, private config: Config, private statusBar: StatusBar, private splashScreen: SplashScreen) {
+ platform.ready().then(() => {
+ // Okay, so the platform is ready and our plugins are available.
+ // Here you can do any higher level native things you might need.
+ this.statusBar.styleDefault();
+ this.splashScreen.hide();
+ });
+ this.initTranslate();
+ }
+
+ initTranslate() {
+ // Set the default language for translation strings, and the current language.
+ this.translate.setDefaultLang('en');
+ const browserLang = this.translate.getBrowserLang();
+
+ if (browserLang) {
+ if (browserLang === 'zh') {
+ const browserCultureLang = this.translate.getBrowserCultureLang();
+
+ if (browserCultureLang.match(/-CN|CHS|Hans/i)) {
+ this.translate.use('zh-cmn-Hans');
+ } else if (browserCultureLang.match(/-TW|CHT|Hant/i)) {
+ this.translate.use('zh-cmn-Hant');
+ }
+ } else {
+ this.translate.use(this.translate.getBrowserLang());
+ }
+ } else {
+ this.translate.use('en'); // Set your language here
+ }
+
+ this.translate.get(['BACK_BUTTON_TEXT']).subscribe(values => {
+ this.config.set('ios', 'backButtonText', values.BACK_BUTTON_TEXT);
+ });
+ }
+
+ openPage(page) {
+ // Reset the content nav to have just this page
+ // we wouldn't want the back button to show in this scenario
+ this.nav.setRoot(page.component);
+ }
+}
diff --git a/Programmation mobile/src/trompette/src/app/app.module.ts b/Programmation mobile/src/trompette/src/app/app.module.ts
new file mode 100644
index 0000000..598856b
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/app/app.module.ts
@@ -0,0 +1,70 @@
+import { HttpClient, HttpClientModule } from '@angular/common/http';
+import { ErrorHandler, NgModule } from '@angular/core';
+import { BrowserModule } from '@angular/platform-browser';
+import { Camera } from '@ionic-native/camera';
+import { SplashScreen } from '@ionic-native/splash-screen';
+import { StatusBar } from '@ionic-native/status-bar';
+import { IonicStorageModule, Storage } from '@ionic/storage';
+import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
+import { TranslateHttpLoader } from '@ngx-translate/http-loader';
+import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
+
+import { Items } from '../mocks/providers/items';
+import { Settings, User, Api } from '../providers';
+import { MyApp } from './app.component';
+
+// The translate loader needs to know where to load i18n files
+// in Ionic's static asset pipeline.
+export function createTranslateLoader(http: HttpClient) {
+ return new TranslateHttpLoader(http, './assets/i18n/', '.json');
+}
+
+export function provideSettings(storage: Storage) {
+ /**
+ * The Settings provider takes a set of default settings for your app.
+ *
+ * You can add new settings options at any time. Once the settings are saved,
+ * these values will not overwrite the saved values (this can be done manually if desired).
+ */
+ return new Settings(storage, {
+ option1: true,
+ option2: 'Ionitron J. Framework',
+ option3: '3',
+ option4: 'Hello'
+ });
+}
+
+@NgModule({
+ declarations: [
+ MyApp
+ ],
+ imports: [
+ BrowserModule,
+ HttpClientModule,
+ TranslateModule.forRoot({
+ loader: {
+ provide: TranslateLoader,
+ useFactory: (createTranslateLoader),
+ deps: [HttpClient]
+ }
+ }),
+ IonicModule.forRoot(MyApp),
+ IonicStorageModule.forRoot()
+ ],
+ bootstrap: [IonicApp],
+ entryComponents: [
+ MyApp
+ ],
+ providers: [
+ Api,
+ Items,
+ User,
+ Camera,
+ SplashScreen,
+ StatusBar,
+ { provide: Settings, useFactory: provideSettings, deps: [Storage] },
+ // Keep this to enable Ionic's runtime error handling during development
+ { provide: ErrorHandler, useClass: IonicErrorHandler }
+ ]
+})
+export class AppModule { }
diff --git a/Programmation mobile/src/trompette/src/app/app.scss b/Programmation mobile/src/trompette/src/app/app.scss
new file mode 100644
index 0000000..a967d6f
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/app/app.scss
@@ -0,0 +1,16 @@
+// http://ionicframework.com/docs/v2/theming/
+
+
+// App Global Sass
+// --------------------------------------------------
+// Put style rules here that you want to apply globally. These
+// styles are for the entire app and not just one component.
+// Additionally, this file can be also used as an entry point
+// to import other Sass files to be included in the output CSS.
+//
+// Shared Sass variables, which can be used to adjust Ionic's
+// default Sass variables, belong in "theme/variables.scss".
+//
+// To declare rules for a specific mode, create a child rule
+// for the .md, .ios, or .wp mode classes. The mode class is
+// automatically applied to the
element in the app.
diff --git a/Programmation mobile/src/trompette/src/app/main.ts b/Programmation mobile/src/trompette/src/app/main.ts
new file mode 100644
index 0000000..6af7a5b
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/app/main.ts
@@ -0,0 +1,5 @@
+import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
+
+import { AppModule } from './app.module';
+
+platformBrowserDynamic().bootstrapModule(AppModule);
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/ar.json b/Programmation mobile/src/trompette/src/assets/i18n/ar.json
new file mode 100644
index 0000000..34dcb42
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/ar.json
@@ -0,0 +1,68 @@
+{
+ "BACK_BUTTON_TEXT": "رجوع",
+
+ "NAME": "الاسم",
+ "EMAIL": "البريد الإلكتروني",
+ "USERNAME": "اسم المستخدم",
+ "PASSWORD": "كلمة السر",
+ "LOGIN": "تسجيل الدخول",
+ "SIGNUP": "انشاء الحساب",
+
+ "TAB1_TITLE": "عناصر",
+ "TAB2_TITLE": "بحث",
+ "TAB3_TITLE": "إعدادات",
+
+ "MAP_TITLE": "خريطة",
+
+ "TUTORIAL_SKIP_BUTTON": "تخطى",
+ "TUTORIAL_CONTINUE_BUTTON": "استمر",
+
+ "TUTORIAL_SLIDE1_TITLE": "مرحبا بكم في عدة البدء Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Ionic Super Starter عبارة عن عدة لبدء التطوير بواسطة Ionic. وهي تتميز بالعديد من الصفحات وأفضل الممارسات.",
+
+ "TUTORIAL_SLIDE2_TITLE": "كيفية استخدام Ionic Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "يمكنك تجميع أنواع الصفحات المختلفة التي ترغب بها وإزالة الباقي. وتوفر عدة البدء العديد من تخطيطات الصفحات الاكثر شيوعا في التطبيقات النقالة، مثل صفحات تسجيل الدخول وانشاء الحساب، علامات التبويب، وهذه الصفحة التعليمية.",
+
+ "TUTORIAL_SLIDE3_TITLE": "كيفية الشروع",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "هل تحتاج إلى مساعدة؟ يمكنك الاطلاع على README لبرنامج تعليمي كامل على Ionic Super Starter",
+
+ "TUTORIAL_SLIDE4_TITLE": "مستعد للعب؟",
+
+ "WELCOME_INTRO": "نقطة الانطلاق لتطبيق Ionic العظيم الخاص بك",
+
+ "SETTINGS_TITLE": "إعدادات",
+ "SETTINGS_OPTION1": "خيار 1",
+ "SETTINGS_OPTION2": "خيار 2",
+ "SETTINGS_OPTION3": "خيار 3",
+ "SETTINGS_OPTION4": "خيار 4",
+
+ "SETTINGS_PROFILE_BUTTON": "تعديل الملف الشخصي",
+
+ "SETTINGS_PAGE_PROFILE": "تعديل الملف الشخصي",
+
+ "WELCOME_TITLE": "مرحبا",
+
+ "LOGIN_TITLE": "تسجيل الدخول",
+ "LOGIN_ERROR": "تعذر تسجيل الدخول. يرجى التحقق من معلومات حسابك وإعادة المحاولة.",
+ "LOGIN_BUTTON": "تسجيل الدخول",
+ "SIGNUP_TITLE": "انشاء الحساب",
+ "SIGNUP_ERROR": "تعذر إنشاء الحساب. يرجى التحقق من معلومات حسابك وإعادة المحاولة.",
+ "SIGNUP_BUTTON": "انشاء الحساب",
+
+ "LIST_MASTER_TITLE": "عناصر",
+
+ "ITEM_CREATE_TITLE": "عنصر جديد",
+ "ITEM_CREATE_CHOOSE_IMAGE": "إضافة صورة",
+
+ "ITEM_NAME_PLACEHOLDER": "الاسم",
+ "ITEM_ABOUT_PLACEHOLDER": "عن",
+
+ "DONE_BUTTON": "انهاء",
+ "CANCEL_BUTTON": "الغاء",
+ "DELETE_BUTTON": "حذف",
+
+ "CARDS_TITLE": "اجتماعي",
+
+ "SEARCH_TITLE": "بحث",
+ "SEARCH_PLACEHOLDER": "ابحث في قائمة العناصر، مثل \"Donald Duck\""
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/bs.json b/Programmation mobile/src/trompette/src/assets/i18n/bs.json
new file mode 100644
index 0000000..b39f816
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/bs.json
@@ -0,0 +1,48 @@
+{
+ "NAME": "Ime",
+ "PASSWORD": "Šifra",
+ "EMAIL": "E-mail",
+ "LOGIN": "Prijava",
+ "SIGNUP": "Registracija",
+
+ "TAB1_TITLE": "Stavke",
+ "TAB2_TITLE": "Traži",
+ "TAB3_TITLE": "Postavke",
+
+ "MAP_TITLE": "Mapa",
+
+ "TUTORIAL_SLIDE1_TITLE": "Dobrodošli u Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Ionic Super Starter je potpuno funkcionalna početna aplikacija sa mnogim unaprijed pripremljenim stranicama uz korištenje najboljih praksi.",
+
+ "TUTORIAL_SLIDE2_TITLE": "Kako koristiti Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Sastavite različite vrste stranica koje želite, a uklonite one koje ne želite. Obezbjedili smo vam mnoge uobičajne izglede stranica, kao što su stranice za registraciju i prijavu korisnika, tabulatore, a i ovu stranicu za učenje.",
+
+ "TUTORIAL_SLIDE3_TITLE": "Počinjemo",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Trebate pomoć? Pročitajte Super Starter README za cijeli tutorial.",
+
+ "SETTINGS_TITLE": "Postavke",
+ "SETTINGS_OPTION1": "Opcija 1",
+ "SETTINGS_OPTION2": "Opcija 2",
+ "SETTINGS_OPTION3": "Opcija 3",
+ "SETTINGS_OPTION4": "Opcija 4",
+
+ "SETTINGS_PAGE_PROFILE": "Uredi profil",
+
+ "WELCOME_TITLE": "Dobrodošli",
+
+ "LOGIN_TITLE": "Prijavi se",
+ "LOGIN_ERROR": "Prijava nije uspjela. Molimo provjerite vaše podatke za prijavu, a zatim pokušajte ponovo.",
+ "LOGIN_BUTTON": "Prijava",
+ "SIGNUP_TITLE": "Registruj se",
+ "SIGNUP_ERROR": "Nije moguće kreirati novi korisnički račun. Molimo vas provjerite podatke, a zatim pokušajte ponovo.",
+ "SIGNUP_BUTTON": "Registracija",
+
+ "LIST_MASTER_TITLE": "Stavke",
+
+ "ITEM_CREATE_TITLE": "Nova stavka",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Dodaj sliku",
+
+ "CARDS_TITLE": "Socijalno",
+
+ "SEARCH_TITLE": "Traži"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/by.json b/Programmation mobile/src/trompette/src/assets/i18n/by.json
new file mode 100644
index 0000000..ae530b6
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/by.json
@@ -0,0 +1,48 @@
+{
+ "NAME": "Імя",
+ "EMAIL": "Email",
+ "PASSWORD": "Пароль",
+ "LOGIN": "Увайсці",
+ "SIGNUP": "Зарэгістравацца",
+
+ "TAB1_TITLE": "Спіс",
+ "TAB2_TITLE": "Пошук",
+ "TAB3_TITLE": "Налады",
+
+ "MAP_TITLE": "Мапа",
+
+ "TUTORIAL_SLIDE1_TITLE": "Вітаем ў Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Ionic Super Starter – гэта паўнавартасны пачатаковы пакет для Ionic са шматлікімі ўзорамі старонак і прыкладамі лепшых практык.",
+
+ "TUTORIAL_SLIDE2_TITLE": "Як карыстацца",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Складайце старонкі розных кшталтаў з патрэбных вам элементаў і выдаляйце непатрэбныя. Сярод шматлікіх тыповых макетаў – \"Уваход\" і \"Рэгістрацыя\", старонка з закладкамі і гэтая пачатковая старонка з падказкамі.",
+
+ "TUTORIAL_SLIDE3_TITLE": "З чаго пачаць",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Патрэбна дапамога? Кіраўніцтвы ды тлумачэнні можна знайсці ў README-файлах унутры праекту.",
+
+ "SETTINGS_TITLE": "Налады",
+ "SETTINGS_OPTION1": "Налада 1",
+ "SETTINGS_OPTION2": "Налада 2",
+ "SETTINGS_OPTION3": "Налада 3",
+ "SETTINGS_OPTION4": "Налада 4",
+
+ "SETTINGS_PAGE_PROFILE": "Профіль",
+
+ "WELCOME_TITLE": "Прывітанне",
+
+ "LOGIN_TITLE": "Уваход",
+ "LOGIN_ERROR": "Не атрымалася ўвайсці ў сістэму. Калі ласка, праверце ўведзеныя ўліковыя дадзеныя і паспрабуйце зноў.",
+ "LOGIN_BUTTON": "Увайсці",
+ "SIGNUP_TITLE": "Рэгістрацыя",
+ "SIGNUP_ERROR": "Не атрымалася стварыць уліковы запіс. Калі ласка, праверце ўведзеныя ўліковыя дадзеныя і паспрабуйце зноў.",
+ "SIGNUP_BUTTON": "Зарэгістравацца",
+
+ "LIST_MASTER_TITLE": "Спіс",
+
+ "ITEM_CREATE_TITLE": "Дадаць у спіс",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Дадаць выяву",
+
+ "CARDS_TITLE": "Суполкі",
+
+ "SEARCH_TITLE": "Пошук"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/da.json b/Programmation mobile/src/trompette/src/assets/i18n/da.json
new file mode 100644
index 0000000..aa0bdb5
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/da.json
@@ -0,0 +1,48 @@
+{
+ "NAME": "Navn",
+ "PASSWORD": "Adgangskode",
+ "EMAIL": "Email",
+ "LOGIN": "Log Ind",
+ "SIGNUP": "Tilmeld",
+
+ "TAB1_TITLE": "Poster",
+ "TAB2_TITLE": "Søg",
+ "TAB3_TITLE": "Indstillinger",
+
+ "MAP_TITLE": "Kort",
+
+ "TUTORIAL_SLIDE1_TITLE": "Velkommen til Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Ionic Super Starter er en fuldt funktionsdygtig Ionic starter med mange køreklare sidetyper bygget efter best practices.",
+
+ "TUTORIAL_SLIDE2_TITLE": "Sådan bruges Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Sammensæt de forskellige sidetyper du ønsker at bruge og fjern dem du ikke har behov for. Vi leverer mange gænse mobil app sider, som f.eks. login- og registreringssider, faneblade, og denne introduktionsside.",
+
+ "TUTORIAL_SLIDE3_TITLE": "Kom i gang",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Har du brug for hjælp? Kig på Super Starter README for en omfattende forklaring.",
+
+ "SETTINGS_TITLE": "Indstillinger",
+ "SETTINGS_OPTION1": "Mulighed 1",
+ "SETTINGS_OPTION2": "Mulighed 2",
+ "SETTINGS_OPTION3": "Mulighed 3",
+ "SETTINGS_OPTION4": "Mulighed 4",
+
+ "SETTINGS_PAGE_PROFILE": "Rediger Profil",
+
+ "WELCOME_TITLE": "Velkommen",
+
+ "LOGIN_TITLE": "Log ind",
+ "LOGIN_ERROR": "Fejl ved log ind. Kontroller venligst kontooplysningerne og prøv igen.",
+ "LOGIN_BUTTON": "Log ind",
+ "SIGNUP_TITLE": "Registrer",
+ "SIGNUP_ERROR": "Fejl ved oprettelse. Kontroller venligst kontooplysningerne og prøv igen.",
+ "SIGNUP_BUTTON": "Registrer",
+
+ "LIST_MASTER_TITLE": "Poster",
+
+ "ITEM_CREATE_TITLE": "Ny post",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Tilføj billede",
+
+ "CARDS_TITLE": "Social",
+
+ "SEARCH_TITLE": "Søg"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/de.json b/Programmation mobile/src/trompette/src/assets/i18n/de.json
new file mode 100644
index 0000000..cbe0fc3
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/de.json
@@ -0,0 +1,56 @@
+{
+ "BACK_BUTTON_TEXT": "Zurück",
+
+ "NAME": "Name",
+ "PASSWORD": "Passwort",
+ "EMAIL": "Email",
+ "LOGIN": "Anmelden",
+ "SIGNUP": "Registrieren",
+ "CANCEL_BUTTON": "Schließen",
+
+ "TAB1_TITLE": "Items",
+ "TAB2_TITLE": "Suche",
+ "TAB3_TITLE": "Einstellung",
+
+ "MAP_TITLE": "Karte",
+
+ "TUTORIAL_SLIDE1_TITLE": "Hallo Ionic Super Starter App",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Die Ionic Super Starter App ist eine umfangreiche Starter App mit vielen vorgefertigten Seiten und Best Practices.",
+
+ "TUTORIAL_SLIDE2_TITLE": "Wie soll man die Super Starter App verwenden",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Nutze und bearbeite die Funktionen und Seiten die du benötigst und lösche den Rest. Wähle aus einer Vielzahl an Layouts, wie Anmelden, Registrieren, Tabs und einer Tutorial Seite.",
+
+ "TUTORIAL_SLIDE3_TITLE": "Los gehts",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Du brauchst Hilfe? Sieh dir das README File an um mehr zu erfahren.",
+
+ "TUTORIAL_CONTINUE_BUTTON": "Fortfahren",
+
+ "WELCOME_INTRO": "Der Startpunkt für Deine nächste tolle Ionic App",
+
+ "SETTINGS_TITLE": "Einstellungen",
+ "SETTINGS_OPTION1": "Option 1",
+ "SETTINGS_OPTION2": "Option 2",
+ "SETTINGS_OPTION3": "Option 3",
+ "SETTINGS_OPTION4": "Option 4",
+
+ "SETTINGS_PAGE_PROFILE": "Profil ändern",
+
+ "WELCOME_TITLE": "Willkommen",
+
+ "LOGIN_TITLE": "Anmelden",
+ "LOGIN_ERROR": "Fehler beim Anmelden, bitte überprüfe deine Informationen und versuche es erneut.",
+ "LOGIN_BUTTON": "Anmelden",
+ "SIGNUP_TITLE": "Registrieren",
+ "SIGNUP_ERROR": "Fehler beim Registrieren, bitte überprüfe deine Informationen und versuche es erneut.",
+ "SIGNUP_BUTTON": "Registrieren",
+
+ "LIST_MASTER_TITLE": "Artikel",
+
+ "ITEM_CREATE_TITLE": "Neuer Artikel",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Artikel hinzufügen",
+
+ "CARDS_TITLE": "Social",
+
+ "SEARCH_TITLE": "Suche",
+ "SEARCH_PLACEHOLDER": "Suche in der Artikel-Liste, z.B. \"Donald Duck\""
+}
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/el.json b/Programmation mobile/src/trompette/src/assets/i18n/el.json
new file mode 100644
index 0000000..c8c6362
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/el.json
@@ -0,0 +1,48 @@
+{
+ "NAME": "Όνομα",
+ "PASSWORD": "Κωδικός",
+ "EMAIL": "Email",
+ "LOGIN": "Σύνδεση",
+ "SIGNUP": "Εγγραφή",
+
+ "TAB1_TITLE": "Αντικείμενα",
+ "TAB2_TITLE": "Αναζήτηση",
+ "TAB3_TITLE": "Ρυθμίσεις",
+
+ "MAP_TITLE": "Χάρτης",
+
+ "TUTORIAL_SLIDE1_TITLE": "Καλώς ορίσατε στο Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Το Ionic Super Starter είναι ένα πλήρες βοηθητικό πακέτο εκκίνησης προγραμματισμού με το Ionic και περιέχει πληθώρα έτοιμων, ανεπτυγμένων σελίδων αλλά και βέλτιστων-πρακτικών εφαρμογής του.",
+
+ "TUTORIAL_SLIDE2_TITLE": "Πως να χρησημοποιήσετε το Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Συγκεντρώστε οποιες σελίδες επιθυμείτε και αφαιρέστε εκείνες που δε σας χρειάζονται. Σας παρέχουμε πολλές συνηθισμένες διατάξεις σελίδων, όπως σελίδες σύνδεσης και εγγραφής, με καρτέλες ή επεξήγησης όπως η παρούσα.",
+
+ "TUTORIAL_SLIDE3_TITLE": "Ξεκινώντας",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Χρειάζεστε βοήθεια; Ρίχτε μια ματιά στο Super Starter README αρχείο για την πλήρη επεξήγηση.",
+
+ "SETTINGS_TITLE": "Ρυθμίσεις",
+ "SETTINGS_OPTION1": "Επιλογή 1",
+ "SETTINGS_OPTION2": "Επιλογή 2",
+ "SETTINGS_OPTION3": "Επιλογή 3",
+ "SETTINGS_OPTION4": "Επιλογή 4",
+
+ "SETTINGS_PAGE_PROFILE": "Επεξεργασία Προφίλ",
+
+ "WELCOME_TITLE": "Καλώς ορίσατε",
+
+ "LOGIN_TITLE": "Σύνδεση",
+ "LOGIN_ERROR": "Η σύνδεση ήταν ανέφικτη. Παρακαλούμε ελέγξτε τις πληροφορίες λογαριασμού σας και ξαναπροσπαθήστε.",
+ "LOGIN_BUTTON": "Σύνδεση",
+ "SIGNUP_TITLE": "Εγγραφή",
+ "SIGNUP_ERROR": "Η δημιουργία λογαριασμού ήταν ανέφικτη. Παρακαλούμε ελέγξτε τις πληροφορίες λογαριασμού σας και ξαναπροσπαθήστε.",
+ "SIGNUP_BUTTON": "Εγγραφή",
+
+ "LIST_MASTER_TITLE": "Αντικείμενα",
+
+ "ITEM_CREATE_TITLE": "Νέο Αντικείμενο",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Προσθήκη φωτογραφίας",
+
+ "CARDS_TITLE": "Κοινωνικά",
+
+ "SEARCH_TITLE": "Αναζήτηση"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/en.json b/Programmation mobile/src/trompette/src/assets/i18n/en.json
new file mode 100644
index 0000000..70e64de
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/en.json
@@ -0,0 +1,68 @@
+{
+ "BACK_BUTTON_TEXT": "Back",
+
+ "NAME": "Name",
+ "EMAIL": "Email",
+ "USERNAME": "Username",
+ "PASSWORD": "Password",
+ "LOGIN": "Sign in",
+ "SIGNUP": "Sign up",
+
+ "TAB1_TITLE": "Items",
+ "TAB2_TITLE": "Search",
+ "TAB3_TITLE": "Settings",
+
+ "MAP_TITLE": "Map",
+
+ "TUTORIAL_SKIP_BUTTON": "Skip",
+ "TUTORIAL_CONTINUE_BUTTON": "Continue",
+
+ "TUTORIAL_SLIDE1_TITLE": "Welcome to the Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "The Ionic Super Starter is a fully-featured Ionic starter with many pre-built pages and best practices.",
+
+ "TUTORIAL_SLIDE2_TITLE": "How to use the Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Assemble the various page types you want and remove the ones you don't. We've provided many common mobile app page layouts, like login and signup pages, tabs, and this tutorial page.",
+
+ "TUTORIAL_SLIDE3_TITLE": "Getting Started",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Need help? Check out the Super Starter README for a full tutorial",
+
+ "TUTORIAL_SLIDE4_TITLE": "Ready to Play?",
+
+ "WELCOME_INTRO": "The starting point for your next great Ionic app",
+
+ "SETTINGS_TITLE": "Settings",
+ "SETTINGS_OPTION1": "Option 1",
+ "SETTINGS_OPTION2": "Option 2",
+ "SETTINGS_OPTION3": "Option 3",
+ "SETTINGS_OPTION4": "Option 4",
+
+ "SETTINGS_PROFILE_BUTTON": "Edit Profile",
+
+ "SETTINGS_PAGE_PROFILE": "Edit Profile",
+
+ "WELCOME_TITLE": "Welcome",
+
+ "LOGIN_TITLE": "Sign in",
+ "LOGIN_ERROR": "Unable to sign in. Please check your account information and try again.",
+ "LOGIN_BUTTON": "Sign in",
+ "SIGNUP_TITLE": "Sign up",
+ "SIGNUP_ERROR": "Unable to create account. Please check your account information and try again.",
+ "SIGNUP_BUTTON": "Sign up",
+
+ "LIST_MASTER_TITLE": "Items",
+
+ "ITEM_CREATE_TITLE": "New Item",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Add Image",
+
+ "ITEM_NAME_PLACEHOLDER": "Name",
+ "ITEM_ABOUT_PLACEHOLDER": "About",
+
+ "DONE_BUTTON": "Done",
+ "CANCEL_BUTTON": "Cancel",
+ "DELETE_BUTTON": "Delete",
+
+ "CARDS_TITLE": "Social",
+
+ "SEARCH_TITLE": "Search",
+ "SEARCH_PLACEHOLDER": "Search the items list, e.g. \"Donald Duck\""
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/es-eu.json b/Programmation mobile/src/trompette/src/assets/i18n/es-eu.json
new file mode 100644
index 0000000..4b75ff5
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/es-eu.json
@@ -0,0 +1,35 @@
+{
+ "NAME": "Izena",
+ "PASSWORD": "Pasahitza",
+ "EMAIL": "Email Helbidea",
+ "LOGIN": "Saioa Hasi",
+ "SIGNUP": "Izena Eman",
+ "TAB1_TITLE": "Artikuluak",
+ "TAB2_TITLE": "Bilatu",
+ "TAB3_TITLE": "Xehetasunak",
+ "MAP_TITLE": "Mapa",
+ "TUTORIAL_SLIDE1_TITLE": "Ongi etorri Ionic Super Starter-era",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Ionic Super Starter hasierako txantiloi bat da, 'page' askorekin eta ereduak",
+ "TUTORIAL_SLIDE2_TITLE": "Nola erabili Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Sortu gustatzen zaizkizun orrialdeak eta ezabatu besteak. Adibidez: login signup, tabs eta tutorialeak.",
+ "TUTORIAL_SLIDE3_TITLE": "Ikasten",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Laguntzarik nahi? irakurri README,Super Starter-ren tutorial osoa daukazu",
+ "SETTINGS_TITLE": "Xehetasunak",
+ "SETTINGS_OPTION1": "1 Aukera",
+ "SETTINGS_OPTION2": "2 Aukera",
+ "SETTINGS_OPTION3": "3 Aukera",
+ "SETTINGS_OPTION4": "4 Aukera",
+ "SETTINGS_PAGE_PROFILE": "Zure datual editatu",
+ "WELCOME_TITLE": "Ongi Etorri",
+ "LOGIN_TITLE": "Sesioa Hasi",
+ "LOGIN_ERROR": "Arazoa sesioa hasteko. Mesedez,sahiatu berriz zure datuak idazten.",
+ "LOGIN_BUTTON": "Sesioa Hasi",
+ "SIGNUP_TITLE": "Izena eman",
+ "SIGNUP_ERROR": "Arazoa kontua sortzen.or, Mesedez,sahiatu berriz zure datuak idazten.",
+ "SIGNUP_BUTTON": "Izena Eman",
+ "LIST_MASTER_TITLE": "Artikuluak",
+ "ITEM_CREATE_TITLE": "Artikulu berria",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Argazkia sortu",
+ "CARDS_TITLE": "Sozial",
+ "SEARCH_TITLE": "Bilatu"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/es.json b/Programmation mobile/src/trompette/src/assets/i18n/es.json
new file mode 100644
index 0000000..1bd5223
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/es.json
@@ -0,0 +1,48 @@
+{
+ "NAME": "Nombre",
+ "PASSWORD": "Contraseña",
+ "EMAIL": "Email",
+ "LOGIN": "Iniciar sesión",
+ "SIGNUP": "Registrarse",
+
+ "TAB1_TITLE": "Items",
+ "TAB2_TITLE": "Buscar",
+ "TAB3_TITLE": "Ajustes",
+
+ "MAP_TITLE": "Mapa",
+
+ "TUTORIAL_SLIDE1_TITLE": "Bienvenido/a al Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "El Ionic Super Starter es un starter de Ionic completo con muchas páginas preconstruidas y mejores prácticas.",
+
+ "TUTORIAL_SLIDE2_TITLE": "Cómo usar el Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Monta los varios tipos de página que quieras y quita los que no. Hemos incluido muchas estructuras de página comunes en apps móviles, como páginas de inicio de sesión y registro, pestañas, y esta página de tutorial.",
+
+ "TUTORIAL_SLIDE3_TITLE": "Empezando",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "¿Necesitas ayuda? Échale un vistazo al README del Super Starter para ver el tutorial completo.",
+
+ "SETTINGS_TITLE": "Ajustes",
+ "SETTINGS_OPTION1": "Opción 1",
+ "SETTINGS_OPTION2": "Opción 2",
+ "SETTINGS_OPTION3": "Opción 3",
+ "SETTINGS_OPTION4": "Opción 4",
+
+ "SETTINGS_PAGE_PROFILE": "Editar Perfil",
+
+ "WELCOME_TITLE": "Bienvenido/a",
+
+ "LOGIN_TITLE": "Iniciar sesión",
+ "LOGIN_ERROR": "No se ha podido iniciar sesión. Por favor revisa la información de la cuenta e inténtalo de nuevo.",
+ "LOGIN_BUTTON": "Iniciar sesión",
+ "SIGNUP_TITLE": "Registro",
+ "SIGNUP_ERROR": "No se ha podido crear la cuenta. Por favor revisa la información de la cuenta e inténtalo de nuevo.",
+ "SIGNUP_BUTTON": "Registrarse",
+
+ "LIST_MASTER_TITLE": "Items",
+
+ "ITEM_CREATE_TITLE": "Nuevo Item",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Añadir Imagen",
+
+ "CARDS_TITLE": "Social",
+
+ "SEARCH_TITLE": "Buscar"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/fil.json b/Programmation mobile/src/trompette/src/assets/i18n/fil.json
new file mode 100644
index 0000000..affee35
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/fil.json
@@ -0,0 +1,48 @@
+{
+ "NAME": "Pangalan",
+ "PASSWORD": "Password",
+ "EMAIL": "Email",
+ "LOGIN": "Sign in",
+ "SIGNUP": "Sign up",
+
+ "TAB1_TITLE": "Mga Gamit",
+ "TAB2_TITLE": "Hanapin",
+ "TAB3_TITLE": "Mga Setting",
+
+ "MAP_TITLE": "Mapa",
+
+ "TUTORIAL_SLIDE1_TITLE": "Maligayang Pagdating sa Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Isang kumpletong Ionic starter na may buong mga pahina at pinakamainam na gawi ang Ionic Super Starter",
+
+ "TUTORIAL_SLIDE2_TITLE": "Paano gamitin ang Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Buoin ang mga page types na gusto mo at tanggalin ang mga ayaw mo. Marami kaming ibinigay na app layouts, tulad ng login at signup, tabs, at itong tutorial page",
+
+ "TUTORIAL_SLIDE3_TITLE": "Paano magsimula",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Kailangan ng tulong? Tignan ang README ng Super Starter para sa buong tutorial",
+
+ "SETTINGS_TITLE": "Mga Setting",
+ "SETTINGS_OPTION1": "Opsyon 1",
+ "SETTINGS_OPTION2": "Opsyon 2",
+ "SETTINGS_OPTION3": "Opsyon 3",
+ "SETTINGS_OPTION4": "Opsyon 4",
+
+ "SETTINGS_PAGE_PROFILE": "Baguhin ang Profile",
+
+ "WELCOME_TITLE": "Maligayang Pagdating",
+
+ "LOGIN_TITLE": "Sign in",
+ "LOGIN_ERROR": "Hindi makapag-sign-in. Paki-kumpirma ang iyong impormasyon at subukan ulit",
+ "LOGIN_BUTTON": "Sign in",
+ "SIGNUP_TITLE": "Sign up",
+ "SIGNUP_ERROR": "Hindi makagawa ng bagong account. Paki-kumpirma ang iyong impormasyon at subukan ulit",
+ "SIGNUP_BUTTON": "Sign up",
+
+ "LIST_MASTER_TITLE": "Mga Item",
+
+ "ITEM_CREATE_TITLE": "Bagong Item",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Maglagay ng Imahe",
+
+ "CARDS_TITLE": "Social",
+
+ "SEARCH_TITLE": "Hanapin"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/fr.json b/Programmation mobile/src/trompette/src/assets/i18n/fr.json
new file mode 100644
index 0000000..69074e5
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/fr.json
@@ -0,0 +1,48 @@
+{
+ "NAME": "Nom",
+ "PASSWORD": "Mot de passe",
+ "EMAIL": "E-mail",
+ "LOGIN": "Connexion",
+ "SIGNUP": "Inscription",
+
+ "TAB1_TITLE": "Items",
+ "TAB2_TITLE": "Recherche",
+ "TAB3_TITLE": "Paramètres",
+
+ "MAP_TITLE": "Carte",
+
+ "TUTORIAL_SLIDE1_TITLE": "Bienvenue dans le kit de démarrage Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Ionic Super Starter est un kit complet pour démarrer sur Ionic. Il repose sur les meilleures pratiques et implémente de nombreux types de pages.",
+
+ "TUTORIAL_SLIDE2_TITLE": "Comment utiliser le Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Assemblez les types de pages désirés et supprimez les autres. Le kit inclut plusieurs mises en page courantes d’applications mobiles, comme les pages de connexion et d’inscription, les onglets et cette page de tutoriel.",
+
+ "TUTORIAL_SLIDE3_TITLE": "Pour commencer",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Si vous avez besoin d’aide, consultez le README du Super Starter pour un tutoriel complet.",
+
+ "SETTINGS_TITLE": "Paramètres",
+ "SETTINGS_OPTION1": "Option 1",
+ "SETTINGS_OPTION2": "Option 2",
+ "SETTINGS_OPTION3": "Option 3",
+ "SETTINGS_OPTION4": "Option 4",
+
+ "SETTINGS_PAGE_PROFILE": "Modifier le profil",
+
+ "WELCOME_TITLE": "Bienvenue",
+
+ "LOGIN_TITLE": "Connexion",
+ "LOGIN_ERROR": "Connexion impossible. Veuillez vérifier les informations de votre compte et réessayer.",
+ "LOGIN_BUTTON": "Connexion",
+ "SIGNUP_TITLE": "Inscription",
+ "SIGNUP_ERROR": "Inscription impossible. Veuillez vérifier les informations de votre compte et réessayer.",
+ "SIGNUP_BUTTON": "Inscription",
+
+ "LIST_MASTER_TITLE": "Items",
+
+ "ITEM_CREATE_TITLE": "Nouvel item",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Ajouter une image",
+
+ "CARDS_TITLE": "Social",
+
+ "SEARCH_TITLE": "Recherche"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/he.json b/Programmation mobile/src/trompette/src/assets/i18n/he.json
new file mode 100644
index 0000000..6a354d1
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/he.json
@@ -0,0 +1,48 @@
+{
+ "NAME": "שם",
+ "PASSWORD": "סיסמא",
+ "EMAIL": "דואר אלקטרוני",
+ "LOGIN": "התחברות",
+ "SIGNUP": "הרשמה",
+
+ "TAB1_TITLE": "פריטים",
+ "TAB2_TITLE": "חיפוש",
+ "TAB3_TITLE": "הגדרות",
+
+ "MAP_TITLE": "מפה",
+
+ "TUTORIAL_SLIDE1_TITLE": "ברוכים הבאים ל-Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "ה-Ionic Super Starter הוא Starter מלא בתכונות עם הרבה דפים מוכנים ותרגולים הכי טובים.",
+
+ "TUTORIAL_SLIDE2_TITLE": "איך להשתמש ב-Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Assemble the various page types you want and remove the ones you don't. We've provided many common mobile app page layouts, like login and signup pages, tabs, and this tutorial page.",
+
+ "TUTORIAL_SLIDE3_TITLE": "התחלה",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "צריך עזרה? תבדקו את ה-README של ה-Super Starter להדרכה מלאה.",
+
+ "SETTINGS_TITLE": "הגדרות",
+ "SETTINGS_OPTION1": "אופציה 1",
+ "SETTINGS_OPTION2": "אופציה 2",
+ "SETTINGS_OPTION3": "אופציה 3",
+ "SETTINGS_OPTION4": "אופציה 4",
+
+ "SETTINGS_PAGE_PROFILE": "עריכת פרופיל",
+
+ "WELCOME_TITLE": "ברוכים הבאים",
+
+ "LOGIN_TITLE": "התחברות",
+ "LOGIN_ERROR": "לא ניתן להתחבר. אנא בדוק את פרטי ההתחברות ונסה שנית.",
+ "LOGIN_BUTTON": "התחבר",
+ "SIGNUP_TITLE": "הרשמה",
+ "SIGNUP_ERROR": "לא ניתן ליצור חשבון. אנא בדוק את פרטי ההתחברות ונסה שנית.",
+ "SIGNUP_BUTTON": "הירשם",
+
+ "LIST_MASTER_TITLE": "פריטים",
+
+ "ITEM_CREATE_TITLE": "פריט חדש",
+ "ITEM_CREATE_CHOOSE_IMAGE": "הוסף תמונה",
+
+ "CARDS_TITLE": "חברתי",
+
+ "SEARCH_TITLE": "חיפוש"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/it.json b/Programmation mobile/src/trompette/src/assets/i18n/it.json
new file mode 100644
index 0000000..2c8ca38
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/it.json
@@ -0,0 +1,68 @@
+{
+ "BACK_BUTTON_TEXT": "Indietro",
+
+ "NAME": "Nome",
+ "EMAIL": "Email",
+ "USERNAME": "Nome utente",
+ "PASSWORD": "Password",
+ "LOGIN": "Login",
+ "SIGNUP": "Registrati",
+
+ "TAB1_TITLE": "Elenco",
+ "TAB2_TITLE": "Ricerca",
+ "TAB3_TITLE": "Impostazioni",
+
+ "MAP_TITLE": "Mappa",
+
+ "TUTORIAL_SKIP_BUTTON": "Salta",
+ "TUTORIAL_CONTINUE_BUTTON": "Continua",
+
+ "TUTORIAL_SLIDE1_TITLE": "Benvenuti in Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Ionic Super Starter è un applicazione di partenza per Ionic che contiene molte pagine di esempio già pronte realizzate seguendo delle best practices.",
+
+ "TUTORIAL_SLIDE2_TITLE": "Come usare Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Mantenete le pagine che volete e rimuovete quelle che non vi servono. Troverete diverse pagine di uso comune in questa applicazione come le pagine per il login e la registrazione, layout con tabs, e questa pagina di tutorial.",
+
+ "TUTORIAL_SLIDE3_TITLE": "Come iniziare",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Serve aiuto? Leggete il README del progetto Super Starter per avere maggiori informazioni sul tutorial completo.",
+
+ "TUTORIAL_SLIDE4_TITLE": "Pronti ad iniziare?",
+
+ "WELCOME_INTRO": "Il punto di partenza per la tua prossima applicazione Ionic",
+
+ "SETTINGS_TITLE": "Impostazioni",
+ "SETTINGS_OPTION1": "Opzione 1",
+ "SETTINGS_OPTION2": "Opzione 2",
+ "SETTINGS_OPTION3": "Opzione 3",
+ "SETTINGS_OPTION4": "Opzione 4",
+
+ "SETTINGS_PROFILE_BUTTON": "Modifica Profilo",
+
+ "SETTINGS_PAGE_PROFILE": "Modifica Profilo",
+
+ "WELCOME_TITLE": "Benvenuto",
+
+ "LOGIN_TITLE": "Login",
+ "LOGIN_ERROR": "Non è possibile accedere. Ricontrollare le informazioni utente digitate prima di riprovare.",
+ "LOGIN_BUTTON": "Accedi",
+ "SIGNUP_TITLE": "Registrazione",
+ "SIGNUP_ERROR": "Non è possibile creare l'utente. Assicurarsi di aver inserito le informazioni utente correttamente e poi riprovare.",
+ "SIGNUP_BUTTON": "Registrati",
+
+ "LIST_MASTER_TITLE": "Elenco elementi",
+
+ "ITEM_CREATE_TITLE": "Nuovo elemento",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Aggiungi immagine",
+
+ "ITEM_NAME_PLACEHOLDER": "Nome",
+ "ITEM_ABOUT_PLACEHOLDER": "Informazioni",
+
+ "DONE_BUTTON": "Fatto",
+ "CANCEL_BUTTON": "Annulla",
+ "DELETE_BUTTON": "Elimina",
+
+ "CARDS_TITLE": "Social",
+
+ "SEARCH_TITLE": "Ricerca",
+ "SEARCH_PLACEHOLDER": "Trova elementi in lista, ex. \"Donald Duck\""
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/ja.json b/Programmation mobile/src/trompette/src/assets/i18n/ja.json
new file mode 100644
index 0000000..94c649f
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/ja.json
@@ -0,0 +1,68 @@
+{
+ "BACK_BUTTON_TEXT": "戻る",
+
+ "NAME": "名前",
+ "EMAIL": "Eメール",
+ "USERNAME": "ユーザー名",
+ "PASSWORD": "パスワード",
+ "LOGIN": "サインイン",
+ "SIGNUP": "サインアップ",
+
+ "TAB1_TITLE": "項目",
+ "TAB2_TITLE": "検索",
+ "TAB3_TITLE": "設定",
+
+ "MAP_TITLE": "地図",
+
+ "TUTORIAL_SKIP_BUTTON": "スキップ",
+ "TUTORIAL_CONTINUE_BUTTON": "続ける",
+
+ "TUTORIAL_SLIDE1_TITLE": "Ionic Super Starterへようこそ",
+ "TUTORIAL_SLIDE1_DESCRIPTION": " Ionic Super Starter は、多くのビルド済ページとベストプラクティスを備えた、完全な機能をもつIonicのスターターです。",
+
+ "TUTORIAL_SLIDE2_TITLE": "Super Starterの使い方",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "いろいろなページタイプの中から欲しいものを組み合わせて、いらないものを取り除いてください。 ログインページ、サインアップページ、タブ、このチュートリアルページなど、一般的なモバイルアプリのページレイアウトをいろいろと提供しています。",
+
+ "TUTORIAL_SLIDE3_TITLE": "はじめに",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "ヘルプが必要ですか?完全なチュートリアルについては、Super Starter READMEを参照してください。",
+
+ "TUTORIAL_SLIDE4_TITLE": "準備ができましたか?",
+
+ "WELCOME_INTRO": "あなたのすばらしいIonicアプリの出発点",
+
+ "SETTINGS_TITLE": "設定",
+ "SETTINGS_OPTION1": "オプション 1",
+ "SETTINGS_OPTION2": "オプション 2",
+ "SETTINGS_OPTION3": "オプション 3",
+ "SETTINGS_OPTION4": "オプション 4",
+
+ "SETTINGS_PROFILE_BUTTON": "プロフィールの編集",
+
+ "SETTINGS_PAGE_PROFILE": "プロフィールの編集",
+
+ "WELCOME_TITLE": "ようこそ",
+
+ "LOGIN_TITLE": "サインイン",
+ "LOGIN_ERROR": "サインインできません。アカウント情報を確認して、もう一度お試しください。",
+ "LOGIN_BUTTON": "サインイン",
+ "SIGNUP_TITLE": "サインアップ",
+ "SIGNUP_ERROR": "アカウントを作成できません。 アカウント情報を確認して、もう一度お試しください。",
+ "SIGNUP_BUTTON": "サインアップ",
+
+ "LIST_MASTER_TITLE": "項目",
+
+ "ITEM_CREATE_TITLE": "新しい項目",
+ "ITEM_CREATE_CHOOSE_IMAGE": "画像の追加",
+
+ "ITEM_NAME_PLACEHOLDER": "名前",
+ "ITEM_ABOUT_PLACEHOLDER": "説明",
+
+ "DONE_BUTTON": "完了",
+ "CANCEL_BUTTON": "キャンセル",
+ "DELETE_BUTTON": "削除",
+
+ "CARDS_TITLE": "ソーシャル",
+
+ "SEARCH_TITLE": "検索",
+ "SEARCH_PLACEHOLDER": "項目一覧を検索 例 \"Donald Duck\""
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/nb_NO.json b/Programmation mobile/src/trompette/src/assets/i18n/nb_NO.json
new file mode 100644
index 0000000..f601d97
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/nb_NO.json
@@ -0,0 +1,48 @@
+{
+ "NAME": "Navn",
+ "PASSWORD": "Passord",
+ "EMAIL": "Email",
+ "LOGIN": "Logg inn",
+ "SIGNUP": "Registrer deg",
+
+ "TAB1_TITLE": "Innlegg",
+ "TAB2_TITLE": "Søk",
+ "TAB3_TITLE": "Innstillinger",
+
+ "MAP_TITLE": "Kart",
+
+ "TUTORIAL_SLIDE1_TITLE": "Velkommen til Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Ionic Super Starter er en fullverdig startpakke for Ionic med forhåndslagde undersider utviklet etter beste praksis.",
+
+ "TUTORIAL_SLIDE2_TITLE": "Hvordan bruke Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Ta i bruk undersidene du trenger og fjern de unødvendige. Pakken tilbyr vanlige layouts for mobil-apper slik som innlogging- og registreringssider, faner og denne opplæringssiden.",
+
+ "TUTORIAL_SLIDE3_TITLE": "Kom i gang",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Trenger du hjelp? Les Super Starter README-dokumentet for instruksjoner",
+
+ "SETTINGS_TITLE": "Innstillinger",
+ "SETTINGS_OPTION1": "Alternativ 1",
+ "SETTINGS_OPTION2": "Alternativ 2",
+ "SETTINGS_OPTION3": "Alternativ 3",
+ "SETTINGS_OPTION4": "Alternativ 4",
+
+ "SETTINGS_PAGE_PROFILE": "Endre Profil",
+
+ "WELCOME_TITLE": "Velkommen",
+
+ "LOGIN_TITLE": "Innlogging",
+ "LOGIN_ERROR": "Feil ved innlogging. Bekreft at kontodetaljene er riktig og prøv igjen.",
+ "LOGIN_BUTTON": "Logg inn",
+ "SIGNUP_TITLE": "Registrering",
+ "SIGNUP_ERROR": "Feil ved registrering. Bekreft kontodetaljene og prøv igjen.",
+ "SIGNUP_BUTTON": "Registrer deg",
+
+ "LIST_MASTER_TITLE": "Innlegg",
+
+ "ITEM_CREATE_TITLE": "Nytt Innlegg",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Legg Til Bilde",
+
+ "CARDS_TITLE": "Sosialt",
+
+ "SEARCH_TITLE": "Søk"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/nl.json b/Programmation mobile/src/trompette/src/assets/i18n/nl.json
new file mode 100644
index 0000000..66e87d0
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/nl.json
@@ -0,0 +1,48 @@
+{
+ "NAME": "Naam",
+ "PASSWORD": "Wachtwoord",
+ "EMAIL": "E-mail",
+ "LOGIN": "Inloggen",
+ "SIGNUP": "Aanmelden",
+
+ "TAB1_TITLE": "Items",
+ "TAB2_TITLE": "Zoeken",
+ "TAB3_TITLE": "Instellingen",
+
+ "MAP_TITLE": "Kaart",
+
+ "TUTORIAL_SLIDE1_TITLE": "Welkom bij de Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "De Ionic Super Starter biedt een volledig functionele basis voor een Ionic applicatie met veel voorgedefinieëerde pagina's en 'best practices'.",
+
+ "TUTORIAL_SLIDE2_TITLE": "Hoe de Super Starter te gebruiken",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Stel je applicatie samen door pagina's te combineren en verwijder degenen die je niet wil gebruiken. We bieden je verschillende typen mobiele applicatie pagina's, zoals login- en aanmeld pagina's, tabbladen, en deze handleiding pagina.",
+
+ "TUTORIAL_SLIDE3_TITLE": "Beginnen",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Hulp nodig? Check de Super Starter README voor een uitgebreide introductie",
+
+ "SETTINGS_TITLE": "Instellingen",
+ "SETTINGS_OPTION1": "Optie 1",
+ "SETTINGS_OPTION2": "Optie 2",
+ "SETTINGS_OPTION3": "Optie 3",
+ "SETTINGS_OPTION4": "Optie 4",
+
+ "SETTINGS_PAGE_PROFILE": "Wijzig Profiel",
+
+ "WELCOME_TITLE": "Welkom",
+
+ "LOGIN_TITLE": "Aanmelden",
+ "LOGIN_ERROR": "Inloggen mislukt. Controleer a.u.b. uw account informatie en probeer het nogmaals.",
+ "LOGIN_BUTTON": "Inloggen",
+ "SIGNUP_TITLE": "Aanmelden",
+ "SIGNUP_ERROR": "Aanmelden mislukt. Controleer a.u.b. uw account informatie en probeer het nogmaals.",
+ "SIGNUP_BUTTON": "Aanmelden",
+
+ "LIST_MASTER_TITLE": "Items",
+
+ "ITEM_CREATE_TITLE": "Nieuw Item",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Afbeeldingen Toevoegen",
+
+ "CARDS_TITLE": "Sociaal",
+
+ "SEARCH_TITLE": "Zoeken"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/pl.json b/Programmation mobile/src/trompette/src/assets/i18n/pl.json
new file mode 100644
index 0000000..cb3ee66
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/pl.json
@@ -0,0 +1,48 @@
+{
+ "NAME": "Imię",
+ "PASSWORD": "Hasło",
+ "EMAIL": "Email",
+ "LOGIN": "Zaloguj",
+ "SIGNUP": "Zarejestruj",
+
+ "TAB1_TITLE": "Pozycje",
+ "TAB2_TITLE": "Szukaj",
+ "TAB3_TITLE": "Ustawienia",
+
+ "MAP_TITLE": "Mapa",
+
+ "TUTORIAL_SLIDE1_TITLE": "Witaj w Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Ionic Super Starter jest w pełni funkcjonalnym początkiem przygody z Ionic'iem, złożonym z wielu predefiniowanych szablonów i najlepszych praktyk programistycznych.",
+
+ "TUTORIAL_SLIDE2_TITLE": "Jak korzystać z Super Startera",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Pozbieraj różne typy stron, które chcesz usunąć, a także te, których nie chcesz. Mamy do zaoferowania wiele wspólnych stron i szablonów mobilnej aplikacji. Są to między innymi: strona logowania, rejestracji, taby, a także ten oto poradnik.",
+
+ "TUTORIAL_SLIDE3_TITLE": "Pierwsze kroki",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Potrzebujesz pomocy? Sprawdź plik README projektu Super Starter dla pełnego poradnika",
+
+ "SETTINGS_TITLE": "Ustawienia",
+ "SETTINGS_OPTION1": "Opcja 1",
+ "SETTINGS_OPTION2": "Opcja 2",
+ "SETTINGS_OPTION3": "Opcja 3",
+ "SETTINGS_OPTION4": "Opcja 4",
+
+ "SETTINGS_PAGE_PROFILE": "Edytuj Profil",
+
+ "WELCOME_TITLE": "Witaj",
+
+ "LOGIN_TITLE": "Zaloguj",
+ "LOGIN_ERROR": "Nie udało się zalogować. Sprawdź raz jeszcze dane swoje konta i spróbuj ponownie.",
+ "LOGIN_BUTTON": "Zaloguj",
+ "SIGNUP_TITLE": "Zarejestruj",
+ "SIGNUP_ERROR": "Nie udało się stworzyć konta. Sprawdź raz jeszcze dane swoje konta i spróbuj ponownie.",
+ "SIGNUP_BUTTON": "Zarejestruj",
+
+ "LIST_MASTER_TITLE": "Pozycje",
+
+ "ITEM_CREATE_TITLE": "Nowa pozycja",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Dodaj obrazek",
+
+ "CARDS_TITLE": "Społeczność",
+
+ "SEARCH_TITLE": "Szukaj"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/pt-PT.json b/Programmation mobile/src/trompette/src/assets/i18n/pt-PT.json
new file mode 100644
index 0000000..7377eb5
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/pt-PT.json
@@ -0,0 +1,48 @@
+{
+ "NAME": "Nome",
+ "PASSWORD": "Password",
+ "EMAIL": "Email",
+ "LOGIN": "Entrar",
+ "SIGNUP": "Criar conta",
+
+ "TAB1_TITLE": "Items",
+ "TAB2_TITLE": "Pesquisa",
+ "TAB3_TITLE": "Configurações",
+
+ "MAP_TITLE": "Mapa",
+
+ "TUTORIAL_SLIDE1_TITLE": "Bem-vindo ao Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "O Ionic Super Starter é um pacote Ionic com várias páginas prontas e exemplos de boas práticas.",
+
+ "TUTORIAL_SLIDE2_TITLE": "Como usar o Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Combine os vários tipos de página que quer usar e remova as desnecessárias. Nós disponibilizamos vários layouts mobile comuns, como páginas de login e registo, tabs, e esta página de tutorial.",
+
+ "TUTORIAL_SLIDE3_TITLE": "Como começar",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Precisa de ajuda? Para um tutorial completo leia o README do Super Starter",
+
+ "SETTINGS_TITLE": "Configurações",
+ "SETTINGS_OPTION1": "Opção 1",
+ "SETTINGS_OPTION2": "Opção 2",
+ "SETTINGS_OPTION3": "Opção 3",
+ "SETTINGS_OPTION4": "Opção 4",
+
+ "SETTINGS_PAGE_PROFILE": "Editar Perfil",
+
+ "WELCOME_TITLE": "Bem-vindo",
+
+ "LOGIN_TITLE": "Entrar",
+ "LOGIN_ERROR": "Não foi possível entrar na sua conta. Por favor confirme os seus dados e tente novamente.",
+ "LOGIN_BUTTON": "Entrar",
+ "SIGNUP_TITLE": "Criar conta",
+ "SIGNUP_ERROR": "Não foi possível criar a sua conta. Por favor confirme os seus dados e tente novamente.",
+ "SIGNUP_BUTTON": "Criar conta",
+
+ "LIST_MASTER_TITLE": "Items",
+
+ "ITEM_CREATE_TITLE": "Novo Item",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Adicionar Imagem",
+
+ "CARDS_TITLE": "Social",
+
+ "SEARCH_TITLE": "Pesquisa"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/pt-br.json b/Programmation mobile/src/trompette/src/assets/i18n/pt-br.json
new file mode 100644
index 0000000..3c02d45
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/pt-br.json
@@ -0,0 +1,68 @@
+{
+ "BACK_BUTTON_TEXT": "Voltar",
+
+ "NAME": "Nome",
+ "EMAIL": "Email",
+ "USERNAME": "Nome de Usuário",
+ "PASSWORD": "Senha",
+ "LOGIN": "Entrar",
+ "SIGNUP": "Cadastre-se",
+
+ "TAB1_TITLE": "Itens",
+ "TAB2_TITLE": "Busca",
+ "TAB3_TITLE": "Configurações",
+
+ "MAP_TITLE": "Mapa",
+
+ "TUTORIAL_SKIP_BUTTON": "Pular",
+ "TUTORIAL_CONTINUE_BUTTON": "Continuar",
+
+ "TUTORIAL_SLIDE1_TITLE": "Bem-vindo ao Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "O Ionic Super Starter é um starter para Ionic completo, com diversos componentes e páginas prontas para ser utilizado como guia de melhores práticas.",
+
+ "TUTORIAL_SLIDE2_TITLE": "Como utilizar o Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Combine os tipos de páginas que você quer e remova aquelas que não precisa. No starter existem muitos casos de uso comuns de layouts e páginas como login, cadastro, abas e de tutorial.",
+
+ "TUTORIAL_SLIDE3_TITLE": "Iniciando o projeto",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Precisa de ajuda? Dê uma olhada no README do Super Starter para um tutorial completo",
+
+ "TUTORIAL_SLIDE4_TITLE": "Pronto para Usar?",
+
+ "WELCOME_INTRO": "O ponto de partida para seu próximo app feito no Ionic",
+
+ "SETTINGS_TITLE": "Configurações",
+ "SETTINGS_OPTION1": "Opção 1",
+ "SETTINGS_OPTION2": "Opção 2",
+ "SETTINGS_OPTION3": "Opção 3",
+ "SETTINGS_OPTION4": "Opção 4",
+
+ "SETTINGS_PROFILE_BUTTON": "Editar Perfil",
+
+ "SETTINGS_PAGE_PROFILE": "Editar Perfil",
+
+ "WELCOME_TITLE": "Bem-vindo",
+
+ "LOGIN_TITLE": "Entrar",
+ "LOGIN_ERROR": "Não foi possível entrar na sua conta. Verifique seus dados e tente novamente.",
+ "LOGIN_BUTTON": "Entrar",
+ "SIGNUP_TITLE": "Cadastre-se",
+ "SIGNUP_ERROR": "Não foi possível criar sua conta. Verifique seus dados e tente novamente.",
+ "SIGNUP_BUTTON": "Cadastre-se",
+
+ "LIST_MASTER_TITLE": "Itens",
+
+ "ITEM_CREATE_TITLE": "Novo Item",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Adicionar Imagem",
+
+ "ITEM_NAME_PLACEHOLDER": "Nome",
+ "ITEM_ABOUT_PLACEHOLDER": "Sobre",
+
+ "DONE_BUTTON": "Pronto",
+ "CANCEL_BUTTON": "Cancelar",
+ "DELETE_BUTTON": "Apagar",
+
+ "CARDS_TITLE": "Social",
+
+ "SEARCH_TITLE": "Busca",
+ "SEARCH_PLACEHOLDER": "Procure um item da lista, ex: \"Donald Duck\""
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/ru.json b/Programmation mobile/src/trompette/src/assets/i18n/ru.json
new file mode 100644
index 0000000..4283d72
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/ru.json
@@ -0,0 +1,48 @@
+{
+ "NAME": "Имя",
+ "PASSWORD": "Пароль",
+ "EMAIL": "Email",
+ "LOGIN": "Вход",
+ "SIGNUP": "Регистрация",
+
+ "TAB1_TITLE": "Список",
+ "TAB2_TITLE": "Поиск",
+ "TAB3_TITLE": "Настройки",
+
+ "MAP_TITLE": "Карта",
+
+ "TUTORIAL_SLIDE1_TITLE": "Добро пожаловать в Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Ionic Super Starter это полноценный набор примеров Ionic с большим количеством готовых страниц и лучших практик.",
+
+ "TUTORIAL_SLIDE2_TITLE": "Как использовать Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Сделайте свой набор из многочисленных страниц разного типа. Все лишнее можете выкинуть. Мы предоставили много типовых макетов страниц мобильных приложений, таких как страницы регистрации, вкладки, и страницы с руководством, наподобие этой.",
+
+ "TUTORIAL_SLIDE3_TITLE": "Начало работы",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Нужна помощь? Вы найдете полное руководство к Super Starter в файле README",
+
+ "SETTINGS_TITLE": "Настройки",
+ "SETTINGS_OPTION1": "Опция 1",
+ "SETTINGS_OPTION2": "Опция 2",
+ "SETTINGS_OPTION3": "Опция 3",
+ "SETTINGS_OPTION4": "Опция 4",
+
+ "SETTINGS_PAGE_PROFILE": "Редактирование профиля",
+
+ "WELCOME_TITLE": "Добро пожаловать",
+
+ "LOGIN_TITLE": "Вход",
+ "LOGIN_ERROR": "Невозможно войти. Пожалуйста проверьте информацию о Вашей учетной записи и попробуйте войти еще раз.",
+ "LOGIN_BUTTON": "Войти",
+ "SIGNUP_TITLE": "Регистрация",
+ "SIGNUP_ERROR": "Невозможно создать учетную запись. Пожалуйста проверьте информацию о Вашей учетной записи и попробуйте еще раз.",
+ "SIGNUP_BUTTON": "Регистрация",
+
+ "LIST_MASTER_TITLE": "Список",
+
+ "ITEM_CREATE_TITLE": "Новый элемент",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Добавить изображение",
+
+ "CARDS_TITLE": "Социальный",
+
+ "SEARCH_TITLE": "Поиск"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/sk.json b/Programmation mobile/src/trompette/src/assets/i18n/sk.json
new file mode 100644
index 0000000..96ad1d0
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/sk.json
@@ -0,0 +1,80 @@
+{
+ "BACK_BUTTON_TEXT": "Späť",
+
+ "NAME": "Meno",
+ "EMAIL": "Email",
+ "USERNAME": "Prihlasovacie meno",
+ "PASSWORD": "Heslo",
+ "LOGIN": "Prihlásiť",
+ "SIGNUP": "Registrovať",
+
+ "TAB1_TITLE": "Položky",
+ "TAB2_TITLE": "Hľadať",
+ "TAB3_TITLE": "Nastavenia",
+
+ "MAP_TITLE": "Mapa",
+
+ "TUTORIAL_SKIP_BUTTON": "Preskočiť",
+ "TUTORIAL_CONTINUE_BUTTON": "Pokračovať",
+
+ "TUTORIAL_SLIDE1_TITLE": "Vitajte v Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Ionic Super Starter kompletný Ionic starter projekt s mnohými predkonfigurovanými stránkami a doporučenými postupmi.",
+
+ "TUTORIAL_SLIDE2_TITLE": "Ako použiť Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Upravte si stránky, ktoré vám vyhovujú a ostatné odstránte. Poskytujeme mnoho šablón mobilných stránok, ako napríklad stránka na prihlásenie, registráciu, záložky a tento návod.",
+
+ "TUTORIAL_SLIDE3_TITLE": "Začíname",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Potrebujete pomoc? Prečítajte si Super Starter README, v ktorom je popísaný komplený návod",
+
+ "TUTORIAL_SLIDE4_TITLE": "Ste pripravený?",
+
+
+
+ "WELCOME_INTRO": "Prvý krok vašej novej Ionic aplikácie.",
+
+ "SETTINGS_TITLE": "Nastavenia",
+ "SETTINGS_OPTION1": "Možnosť 1",
+ "SETTINGS_OPTION2": "Možnosť 2",
+ "SETTINGS_OPTION3": "Možnosť 3",
+ "SETTINGS_OPTION4": "Možnosť 4",
+
+ "SETTINGS_PROFILE_BUTTON": "Upraviť profil",
+
+
+ "SETTINGS_PAGE_PROFILE": "Profil",
+
+
+ "WELCOME_TITLE": "Vitajte",
+
+
+
+
+
+ "LOGIN_TITLE": "Prihlásenie",
+ "LOGIN_ERROR": "Nedá sa prihlásiť. Skotrolujte zadané informácie a skuste to znova.",
+ "LOGIN_BUTTON": "Prihlásiť",
+ "SIGNUP_TITLE": "Registrácia",
+ "SIGNUP_ERROR": "Nedá sa vytvoriť konto. Skotrolujte zadané informácie a skuste to znova.",
+ "SIGNUP_BUTTON": "Registrovať",
+
+ "LIST_MASTER_TITLE": "Položky",
+
+ "ITEM_CREATE_TITLE": "Nová položka",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Pridať obrázok",
+
+
+
+
+
+ "ITEM_NAME_PLACEHOLDER": "Názov",
+ "ITEM_ABOUT_PLACEHOLDER": "O položke",
+
+ "DONE_BUTTON": "Hotovo",
+ "CANCEL_BUTTON": "Zrušiť",
+ "DELETE_BUTTON": "Vymazať",
+
+ "CARDS_TITLE": "Soc. siete",
+
+ "SEARCH_TITLE": "Hľadať",
+ "SEARCH_PLACEHOLDER": "Napíšte hľadaný výraz, e.g. \"Donald Duck\""
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/sl.json b/Programmation mobile/src/trompette/src/assets/i18n/sl.json
new file mode 100644
index 0000000..7d689e2
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/sl.json
@@ -0,0 +1,48 @@
+{
+ "NAME": "Ime",
+ "PASSWORD": "Geslo",
+ "EMAIL": "E-mail",
+ "LOGIN": "Prijava",
+ "SIGNUP": "Ustvari račun",
+
+ "TAB1_TITLE": "Elementi",
+ "TAB2_TITLE": "Iskanje",
+ "TAB3_TITLE": "Nastavitve",
+
+ "MAP_TITLE": "Zemljevid",
+
+ "TUTORIAL_SLIDE1_TITLE": "Dobrodošli v Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Ionic Super Starter je celosten Ionic začetni paket z pestrim naborom funkcionalnosti in uporablja najboljše prakse razvoja Ionic aplikacij.",
+
+ "TUTORIAL_SLIDE2_TITLE": "Kako uporabljati Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Sestavite poljubne tipe strani in odstranite tiste, ki jih ne potrebujete. Ponujamo vam mnogo različnih oblik strani, npr. stran za prijavo oz. vpis, stran z zavihki in stran tega vodiča.",
+
+ "TUTORIAL_SLIDE3_TITLE": "Kako začeti?",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Potrebujete pomoč? Poglejte si Super Starter README datoteko za celoten vodič.",
+
+ "SETTINGS_TITLE": "Nastavitve",
+ "SETTINGS_OPTION1": "Opcija 1",
+ "SETTINGS_OPTION2": "Opcija 2",
+ "SETTINGS_OPTION3": "Opcija 3",
+ "SETTINGS_OPTION4": "Opcija 4",
+
+ "SETTINGS_PAGE_PROFILE": "Uredi profil",
+
+ "WELCOME_TITLE": "Dobrodošli",
+
+ "LOGIN_TITLE": "Prijava",
+ "LOGIN_ERROR": "Napaka pri prijavi. Prosimo preglejte prijavne podatke računa in poskusite ponovno.",
+ "LOGIN_BUTTON": "Prijava",
+ "SIGNUP_TITLE": "Ustvari račun",
+ "SIGNUP_ERROR": "Napaka pri kreiranju računa. Prosimo preglejte podatke kreiranega računa in poskusite ponovno. ",
+ "SIGNUP_BUTTON": "Ustvari račun",
+
+ "LIST_MASTER_TITLE": "Elementi",
+
+ "ITEM_CREATE_TITLE": "Dodaj element",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Dodaj sliko",
+
+ "CARDS_TITLE": "Socialno",
+
+ "SEARCH_TITLE": "Iskanje"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/sn.json b/Programmation mobile/src/trompette/src/assets/i18n/sn.json
new file mode 100644
index 0000000..230265c
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/sn.json
@@ -0,0 +1,68 @@
+{
+ "BACK_BUTTON_TEXT": "Dzoka Shure",
+
+ "NAME": "Zita",
+ "EMAIL": "Tsambambozha",
+ "USERNAME": "Zitamushandisi",
+ "PASSWORD": "Chihori",
+ "LOGIN": "Sign mu",
+ "SIGNUP": "Gadzira homwe yejikichidzo",
+
+ "TAB1_TITLE": "Maaitemu",
+ "TAB2_TITLE": "Tsvaga",
+ "TAB3_TITLE": "Gadziro",
+
+ "MAP_TITLE": "Mepu",
+
+ "TUTORIAL_SKIP_BUTTON": "Darika",
+ "TUTORIAL_CONTINUE_BUTTON": "Enderera",
+
+ "TUTORIAL_SLIDE1_TITLE": "Tinokugachirai ku Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Ionic Super Starter i Ionic Starter yakarungwa zvakakwanira nemapeji akagadzirwa kare nenzira dzakanaka dzinotenderwa",
+
+ "TUTORIAL_SLIDE2_TITLE": "Mashandisiro eSuper Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Kororodza mapeji akasiyana siyana aunoda ,uchibvisa ayo ausingadi, Tapa huwarirwa hwakawanda unozivikanwa sokunge mapeji e login ne sign up,tabs uye peji rino rechidzidzo",
+
+ "TUTORIAL_SLIDE3_TITLE": "Kuvamba matangiro",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Unotsvaga rubatsiro? Ongorora Super Starter README kuti uwane chidzidzo chizere",
+
+ "TUTORIAL_SLIDE4_TITLE": "Wagadzirira kutamba?",
+
+ "WELCOME_INTRO": "Pekutangira kwako kugadzira jikichidzo guru yeIonic",
+
+ "SETTINGS_TITLE": "Gadziro",
+ "SETTINGS_OPTION1": "Sarudzo yekutanga",
+ "SETTINGS_OPTION2": "Sarudzo yepiri",
+ "SETTINGS_OPTION3": "Sarudzo yechitatu",
+ "SETTINGS_OPTION4": "Sarudzo yechina",
+
+ "SETTINGS_PROFILE_BUTTON": "Pepeta Profile",
+
+ "SETTINGS_PAGE_PROFILE": "Pepeta Profile",
+
+ "WELCOME_TITLE": "Tinokuchingamidza",
+
+ "LOGIN_TITLE": "Sign mu",
+ "LOGIN_ERROR": "Takundikana kuita sign in. Tinokumbirawo mutarire homwe yenyu yejikichidzo mugoedza zvakare",
+ "LOGIN_BUTTON": "Sign mu",
+ "SIGNUP_TITLE": "Gadzira homwe yejikichidzo",
+ "SIGNUP_ERROR": "Takundikana kugadzira homwe yejikichidzo ,Tinokumbirawo mutarire zvakatarwa pahomwe yenyu yejikichidzo moedza zvakare.",
+ "SIGNUP_BUTTON": "Gadzira homwe yejikichidzo",
+
+ "LIST_MASTER_TITLE": "maaitemu",
+
+ "ITEM_CREATE_TITLE": "Aitemu itsva",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Wedzera mufananidzo",
+
+ "ITEM_NAME_PLACEHOLDER": "Zita",
+ "ITEM_ABOUT_PLACEHOLDER": "Nezve",
+
+ "DONE_BUTTON": "aita",
+ "CANCEL_BUTTON": "kanzura",
+ "DELETE_BUTTON": "Dzima",
+
+ "CARDS_TITLE": "Social",
+
+ "SEARCH_TITLE": "Tsvaga",
+ "SEARCH_PLACEHOLDER": "Tsvaga mumaaitemu sokuti \"Donald Duck\""
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/sv.json b/Programmation mobile/src/trompette/src/assets/i18n/sv.json
new file mode 100644
index 0000000..fccbb4b
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/sv.json
@@ -0,0 +1,48 @@
+{
+ "NAME": "Namn",
+ "PASSWORD": "Lösenord",
+ "EMAIL": "E-post",
+ "LOGIN": "Logga in",
+ "SIGNUP": "Skapa konto",
+
+ "TAB1_TITLE": "Inlägg",
+ "TAB2_TITLE": "Sök",
+ "TAB3_TITLE": "Inställningar",
+
+ "MAP_TITLE": "Karta",
+
+ "TUTORIAL_SLIDE1_TITLE": "Välkommen till Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Ionic Super Starter är ett fullfjädrat startpaket för Ionic med många färdigbyggda sidor skapade med bästa praxis.",
+
+ "TUTORIAL_SLIDE2_TITLE": "Hur man använder Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Använd de sidor du önskar och ta bort de övriga. Startpaketet innehåller många vanliga vyer för mobilappar, såsom inloggning och kontoregistrering, flikar och denna introduktionsvy.",
+
+ "TUTORIAL_SLIDE3_TITLE": "Komma igång",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Behöver du hjälp? Läs README-dokumentet som innehåller en fullständig handledning för Super Starter.",
+
+ "SETTINGS_TITLE": "Inställningar",
+ "SETTINGS_OPTION1": "Alternativ 1",
+ "SETTINGS_OPTION2": "Alternativ 2",
+ "SETTINGS_OPTION3": "Alternativ 3",
+ "SETTINGS_OPTION4": "Alternativ 4",
+
+ "SETTINGS_PAGE_PROFILE": "Redigera profil",
+
+ "WELCOME_TITLE": "Välkommen",
+
+ "LOGIN_TITLE": "Logga in",
+ "LOGIN_ERROR": "Det gick inte att logga in. Kontrollera inloggningsuppgifterna och försök igen.",
+ "LOGIN_BUTTON": "Logga in",
+ "SIGNUP_TITLE": "Skapa konto",
+ "SIGNUP_ERROR": "Det gick inte att skapa ett konto. Kontrollera dina uppgifter och försök igen.",
+ "SIGNUP_BUTTON": "Skapa konto",
+
+ "LIST_MASTER_TITLE": "Inlägg",
+
+ "ITEM_CREATE_TITLE": "Nytt inlägg",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Lägg till bild",
+
+ "CARDS_TITLE": "Socialt",
+
+ "SEARCH_TITLE": "Sök"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/th.json b/Programmation mobile/src/trompette/src/assets/i18n/th.json
new file mode 100644
index 0000000..d269768
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/th.json
@@ -0,0 +1,47 @@
+{
+ "NAME": "ชื่อ",
+ "PASSWORD": "รหัสผ่าน",
+ "EMAIL": "อีเมล์",
+ "LOGIN": "เข้าระบบ",
+ "SIGNUP": "สมัครใช้งาน",
+
+ "TAB1_TITLE": "รายการ",
+ "TAB2_TITLE": "ค้นหา",
+ "TAB3_TITLE": "ตั้งค่า",
+
+ "MAP_TITLE": "แผนที่",
+
+ "TUTORIAL_SLIDE1_TITLE": "ยินดีต้อนรับสู่ the Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "The Ionic Super Starter คือโปรเจคเริ่มต้น Ionic ที่มีหน้าจอพร้อมใช้งานและเขียนแบบ Best practices",
+
+ "TUTORIAL_SLIDE2_TITLE": "วิธีใช้ Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "เก็บหน้าจอแบบที่ใช้ไว้ ลบที่ไม่ใช้ออก เราเตรียมหน้าจอที่ใช้กันประจำสำหรับแอพมือถือไว้ให้ เช่น หน้าล็อกอิน, หน้าสมัครใช้งาน, แทบ, และหน้าสอนใช้งานนี้",
+
+ "TUTORIAL_SLIDE3_TITLE": "เริ่มต้นใช้งาน",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "ต้องการความช่วยเหลือ? ลองอ่าน tutorial ฉบับเต็มจากไฟล์ README",
+
+ "SETTINGS_TITLE": "ตั้งค่า",
+ "SETTINGS_OPTION1": "ตัวเลือก 1",
+ "SETTINGS_OPTION2": "ตัวเลือก 2",
+ "SETTINGS_OPTION3": "ตัวเลือก 3",
+ "SETTINGS_OPTION4": "ตัวเลือก 4",
+
+ "SETTINGS_PAGE_PROFILE": "แก้ไขข้อมูลส่วนตัว",
+
+ "WELCOME_TITLE": "ยินดีต้อนรับ",
+
+ "LOGIN_TITLE": "การเข้าระบบ",
+ "LOGIN_ERROR": "เข้าระบบไม่ได้. ตรวจสอบข้อมูลที่กรอกแล้วกรุณาลองใหม่",
+ "LOGIN_BUTTON": "เข้าระบบ",
+ "SIGNUP_TITLE": "สมัครใช้งาน",
+ "SIGNUP_ERROR": "ไม่สามารถสร้างผู้ใช้ใหม่ กรุณาตรวจสอบข้อมูลที่กรอกแล้วลองใหม่",
+ "SIGNUP_BUTTON": "สมัคร",
+ "LIST_MASTER_TITLE": "รายการ",
+
+ "ITEM_CREATE_TITLE": "รายการใหม่",
+ "ITEM_CREATE_CHOOSE_IMAGE": "เพิ่มรูปภาพ",
+
+ "CARDS_TITLE": "โซเชียลเน็ตเวิร์ค",
+
+ "SEARCH_TITLE": "ค้นหา"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/tr.json b/Programmation mobile/src/trompette/src/assets/i18n/tr.json
new file mode 100644
index 0000000..395830b
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/tr.json
@@ -0,0 +1,37 @@
+{
+ "BACK_BUTTON_TEXT": "Geri",
+
+ "NAME": "İsim",
+ "PASSWORD": "Şifre",
+ "EMAIL": "Email",
+ "LOGIN": "Giriş yap",
+ "SIGNUP": "Kayıt ol",
+ "TAB1_TITLE": "Öğeler",
+ "TAB2_TITLE": "Arama",
+ "TAB3_TITLE": "Ayarlar",
+ "MAP_TITLE": "Harita",
+ "TUTORIAL_SLIDE1_TITLE": "Ionic Super Starter'a Hoşgeldin",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Ionic Super Starter hazırlanmış sayfalar ve çok iyi örneklerle tam donanımlı bir başlangıç paketidir.",
+ "TUTORIAL_SLIDE2_TITLE": "Super Starter Nasıl Kullanılır?",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "İstediğiniz çeşitte sayfa oluşturun ya da istemediklerinizi kaldırın. Biz sadece giriş ve kayıt sayfası, tab gibi yaygın sayfaları ve bu anlatım sayfasını hazırladık.",
+ "TUTORIAL_SLIDE3_TITLE": "Başlangıç",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Yardım mı lazım? Super Starter README dosyasını inceleyebilirsin.",
+ "SETTINGS_TITLE": "Ayarlar",
+ "SETTINGS_OPTION1": "Seçenek 1",
+ "SETTINGS_OPTION2": "Seçenek 2",
+ "SETTINGS_OPTION3": "Seçenek 3",
+ "SETTINGS_OPTION4": "Seçenek 4",
+ "SETTINGS_PAGE_PROFILE": "Profilini Düzenle",
+ "WELCOME_TITLE": "Hoşgeldiniz",
+ "LOGIN_TITLE": "Giriş yap",
+ "LOGIN_ERROR": "Giriş yapılamadı. Lütfen hesap bilgilerinizi kontrol edip tekrar deneyin.",
+ "LOGIN_BUTTON": "Giriş yap",
+ "SIGNUP_TITLE": "Kayıt ol",
+ "SIGNUP_ERROR": "Hesap oluşturulamadı. Lütfen hesap bilgilerinizi kontrol edip tekrar deneyin.",
+ "SIGNUP_BUTTON": "Kayıt ol",
+ "LIST_MASTER_TITLE": "Öğeler",
+ "ITEM_CREATE_TITLE": "Yeni Öğe",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Yeni Görsel",
+ "CARDS_TITLE": "Sosyal",
+ "SEARCH_TITLE": "Arama"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/ua.json b/Programmation mobile/src/trompette/src/assets/i18n/ua.json
new file mode 100644
index 0000000..7b779f8
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/ua.json
@@ -0,0 +1,48 @@
+{
+ "NAME": "Ім'я",
+ "PASSWORD": "Пароль",
+ "EMAIL": "Email",
+ "LOGIN": "Вхід",
+ "SIGNUP": "Реєстрація",
+
+ "TAB1_TITLE": "Список",
+ "TAB2_TITLE": "Пошук",
+ "TAB3_TITLE": "Налаштування",
+
+ "MAP_TITLE": "Мапа",
+
+ "TUTORIAL_SLIDE1_TITLE": "Ласкаво просимо до Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Ionic Super Starter це повноцінний набір прикладів для Ionic з великою кількістю готових сторінок та кращих практик.",
+
+ "TUTORIAL_SLIDE2_TITLE": "Як використовувати Super Starter",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "Створіть власний набір зі численних сторінок різного типу. Усе зайве можете викинути. Ми підготували багато типових макетів сторінок мобільних додатків, таких як сторінки входу та реєстрації, вкладки та сторінки-приклади, як ця.",
+
+ "TUTORIAL_SLIDE3_TITLE": "Початок роботи",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "Потрібна допомога? Ви знайдете повноцінну інструкцию до Super Starter у файлі README",
+
+ "SETTINGS_TITLE": "Налаштування",
+ "SETTINGS_OPTION1": "Варіант 1",
+ "SETTINGS_OPTION2": "Варіант 2",
+ "SETTINGS_OPTION3": "Варіант 3",
+ "SETTINGS_OPTION4": "Варіант 4",
+
+ "SETTINGS_PAGE_PROFILE": "Редагування профілю",
+
+ "WELCOME_TITLE": "Ласкаво просимо",
+
+ "LOGIN_TITLE": "Вхід",
+ "LOGIN_ERROR": "Неможливо увійти. Будь ласка перевірте інформацію Вашого облікового запису та спробуйте увійти ще раз.",
+ "LOGIN_BUTTON": "Увійти",
+ "SIGNUP_TITLE": "Реєстрація",
+ "SIGNUP_ERROR": "Неможливо створити обліковий запис. Будь ласка перевірте інформацію Вашого облікового запису та спробуйте ще раз.",
+ "SIGNUP_BUTTON": "Зареєструвати",
+
+ "LIST_MASTER_TITLE": "Список",
+
+ "ITEM_CREATE_TITLE": "Новий елемент",
+ "ITEM_CREATE_CHOOSE_IMAGE": "Додати зображення",
+
+ "CARDS_TITLE": "Соціальний",
+
+ "SEARCH_TITLE": "Пошук"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/zh-cmn-Hans.json b/Programmation mobile/src/trompette/src/assets/i18n/zh-cmn-Hans.json
new file mode 100644
index 0000000..618219c
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/zh-cmn-Hans.json
@@ -0,0 +1,68 @@
+{
+ "BACK_BUTTON_TEXT": "回退",
+
+ "NAME": "姓名",
+ "EMAIL": "邮箱",
+ "USERNAME": "登录名",
+ "PASSWORD": "口令",
+ "LOGIN": "登 录",
+ "SIGNUP": "注 册",
+
+ "TAB1_TITLE": "项目",
+ "TAB2_TITLE": "搜索",
+ "TAB3_TITLE": "设置",
+
+ "MAP_TITLE": "地图",
+
+ "TUTORIAL_SKIP_BUTTON": "跳过",
+ "TUTORIAL_CONTINUE_BUTTON": "继续",
+
+ "TUTORIAL_SLIDE1_TITLE": "欢迎来到 Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Ionic Super Starter 是一个功能全面,内置多个页面以及最佳实践的 Ionic 入门教程。",
+
+ "TUTORIAL_SLIDE2_TITLE": "如何使用 Super 入门教程",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "使用你需要的多种多样的页面删除你不需要的页面。我们提供许多常见移动 app 页面,如登录、注册页面,tabs 标签页,以及本教程页面。",
+
+ "TUTORIAL_SLIDE3_TITLE": "开始",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "需要帮助?查看 Super 入门教程的帮助文档,可获得完整教程。",
+
+ "TUTORIAL_SLIDE4_TITLE": "开始学习?",
+
+ "WELCOME_INTRO": "出发,你的下一个强大的 Ionic app",
+
+ "SETTINGS_TITLE": "设置",
+ "SETTINGS_OPTION1": "选项 1",
+ "SETTINGS_OPTION2": "选项 2",
+ "SETTINGS_OPTION3": "选项 3",
+ "SETTINGS_OPTION4": "选项 4",
+
+ "SETTINGS_PROFILE_BUTTON": "编辑资料",
+
+ "SETTINGS_PAGE_PROFILE": "编辑资料",
+
+ "WELCOME_TITLE": "欢迎",
+
+ "LOGIN_TITLE": "登录",
+ "LOGIN_ERROR": "无法登录。请检查账号信息然后重试。",
+ "LOGIN_BUTTON": "登 录",
+ "SIGNUP_TITLE": "注 册",
+ "SIGNUP_ERROR": "无法创建账号。请检查账户信息然后重试。",
+ "SIGNUP_BUTTON": "注 册",
+
+ "LIST_MASTER_TITLE": "项目",
+
+ "ITEM_CREATE_TITLE": "新项目",
+ "ITEM_CREATE_CHOOSE_IMAGE": "添加图片",
+
+ "ITEM_NAME_PLACEHOLDER": "名称",
+ "ITEM_ABOUT_PLACEHOLDER": "关于",
+
+ "DONE_BUTTON": "完 成",
+ "CANCEL_BUTTON": "取 消",
+ "DELETE_BUTTON": "删 除",
+
+ "CARDS_TITLE": "社交",
+
+ "SEARCH_TITLE": "搜索",
+ "SEARCH_PLACEHOLDER": "搜索项目列表, 比如:\"Donald Duck\""
+}
diff --git a/Programmation mobile/src/trompette/src/assets/i18n/zh-cmn-Hant.json b/Programmation mobile/src/trompette/src/assets/i18n/zh-cmn-Hant.json
new file mode 100644
index 0000000..1271bd3
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/assets/i18n/zh-cmn-Hant.json
@@ -0,0 +1,68 @@
+{
+ "BACK_BUTTON_TEXT": "回退",
+
+ "NAME": "姓名",
+ "EMAIL": "郵箱",
+ "USERNAME": "登錄名",
+ "PASSWORD": "口令",
+ "LOGIN": "登 錄",
+ "SIGNUP": "註 冊",
+
+ "TAB1_TITLE": "項目",
+ "TAB2_TITLE": "搜索",
+ "TAB3_TITLE": "設置",
+
+ "MAP_TITLE": "地圖",
+
+ "TUTORIAL_SKIP_BUTTON": "跳過",
+ "TUTORIAL_CONTINUE_BUTTON": "繼續",
+
+ "TUTORIAL_SLIDE1_TITLE": "歡迎來到 Ionic Super Starter",
+ "TUTORIAL_SLIDE1_DESCRIPTION": "Ionic Super Starter 是一個功能全面,內置多個頁面以及最佳實踐的 Ionic 入門教程。",
+
+ "TUTORIAL_SLIDE2_TITLE": "如何使用 Super 入門教程",
+ "TUTORIAL_SLIDE2_DESCRIPTION": "使用你需要的多種多樣的頁面刪除你不需要的頁面。我們提供許多常見移動 app 頁面,如登錄、註冊頁面,tabs 標簽頁,以及本教程頁面。",
+
+ "TUTORIAL_SLIDE3_TITLE": "開始",
+ "TUTORIAL_SLIDE3_DESCRIPTION": "需要幫助?查看 Super 入門教程的幫助文檔,可獲得完整教程。",
+
+ "TUTORIAL_SLIDE4_TITLE": "開始學習?",
+
+ "WELCOME_INTRO": "出發,你的下一個強大的 Ionic app",
+
+ "SETTINGS_TITLE": "設置",
+ "SETTINGS_OPTION1": "選項 1",
+ "SETTINGS_OPTION2": "選項 2",
+ "SETTINGS_OPTION3": "選項 3",
+ "SETTINGS_OPTION4": "選項 4",
+
+ "SETTINGS_PROFILE_BUTTON": "編輯資料",
+
+ "SETTINGS_PAGE_PROFILE": "編輯資料",
+
+ "WELCOME_TITLE": "歡迎",
+
+ "LOGIN_TITLE": "登錄",
+ "LOGIN_ERROR": "無法登錄。請檢查賬號信息然後重試。",
+ "LOGIN_BUTTON": "登 錄",
+ "SIGNUP_TITLE": "註 冊",
+ "SIGNUP_ERROR": "無法創建賬號。請檢查賬戶信息然後重試。",
+ "SIGNUP_BUTTON": "註 冊",
+
+ "LIST_MASTER_TITLE": "項目",
+
+ "ITEM_CREATE_TITLE": "新項目",
+ "ITEM_CREATE_CHOOSE_IMAGE": "添加圖片",
+
+ "ITEM_NAME_PLACEHOLDER": "名稱",
+ "ITEM_ABOUT_PLACEHOLDER": "關於",
+
+ "DONE_BUTTON": "完 成",
+ "CANCEL_BUTTON": "取 消",
+ "DELETE_BUTTON": "刪 除",
+
+ "CARDS_TITLE": "社交",
+
+ "SEARCH_TITLE": "搜索",
+ "SEARCH_PLACEHOLDER": "搜索項目列表, 例如:\"Donald Duck\""
+}
diff --git a/Programmation mobile/src/trompette/src/assets/icon/favicon.ico b/Programmation mobile/src/trompette/src/assets/icon/favicon.ico
new file mode 100644
index 0000000..d76fa29
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/icon/favicon.ico differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/advance-card-bttf.png b/Programmation mobile/src/trompette/src/assets/img/advance-card-bttf.png
new file mode 100644
index 0000000..8a392c1
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/advance-card-bttf.png differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/advance-card-jp.jpg b/Programmation mobile/src/trompette/src/assets/img/advance-card-jp.jpg
new file mode 100644
index 0000000..95880e8
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/advance-card-jp.jpg differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/advance-card-tmntr.jpg b/Programmation mobile/src/trompette/src/assets/img/advance-card-tmntr.jpg
new file mode 100644
index 0000000..5b881fc
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/advance-card-tmntr.jpg differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/appicon.png b/Programmation mobile/src/trompette/src/assets/img/appicon.png
new file mode 100644
index 0000000..fce4184
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/appicon.png differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/badu-live.png b/Programmation mobile/src/trompette/src/assets/img/badu-live.png
new file mode 100644
index 0000000..aa0b7ff
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/badu-live.png differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/bjork-live.jpg b/Programmation mobile/src/trompette/src/assets/img/bjork-live.jpg
new file mode 100644
index 0000000..74f1ff1
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/bjork-live.jpg differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/ian-avatar.png b/Programmation mobile/src/trompette/src/assets/img/ian-avatar.png
new file mode 100644
index 0000000..6e2b0d4
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/ian-avatar.png differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/ica-slidebox-img-1.png b/Programmation mobile/src/trompette/src/assets/img/ica-slidebox-img-1.png
new file mode 100644
index 0000000..9f2602b
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/ica-slidebox-img-1.png differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/ica-slidebox-img-2.png b/Programmation mobile/src/trompette/src/assets/img/ica-slidebox-img-2.png
new file mode 100644
index 0000000..30b546d
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/ica-slidebox-img-2.png differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/ica-slidebox-img-3.png b/Programmation mobile/src/trompette/src/assets/img/ica-slidebox-img-3.png
new file mode 100644
index 0000000..a304e88
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/ica-slidebox-img-3.png differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/ica-slidebox-img-4.png b/Programmation mobile/src/trompette/src/assets/img/ica-slidebox-img-4.png
new file mode 100644
index 0000000..2f263d6
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/ica-slidebox-img-4.png differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/marty-avatar.png b/Programmation mobile/src/trompette/src/assets/img/marty-avatar.png
new file mode 100644
index 0000000..bd01ede
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/marty-avatar.png differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/nin-live.png b/Programmation mobile/src/trompette/src/assets/img/nin-live.png
new file mode 100644
index 0000000..dae2a5d
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/nin-live.png differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/queen-live.png b/Programmation mobile/src/trompette/src/assets/img/queen-live.png
new file mode 100644
index 0000000..52547c3
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/queen-live.png differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/rundmc-live.png b/Programmation mobile/src/trompette/src/assets/img/rundmc-live.png
new file mode 100644
index 0000000..b94e175
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/rundmc-live.png differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/sarah-avatar.png.jpeg b/Programmation mobile/src/trompette/src/assets/img/sarah-avatar.png.jpeg
new file mode 100644
index 0000000..baa2f8d
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/sarah-avatar.png.jpeg differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/speakers/bear.jpg b/Programmation mobile/src/trompette/src/assets/img/speakers/bear.jpg
new file mode 100644
index 0000000..30e575e
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/speakers/bear.jpg differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/speakers/cheetah.jpg b/Programmation mobile/src/trompette/src/assets/img/speakers/cheetah.jpg
new file mode 100644
index 0000000..8370e35
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/speakers/cheetah.jpg differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/speakers/duck.jpg b/Programmation mobile/src/trompette/src/assets/img/speakers/duck.jpg
new file mode 100644
index 0000000..16574d5
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/speakers/duck.jpg differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/speakers/eagle.jpg b/Programmation mobile/src/trompette/src/assets/img/speakers/eagle.jpg
new file mode 100644
index 0000000..bb45922
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/speakers/eagle.jpg differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/speakers/elephant.jpg b/Programmation mobile/src/trompette/src/assets/img/speakers/elephant.jpg
new file mode 100644
index 0000000..2718d8d
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/speakers/elephant.jpg differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/speakers/giraffe.jpg b/Programmation mobile/src/trompette/src/assets/img/speakers/giraffe.jpg
new file mode 100644
index 0000000..38d167e
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/speakers/giraffe.jpg differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/speakers/iguana.jpg b/Programmation mobile/src/trompette/src/assets/img/speakers/iguana.jpg
new file mode 100644
index 0000000..b5bd117
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/speakers/iguana.jpg differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/speakers/kitten.jpg b/Programmation mobile/src/trompette/src/assets/img/speakers/kitten.jpg
new file mode 100644
index 0000000..d0e6319
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/speakers/kitten.jpg differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/speakers/lion.jpg b/Programmation mobile/src/trompette/src/assets/img/speakers/lion.jpg
new file mode 100644
index 0000000..6d65206
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/speakers/lion.jpg differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/speakers/mouse.jpg b/Programmation mobile/src/trompette/src/assets/img/speakers/mouse.jpg
new file mode 100644
index 0000000..c722851
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/speakers/mouse.jpg differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/speakers/puppy.jpg b/Programmation mobile/src/trompette/src/assets/img/speakers/puppy.jpg
new file mode 100644
index 0000000..5ca2797
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/speakers/puppy.jpg differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/speakers/rabbit.jpg b/Programmation mobile/src/trompette/src/assets/img/speakers/rabbit.jpg
new file mode 100644
index 0000000..9aced60
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/speakers/rabbit.jpg differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/speakers/turtle.jpg b/Programmation mobile/src/trompette/src/assets/img/speakers/turtle.jpg
new file mode 100644
index 0000000..2c26345
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/speakers/turtle.jpg differ
diff --git a/Programmation mobile/src/trompette/src/assets/img/splashbg.png b/Programmation mobile/src/trompette/src/assets/img/splashbg.png
new file mode 100644
index 0000000..2832c6b
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/img/splashbg.png differ
diff --git a/Programmation mobile/src/trompette/src/assets/imgs/logo.png b/Programmation mobile/src/trompette/src/assets/imgs/logo.png
new file mode 100644
index 0000000..80f631d
Binary files /dev/null and b/Programmation mobile/src/trompette/src/assets/imgs/logo.png differ
diff --git a/Programmation mobile/src/trompette/src/index.html b/Programmation mobile/src/trompette/src/index.html
new file mode 100644
index 0000000..e254871
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/index.html
@@ -0,0 +1,49 @@
+
+
+
+
+ Ionic App
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Programmation mobile/src/trompette/src/manifest.json b/Programmation mobile/src/trompette/src/manifest.json
new file mode 100644
index 0000000..f6456bb
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/manifest.json
@@ -0,0 +1,13 @@
+{
+ "name": "Ionic",
+ "short_name": "Ionic",
+ "start_url": "index.html",
+ "display": "standalone",
+ "icons": [{
+ "src": "assets/imgs/logo.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }],
+ "background_color": "#4e8ef7",
+ "theme_color": "#4e8ef7"
+}
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/mocks/providers/items.ts b/Programmation mobile/src/trompette/src/mocks/providers/items.ts
new file mode 100644
index 0000000..727c17c
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/mocks/providers/items.ts
@@ -0,0 +1,85 @@
+import { Injectable } from '@angular/core';
+
+import { Item } from '../../models/item';
+
+@Injectable()
+export class Items {
+ items: Item[] = [];
+
+ defaultItem: any = {
+ "name": "Burt Bear",
+ "profilePic": "assets/img/speakers/bear.jpg",
+ "about": "Burt is a Bear.",
+ };
+
+
+ constructor() {
+ let items = [
+ {
+ "name": "Burt Bear",
+ "profilePic": "assets/img/speakers/bear.jpg",
+ "about": "Burt is a Bear."
+ },
+ {
+ "name": "Charlie Cheetah",
+ "profilePic": "assets/img/speakers/cheetah.jpg",
+ "about": "Charlie is a Cheetah."
+ },
+ {
+ "name": "Donald Duck",
+ "profilePic": "assets/img/speakers/duck.jpg",
+ "about": "Donald is a Duck."
+ },
+ {
+ "name": "Eva Eagle",
+ "profilePic": "assets/img/speakers/eagle.jpg",
+ "about": "Eva is an Eagle."
+ },
+ {
+ "name": "Ellie Elephant",
+ "profilePic": "assets/img/speakers/elephant.jpg",
+ "about": "Ellie is an Elephant."
+ },
+ {
+ "name": "Molly Mouse",
+ "profilePic": "assets/img/speakers/mouse.jpg",
+ "about": "Molly is a Mouse."
+ },
+ {
+ "name": "Paul Puppy",
+ "profilePic": "assets/img/speakers/puppy.jpg",
+ "about": "Paul is a Puppy."
+ }
+ ];
+
+ for (let item of items) {
+ this.items.push(new Item(item));
+ }
+ }
+
+ query(params?: any) {
+ if (!params) {
+ return this.items;
+ }
+
+ return this.items.filter((item) => {
+ for (let key in params) {
+ let field = item[key];
+ if (typeof field == 'string' && field.toLowerCase().indexOf(params[key].toLowerCase()) >= 0) {
+ return item;
+ } else if (field == params[key]) {
+ return item;
+ }
+ }
+ return null;
+ });
+ }
+
+ add(item: Item) {
+ this.items.push(item);
+ }
+
+ delete(item: Item) {
+ this.items.splice(this.items.indexOf(item), 1);
+ }
+}
diff --git a/Programmation mobile/src/trompette/src/models/item.ts b/Programmation mobile/src/trompette/src/models/item.ts
new file mode 100644
index 0000000..30b024a
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/models/item.ts
@@ -0,0 +1,24 @@
+/**
+ * A generic model that our Master-Detail pages list, create, and delete.
+ *
+ * Change "Item" to the noun your app will use. For example, a "Contact," or a
+ * "Customer," or an "Animal," or something like that.
+ *
+ * The Items service manages creating instances of Item, so go ahead and rename
+ * that something that fits your app as well.
+ */
+export class Item {
+
+ constructor(fields: any) {
+ // Quick and dirty extend/assign fields to this model
+ for (const f in fields) {
+ // @ts-ignore
+ this[f] = fields[f];
+ }
+ }
+
+}
+
+export interface Item {
+ [prop: string]: any;
+}
diff --git a/Programmation mobile/src/trompette/src/pages/README.md b/Programmation mobile/src/trompette/src/pages/README.md
new file mode 100644
index 0000000..08b9d23
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/README.md
@@ -0,0 +1,3 @@
+# Pages
+
+Each page type available has a corresponding README, take a look by navigating to a page directory above.
diff --git a/Programmation mobile/src/trompette/src/pages/cards/README.md b/Programmation mobile/src/trompette/src/pages/cards/README.md
new file mode 100644
index 0000000..3cb6e8a
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/cards/README.md
@@ -0,0 +1,3 @@
+# Cards
+
+The Cards page is a common cards-based layout as seen in such apps as Facebook.
diff --git a/Programmation mobile/src/trompette/src/pages/cards/cards.html b/Programmation mobile/src/trompette/src/pages/cards/cards.html
new file mode 100644
index 0000000..1b111ec
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/cards/cards.html
@@ -0,0 +1,48 @@
+
+
+
+ {{ 'CARDS_TITLE' | translate }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.user.name}}
+ {{item.date}}
+
+
+
+
+
+ {{item.content}}
+
+
+
+
+
+
+
+
+
+
+
+ 11h ago
+
+
+
+
+
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/pages/cards/cards.module.ts b/Programmation mobile/src/trompette/src/pages/cards/cards.module.ts
new file mode 100644
index 0000000..17b8e6f
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/cards/cards.module.ts
@@ -0,0 +1,19 @@
+import { NgModule } from '@angular/core';
+import { TranslateModule } from '@ngx-translate/core';
+import { IonicPageModule } from 'ionic-angular';
+
+import { CardsPage } from './cards';
+
+@NgModule({
+ declarations: [
+ CardsPage,
+ ],
+ imports: [
+ IonicPageModule.forChild(CardsPage),
+ TranslateModule.forChild()
+ ],
+ exports: [
+ CardsPage
+ ]
+})
+export class CardsPageModule { }
diff --git a/Programmation mobile/src/trompette/src/pages/cards/cards.scss b/Programmation mobile/src/trompette/src/pages/cards/cards.scss
new file mode 100644
index 0000000..83b9b5d
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/cards/cards.scss
@@ -0,0 +1,3 @@
+page-cards {
+
+}
diff --git a/Programmation mobile/src/trompette/src/pages/cards/cards.ts b/Programmation mobile/src/trompette/src/pages/cards/cards.ts
new file mode 100644
index 0000000..8580a5c
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/cards/cards.ts
@@ -0,0 +1,44 @@
+import { Component } from '@angular/core';
+import { IonicPage, NavController } from 'ionic-angular';
+
+@IonicPage()
+@Component({
+ selector: 'page-cards',
+ templateUrl: 'cards.html'
+})
+export class CardsPage {
+ cardItems: any[];
+
+ constructor(public navCtrl: NavController) {
+ this.cardItems = [
+ {
+ user: {
+ avatar: 'assets/img/marty-avatar.png',
+ name: 'Marty McFly'
+ },
+ date: 'November 5, 1955',
+ image: 'assets/img/advance-card-bttf.png',
+ content: 'Wait a minute. Wait a minute, Doc. Uhhh... Are you telling me that you built a time machine... out of a DeLorean?! Whoa. This is heavy.',
+ },
+ {
+ user: {
+ avatar: 'assets/img/sarah-avatar.png.jpeg',
+ name: 'Sarah Connor'
+ },
+ date: 'May 12, 1984',
+ image: 'assets/img/advance-card-tmntr.jpg',
+ content: 'I face the unknown future, with a sense of hope. Because if a machine, a Terminator, can learn the value of human life, maybe we can too.'
+ },
+ {
+ user: {
+ avatar: 'assets/img/ian-avatar.png',
+ name: 'Dr. Ian Malcolm'
+ },
+ date: 'June 28, 1990',
+ image: 'assets/img/advance-card-jp.jpg',
+ content: 'Your scientists were so preoccupied with whether or not they could, that they didn\'t stop to think if they should.'
+ }
+ ];
+
+ }
+}
diff --git a/Programmation mobile/src/trompette/src/pages/content/README.md b/Programmation mobile/src/trompette/src/pages/content/README.md
new file mode 100644
index 0000000..a27f443
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/content/README.md
@@ -0,0 +1,3 @@
+# Content
+
+The content page is a simple page meant for text content.
diff --git a/Programmation mobile/src/trompette/src/pages/content/content.html b/Programmation mobile/src/trompette/src/pages/content/content.html
new file mode 100644
index 0000000..f60383d
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/content/content.html
@@ -0,0 +1,13 @@
+
+
+
+ Content
+
+
+
+
+
+
+ This is a perfect starting point for a page with primarily text content. The body is padded nicely and ready for prose.
+
+
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/pages/content/content.module.ts b/Programmation mobile/src/trompette/src/pages/content/content.module.ts
new file mode 100644
index 0000000..f8e71da
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/content/content.module.ts
@@ -0,0 +1,19 @@
+import { NgModule } from '@angular/core';
+import { TranslateModule } from '@ngx-translate/core';
+import { IonicPageModule } from 'ionic-angular';
+
+import { ContentPage } from './content';
+
+@NgModule({
+ declarations: [
+ ContentPage,
+ ],
+ imports: [
+ IonicPageModule.forChild(ContentPage),
+ TranslateModule.forChild()
+ ],
+ exports: [
+ ContentPage
+ ]
+})
+export class ContentPageModule { }
diff --git a/Programmation mobile/src/trompette/src/pages/content/content.scss b/Programmation mobile/src/trompette/src/pages/content/content.scss
new file mode 100644
index 0000000..d4cc8fc
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/content/content.scss
@@ -0,0 +1,3 @@
+page-home {
+
+}
diff --git a/Programmation mobile/src/trompette/src/pages/content/content.ts b/Programmation mobile/src/trompette/src/pages/content/content.ts
new file mode 100644
index 0000000..08c4ec3
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/content/content.ts
@@ -0,0 +1,13 @@
+import { Component } from '@angular/core';
+import { IonicPage, NavController } from 'ionic-angular';
+
+@IonicPage()
+@Component({
+ selector: 'page-content',
+ templateUrl: 'content.html'
+})
+export class ContentPage {
+
+ constructor(public navCtrl: NavController) { }
+
+}
diff --git a/Programmation mobile/src/trompette/src/pages/index.ts b/Programmation mobile/src/trompette/src/pages/index.ts
new file mode 100644
index 0000000..af782ea
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/index.ts
@@ -0,0 +1,11 @@
+// The page the user lands on after opening the app and without a session
+export const FirstRunPage = 'TutorialPage';
+
+// The main page the user will see as they use the app over a long period of time.
+// Change this if not using tabs
+export const MainPage = 'TabsPage';
+
+// The initial root pages for our tabs (remove if not using tabs)
+export const Tab1Root = 'ListMasterPage';
+export const Tab2Root = 'SearchPage';
+export const Tab3Root = 'SettingsPage';
diff --git a/Programmation mobile/src/trompette/src/pages/item-create/README.md b/Programmation mobile/src/trompette/src/pages/item-create/README.md
new file mode 100644
index 0000000..6a85d28
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/item-create/README.md
@@ -0,0 +1,3 @@
+# Item Create
+
+The Item Create Page creates new instances of `Item`, and will most commonly be used in a modal window to be presented by `ListMasterPage`.
diff --git a/Programmation mobile/src/trompette/src/pages/item-create/item-create.html b/Programmation mobile/src/trompette/src/pages/item-create/item-create.html
new file mode 100644
index 0000000..7b846ad
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/item-create/item-create.html
@@ -0,0 +1,47 @@
+
+
+
+ {{ 'ITEM_CREATE_TITLE' | translate }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/pages/item-create/item-create.module.ts b/Programmation mobile/src/trompette/src/pages/item-create/item-create.module.ts
new file mode 100644
index 0000000..31e9dd3
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/item-create/item-create.module.ts
@@ -0,0 +1,19 @@
+import { NgModule } from '@angular/core';
+import { TranslateModule } from '@ngx-translate/core';
+import { IonicPageModule } from 'ionic-angular';
+
+import { ItemCreatePage } from './item-create';
+
+@NgModule({
+ declarations: [
+ ItemCreatePage,
+ ],
+ imports: [
+ IonicPageModule.forChild(ItemCreatePage),
+ TranslateModule.forChild()
+ ],
+ exports: [
+ ItemCreatePage
+ ]
+})
+export class ItemCreatePageModule { }
diff --git a/Programmation mobile/src/trompette/src/pages/item-create/item-create.scss b/Programmation mobile/src/trompette/src/pages/item-create/item-create.scss
new file mode 100644
index 0000000..8fe7a79
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/item-create/item-create.scss
@@ -0,0 +1,35 @@
+page-item-create {
+ .profile-image-wrapper {
+ text-align: center;
+ margin: 20px 0;
+
+ .profile-image {
+ width: 96px;
+ height: 96px;
+ border-radius: 50%;
+
+ display: inline-block;
+
+ background-repeat: no-repeat;
+ background-size: cover;
+ background-position: center;
+ }
+
+ .profile-image-placeholder {
+ display: inline-block;
+
+ background-color: #eee;
+ width: 96px;
+ height: 96px;
+ border-radius: 50%;
+
+ font-size: 12px;
+
+ ion-icon {
+ font-size: 44px;
+ margin-bottom: -10px;
+ margin-top: 10px;
+ }
+ }
+ }
+}
diff --git a/Programmation mobile/src/trompette/src/pages/item-create/item-create.ts b/Programmation mobile/src/trompette/src/pages/item-create/item-create.ts
new file mode 100644
index 0000000..a3c1b45
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/item-create/item-create.ts
@@ -0,0 +1,83 @@
+import { Component, ViewChild } from '@angular/core';
+import { FormBuilder, FormGroup, Validators } from '@angular/forms';
+import { Camera } from '@ionic-native/camera';
+import { IonicPage, NavController, ViewController } from 'ionic-angular';
+
+@IonicPage()
+@Component({
+ selector: 'page-item-create',
+ templateUrl: 'item-create.html'
+})
+export class ItemCreatePage {
+ @ViewChild('fileInput') fileInput;
+
+ isReadyToSave: boolean;
+
+ item: any;
+
+ form: FormGroup;
+
+ constructor(public navCtrl: NavController, public viewCtrl: ViewController, formBuilder: FormBuilder, public camera: Camera) {
+ this.form = formBuilder.group({
+ profilePic: [''],
+ name: ['', Validators.required],
+ about: ['']
+ });
+
+ // Watch the form for changes, and
+ this.form.valueChanges.subscribe((v) => {
+ this.isReadyToSave = this.form.valid;
+ });
+ }
+
+ ionViewDidLoad() {
+
+ }
+
+ getPicture() {
+ if (Camera['installed']()) {
+ this.camera.getPicture({
+ destinationType: this.camera.DestinationType.DATA_URL,
+ targetWidth: 96,
+ targetHeight: 96
+ }).then((data) => {
+ this.form.patchValue({ 'profilePic': 'data:image/jpg;base64,' + data });
+ }, (err) => {
+ alert('Unable to take photo');
+ })
+ } else {
+ this.fileInput.nativeElement.click();
+ }
+ }
+
+ processWebImage(event) {
+ let reader = new FileReader();
+ reader.onload = (readerEvent) => {
+
+ let imageData = (readerEvent.target as any).result;
+ this.form.patchValue({ 'profilePic': imageData });
+ };
+
+ reader.readAsDataURL(event.target.files[0]);
+ }
+
+ getProfileImageStyle() {
+ return 'url(' + this.form.controls['profilePic'].value + ')'
+ }
+
+ /**
+ * The user cancelled, so we dismiss without sending data back.
+ */
+ cancel() {
+ this.viewCtrl.dismiss();
+ }
+
+ /**
+ * The user is done and wants to create the item, so return it
+ * back to the presenter.
+ */
+ done() {
+ if (!this.form.valid) { return; }
+ this.viewCtrl.dismiss(this.form.value);
+ }
+}
diff --git a/Programmation mobile/src/trompette/src/pages/item-detail/README.md b/Programmation mobile/src/trompette/src/pages/item-detail/README.md
new file mode 100644
index 0000000..be37bfe
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/item-detail/README.md
@@ -0,0 +1,3 @@
+# Item Detail
+
+The Item Detail Page shows the details of instances of `Item`, and will most commonly be navigated to from `ListMasterPage`.
diff --git a/Programmation mobile/src/trompette/src/pages/item-detail/item-detail.html b/Programmation mobile/src/trompette/src/pages/item-detail/item-detail.html
new file mode 100644
index 0000000..11f9329
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/item-detail/item-detail.html
@@ -0,0 +1,18 @@
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
+
+
+
+
{{item.name}}
+
{{item.about}}
+
+
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/pages/item-detail/item-detail.module.ts b/Programmation mobile/src/trompette/src/pages/item-detail/item-detail.module.ts
new file mode 100644
index 0000000..00665c4
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/item-detail/item-detail.module.ts
@@ -0,0 +1,19 @@
+import { NgModule } from '@angular/core';
+import { TranslateModule } from '@ngx-translate/core';
+import { IonicPageModule } from 'ionic-angular';
+
+import { ItemDetailPage } from './item-detail';
+
+@NgModule({
+ declarations: [
+ ItemDetailPage,
+ ],
+ imports: [
+ IonicPageModule.forChild(ItemDetailPage),
+ TranslateModule.forChild()
+ ],
+ exports: [
+ ItemDetailPage
+ ]
+})
+export class ItemDetailPageModule { }
diff --git a/Programmation mobile/src/trompette/src/pages/item-detail/item-detail.scss b/Programmation mobile/src/trompette/src/pages/item-detail/item-detail.scss
new file mode 100644
index 0000000..dd3cb3f
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/item-detail/item-detail.scss
@@ -0,0 +1,14 @@
+page-item-detail {
+ .item-profile {
+ width: 100%;
+ background-position: center center;
+ background-size: cover;
+ height: 250px;
+ }
+
+ .item-detail {
+ width: 100%;
+ background: white;
+ position: absolute;
+ }
+}
diff --git a/Programmation mobile/src/trompette/src/pages/item-detail/item-detail.ts b/Programmation mobile/src/trompette/src/pages/item-detail/item-detail.ts
new file mode 100644
index 0000000..c234084
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/item-detail/item-detail.ts
@@ -0,0 +1,18 @@
+import { Component } from '@angular/core';
+import { IonicPage, NavController, NavParams } from 'ionic-angular';
+
+import { Items } from '../../providers';
+
+@IonicPage()
+@Component({
+ selector: 'page-item-detail',
+ templateUrl: 'item-detail.html'
+})
+export class ItemDetailPage {
+ item: any;
+
+ constructor(public navCtrl: NavController, navParams: NavParams, items: Items) {
+ this.item = navParams.get('item') || items.defaultItem;
+ }
+
+}
diff --git a/Programmation mobile/src/trompette/src/pages/list-master/README.md b/Programmation mobile/src/trompette/src/pages/list-master/README.md
new file mode 100644
index 0000000..1f03910
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/list-master/README.md
@@ -0,0 +1,3 @@
+# List Master
+
+The List Master Page shows the details of instances of `Item`, and will most commonly be navigated to from `ListMasterPage`.
diff --git a/Programmation mobile/src/trompette/src/pages/list-master/list-master.html b/Programmation mobile/src/trompette/src/pages/list-master/list-master.html
new file mode 100644
index 0000000..d48b91b
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/list-master/list-master.html
@@ -0,0 +1,35 @@
+
+
+
+ {{ 'LIST_MASTER_TITLE' | translate }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/pages/list-master/list-master.module.ts b/Programmation mobile/src/trompette/src/pages/list-master/list-master.module.ts
new file mode 100644
index 0000000..d725b11
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/list-master/list-master.module.ts
@@ -0,0 +1,19 @@
+import { NgModule } from '@angular/core';
+import { TranslateModule } from '@ngx-translate/core';
+import { IonicPageModule } from 'ionic-angular';
+
+import { ListMasterPage } from './list-master';
+
+@NgModule({
+ declarations: [
+ ListMasterPage,
+ ],
+ imports: [
+ IonicPageModule.forChild(ListMasterPage),
+ TranslateModule.forChild()
+ ],
+ exports: [
+ ListMasterPage
+ ]
+})
+export class ListMasterPageModule { }
diff --git a/Programmation mobile/src/trompette/src/pages/list-master/list-master.scss b/Programmation mobile/src/trompette/src/pages/list-master/list-master.scss
new file mode 100644
index 0000000..6637438
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/list-master/list-master.scss
@@ -0,0 +1,3 @@
+page-list-master {
+
+}
diff --git a/Programmation mobile/src/trompette/src/pages/list-master/list-master.ts b/Programmation mobile/src/trompette/src/pages/list-master/list-master.ts
new file mode 100644
index 0000000..fd3a2a2
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/list-master/list-master.ts
@@ -0,0 +1,54 @@
+import { Component } from '@angular/core';
+import { IonicPage, ModalController, NavController } from 'ionic-angular';
+
+import { Item } from '../../models/item';
+import { Items } from '../../providers';
+
+@IonicPage()
+@Component({
+ selector: 'page-list-master',
+ templateUrl: 'list-master.html'
+})
+export class ListMasterPage {
+ currentItems: Item[];
+
+ constructor(public navCtrl: NavController, public items: Items, public modalCtrl: ModalController) {
+ this.currentItems = this.items.query();
+ }
+
+ /**
+ * The view loaded, let's query our items for the list
+ */
+ ionViewDidLoad() {
+ }
+
+ /**
+ * Prompt the user to add a new item. This shows our ItemCreatePage in a
+ * modal and then adds the new item to our data source if the user created one.
+ */
+ addItem() {
+ let addModal = this.modalCtrl.create('ItemCreatePage');
+ addModal.onDidDismiss(item => {
+ if (item) {
+ this.items.add(item);
+ }
+ })
+ addModal.present();
+ }
+
+ /**
+ * Delete an item from the list of items.
+ */
+ deleteItem(item) {
+ this.items.delete(item);
+ }
+
+ /**
+ * Navigate to the detail page for this item.
+ */
+ openItem(item: Item) {
+ this.navCtrl.push('ItemDetailPage', {
+ item: item
+ });
+ }
+}
diff --git a/Programmation mobile/src/trompette/src/pages/login/README.md b/Programmation mobile/src/trompette/src/pages/login/README.md
new file mode 100644
index 0000000..b5a850e
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/login/README.md
@@ -0,0 +1,3 @@
+# Login
+
+The Login page renders a login form with email/password by default and an optional username field.
diff --git a/Programmation mobile/src/trompette/src/pages/login/login.html b/Programmation mobile/src/trompette/src/pages/login/login.html
new file mode 100644
index 0000000..e0ec764
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/login/login.html
@@ -0,0 +1,39 @@
+
+
+
+ {{ 'LOGIN_TITLE' | translate }}
+
+
+
+
+
+
+
+
diff --git a/Programmation mobile/src/trompette/src/pages/login/login.module.ts b/Programmation mobile/src/trompette/src/pages/login/login.module.ts
new file mode 100644
index 0000000..5f60452
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/login/login.module.ts
@@ -0,0 +1,19 @@
+import { NgModule } from '@angular/core';
+import { TranslateModule } from '@ngx-translate/core';
+import { IonicPageModule } from 'ionic-angular';
+
+import { LoginPage } from './login';
+
+@NgModule({
+ declarations: [
+ LoginPage,
+ ],
+ imports: [
+ IonicPageModule.forChild(LoginPage),
+ TranslateModule.forChild()
+ ],
+ exports: [
+ LoginPage
+ ]
+})
+export class LoginPageModule { }
diff --git a/Programmation mobile/src/trompette/src/pages/login/login.scss b/Programmation mobile/src/trompette/src/pages/login/login.scss
new file mode 100644
index 0000000..ea9d5c1
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/login/login.scss
@@ -0,0 +1,2 @@
+page-login {
+}
diff --git a/Programmation mobile/src/trompette/src/pages/login/login.ts b/Programmation mobile/src/trompette/src/pages/login/login.ts
new file mode 100644
index 0000000..b98c204
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/login/login.ts
@@ -0,0 +1,50 @@
+import { Component } from '@angular/core';
+import { TranslateService } from '@ngx-translate/core';
+import { IonicPage, NavController, ToastController } from 'ionic-angular';
+
+import { User } from '../../providers';
+import { MainPage } from '../';
+
+@IonicPage()
+@Component({
+ selector: 'page-login',
+ templateUrl: 'login.html'
+})
+export class LoginPage {
+ // The account fields for the login form.
+ // If you're using the username field with or without email, make
+ // sure to add it to the type
+ account: { email: string, password: string } = {
+ email: 'test@example.com',
+ password: 'test'
+ };
+
+ // Our translated text strings
+ private loginErrorString: string;
+
+ constructor(public navCtrl: NavController,
+ public user: User,
+ public toastCtrl: ToastController,
+ public translateService: TranslateService) {
+
+ this.translateService.get('LOGIN_ERROR').subscribe((value) => {
+ this.loginErrorString = value;
+ })
+ }
+
+ // Attempt to login in through our User service
+ doLogin() {
+ this.user.login(this.account).subscribe((resp) => {
+ this.navCtrl.push(MainPage);
+ }, (err) => {
+ this.navCtrl.push(MainPage);
+ // Unable to log in
+ let toast = this.toastCtrl.create({
+ message: this.loginErrorString,
+ duration: 3000,
+ position: 'top'
+ });
+ toast.present();
+ });
+ }
+}
diff --git a/Programmation mobile/src/trompette/src/pages/menu/README.md b/Programmation mobile/src/trompette/src/pages/menu/README.md
new file mode 100644
index 0000000..f61754e
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/menu/README.md
@@ -0,0 +1,3 @@
+# Menu
+
+The Menu page renders a side menu UI.
diff --git a/Programmation mobile/src/trompette/src/pages/menu/menu.html b/Programmation mobile/src/trompette/src/pages/menu/menu.html
new file mode 100644
index 0000000..57a3ea9
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/menu/menu.html
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/pages/menu/menu.module.ts b/Programmation mobile/src/trompette/src/pages/menu/menu.module.ts
new file mode 100644
index 0000000..004c82f
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/menu/menu.module.ts
@@ -0,0 +1,19 @@
+import { NgModule } from '@angular/core';
+import { TranslateModule } from '@ngx-translate/core';
+import { IonicPageModule } from 'ionic-angular';
+
+import { MenuPage } from './menu';
+
+@NgModule({
+ declarations: [
+ MenuPage,
+ ],
+ imports: [
+ IonicPageModule.forChild(MenuPage),
+ TranslateModule.forChild()
+ ],
+ exports: [
+ MenuPage
+ ]
+})
+export class MenuPageModule { }
diff --git a/Programmation mobile/src/trompette/src/pages/menu/menu.scss b/Programmation mobile/src/trompette/src/pages/menu/menu.scss
new file mode 100644
index 0000000..1a07e9a
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/menu/menu.scss
@@ -0,0 +1,3 @@
+page-menu {
+
+}
diff --git a/Programmation mobile/src/trompette/src/pages/menu/menu.ts b/Programmation mobile/src/trompette/src/pages/menu/menu.ts
new file mode 100644
index 0000000..b122551
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/menu/menu.ts
@@ -0,0 +1,40 @@
+import { Component, ViewChild } from '@angular/core';
+import { IonicPage, Nav, NavController } from 'ionic-angular';
+
+interface PageItem {
+ title: string
+ component: any
+}
+type PageList = PageItem[]
+
+@IonicPage()
+@Component({
+ selector: 'page-menu',
+ templateUrl: 'menu.html'
+})
+export class MenuPage {
+ // A reference to the ion-nav in our component
+ @ViewChild(Nav) nav: Nav;
+
+ rootPage: any = 'ContentPage';
+
+ pages: PageList;
+
+ constructor(public navCtrl: NavController) {
+ // used for an example of ngFor and navigation
+ this.pages = [
+ { title: 'Sign in', component: 'LoginPage' },
+ { title: 'Signup', component: 'SignupPage' }
+ ];
+ }
+
+ ionViewDidLoad() {
+ console.log('Hello MenuPage Page');
+ }
+
+ openPage(page: PageItem) {
+ // Reset the content nav to have just this page
+ // we wouldn't want the back button to show in this scenario
+ this.nav.setRoot(page.component);
+ }
+}
diff --git a/Programmation mobile/src/trompette/src/pages/search/README.md b/Programmation mobile/src/trompette/src/pages/search/README.md
new file mode 100644
index 0000000..143199e
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/search/README.md
@@ -0,0 +1,3 @@
+# Search
+
+The Search page shows a search box and list view for searching instances of `Item`.
diff --git a/Programmation mobile/src/trompette/src/pages/search/search.html b/Programmation mobile/src/trompette/src/pages/search/search.html
new file mode 100644
index 0000000..55bb137
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/search/search.html
@@ -0,0 +1,22 @@
+
+
+
+ {{ 'SEARCH_TITLE' | translate }}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/pages/search/search.module.ts b/Programmation mobile/src/trompette/src/pages/search/search.module.ts
new file mode 100644
index 0000000..a29a03d
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/search/search.module.ts
@@ -0,0 +1,19 @@
+import { NgModule } from '@angular/core';
+import { TranslateModule } from '@ngx-translate/core';
+import { IonicPageModule } from 'ionic-angular';
+
+import { SearchPage } from './search';
+
+@NgModule({
+ declarations: [
+ SearchPage,
+ ],
+ imports: [
+ IonicPageModule.forChild(SearchPage),
+ TranslateModule.forChild()
+ ],
+ exports: [
+ SearchPage
+ ]
+})
+export class SearchPageModule { }
diff --git a/Programmation mobile/src/trompette/src/pages/search/search.scss b/Programmation mobile/src/trompette/src/pages/search/search.scss
new file mode 100644
index 0000000..dfc5957
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/search/search.scss
@@ -0,0 +1,3 @@
+page-search {
+
+}
diff --git a/Programmation mobile/src/trompette/src/pages/search/search.ts b/Programmation mobile/src/trompette/src/pages/search/search.ts
new file mode 100644
index 0000000..51de055
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/search/search.ts
@@ -0,0 +1,41 @@
+import { Component } from '@angular/core';
+import { IonicPage, NavController, NavParams } from 'ionic-angular';
+
+import { Item } from '../../models/item';
+import { Items } from '../../providers';
+
+@IonicPage()
+@Component({
+ selector: 'page-search',
+ templateUrl: 'search.html'
+})
+export class SearchPage {
+
+ currentItems: any = [];
+
+ constructor(public navCtrl: NavController, public navParams: NavParams, public items: Items) { }
+
+ /**
+ * Perform a service for the proper items.
+ */
+ getItems(ev) {
+ let val = ev.target.value;
+ if (!val || !val.trim()) {
+ this.currentItems = [];
+ return;
+ }
+ this.currentItems = this.items.query({
+ name: val
+ });
+ }
+
+ /**
+ * Navigate to the detail page for this item.
+ */
+ openItem(item: Item) {
+ this.navCtrl.push('ItemDetailPage', {
+ item: item
+ });
+ }
+
+}
diff --git a/Programmation mobile/src/trompette/src/pages/settings/README.md b/Programmation mobile/src/trompette/src/pages/settings/README.md
new file mode 100644
index 0000000..55515fa
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/settings/README.md
@@ -0,0 +1,3 @@
+# Settings
+
+The Settings page shows a settings form that is configurable, along with features for nested options where the user navigates to sub options while still using the same Settings page code.
diff --git a/Programmation mobile/src/trompette/src/pages/settings/settings.html b/Programmation mobile/src/trompette/src/pages/settings/settings.html
new file mode 100644
index 0000000..a8089de
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/settings/settings.html
@@ -0,0 +1,45 @@
+
+
+
+ {{ pageTitle }}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/pages/settings/settings.module.ts b/Programmation mobile/src/trompette/src/pages/settings/settings.module.ts
new file mode 100644
index 0000000..a0f55e5
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/settings/settings.module.ts
@@ -0,0 +1,19 @@
+import { NgModule } from '@angular/core';
+import { TranslateModule } from '@ngx-translate/core';
+import { IonicPageModule } from 'ionic-angular';
+
+import { SettingsPage } from './settings';
+
+@NgModule({
+ declarations: [
+ SettingsPage,
+ ],
+ imports: [
+ IonicPageModule.forChild(SettingsPage),
+ TranslateModule.forChild()
+ ],
+ exports: [
+ SettingsPage
+ ]
+})
+export class SettingsPageModule { }
diff --git a/Programmation mobile/src/trompette/src/pages/settings/settings.scss b/Programmation mobile/src/trompette/src/pages/settings/settings.scss
new file mode 100644
index 0000000..ee78e1c
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/settings/settings.scss
@@ -0,0 +1,3 @@
+page-settings {
+
+}
diff --git a/Programmation mobile/src/trompette/src/pages/settings/settings.ts b/Programmation mobile/src/trompette/src/pages/settings/settings.ts
new file mode 100644
index 0000000..b063eba
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/settings/settings.ts
@@ -0,0 +1,95 @@
+import { Component } from '@angular/core';
+import { FormBuilder, FormGroup } from '@angular/forms';
+import { TranslateService } from '@ngx-translate/core';
+import { IonicPage, NavController, NavParams } from 'ionic-angular';
+
+import { Settings } from '../../providers';
+
+/**
+ * The Settings page is a simple form that syncs with a Settings provider
+ * to enable the user to customize settings for the app.
+ *
+ */
+@IonicPage()
+@Component({
+ selector: 'page-settings',
+ templateUrl: 'settings.html'
+})
+export class SettingsPage {
+ // Our local settings object
+ options: any;
+
+ settingsReady = false;
+
+ form: FormGroup;
+
+ profileSettings = {
+ page: 'profile',
+ pageTitleKey: 'SETTINGS_PAGE_PROFILE'
+ };
+
+ page: string = 'main';
+ pageTitleKey: string = 'SETTINGS_TITLE';
+ pageTitle: string;
+
+ subSettings: any = SettingsPage;
+
+ constructor(public navCtrl: NavController,
+ public settings: Settings,
+ public formBuilder: FormBuilder,
+ public navParams: NavParams,
+ public translate: TranslateService) {
+ }
+
+ _buildForm() {
+ let group: any = {
+ option1: [this.options.option1],
+ option2: [this.options.option2],
+ option3: [this.options.option3]
+ };
+
+ switch (this.page) {
+ case 'main':
+ break;
+ case 'profile':
+ group = {
+ option4: [this.options.option4]
+ };
+ break;
+ }
+ this.form = this.formBuilder.group(group);
+
+ // Watch the form for changes, and
+ this.form.valueChanges.subscribe((v) => {
+ this.settings.merge(this.form.value);
+ });
+ }
+
+ ionViewDidLoad() {
+ // Build an empty form for the template to render
+ this.form = this.formBuilder.group({});
+ }
+
+ ionViewWillEnter() {
+ // Build an empty form for the template to render
+ this.form = this.formBuilder.group({});
+
+ this.page = this.navParams.get('page') || this.page;
+ this.pageTitleKey = this.navParams.get('pageTitleKey') || this.pageTitleKey;
+
+ this.translate.get(this.pageTitleKey).subscribe((res) => {
+ this.pageTitle = res;
+ })
+
+ this.settings.load().then(() => {
+ this.settingsReady = true;
+ this.options = this.settings.allSettings;
+
+ this._buildForm();
+ });
+ }
+
+ ngOnChanges() {
+ console.log('Ng All Changes');
+ }
+}
diff --git a/Programmation mobile/src/trompette/src/pages/signup/README.md b/Programmation mobile/src/trompette/src/pages/signup/README.md
new file mode 100644
index 0000000..d58dead
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/signup/README.md
@@ -0,0 +1,3 @@
+# Signup
+
+The Signup page renders a signup form with email/password by default and an optional username field.
diff --git a/Programmation mobile/src/trompette/src/pages/signup/signup.html b/Programmation mobile/src/trompette/src/pages/signup/signup.html
new file mode 100644
index 0000000..6231124
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/signup/signup.html
@@ -0,0 +1,44 @@
+
+
+
+ {{ 'SIGNUP_TITLE' | translate }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/pages/signup/signup.module.ts b/Programmation mobile/src/trompette/src/pages/signup/signup.module.ts
new file mode 100644
index 0000000..a29dd6a
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/signup/signup.module.ts
@@ -0,0 +1,19 @@
+import { NgModule } from '@angular/core';
+import { TranslateModule } from '@ngx-translate/core';
+import { IonicPageModule } from 'ionic-angular';
+
+import { SignupPage } from './signup';
+
+@NgModule({
+ declarations: [
+ SignupPage,
+ ],
+ imports: [
+ IonicPageModule.forChild(SignupPage),
+ TranslateModule.forChild()
+ ],
+ exports: [
+ SignupPage
+ ]
+})
+export class SignupPageModule { }
diff --git a/Programmation mobile/src/trompette/src/pages/signup/signup.scss b/Programmation mobile/src/trompette/src/pages/signup/signup.scss
new file mode 100644
index 0000000..bcff1ff
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/signup/signup.scss
@@ -0,0 +1,3 @@
+page-signup {
+
+}
diff --git a/Programmation mobile/src/trompette/src/pages/signup/signup.ts b/Programmation mobile/src/trompette/src/pages/signup/signup.ts
new file mode 100644
index 0000000..580f571
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/signup/signup.ts
@@ -0,0 +1,53 @@
+import { Component } from '@angular/core';
+import { TranslateService } from '@ngx-translate/core';
+import { IonicPage, NavController, ToastController } from 'ionic-angular';
+
+import { User } from '../../providers';
+import { MainPage } from '../';
+
+@IonicPage()
+@Component({
+ selector: 'page-signup',
+ templateUrl: 'signup.html'
+})
+export class SignupPage {
+ // The account fields for the login form.
+ // If you're using the username field with or without email, make
+ // sure to add it to the type
+ account: { name: string, email: string, password: string } = {
+ name: 'Test Human',
+ email: 'test@example.com',
+ password: 'test'
+ };
+
+ // Our translated text strings
+ private signupErrorString: string;
+
+ constructor(public navCtrl: NavController,
+ public user: User,
+ public toastCtrl: ToastController,
+ public translateService: TranslateService) {
+
+ this.translateService.get('SIGNUP_ERROR').subscribe((value) => {
+ this.signupErrorString = value;
+ })
+ }
+
+ doSignup() {
+ // Attempt to login in through our User service
+ this.user.signup(this.account).subscribe((resp) => {
+ this.navCtrl.push(MainPage);
+ }, (err) => {
+
+ this.navCtrl.push(MainPage);
+
+ // Unable to sign up
+ let toast = this.toastCtrl.create({
+ message: this.signupErrorString,
+ duration: 3000,
+ position: 'top'
+ });
+ toast.present();
+ });
+ }
+}
diff --git a/Programmation mobile/src/trompette/src/pages/tabs/README.md b/Programmation mobile/src/trompette/src/pages/tabs/README.md
new file mode 100644
index 0000000..2774ec6
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/tabs/README.md
@@ -0,0 +1,3 @@
+# Tabs
+
+Tabs is a common tabbed layout.
diff --git a/Programmation mobile/src/trompette/src/pages/tabs/tabs.html b/Programmation mobile/src/trompette/src/pages/tabs/tabs.html
new file mode 100644
index 0000000..69808a6
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/tabs/tabs.html
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Programmation mobile/src/trompette/src/pages/tabs/tabs.module.ts b/Programmation mobile/src/trompette/src/pages/tabs/tabs.module.ts
new file mode 100644
index 0000000..6a26e67
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/tabs/tabs.module.ts
@@ -0,0 +1,19 @@
+import { NgModule } from '@angular/core';
+import { TranslateModule } from '@ngx-translate/core';
+import { IonicPageModule } from 'ionic-angular';
+
+import { TabsPage } from './tabs';
+
+@NgModule({
+ declarations: [
+ TabsPage,
+ ],
+ imports: [
+ IonicPageModule.forChild(TabsPage),
+ TranslateModule.forChild()
+ ],
+ exports: [
+ TabsPage
+ ]
+})
+export class TabsPageModule { }
diff --git a/Programmation mobile/src/trompette/src/pages/tabs/tabs.scss b/Programmation mobile/src/trompette/src/pages/tabs/tabs.scss
new file mode 100644
index 0000000..1e4454e
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/tabs/tabs.scss
@@ -0,0 +1,3 @@
+page-tabs {
+
+}
diff --git a/Programmation mobile/src/trompette/src/pages/tabs/tabs.ts b/Programmation mobile/src/trompette/src/pages/tabs/tabs.ts
new file mode 100644
index 0000000..f23b374
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/tabs/tabs.ts
@@ -0,0 +1,28 @@
+import { Component } from '@angular/core';
+import { TranslateService } from '@ngx-translate/core';
+import { IonicPage, NavController } from 'ionic-angular';
+
+import { Tab1Root, Tab2Root, Tab3Root } from '../';
+
+@IonicPage()
+@Component({
+ selector: 'page-tabs',
+ templateUrl: 'tabs.html'
+})
+export class TabsPage {
+ tab1Root: any = Tab1Root;
+ tab2Root: any = Tab2Root;
+ tab3Root: any = Tab3Root;
+
+ tab1Title = " ";
+ tab2Title = " ";
+ tab3Title = " ";
+
+ constructor(public navCtrl: NavController, public translateService: TranslateService) {
+ translateService.get(['TAB1_TITLE', 'TAB2_TITLE', 'TAB3_TITLE']).subscribe(values => {
+ this.tab1Title = values['TAB1_TITLE'];
+ this.tab2Title = values['TAB2_TITLE'];
+ this.tab3Title = values['TAB3_TITLE'];
+ });
+ }
+}
diff --git a/Programmation mobile/src/trompette/src/pages/tutorial/README.md b/Programmation mobile/src/trompette/src/pages/tutorial/README.md
new file mode 100644
index 0000000..4c356bf
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/tutorial/README.md
@@ -0,0 +1,3 @@
+# Tutorial
+
+The Tutorial page renders a Slides component that lets you swipe through different sections or skip it alltogether.
diff --git a/Programmation mobile/src/trompette/src/pages/tutorial/tutorial.html b/Programmation mobile/src/trompette/src/pages/tutorial/tutorial.html
new file mode 100644
index 0000000..8008820
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/tutorial/tutorial.html
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ 'TUTORIAL_SLIDE4_TITLE' | translate }}
+
+
+
+
diff --git a/Programmation mobile/src/trompette/src/pages/tutorial/tutorial.module.ts b/Programmation mobile/src/trompette/src/pages/tutorial/tutorial.module.ts
new file mode 100644
index 0000000..1c2bebc
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/tutorial/tutorial.module.ts
@@ -0,0 +1,18 @@
+import { NgModule } from '@angular/core';
+import { IonicPageModule } from 'ionic-angular';
+import { TutorialPage } from './tutorial';
+import { TranslateModule } from '@ngx-translate/core';
+
+@NgModule({
+ declarations: [
+ TutorialPage,
+ ],
+ imports: [
+ IonicPageModule.forChild(TutorialPage),
+ TranslateModule.forChild()
+ ],
+ exports: [
+ TutorialPage
+ ]
+})
+export class TutorialPageModule { }
diff --git a/Programmation mobile/src/trompette/src/pages/tutorial/tutorial.scss b/Programmation mobile/src/trompette/src/pages/tutorial/tutorial.scss
new file mode 100644
index 0000000..d8b3c61
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/tutorial/tutorial.scss
@@ -0,0 +1,36 @@
+page-tutorial {
+ .toolbar-background {
+ background: transparent;
+ border-color: transparent;
+ }
+
+ .slide-zoom {
+ height: 100%;
+ }
+
+ .slide-title {
+ margin-top: 2.8rem;
+ }
+
+ .slide-image {
+ max-height: 40%;
+ max-width: 60%;
+ margin: 36px 0;
+ }
+
+ b {
+ font-weight: 500;
+ }
+
+ p {
+ padding: 0 40px;
+ font-size: 14px;
+ line-height: 1.5;
+ color: #60646B;
+
+ b {
+ color: #000000;
+ }
+ }
+
+}
diff --git a/Programmation mobile/src/trompette/src/pages/tutorial/tutorial.ts b/Programmation mobile/src/trompette/src/pages/tutorial/tutorial.ts
new file mode 100644
index 0000000..6dcbe73
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/tutorial/tutorial.ts
@@ -0,0 +1,74 @@
+import { Component } from '@angular/core';
+import { IonicPage, MenuController, NavController, Platform } from 'ionic-angular';
+
+import { TranslateService } from '@ngx-translate/core';
+
+export interface Slide {
+ title: string;
+ description: string;
+ image: string;
+}
+
+@IonicPage()
+@Component({
+ selector: 'page-tutorial',
+ templateUrl: 'tutorial.html'
+})
+export class TutorialPage {
+ slides: Slide[];
+ showSkip = true;
+ dir: string = 'ltr';
+
+ constructor(public navCtrl: NavController, public menu: MenuController, translate: TranslateService, public platform: Platform) {
+ this.dir = platform.dir();
+ translate.get(["TUTORIAL_SLIDE1_TITLE",
+ "TUTORIAL_SLIDE1_DESCRIPTION",
+ "TUTORIAL_SLIDE2_TITLE",
+ "TUTORIAL_SLIDE2_DESCRIPTION",
+ "TUTORIAL_SLIDE3_TITLE",
+ "TUTORIAL_SLIDE3_DESCRIPTION",
+ ]).subscribe(
+ (values) => {
+ console.log('Loaded values', values);
+ this.slides = [
+ {
+ title: values.TUTORIAL_SLIDE1_TITLE,
+ description: values.TUTORIAL_SLIDE1_DESCRIPTION,
+ image: 'assets/img/ica-slidebox-img-1.png',
+ },
+ {
+ title: values.TUTORIAL_SLIDE2_TITLE,
+ description: values.TUTORIAL_SLIDE2_DESCRIPTION,
+ image: 'assets/img/ica-slidebox-img-2.png',
+ },
+ {
+ title: values.TUTORIAL_SLIDE3_TITLE,
+ description: values.TUTORIAL_SLIDE3_DESCRIPTION,
+ image: 'assets/img/ica-slidebox-img-3.png',
+ }
+ ];
+ });
+ }
+
+ startApp() {
+ this.navCtrl.setRoot('WelcomePage', {}, {
+ animate: true,
+ direction: 'forward'
+ });
+ }
+
+ onSlideChangeStart(slider) {
+ this.showSkip = !slider.isEnd();
+ }
+
+ ionViewDidEnter() {
+ // the root left menu should be disabled on the tutorial page
+ this.menu.enable(false);
+ }
+
+ ionViewWillLeave() {
+ // enable the root left menu when leaving the tutorial page
+ this.menu.enable(true);
+ }
+
+}
diff --git a/Programmation mobile/src/trompette/src/pages/welcome/README.md b/Programmation mobile/src/trompette/src/pages/welcome/README.md
new file mode 100644
index 0000000..08e3ba5
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/welcome/README.md
@@ -0,0 +1,3 @@
+# Welcome
+
+Welcome is a splash screen that displays some info about the app and directs the user to log in our create an account.
diff --git a/Programmation mobile/src/trompette/src/pages/welcome/welcome.html b/Programmation mobile/src/trompette/src/pages/welcome/welcome.html
new file mode 100644
index 0000000..d1696e0
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/welcome/welcome.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+ {{ 'WELCOME_INTRO' | translate }}
+
+
+
+
+
+
+
diff --git a/Programmation mobile/src/trompette/src/pages/welcome/welcome.module.ts b/Programmation mobile/src/trompette/src/pages/welcome/welcome.module.ts
new file mode 100644
index 0000000..13dcf60
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/welcome/welcome.module.ts
@@ -0,0 +1,19 @@
+import { NgModule } from '@angular/core';
+import { TranslateModule } from '@ngx-translate/core';
+import { IonicPageModule } from 'ionic-angular';
+
+import { WelcomePage } from './welcome';
+
+@NgModule({
+ declarations: [
+ WelcomePage,
+ ],
+ imports: [
+ IonicPageModule.forChild(WelcomePage),
+ TranslateModule.forChild()
+ ],
+ exports: [
+ WelcomePage
+ ]
+})
+export class WelcomePageModule { }
diff --git a/Programmation mobile/src/trompette/src/pages/welcome/welcome.scss b/Programmation mobile/src/trompette/src/pages/welcome/welcome.scss
new file mode 100644
index 0000000..66e16cb
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/welcome/welcome.scss
@@ -0,0 +1,46 @@
+page-welcome {
+ .splash-bg {
+ position: relative;
+ background: url('../assets/img/splashbg.png') no-repeat transparent;
+ background-size: cover;
+ height: 45%;
+ z-index: 1;
+ background-repeat: repeat-x;
+ animation: animatedBackground 40s linear infinite;
+ }
+
+ @keyframes animatedBackground {
+ from { background-position: 0 0; }
+ to { background-position: 100% 0; }
+ }
+
+ .splash-info {
+ position: relative;
+ z-index: 2;
+ margin-top: -64px;
+ text-align: center;
+ }
+ .splash-logo {
+ margin: auto;
+ background: url('../assets/img/appicon.png') repeat transparent;
+ background-size: 100%;
+ width: 128px;
+ height: 128px;
+ }
+ .splash-intro {
+ font-size: 18px;
+ font-weight: bold;
+ max-width: 80%;
+ margin: auto;
+ }
+ button.login {
+ margin-top: 25px;
+ background-color: white;
+ box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2);
+ color: #333;
+
+ &.activated {
+ background-color: rgb(220, 220, 220);
+ }
+ }
+}
diff --git a/Programmation mobile/src/trompette/src/pages/welcome/welcome.ts b/Programmation mobile/src/trompette/src/pages/welcome/welcome.ts
new file mode 100644
index 0000000..5296a2c
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/pages/welcome/welcome.ts
@@ -0,0 +1,26 @@
+import { Component } from '@angular/core';
+import { IonicPage, NavController } from 'ionic-angular';
+
+/**
+ * The Welcome Page is a splash page that quickly describes the app,
+ * and then directs the user to create an account or log in.
+ * If you'd like to immediately put the user onto a login/signup page,
+ * we recommend not using the Welcome page.
+*/
+@IonicPage()
+@Component({
+ selector: 'page-welcome',
+ templateUrl: 'welcome.html'
+})
+export class WelcomePage {
+
+ constructor(public navCtrl: NavController) { }
+
+ login() {
+ this.navCtrl.push('LoginPage');
+ }
+
+ signup() {
+ this.navCtrl.push('SignupPage');
+ }
+}
diff --git a/Programmation mobile/src/trompette/src/providers/api/api.ts b/Programmation mobile/src/trompette/src/providers/api/api.ts
new file mode 100644
index 0000000..e48bab5
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/providers/api/api.ts
@@ -0,0 +1,47 @@
+import { HttpClient, HttpParams } from '@angular/common/http';
+import { Injectable } from '@angular/core';
+
+/**
+ * Api is a generic REST Api handler. Set your API url first.
+ */
+@Injectable()
+export class Api {
+ url: string = 'https://example.com/api/v1';
+
+ constructor(public http: HttpClient) {
+ }
+
+ get(endpoint: string, params?: any, reqOpts?: any) {
+ if (!reqOpts) {
+ reqOpts = {
+ params: new HttpParams()
+ };
+ }
+
+ // Support easy query params for GET requests
+ if (params) {
+ reqOpts.params = new HttpParams();
+ for (let k in params) {
+ reqOpts.params = reqOpts.params.set(k, params[k]);
+ }
+ }
+
+ return this.http.get(this.url + '/' + endpoint, reqOpts);
+ }
+
+ post(endpoint: string, body: any, reqOpts?: any) {
+ return this.http.post(this.url + '/' + endpoint, body, reqOpts);
+ }
+
+ put(endpoint: string, body: any, reqOpts?: any) {
+ return this.http.put(this.url + '/' + endpoint, body, reqOpts);
+ }
+
+ delete(endpoint: string, reqOpts?: any) {
+ return this.http.delete(this.url + '/' + endpoint, reqOpts);
+ }
+
+ patch(endpoint: string, body: any, reqOpts?: any) {
+ return this.http.patch(this.url + '/' + endpoint, body, reqOpts);
+ }
+}
diff --git a/Programmation mobile/src/trompette/src/providers/index.ts b/Programmation mobile/src/trompette/src/providers/index.ts
new file mode 100644
index 0000000..8f1647a
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/providers/index.ts
@@ -0,0 +1,4 @@
+export { Api } from './api/api';
+export { Items } from '../mocks/providers/items';
+export { Settings } from './settings/settings';
+export { User } from './user/user';
diff --git a/Programmation mobile/src/trompette/src/providers/items/items.ts b/Programmation mobile/src/trompette/src/providers/items/items.ts
new file mode 100644
index 0000000..a4effd9
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/providers/items/items.ts
@@ -0,0 +1,21 @@
+import { Injectable } from '@angular/core';
+
+import { Item } from '../../models/item';
+import { Api } from '../api/api';
+
+@Injectable()
+export class Items {
+
+ constructor(public api: Api) { }
+
+ query(params?: any) {
+ return this.api.get('/items', params);
+ }
+
+ add(item: Item) {
+ }
+
+ delete(item: Item) {
+ }
+
+}
diff --git a/Programmation mobile/src/trompette/src/providers/settings/settings.ts b/Programmation mobile/src/trompette/src/providers/settings/settings.ts
new file mode 100644
index 0000000..e70d245
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/providers/settings/settings.ts
@@ -0,0 +1,72 @@
+import { Injectable } from '@angular/core';
+import { Storage } from '@ionic/storage';
+
+/**
+ * A simple settings/config class for storing key/value pairs with persistence.
+ */
+@Injectable()
+export class Settings {
+ private SETTINGS_KEY: string = '_settings';
+
+ settings: any;
+
+ _defaults: any;
+ _readyPromise: Promise;
+
+ constructor(public storage: Storage, defaults: any) {
+ this._defaults = defaults;
+ }
+
+ load() {
+ return this.storage.get(this.SETTINGS_KEY).then((value) => {
+ if (value) {
+ this.settings = value;
+ return this._mergeDefaults(this._defaults);
+ } else {
+ return this.setAll(this._defaults).then((val) => {
+ this.settings = val;
+ })
+ }
+ });
+ }
+
+ _mergeDefaults(defaults: any) {
+ for (let k in defaults) {
+ if (!(k in this.settings)) {
+ this.settings[k] = defaults[k];
+ }
+ }
+ return this.setAll(this.settings);
+ }
+
+ merge(settings: any) {
+ for (let k in settings) {
+ this.settings[k] = settings[k];
+ }
+ return this.save();
+ }
+
+ setValue(key: string, value: any) {
+ this.settings[key] = value;
+ return this.storage.set(this.SETTINGS_KEY, this.settings);
+ }
+
+ setAll(value: any) {
+ return this.storage.set(this.SETTINGS_KEY, value);
+ }
+
+ getValue(key: string) {
+ return this.storage.get(this.SETTINGS_KEY)
+ .then(settings => {
+ return settings[key];
+ });
+ }
+
+ save() {
+ return this.setAll(this.settings);
+ }
+
+ get allSettings() {
+ return this.settings;
+ }
+}
diff --git a/Programmation mobile/src/trompette/src/providers/user/user.ts b/Programmation mobile/src/trompette/src/providers/user/user.ts
new file mode 100644
index 0000000..13beb72
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/providers/user/user.ts
@@ -0,0 +1,84 @@
+import 'rxjs/add/operator/toPromise';
+
+import { Injectable } from '@angular/core';
+
+import { Api } from '../api/api';
+
+/**
+ * Most apps have the concept of a User. This is a simple provider
+ * with stubs for login/signup/etc.
+ *
+ * This User provider makes calls to our API at the `login` and `signup` endpoints.
+ *
+ * By default, it expects `login` and `signup` to return a JSON object of the shape:
+ *
+ * ```json
+ * {
+ * status: 'success',
+ * user: {
+ * // User fields your app needs, like "id", "name", "email", etc.
+ * }
+ * }Ø
+ * ```
+ *
+ * If the `status` field is not `success`, then an error is detected and returned.
+ */
+@Injectable()
+export class User {
+ _user: any;
+
+ constructor(public api: Api) { }
+
+ /**
+ * Send a POST request to our login endpoint with the data
+ * the user entered on the form.
+ */
+ login(accountInfo: any) {
+ let seq = this.api.post('login', accountInfo).share();
+
+ seq.subscribe((res: any) => {
+ // If the API returned a successful response, mark the user as logged in
+ if (res.status == 'success') {
+ this._loggedIn(res);
+ } else {
+ }
+ }, err => {
+ console.error('ERROR', err);
+ });
+
+ return seq;
+ }
+
+ /**
+ * Send a POST request to our signup endpoint with the data
+ * the user entered on the form.
+ */
+ signup(accountInfo: any) {
+ let seq = this.api.post('signup', accountInfo).share();
+
+ seq.subscribe((res: any) => {
+ // If the API returned a successful response, mark the user as logged in
+ if (res.status == 'success') {
+ this._loggedIn(res);
+ }
+ }, err => {
+ console.error('ERROR', err);
+ });
+
+ return seq;
+ }
+
+ /**
+ * Log the user out, which forgets the session
+ */
+ logout() {
+ this._user = null;
+ }
+
+ /**
+ * Process a login/signup response to store user data
+ */
+ _loggedIn(resp) {
+ this._user = resp.user;
+ }
+}
diff --git a/Programmation mobile/src/trompette/src/service-worker.js b/Programmation mobile/src/trompette/src/service-worker.js
new file mode 100644
index 0000000..ffbbb06
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/service-worker.js
@@ -0,0 +1,31 @@
+/**
+ * Check out https://googlechromelabs.github.io/sw-toolbox/ for
+ * more info on how to use sw-toolbox to custom configure your service worker.
+ */
+
+
+'use strict';
+importScripts('./build/sw-toolbox.js');
+
+self.toolbox.options.cache = {
+ name: 'ionic-cache'
+};
+
+// pre-cache our key assets
+self.toolbox.precache(
+ [
+ './build/main.js',
+ './build/vendor.js',
+ './build/main.css',
+ './build/polyfills.js',
+ 'index.html',
+ 'manifest.json'
+ ]
+);
+
+// dynamically cache any other local assets
+self.toolbox.router.any('/*', self.toolbox.fastest);
+
+// for any other requests go to the network, cache,
+// and then only use that cached resource if your user goes offline
+self.toolbox.router.default = self.toolbox.networkFirst;
diff --git a/Programmation mobile/src/trompette/src/theme/variables.scss b/Programmation mobile/src/trompette/src/theme/variables.scss
new file mode 100644
index 0000000..6f0d4ce
--- /dev/null
+++ b/Programmation mobile/src/trompette/src/theme/variables.scss
@@ -0,0 +1,79 @@
+// Ionic Variables and Theming. For more info, please see:
+// http://ionicframework.com/docs/v2/theming/
+$font-path: "../assets/fonts";
+
+@import "ionic.globals";
+
+
+// Shared Variables
+// --------------------------------------------------
+// To customize the look and feel of this app, you can override
+// the Sass variables found in Ionic's source scss files.
+// To view all the possible Ionic variables, see:
+// http://ionicframework.com/docs/v2/theming/overriding-ionic-variables/
+
+$text-color: #000;
+$background-color: #fff;
+
+
+// Named Color Variables
+// --------------------------------------------------
+// Named colors makes it easy to reuse colors on various components.
+// It's highly recommended to change the default colors
+// to match your app's branding. Ionic uses a Sass map of
+// colors so you can add, rename and remove colors as needed.
+// The "primary" color is the only required color in the map.
+
+$colors: (
+ primary: #488aff,
+ secondary: #32db64,
+ danger: #f53d3d,
+ light: #f4f4f4,
+ dark: #222
+);
+
+
+// App iOS Variables
+// --------------------------------------------------
+// iOS only Sass variables can go here
+
+
+
+
+// App Material Design Variables
+// --------------------------------------------------
+// Material Design only Sass variables can go here
+
+
+
+
+// App Windows Variables
+// --------------------------------------------------
+// Windows only Sass variables can go here
+
+
+
+
+// App Theme
+// --------------------------------------------------
+// Ionic apps can have different themes applied, which can
+// then be future customized. This import comes last
+// so that the above variables are used and Ionic's
+// default are overridden.
+
+@import "ionic.theme.default";
+
+
+// Ionicons
+// --------------------------------------------------
+// The premium icon font for Ionic. For more info, please see:
+// http://ionicframework.com/docs/v2/ionicons/
+
+@import "ionic.ionicons";
+
+
+// Fonts
+// --------------------------------------------------
+
+@import "roboto";
+@import "noto-sans";
diff --git a/Programmation mobile/src/trompette/tsconfig.json b/Programmation mobile/src/trompette/tsconfig.json
new file mode 100644
index 0000000..5d53142
--- /dev/null
+++ b/Programmation mobile/src/trompette/tsconfig.json
@@ -0,0 +1,28 @@
+{
+ "compilerOptions": {
+ "allowSyntheticDefaultImports": true,
+ "declaration": false,
+ "emitDecoratorMetadata": true,
+ "experimentalDecorators": true,
+ "lib": [
+ "dom",
+ "es2015"
+ ],
+ "module": "es2015",
+ "moduleResolution": "node",
+ "sourceMap": true,
+ "target": "es5"
+ },
+ "include": [
+ "src/**/*.ts"
+ ],
+ "exclude": [
+ "node_modules",
+ "src/**/*.spec.ts",
+ "src/**/__tests__/*.ts"
+ ],
+ "compileOnSave": false,
+ "atom": {
+ "rewriteTsconfig": false
+ }
+}
diff --git a/Programmation mobile/src/trompette/tslint.json b/Programmation mobile/src/trompette/tslint.json
new file mode 100644
index 0000000..dd8e8d8
--- /dev/null
+++ b/Programmation mobile/src/trompette/tslint.json
@@ -0,0 +1,11 @@
+{
+ "rules": {
+ "no-duplicate-variable": true,
+ "no-unused-variable": [
+ true
+ ]
+ },
+ "rulesDirectory": [
+ "node_modules/tslint-eslint-rules/dist/rules"
+ ]
+}