diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 01f03efb..12c7befa 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,7 +1,7 @@ **I'm submitting a ...** (check one with "x") [ ] bug report [ ] feature request - +[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or https://ionicworldwide.herokuapp.com/ **Current behavior:** @@ -21,8 +21,8 @@ insert any relevant code here **Other information:** -**package.json info:** +**Ionic info:** (run `ionic info` from a terminal/cmd prompt and paste output below): -```json -insert the content here +``` +insert the output from ionic info here ``` diff --git a/CHANGELOG.md b/CHANGELOG.md index ccc8c092..99cddb63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,167 @@ + +# [4.6.0](https://github.com/ionic-team/ionic-native/compare/v5.0.0-beta.3...v4.6.0) (2018-03-19) + + +### Bug Fixes + +* **badge:** add correct requestPermission function ([586c7e5](https://github.com/ionic-team/ionic-native/commit/586c7e5)) +* **call-log:** comments erratum ([4b9cf17](https://github.com/ionic-team/ionic-native/commit/4b9cf17)) +* **call-log:** update getCallLog signature ([61c0ecf](https://github.com/ionic-team/ionic-native/commit/61c0ecf)) +* **contacts:** refactor wrong ContactFieldTypes ([f607a03](https://github.com/ionic-team/ionic-native/commit/f607a03)) +* **facebook:** remove browserInit function ([f718432](https://github.com/ionic-team/ionic-native/commit/f718432)) +* **firebase-analytics:** add `sync` option for all methods ([42fd1f2](https://github.com/ionic-team/ionic-native/commit/42fd1f2)) +* **google-maps:** wrong decorators ([e5b9d53](https://github.com/ionic-team/ionic-native/commit/e5b9d53)) +* **health-kit:** add missing properties to HealthKitOptions ([f8e79ce](https://github.com/ionic-team/ionic-native/commit/f8e79ce)) +* **index-app-content:** remove onItemPressed function ([270678f](https://github.com/ionic-team/ionic-native/commit/270678f)) +* **printer:** add correct npm repository ([4bf55d3](https://github.com/ionic-team/ionic-native/commit/4bf55d3)) +* **pro:** proper callback type and guard for plugin instantiate. [#2136](https://github.com/ionic-team/ionic-native/issues/2136) [#2127](https://github.com/ionic-team/ionic-native/issues/2127) ([61293c3](https://github.com/ionic-team/ionic-native/commit/61293c3)) +* **pro:** Tweak to pro plugin. [#2136](https://github.com/ionic-team/ionic-native/issues/2136) [#2127](https://github.com/ionic-team/ionic-native/issues/2127) ([c8ecee0](https://github.com/ionic-team/ionic-native/commit/c8ecee0)) +* **Pro:** CordovaCheck should sync. [#2136](https://github.com/ionic-team/ionic-native/issues/2136) [#2127](https://github.com/ionic-team/ionic-native/issues/2127) ([f419db5](https://github.com/ionic-team/ionic-native/commit/f419db5)) +* **push:** Android senderID as optional ([1b237aa](https://github.com/ionic-team/ionic-native/commit/1b237aa)) +* **Radmob-pro:** add offsetTopBar option ([4948640](https://github.com/ionic-team/ionic-native/commit/4948640)) +* **sqlite:** remove trailing whitespaces ([7547a94](https://github.com/ionic-team/ionic-native/commit/7547a94)) +* **web-intent:** allow extras ([8dc5ad2](https://github.com/ionic-team/ionic-native/commit/8dc5ad2)) + + +### Features + +* **app-rate:** add custom locale interface ([2a18dbc](https://github.com/ionic-team/ionic-native/commit/2a18dbc)) +* **app-update:** add app update options ([0f325ed](https://github.com/ionic-team/ionic-native/commit/0f325ed)) +* **appodeal:** add new functions ([247a1a1](https://github.com/ionic-team/ionic-native/commit/247a1a1)) +* **base64-to-gallery:** add options interface ([11d516f](https://github.com/ionic-team/ionic-native/commit/11d516f)) +* **ble:** add scan options interface ([e345fed](https://github.com/ionic-team/ionic-native/commit/e345fed)) +* **calendar:** add getCreateCalendarOptions function ([13765d2](https://github.com/ionic-team/ionic-native/commit/13765d2)) +* **call-log:** add plugin ([76a644d](https://github.com/ionic-team/ionic-native/commit/76a644d)) +* **camera-preview:** add onBackButton function ([a345e2c](https://github.com/ionic-team/ionic-native/commit/a345e2c)) +* **device-accounts:** add android account interface ([d2261b6](https://github.com/ionic-team/ionic-native/commit/d2261b6)) +* **device-feedback:** add feedback interface ([7cafebd](https://github.com/ionic-team/ionic-native/commit/7cafebd)) +* **google-analytics:** add missing functions ([ff0008e](https://github.com/ionic-team/ionic-native/commit/ff0008e)) +* **google-maps:** update to match latest plugin version ([#2320](https://github.com/ionic-team/ionic-native/issues/2320)) ([f11be24](https://github.com/ionic-team/ionic-native/commit/f11be24)) +* **hot code push:** add cordova-hot-code-push ([e7968da](https://github.com/ionic-team/ionic-native/commit/e7968da)) +* **hot code push:** add update events ([04bdade](https://github.com/ionic-team/ionic-native/commit/04bdade)) +* **jins-meme:** enable background mode data collection ([1932f2d](https://github.com/ionic-team/ionic-native/commit/1932f2d)) +* **local-notifications:** added a new param to specify if the notification will be silent ([6e58192](https://github.com/ionic-team/ionic-native/commit/6e58192)) +* **one-signal:** add clearOneSignalNotifications function ([fc0338a](https://github.com/ionic-team/ionic-native/commit/fc0338a)) +* **plugin:** add iOS File Picker ([571df3a](https://github.com/ionic-team/ionic-native/commit/571df3a)) +* **speechkit:** plugin implementation ([41e5a0f](https://github.com/ionic-team/ionic-native/commit/41e5a0f)) +* **sqlite:** add selfTest function ([241f073](https://github.com/ionic-team/ionic-native/commit/241f073)) +* **web-intent:** add startService function ([15bb350](https://github.com/ionic-team/ionic-native/commit/15bb350)) + + + + +# [5.0.0-beta.3](https://github.com/ionic-team/ionic-native/compare/v4.5.1...v5.0.0-beta.3) (2017-12-29) + + +### Bug Fixes + +* **push:** fix finish method ([995fd56](https://github.com/ionic-team/ionic-native/commit/995fd56)) + + +### Features + +* **crop:** add targetHeight and targetWidth options ([#2213](https://github.com/ionic-team/ionic-native/issues/2213)) ([9990df8](https://github.com/ionic-team/ionic-native/commit/9990df8)) + + + + +## [4.5.1](https://github.com/ionic-team/ionic-native/compare/v5.0.0-beta.0...v4.5.1) (2017-12-12) + + +### Bug Fixes + +* **core:** fix issue with CordovaFunctionOverride decorator ([6cd97ca](https://github.com/ionic-team/ionic-native/commit/6cd97ca)) + + + + +# [5.0.0-beta.0](https://github.com/ionic-team/ionic-native/compare/v4.5.0...v5.0.0-beta.0) (2017-12-08) + + +### Bug Fixes + +* **alipay:** add 'string' as an alternative type for 'pay()' input parameter; ([#2172](https://github.com/ionic-team/ionic-native/issues/2172)) ([d43fe72](https://github.com/ionic-team/ionic-native/commit/d43fe72)) +* **app-rate:** add simpleMode ([#2155](https://github.com/ionic-team/ionic-native/issues/2155)) ([9844274](https://github.com/ionic-team/ionic-native/commit/9844274)) +* **app-rate:** change openStoreInApp to inAppReview ([#2097](https://github.com/ionic-team/ionic-native/issues/2097)) ([d95ae68](https://github.com/ionic-team/ionic-native/commit/d95ae68)) +* **camera-preview:** add missing `tapToFocus` camera option ([#2046](https://github.com/ionic-team/ionic-native/issues/2046)) ([b9b781d](https://github.com/ionic-team/ionic-native/commit/b9b781d)) +* **deeplinks:** add options parameter([#1601](https://github.com/ionic-team/ionic-native/issues/1601)) ([#2141](https://github.com/ionic-team/ionic-native/issues/2141)) ([bb2291c](https://github.com/ionic-team/ionic-native/commit/bb2291c)) +* **ftp:** return observable (not promise) for upload and download method ([#2174](https://github.com/ionic-team/ionic-native/issues/2174)) ([5159367](https://github.com/ionic-team/ionic-native/commit/5159367)) +* **indexappcontent:** Return observable for onItemPressed ([#2006](https://github.com/ionic-team/ionic-native/issues/2006)) ([9a52110](https://github.com/ionic-team/ionic-native/commit/9a52110)) +* **mobile-accessibility:** change signature references to the correct names ([#2139](https://github.com/ionic-team/ionic-native/issues/2139)) ([b2c873c](https://github.com/ionic-team/ionic-native/commit/b2c873c)) +* **ms-adal:** add userInfo in the AuthenticationResult ([#2160](https://github.com/ionic-team/ionic-native/issues/2160)) ([c038c63](https://github.com/ionic-team/ionic-native/commit/c038c63)) +* **music-controls:** various fixes ([#2094](https://github.com/ionic-team/ionic-native/issues/2094)) ([afca876](https://github.com/ionic-team/ionic-native/commit/afca876)) +* **push:** add senderID to AndroidPushOptions ([#2060](https://github.com/ionic-team/ionic-native/issues/2060)) ([4694c42](https://github.com/ionic-team/ionic-native/commit/4694c42)) +* **web-intent:** fix false negative of plugin installation ([#2062](https://github.com/ionic-team/ionic-native/issues/2062)) ([ae94c71](https://github.com/ionic-team/ionic-native/commit/ae94c71)) + + +### Features + +* **android exoplayer:** add cordova-plugin-exoplayer ([#2180](https://github.com/ionic-team/ionic-native/issues/2180)) ([d06fa48](https://github.com/ionic-team/ionic-native/commit/d06fa48)) +* **android-fingerprint:** add getSigningCertificateFingerprint() method ([#2076](https://github.com/ionic-team/ionic-native/issues/2076)) ([bd5bcdc](https://github.com/ionic-team/ionic-native/commit/bd5bcdc)) +* **apple-pay:** add cordova-plugin-applepay ([#2081](https://github.com/ionic-team/ionic-native/issues/2081)) ([784f948](https://github.com/ionic-team/ionic-native/commit/784f948)) +* **apple-pay:** update for version 3 of the Apple Pay plugin. ([#2177](https://github.com/ionic-team/ionic-native/issues/2177)) ([bf41506](https://github.com/ionic-team/ionic-native/commit/bf41506)) +* **ble:** support startStateNotifications & stopStateNotifications ([#2085](https://github.com/ionic-team/ionic-native/issues/2085)) ([2a4bcee](https://github.com/ionic-team/ionic-native/commit/2a4bcee)) +* **braintree:** add support for cordova-plugin-braintree to [@ionic-native](https://github.com/ionic-native) ([#2073](https://github.com/ionic-team/ionic-native/issues/2073)) ([091ac7a](https://github.com/ionic-team/ionic-native/commit/091ac7a)) +* **call-number:** add isCallSupported method ([#2051](https://github.com/ionic-team/ionic-native/issues/2051)) ([6053296](https://github.com/ionic-team/ionic-native/commit/6053296)) +* **dns:** add cordova-plugin-dns plugin ([#2083](https://github.com/ionic-team/ionic-native/issues/2083)) ([212bd63](https://github.com/ionic-team/ionic-native/commit/212bd63)) +* **firebase:** add new Firebase phone verification methods ([#2157](https://github.com/ionic-team/ionic-native/issues/2157)) ([86181af](https://github.com/ionic-team/ionic-native/commit/86181af)) +* **GooglePlayGamesServices:** add plugin ([#1904](https://github.com/ionic-team/ionic-native/issues/1904)) ([03f5789](https://github.com/ionic-team/ionic-native/commit/03f5789)) +* **network-interface:** add plugin support ([#2063](https://github.com/ionic-team/ionic-native/issues/2063)) ([86b2a2c](https://github.com/ionic-team/ionic-native/commit/86b2a2c)) +* **nfc:** add interfaces and missing references to UriHelper and TextHelper ([#2104](https://github.com/ionic-team/ionic-native/issues/2104)) ([8b78644](https://github.com/ionic-team/ionic-native/commit/8b78644)) +* **nfc:** add support for iOS ([#2050](https://github.com/ionic-team/ionic-native/issues/2050)) ([9f72592](https://github.com/ionic-team/ionic-native/commit/9f72592)) +* **push:** add support for version 2.1.0 ([#2064](https://github.com/ionic-team/ionic-native/issues/2064)) ([c1ce5da](https://github.com/ionic-team/ionic-native/commit/c1ce5da)) +* **zeroconf:** add reInit() method ([#2144](https://github.com/ionic-team/ionic-native/issues/2144)) ([7255795](https://github.com/ionic-team/ionic-native/commit/7255795)) + + + + +## [4.4.2](https://github.com/ionic-team/ionic-native/compare/v4.4.1...v4.4.2) (2017-11-15) + + + + +## [4.4.1](https://github.com/ionic-team/ionic-native/compare/v4.4.0...v4.4.1) (2017-11-13) + + + + +# [4.4.0](https://github.com/ionic-team/ionic-native/compare/v4.3.3...v4.4.0) (2017-11-09) + + +### Features + +* **google-maps:** accept own properties for `addMarker()` and others ([#2093](https://github.com/ionic-team/ionic-native/issues/2093)) ([196be02](https://github.com/ionic-team/ionic-native/commit/196be02)) +* **http:** add support for new methods ([#2054](https://github.com/ionic-team/ionic-native/issues/2054)) ([d96d3ee](https://github.com/ionic-team/ionic-native/commit/d96d3ee)) + + + + +## [4.3.3](https://github.com/ionic-team/ionic-native/compare/4.3.2...v4.3.3) (2017-11-01) + + +### Bug Fixes + +* **google-maps:** HtmlInfoWindow should extend BaseClass [#2034](https://github.com/ionic-team/ionic-native/issues/2034) ([#2035](https://github.com/ionic-team/ionic-native/issues/2035)) ([ce6e412](https://github.com/ionic-team/ionic-native/commit/ce6e412)) + + + + +## [4.3.2](https://github.com/ionic-team/ionic-native/compare/4.3.1...4.3.2) (2017-10-17) + + +### Bug Fixes + +* **google-maps:** remove type from GoogleMapsEvent constant ([4639bf9](https://github.com/ionic-team/ionic-native/commit/4639bf9)) + + +### Features + +* **pro:** support corova-plugin-ionic v2.0.0 ([975f08b](https://github.com/ionic-team/ionic-native/commit/975f08b)) + + + -## [4.3.2](https://github.com/ionic-team/ionic-native/compare/v4.3.0...v4.3.2) (2017-10-06) +## [4.3.1](https://github.com/ionic-team/ionic-native/compare/v4.3.0...4.3.1) (2017-10-06) ### Bug Fixes diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..5cdfe9ed --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,11 @@ +# Contributor Code of Conduct + +As contributors and maintainers of the Ionic project, we pledge to respect everyone who contributes by posting issues, updating documentation, submitting pull requests, providing feedback in comments, and any other activities. + +Communication through any of Ionic's channels (GitHub, Slack, Forum, IRC, mailing lists, Twitter, etc.) must be constructive and never resort to personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct. + +We promise to extend courtesy and respect to everyone involved in this project regardless of gender, gender identity, sexual orientation, disability, age, race, ethnicity, religion, or level of experience. We expect anyone contributing to the Ionic project to do the same. + +If any member of the community violates this code of conduct, the maintainers of the Ionic project may take action, removing issues, comments, and PRs or blocking accounts as deemed appropriate. + +If you are subject to or witness unacceptable behavior, or have any other concerns, please email us at [hi@ionicframework.com](mailto:hi@ionicframework.com). diff --git a/DEVELOPER.md b/DEVELOPER.md index 18859275..ba6e164d 100644 --- a/DEVELOPER.md +++ b/DEVELOPER.md @@ -209,4 +209,13 @@ Example: someMethod(): Promise { // anything here will only run if the plugin is available } +``` + +#### CordovaFunctionOverride +Wrap a stub function in a call to a Cordova plugin, checking if both Cordova and the required plugin are installed. + +Example: +```ts +@CordovaFunctionOverride() +someMethod(): Observable { return; } ``` \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index e389519b..7de92d6f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,1100 +1,1253 @@ { "name": "ionic-native", - "version": "4.3.1", + "version": "4.6.0", "lockfileVersion": 1, "requires": true, "dependencies": { "@angular/compiler": { - "version": "https://registry.npmjs.org/@angular/compiler/-/compiler-4.1.3.tgz", - "integrity": "sha1-0t0whTsM9KVHWLSjFGMsIx+clMM=", - "dev": true - }, - "@angular/compiler-cli": { - "version": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-4.1.3.tgz", - "integrity": "sha1-wjYv/fZXVkcUgfg5+rZ1vKwhP5Y=", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-4.4.4.tgz", + "integrity": "sha1-Mm6wAp2aNUGqyhJN75rcUcNvK0E=", "dev": true, "requires": { - "@angular/tsc-wrapped": "https://registry.npmjs.org/@angular/tsc-wrapped/-/tsc-wrapped-4.1.3.tgz", - "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "reflect-metadata": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.10.tgz" + "tslib": "1.8.0" + } + }, + "@angular/compiler-cli": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-4.4.4.tgz", + "integrity": "sha1-BjCApJfZF1OWglBQIixxfaGE9s8=", + "dev": true, + "requires": { + "@angular/tsc-wrapped": "4.4.4", + "minimist": "1.2.0", + "reflect-metadata": "0.1.10" } }, "@angular/core": { - "version": "https://registry.npmjs.org/@angular/core/-/core-4.1.3.tgz", - "integrity": "sha1-KFSY64arfQtvmC+Pn0h+9hABOzU=", - "dev": true - }, - "@angular/tsc-wrapped": { - "version": "https://registry.npmjs.org/@angular/tsc-wrapped/-/tsc-wrapped-4.1.3.tgz", - "integrity": "sha1-LWNyyRh78WIerNlguUs5xPlSk80=", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-4.4.4.tgz", + "integrity": "sha1-vTfs9UFY+XSJmWyThr0iL4CjL1w=", "dev": true, "requires": { - "tsickle": "https://registry.npmjs.org/tsickle/-/tsickle-0.21.6.tgz" + "tslib": "1.8.0" + } + }, + "@angular/tsc-wrapped": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@angular/tsc-wrapped/-/tsc-wrapped-4.4.4.tgz", + "integrity": "sha1-mEGCHlVha4JsoWAlD+heFfx0/8M=", + "dev": true, + "requires": { + "tsickle": "0.21.6" } }, "@types/cordova": { - "version": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=", "dev": true }, "@types/jasmine": { - "version": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.5.53.tgz", - "integrity": "sha1-TgzvrQnfXsSMjdQEM1EvhLFWjWE=", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.6.3.tgz", + "integrity": "sha512-2dJf9//QxTnFBXHsCqLbB55jlMreJQie9HhgsZrSgHveOKCWVmgcXgRyvIi22Ndk/dJ/e2srLOstk2NgVbb7XA==", "dev": true }, "@types/node": { - "version": "https://registry.npmjs.org/@types/node/-/node-7.0.33.tgz", - "integrity": "sha1-rjxTrQHX6dYsfxqFxfdQDVm50ls=", + "version": "8.0.51", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.51.tgz", + "integrity": "sha512-El3+WJk2D/ppWNd2X05aiP5l2k4EwF7KwheknQZls+I26eSICoWRhRIJ56jGgw2dqNGQ5LtNajmBU2ajS28EvQ==", "dev": true }, + "JSONStream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", + "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", + "dev": true, + "requires": { + "jsonparse": "1.3.1", + "through": "2.3.8" + } + }, "abbrev": { - "version": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", "dev": true }, "accepts": { - "version": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", "dev": true, "requires": { - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "negotiator": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz" + "mime-types": "2.1.17", + "negotiator": "0.6.1" } }, "acorn": { - "version": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", "dev": true }, "add-stream": { - "version": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=", "dev": true }, "after": { - "version": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", "dev": true }, + "ajv": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz", + "integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, "align-text": { - "version": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "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": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "longest": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { - "version": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true }, "ansi-regex": { - "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "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": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "anymatch": { - "version": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", - "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "arrify": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "micromatch": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz" + "micromatch": "2.3.11", + "normalize-path": "2.1.1" } }, "archy": { - "version": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, "argparse": { - "version": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", "dev": true, "requires": { - "sprintf-js": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + "sprintf-js": "1.0.3" } }, "arr-diff": { - "version": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz" + "arr-flatten": "1.1.0" } }, "arr-flatten": { - "version": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", - "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "array-differ": { - "version": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", "dev": true }, "array-each": { - "version": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", "dev": true }, "array-find-index": { - "version": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "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-ify": { - "version": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", "dev": true }, "array-slice": { - "version": "https://registry.npmjs.org/array-slice/-/array-slice-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.0.0.tgz", "integrity": "sha1-5zA08A3MH0CHYAj9IP6ud71LfC8=", "dev": true }, "array-uniq": { - "version": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", "dev": true }, "array-unique": { - "version": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true }, "arraybuffer.slice": { - "version": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=", "dev": true }, - "arrify": { - "version": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, "asap": { - "version": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz", - "integrity": "sha1-UidltQw1EEkOUtfc/ghe+bqWlY8=", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", "dev": true }, "asn1": { - "version": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", "dev": true }, "asn1.js": { - "version": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", - "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz", + "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==", "dev": true, "requires": { - "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz" + "bn.js": "4.11.8", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" } }, "assert": { - "version": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz", - "integrity": "sha1-A5OaYiWCqBLMICMgoLmlbJuBWEk=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", "dev": true, "requires": { - "util": "https://registry.npmjs.org/util/-/util-0.10.3.tgz" + "util": "0.10.3" } }, "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, "async": { - "version": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, "async-each": { - "version": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", "dev": true }, "asynckit": { - "version": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, "aws-sign2": { - "version": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "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": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", "dev": true }, "babel-code-frame": { - "version": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", + "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": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "js-tokens": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "babel-core": { - "version": "https://registry.npmjs.org/babel-core/-/babel-core-6.25.0.tgz", - "integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", "dev": true, "requires": { - "babel-code-frame": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "babel-generator": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.25.0.tgz", - "babel-helpers": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "babel-messages": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "babel-register": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz", - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", - "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "babylon": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz", - "convert-source-map": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "json5": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "private": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", - "slash": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.0", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" } }, "babel-generator": { - "version": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.25.0.tgz", - "integrity": "sha1-M6GvcNXyiQrrRlpKd5PB32qeqfw=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", "dev": true, "requires": { - "babel-messages": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "detect-indent": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "jsesc": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "trim-right": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-helper-call-delegate": { - "version": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "requires": { - "babel-helper-hoist-variables": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-define-map": { - "version": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz", - "integrity": "sha1-epdH8ljYlH0y1RX2qhx70CIEoIA=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "dev": true, "requires": { - "babel-helper-function-name": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" } }, "babel-helper-function-name": { - "version": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "requires": { - "babel-helper-get-function-arity": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", - "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz" + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-get-function-arity": { - "version": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-hoist-variables": { - "version": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-optimise-call-expression": { - "version": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-regex": { - "version": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz", - "integrity": "sha1-024i+rEAjXnYhkjjIRaGgShFbOg=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" } }, "babel-helper-replace-supers": { - "version": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "dev": true, "requires": { - "babel-helper-optimise-call-expression": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "babel-messages": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", - "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz" + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helpers": { - "version": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-messages": { - "version": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz" + "babel-runtime": "6.26.0" } }, "babel-plugin-check-es2015-constants": { - "version": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-arrow-functions": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoping": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz", - "integrity": "sha1-dsKV3DpHQbFmWt/TFnIV3P8ypXY=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", - "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" } }, "babel-plugin-transform-es2015-classes": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "dev": true, "requires": { - "babel-helper-define-map": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz", - "babel-helper-function-name": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "babel-helper-optimise-call-expression": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "babel-helper-replace-supers": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "babel-messages": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", - "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz" + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-computed-properties": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-destructuring": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-for-of": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-function-name": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "requires": { - "babel-helper-function-name": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-literals": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-modules-amd": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz", - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz" + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-commonjs": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz", - "integrity": "sha1-0+MQtA72ZKNmIiAAl8bUQCmPK/4=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", + "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz" + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "dev": true, "requires": { - "babel-helper-hoist-variables": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-umd": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-amd": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz" + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-object-super": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "dev": true, "requires": { - "babel-helper-replace-supers": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz" + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-parameters": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "requires": { - "babel-helper-call-delegate": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "babel-helper-get-function-arity": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", - "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz" + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-shorthand-properties": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-spread": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-sticky-regex": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "requires": { - "babel-helper-regex": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz", - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-template-literals": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-unicode-regex": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "requires": { - "babel-helper-regex": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz", - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "regexpu-core": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" } }, "babel-plugin-transform-regenerator": { - "version": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz", - "integrity": "sha1-uNowWtQ8PJm0hI5P5AN7dw0jxBg=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "dev": true, "requires": { - "regenerator-transform": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz" + "regenerator-transform": "0.10.1" } }, "babel-plugin-transform-strict-mode": { - "version": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-preset-es2015": { - "version": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "dev": true, "requires": { - "babel-plugin-check-es2015-constants": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "babel-plugin-transform-es2015-arrow-functions": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "babel-plugin-transform-es2015-block-scoped-functions": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "babel-plugin-transform-es2015-block-scoping": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz", - "babel-plugin-transform-es2015-classes": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "babel-plugin-transform-es2015-computed-properties": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "babel-plugin-transform-es2015-destructuring": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "babel-plugin-transform-es2015-duplicate-keys": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "babel-plugin-transform-es2015-for-of": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "babel-plugin-transform-es2015-function-name": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "babel-plugin-transform-es2015-literals": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "babel-plugin-transform-es2015-modules-amd": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "babel-plugin-transform-es2015-modules-commonjs": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz", - "babel-plugin-transform-es2015-modules-systemjs": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "babel-plugin-transform-es2015-modules-umd": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "babel-plugin-transform-es2015-object-super": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "babel-plugin-transform-es2015-parameters": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "babel-plugin-transform-es2015-shorthand-properties": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "babel-plugin-transform-es2015-spread": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "babel-plugin-transform-es2015-sticky-regex": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "babel-plugin-transform-es2015-template-literals": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "babel-plugin-transform-es2015-typeof-symbol": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "babel-plugin-transform-es2015-unicode-regex": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "babel-plugin-transform-regenerator": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0" } }, "babel-register": { - "version": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz", - "integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "https://registry.npmjs.org/babel-core/-/babel-core-6.25.0.tgz", - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "core-js": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "home-or-tmp": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "source-map-support": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz" + "babel-core": "6.26.0", + "babel-runtime": "6.26.0", + "core-js": "2.5.1", + "home-or-tmp": "2.0.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" } }, "babel-runtime": { - "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "regenerator-runtime": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz" + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" } }, "babel-template": { - "version": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", - "integrity": "sha1-ZlJBFmt8KqTGGdceGSlpVSsQwHE=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "babylon": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" } }, "babel-traverse": { - "version": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", - "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "babel-messages": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "babylon": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "globals": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "invariant": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" } }, "babel-types": { - "version": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "to-fast-properties": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" } }, "babylon": { - "version": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz", - "integrity": "sha1-Pot0AriNIsNCPhN6FXeIOxX/hpo=", + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, "backo2": { - "version": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", "dev": true }, "balanced-match": { - "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "base64-arraybuffer": { - "version": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", "dev": true }, "base64-js": { - "version": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha1-qRlH2h9KUW6jjltOwOw3c2deCIY=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", "dev": true }, "base64id": { - "version": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", "dev": true }, "bcrypt-pbkdf": { - "version": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "dev": true, "optional": true, "requires": { - "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + "tweetnacl": "0.14.5" } }, "beeper": { - "version": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", "dev": true }, "better-assert": { - "version": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", "dev": true, "requires": { - "callsite": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz" + "callsite": "1.0.0" } }, "binary-extensions": { - "version": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", - "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", + "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=", "dev": true }, "binaryextensions": { - "version": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-1.0.1.tgz", "integrity": "sha1-HmN0iLNbWL2l9HdL+WpSEqjJB1U=", "dev": true }, "blob": { - "version": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", "dev": true }, "bluebird": { - "version": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", "dev": true }, "bn.js": { - "version": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "integrity": "sha1-3bBI5Q2UgnkAlME+s/z8gzznq0Y=", + "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-parser": { - "version": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz", - "integrity": "sha1-+IkqvI+eYn1Crtr7yma/WrmRBO4=", + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", "dev": true, "requires": { - "bytes": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "content-type": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "depd": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "http-errors": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", - "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", - "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "qs": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "raw-body": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz", - "type-is": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz" + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.1", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.15" } }, "boom": { - "version": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", "dev": true, "requires": { - "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + "hoek": "4.2.0" } }, "brace-expansion": { - "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true, "requires": { - "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + "balanced-match": "1.0.0", + "concat-map": "0.0.1" } }, "braces": { - "version": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "preserve": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "repeat-element": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" } }, "brorand": { - "version": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", "dev": true }, "browser-resolve": { - "version": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", "dev": true, "requires": { - "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz" + "resolve": "1.1.7" }, "dependencies": { "resolve": { - "version": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", "dev": true } } }, "browserify-aes": { - "version": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", - "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", + "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", "dev": true, "requires": { - "buffer-xor": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "cipher-base": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", - "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "evp_bytestokey": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.3", + "safe-buffer": "5.1.1" } }, "browserify-cipher": { - "version": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", "dev": true, "requires": { - "browserify-aes": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", - "browserify-des": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "evp_bytestokey": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz" + "browserify-aes": "1.1.1", + "browserify-des": "1.0.0", + "evp_bytestokey": "1.0.3" } }, "browserify-des": { - "version": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", "dev": true, "requires": { - "cipher-base": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", - "des.js": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "cipher-base": "1.0.4", + "des.js": "1.0.0", + "inherits": "2.0.3" } }, "browserify-rsa": { - "version": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "requires": { - "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz" + "bn.js": "4.11.8", + "randombytes": "2.0.5" } }, "browserify-sign": { - "version": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "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": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "browserify-rsa": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "create-hmac": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "elliptic": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "parse-asn1": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz" + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "elliptic": "6.4.0", + "inherits": "2.0.3", + "parse-asn1": "5.1.0" } }, "browserify-zlib": { - "version": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "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": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz" + "pako": "1.0.6" } }, "buffer": { - "version": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.0.8.tgz", + "integrity": "sha512-xXvjQhVNz50v2nPeoOsNqWCLGfiv4ji/gXZM28jnVwdLJxH4mFyqgqCKfaK9zf1KUbG6zTkjLOy7ou+jSMarGA==", "dev": true, "requires": { - "base64-js": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "ieee754": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + "base64-js": "1.2.1", + "ieee754": "1.1.8" } }, "buffer-xor": { - "version": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "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": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "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": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "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": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", "dev": true }, "callsite": { - "version": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", "dev": true }, "camel-case": { - "version": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "dev": true, "requires": { - "no-case": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz", - "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz" + "no-case": "2.3.2", + "upper-case": "1.1.3" } }, "camelcase": { - "version": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", "dev": true }, "camelcase-keys": { - "version": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "map-obj": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" + "camelcase": "2.1.1", + "map-obj": "1.0.1" } }, "canonical-path": { - "version": "https://registry.npmjs.org/canonical-path/-/canonical-path-0.0.2.tgz", + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-0.0.2.tgz", "integrity": "sha1-4x65N6jJPuKgHfGDl5RyGQKHRXQ=", "dev": true }, "caseless": { - "version": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, "catharsis": { - "version": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.8.tgz", - "integrity": "sha1-aTR59DqsVJ2Aa9c+kkzQ2USVGgY=", + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.9.tgz", + "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", "dev": true, "requires": { - "underscore-contrib": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz" + "underscore-contrib": "0.3.0" } }, "center-align": { - "version": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, "optional": true, "requires": { - "align-text": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "lazy-cache": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chalk": { - "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + "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" } }, "change-case": { - "version": "https://registry.npmjs.org/change-case/-/change-case-3.0.0.tgz", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.0.tgz", "integrity": "sha1-bJyONfh5CHCoK2sHRb6MPL75sIE=", "dev": true, "requires": { - "camel-case": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "constant-case": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "dot-case": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "header-case": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "is-lower-case": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "is-upper-case": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "lower-case": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "lower-case-first": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "no-case": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz", - "param-case": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "pascal-case": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "path-case": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "sentence-case": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "snake-case": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "swap-case": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "title-case": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "upper-case-first": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz" + "camel-case": "3.0.0", + "constant-case": "2.0.0", + "dot-case": "2.1.1", + "header-case": "1.0.1", + "is-lower-case": "1.1.3", + "is-upper-case": "1.1.2", + "lower-case": "1.1.4", + "lower-case-first": "1.0.2", + "no-case": "2.3.2", + "param-case": "2.1.1", + "pascal-case": "2.0.1", + "path-case": "2.1.1", + "sentence-case": "2.1.1", + "snake-case": "2.1.0", + "swap-case": "1.1.2", + "title-case": "2.1.1", + "upper-case": "1.1.3", + "upper-case-first": "1.1.2" } }, "child-process-promise": { - "version": "https://registry.npmjs.org/child-process-promise/-/child-process-promise-2.2.1.tgz", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/child-process-promise/-/child-process-promise-2.2.1.tgz", "integrity": "sha1-RzChHvYQ+tRQuPIjx50x172tgHQ=", "dev": true, "requires": { - "cross-spawn": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "node-version": "https://registry.npmjs.org/node-version/-/node-version-1.0.0.tgz", - "promise-polyfill": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.0.2.tgz" + "cross-spawn": "4.0.2", + "node-version": "1.1.0", + "promise-polyfill": "6.0.2" } }, "chokidar": { - "version": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", - "async-each": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "fsevents": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", - "glob-parent": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "is-binary-path": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "readdirp": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz" + "anymatch": "1.3.2", + "async-each": "1.0.1", + "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.1.0" } }, "cipher-base": { - "version": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", - "integrity": "sha1-7qvxlEGc6QDaMBjCB9IS8qbfCgc=", + "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": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "inherits": "2.0.3", + "safe-buffer": "5.1.1" } }, "cliui": { - "version": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "dev": true, "optional": true, "requires": { - "center-align": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "right-align": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" }, "dependencies": { "wordwrap": { - "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", "dev": true, "optional": true @@ -1102,1863 +1255,1222 @@ } }, "clone": { - "version": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", "dev": true }, "clone-stats": { - "version": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", "dev": true }, + "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": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "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 }, + "coffee-script": { + "version": "1.12.7", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", + "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==", + "dev": true + }, "colors": { - "version": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true }, "combine-lists": { - "version": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=", "dev": true, "requires": { - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" + "lodash": "4.17.4" + } + }, + "combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "dev": true, + "requires": { + "convert-source-map": "1.1.3", + "inline-source-map": "0.6.2", + "lodash.memoize": "3.0.4", + "source-map": "0.5.7" + }, + "dependencies": { + "convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", + "dev": true + } } }, "combined-stream": { - "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "dev": true, "requires": { - "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + "delayed-stream": "1.0.0" } }, - "commander": { - "version": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha1-FXFS/R56bI2YpbcVzzdt+SgARWM=", - "dev": true - }, "compare-func": { - "version": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", "dev": true, "requires": { - "array-ify": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "dot-prop": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz" + "array-ify": "1.0.0", + "dot-prop": "3.0.0" } }, "component-bind": { - "version": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", "dev": true }, "component-emitter": { - "version": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=", "dev": true }, "component-inherit": { - "version": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", "dev": true }, "concat-map": { - "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "concat-stream": { - "version": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz", - "integrity": "sha1-U/fUPFHF5D+ByP3QMyHGMb5o1hE=", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "dev": true, "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "typedarray": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" - }, - "dependencies": { - "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dev": true, - "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - } - }, - "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" } }, "connect": { - "version": "https://registry.npmjs.org/connect/-/connect-3.6.2.tgz", - "integrity": "sha1-aU6NIGgb/kkCgsiriGvpjwn0L+c=", + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.5.tgz", + "integrity": "sha1-+43ee6B2OHfQ7J352sC0tA5yx9o=", "dev": true, "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "finalhandler": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz", - "parseurl": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "utils-merge": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz" + "debug": "2.6.9", + "finalhandler": "1.0.6", + "parseurl": "1.3.2", + "utils-merge": "1.0.1" } }, "console-browserify": { - "version": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "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": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" + "date-now": "0.1.4" } }, "constant-case": { - "version": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", "dev": true, "requires": { - "snake-case": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz" + "snake-case": "2.1.0", + "upper-case": "1.1.3" } }, "constants-browserify": { - "version": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", "dev": true }, "content-type": { - "version": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=", + "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 }, "conventional-changelog": { - "version": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-1.1.3.tgz", - "integrity": "sha1-JigweKw4wJTfKvFgSwpGu8AWXE0=", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-1.1.7.tgz", + "integrity": "sha1-kVGmKx2O2y2CcR2r9bfPcQQfgrE=", "dev": true, "requires": { - "conventional-changelog-angular": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.3.3.tgz", - "conventional-changelog-atom": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-0.1.0.tgz", - "conventional-changelog-codemirror": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.1.0.tgz", - "conventional-changelog-core": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-1.8.0.tgz", - "conventional-changelog-ember": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-0.2.5.tgz", - "conventional-changelog-eslint": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-0.1.0.tgz", - "conventional-changelog-express": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-0.1.0.tgz", - "conventional-changelog-jquery": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz", - "conventional-changelog-jscs": "https://registry.npmjs.org/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz", - "conventional-changelog-jshint": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-0.1.0.tgz" + "conventional-changelog-angular": "1.5.2", + "conventional-changelog-atom": "0.1.2", + "conventional-changelog-codemirror": "0.2.1", + "conventional-changelog-core": "1.9.3", + "conventional-changelog-ember": "0.2.9", + "conventional-changelog-eslint": "0.2.1", + "conventional-changelog-express": "0.2.1", + "conventional-changelog-jquery": "0.1.0", + "conventional-changelog-jscs": "0.1.0", + "conventional-changelog-jshint": "0.2.1" } }, "conventional-changelog-angular": { - "version": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.3.3.tgz", - "integrity": "sha1-586AeoXdR1DhtBf3ZgRUl1EeByY=", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.5.2.tgz", + "integrity": "sha1-Kzj2Zf6cWSCvGi+C9Uf0ur5t5Xw=", "dev": true, "requires": { - "compare-func": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", - "github-url-from-git": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.5.0.tgz", - "q": "https://registry.npmjs.org/q/-/q-1.5.0.tgz" + "compare-func": "1.3.2", + "q": "1.5.0" } }, "conventional-changelog-atom": { - "version": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-0.1.0.tgz", - "integrity": "sha1-Z6R8ZqQrL4kJ7xWHyZia4d5zC5I=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-0.1.2.tgz", + "integrity": "sha1-Ella1SZ6aTfDTPkAKBscZRmKTGM=", "dev": true, "requires": { - "q": "https://registry.npmjs.org/q/-/q-1.5.0.tgz" + "q": "1.5.0" } }, "conventional-changelog-cli": { - "version": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-1.3.1.tgz", - "integrity": "sha1-HNWp264l/7X/5nr+8eE26s7v0tU=", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-1.3.4.tgz", + "integrity": "sha512-b8B1i01df+Lq5t16L3g8uoEGdzViChIKmIo7TComL4DqqrjrtasRaT+/4OPGcApEgX86JkBqb4KVt85ytQinUw==", "dev": true, "requires": { - "add-stream": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", - "conventional-changelog": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-1.1.3.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "tempfile": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz" + "add-stream": "1.0.0", + "conventional-changelog": "1.1.7", + "lodash": "4.17.4", + "meow": "3.7.0", + "tempfile": "1.1.1" } }, "conventional-changelog-codemirror": { - "version": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.1.0.tgz", - "integrity": "sha1-dXelkdv5tTjnoVCn7mL2WihyszQ=", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.2.1.tgz", + "integrity": "sha1-KZpPcUe681DmyBWPxUlUopHFzAk=", "dev": true, "requires": { - "q": "https://registry.npmjs.org/q/-/q-1.5.0.tgz" + "q": "1.5.0" } }, "conventional-changelog-core": { - "version": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-1.8.0.tgz", - "integrity": "sha1-l3hItBbK8V+wnyCxKmLUDvFFuVc=", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-1.9.3.tgz", + "integrity": "sha1-KJn+d5OJoynw7EsnRsNt3vuY2i0=", "dev": true, "requires": { - "conventional-changelog-writer": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-1.4.1.tgz", - "conventional-commits-parser": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-1.3.0.tgz", - "dateformat": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "get-pkg-repo": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", - "git-raw-commits": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.2.0.tgz", - "git-remote-origin-url": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "git-semver-tags": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.2.0.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "q": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", - "read-pkg": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "read-pkg-up": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz" + "conventional-changelog-writer": "2.0.2", + "conventional-commits-parser": "2.0.1", + "dateformat": "1.0.12", + "get-pkg-repo": "1.4.0", + "git-raw-commits": "1.3.0", + "git-remote-origin-url": "2.0.0", + "git-semver-tags": "1.2.3", + "lodash": "4.17.4", + "normalize-package-data": "2.4.0", + "q": "1.5.0", + "read-pkg": "1.1.0", + "read-pkg-up": "1.0.1", + "through2": "2.0.3" } }, "conventional-changelog-ember": { - "version": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-0.2.5.tgz", - "integrity": "sha1-ziHVz4PNXr4F0j/fIy2IRPS1ak8=", + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-0.2.9.tgz", + "integrity": "sha1-jsc8wFTjqwZGZ/sf61L+jvGxZDg=", "dev": true, "requires": { - "q": "https://registry.npmjs.org/q/-/q-1.5.0.tgz" + "q": "1.5.0" } }, "conventional-changelog-eslint": { - "version": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-0.1.0.tgz", - "integrity": "sha1-pSQR6ZngUBzlALhWsKZD0DMJB+I=", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-0.2.1.tgz", + "integrity": "sha1-LCoRvrIW+AZJunKDQYApO2h8BmI=", "dev": true, "requires": { - "q": "https://registry.npmjs.org/q/-/q-1.5.0.tgz" + "q": "1.5.0" } }, "conventional-changelog-express": { - "version": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-0.1.0.tgz", - "integrity": "sha1-VcbIQcgRliA2wDe9vZZKVK4xD84=", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-0.2.1.tgz", + "integrity": "sha1-g42eHmyQmXA7FQucGaoteBdCvWw=", "dev": true, "requires": { - "q": "https://registry.npmjs.org/q/-/q-1.5.0.tgz" + "q": "1.5.0" } }, "conventional-changelog-jquery": { - "version": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz", "integrity": "sha1-Agg5cWLjhGmG5xJztsecW1+A9RA=", "dev": true, "requires": { - "q": "https://registry.npmjs.org/q/-/q-1.5.0.tgz" + "q": "1.5.0" } }, "conventional-changelog-jscs": { - "version": "https://registry.npmjs.org/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz", "integrity": "sha1-BHnrRDzH1yxYvwvPDvHURKkvDlw=", "dev": true, "requires": { - "q": "https://registry.npmjs.org/q/-/q-1.5.0.tgz" + "q": "1.5.0" } }, "conventional-changelog-jshint": { - "version": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-0.1.0.tgz", - "integrity": "sha1-AMq46aMxdIer2UxNhGcTQpGNKgc=", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-0.2.1.tgz", + "integrity": "sha1-hhObs6yZiZ8rF36WF+CbN9mbzzo=", "dev": true, "requires": { - "compare-func": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", - "q": "https://registry.npmjs.org/q/-/q-1.5.0.tgz" + "compare-func": "1.3.2", + "q": "1.5.0" } }, "conventional-changelog-writer": { - "version": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-1.4.1.tgz", - "integrity": "sha1-P0y00APrtWmJ0w00WJO1KkNjnI4=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-2.0.2.tgz", + "integrity": "sha1-tYV97RsAHa+aeLnNQJJvRcE0lJs=", "dev": true, "requires": { - "compare-func": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", - "conventional-commits-filter": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-1.0.0.tgz", - "dateformat": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "handlebars": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", - "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "split": "https://registry.npmjs.org/split/-/split-1.0.0.tgz", - "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz" + "compare-func": "1.3.2", + "conventional-commits-filter": "1.1.0", + "dateformat": "1.0.12", + "handlebars": "4.0.11", + "json-stringify-safe": "5.0.1", + "lodash": "4.17.4", + "meow": "3.7.0", + "semver": "5.3.0", + "split": "1.0.1", + "through2": "2.0.3" } }, "conventional-commit-types": { - "version": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.1.0.tgz", - "integrity": "sha1-RdhgOGyaLmU37pHYobYb0EEbPQQ=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.2.0.tgz", + "integrity": "sha1-XblXOdbCEqy+e29lahG5QLqmiUY=", "dev": true }, "conventional-commits-filter": { - "version": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-1.0.0.tgz", - "integrity": "sha1-b8KmWTcrw/IznPn//34bA0S5MDk=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-1.1.0.tgz", + "integrity": "sha1-H8Ka8wte2rdvVOIpxBGwxmPQ+es=", "dev": true, "requires": { - "is-subset": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", - "modify-values": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.0.tgz" + "is-subset": "0.1.1", + "modify-values": "1.0.0" } }, "conventional-commits-parser": { - "version": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-1.3.0.tgz", - "integrity": "sha1-4ye1MZThp61dxjR57pCZpSsCSGU=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-2.0.1.tgz", + "integrity": "sha1-HxXOa4RPfKQUlcgZDAgzwwuLFpM=", "dev": true, "requires": { - "is-text-path": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "JSONStream": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "split2": "https://registry.npmjs.org/split2/-/split2-2.1.1.tgz", - "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "trim-off-newlines": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz" + "JSONStream": "1.3.1", + "is-text-path": "1.0.1", + "lodash": "4.17.4", + "meow": "3.7.0", + "split2": "2.2.0", + "through2": "2.0.3", + "trim-off-newlines": "1.0.1" } }, "convert-source-map": { - "version": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", "dev": true }, "cookie": { - "version": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", "dev": true }, "core-js": { - "version": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", "dev": true }, "core-util-is": { - "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, "cpr": { - "version": "https://registry.npmjs.org/cpr/-/cpr-2.0.2.tgz", - "integrity": "sha1-nkS+kRAfZEo+H4yQhxK3DN1UcFY=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cpr/-/cpr-2.0.0.tgz", + "integrity": "sha1-wqRHyVFsN+u2R8qiYWvu+i7mcBE=", "dev": true, "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz" + "graceful-fs": "4.1.11", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" } }, "create-ecdh": { - "version": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", "dev": true, "requires": { - "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "elliptic": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz" + "bn.js": "4.11.8", + "elliptic": "6.4.0" } }, "create-hash": { - "version": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", "dev": true, "requires": { - "cipher-base": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "ripemd160": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "sha.js": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz" + "cipher-base": "1.0.4", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "sha.js": "2.4.9" } }, "create-hmac": { - "version": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", "dev": true, "requires": { - "cipher-base": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", - "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "ripemd160": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "sha.js": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz" + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.9" } }, "cross-spawn": { - "version": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "dev": true, "requires": { - "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "which": "https://registry.npmjs.org/which/-/which-1.2.14.tgz" + "lru-cache": "4.1.1", + "which": "1.3.0" } }, "cryptiles": { - "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", "dev": true, "requires": { - "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "dev": true, + "requires": { + "hoek": "4.2.0" + } + } } }, "crypto-browserify": { - "version": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz", - "integrity": "sha1-NlKgkGq5sqfgw85mpAjpV6JIVSI=", + "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": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "browserify-sign": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "create-ecdh": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "create-hmac": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "diffie-hellman": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "pbkdf2": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz", - "public-encrypt": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz" + "browserify-cipher": "1.0.0", + "browserify-sign": "4.0.4", + "create-ecdh": "4.0.0", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "diffie-hellman": "5.0.2", + "inherits": "2.0.3", + "pbkdf2": "3.0.14", + "public-encrypt": "4.0.0", + "randombytes": "2.0.5", + "randomfill": "1.0.3" } }, "currently-unhandled": { - "version": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "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": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz" + "array-find-index": "1.0.2" } }, "custom-event": { - "version": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", "dev": true }, "cycle": { - "version": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", "dev": true }, "cz-conventional-changelog": { - "version": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-2.0.0.tgz", "integrity": "sha1-Val5r9/pXnAkh50qD1kkYwFwtTM=", "dev": true, "requires": { - "conventional-commit-types": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.1.0.tgz", - "lodash.map": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "longest": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "pad-right": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz", - "right-pad": "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz", - "word-wrap": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" + "conventional-commit-types": "2.2.0", + "lodash.map": "4.6.0", + "longest": "1.0.1", + "pad-right": "0.2.2", + "right-pad": "1.0.1", + "word-wrap": "1.2.3" } }, "dargs": { - "version": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", "dev": true, "requires": { - "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + "number-is-nan": "1.0.1" } }, "dashdash": { - "version": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "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": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - }, - "dependencies": { - "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } + "assert-plus": "1.0.0" } }, "date-format": { - "version": "https://registry.npmjs.org/date-format/-/date-format-0.0.0.tgz", + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-0.0.0.tgz", "integrity": "sha1-CSBoY6sHDrRZrOpVQsvYVrEZZrM=", "dev": true }, "date-now": { - "version": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", "dev": true }, "dateformat": { - "version": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", "dev": true, "requires": { - "get-stdin": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz" + "get-stdin": "4.0.1", + "meow": "3.7.0" } }, "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + "ms": "2.0.0" } }, "decamelize": { - "version": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "deep-is": { - "version": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, "defaults": { - "version": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "requires": { - "clone": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz" + "clone": "1.0.3" } }, "delayed-stream": { - "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, "depd": { - "version": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", "dev": true }, "dependency-graph": { - "version": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.4.1.tgz", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.4.1.tgz", "integrity": "sha1-MC5YIY2FxRqXY4cw2/m32FKhlpM=", "dev": true }, "deprecated": { - "version": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", "dev": true }, "des.js": { - "version": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "dev": true, "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz" + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" } }, "detect-file": { - "version": "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz", "integrity": "sha1-STXe39lIhkjgBrASlWbpOGcR6mM=", "dev": true, "requires": { - "fs-exists-sync": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz" + "fs-exists-sync": "0.1.0" } }, "detect-indent": { - "version": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" + "repeating": "2.0.1" } }, "dgeni": { - "version": "https://registry.npmjs.org/dgeni/-/dgeni-0.4.7.tgz", + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/dgeni/-/dgeni-0.4.7.tgz", "integrity": "sha1-UHBifdKPiNSABuIfVa+xipy4vmg=", "dev": true, "requires": { - "canonical-path": "https://registry.npmjs.org/canonical-path/-/canonical-path-0.0.2.tgz", - "dependency-graph": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.4.1.tgz", - "di": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "objectdiff": "https://registry.npmjs.org/objectdiff/-/objectdiff-1.1.0.tgz", - "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "q": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "validate.js": "https://registry.npmjs.org/validate.js/-/validate.js-0.9.0.tgz", - "winston": "https://registry.npmjs.org/winston/-/winston-2.3.1.tgz" + "canonical-path": "0.0.2", + "dependency-graph": "0.4.1", + "di": "0.0.1", + "lodash": "3.10.1", + "objectdiff": "1.1.0", + "optimist": "0.6.1", + "q": "1.4.1", + "validate.js": "0.9.0", + "winston": "2.4.0" }, "dependencies": { "lodash": { - "version": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", "dev": true }, "q": { - "version": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", "dev": true } } }, "dgeni-packages": { - "version": "https://registry.npmjs.org/dgeni-packages/-/dgeni-packages-0.16.10.tgz", + "version": "0.16.10", + "resolved": "https://registry.npmjs.org/dgeni-packages/-/dgeni-packages-0.16.10.tgz", "integrity": "sha1-mRltAUpum3+AmqDrP9u8bUUxH28=", "dev": true, "requires": { - "canonical-path": "https://registry.npmjs.org/canonical-path/-/canonical-path-0.0.2.tgz", - "catharsis": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.8.tgz", - "change-case": "https://registry.npmjs.org/change-case/-/change-case-3.0.0.tgz", - "dgeni": "https://registry.npmjs.org/dgeni/-/dgeni-0.4.7.tgz", - "espree": "https://registry.npmjs.org/espree/-/espree-2.2.5.tgz", - "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "htmlparser2": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "marked": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "mkdirp-promise": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "node-html-encoder": "https://registry.npmjs.org/node-html-encoder/-/node-html-encoder-0.0.2.tgz", - "nunjucks": "https://registry.npmjs.org/nunjucks/-/nunjucks-2.5.2.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "shelljs": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", - "spdx-license-list": "https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-2.1.0.tgz", - "stringmap": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz", - "typescript": "https://registry.npmjs.org/typescript/-/typescript-1.8.10.tgz" + "canonical-path": "0.0.2", + "catharsis": "0.8.9", + "change-case": "3.0.0", + "dgeni": "0.4.7", + "espree": "2.2.5", + "estraverse": "4.2.0", + "glob": "7.1.2", + "htmlparser2": "3.9.2", + "lodash": "4.17.4", + "marked": "0.3.6", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "mkdirp-promise": "5.0.1", + "node-html-encoder": "0.0.2", + "nunjucks": "2.5.2", + "semver": "5.3.0", + "shelljs": "0.7.8", + "spdx-license-list": "2.1.0", + "stringmap": "0.2.2", + "typescript": "1.8.10" }, "dependencies": { "typescript": { - "version": "https://registry.npmjs.org/typescript/-/typescript-1.8.10.tgz", + "version": "1.8.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-1.8.10.tgz", "integrity": "sha1-tHXW4N/wv1DyluXKbvn7tccyDx4=", "dev": true } } }, "di": { - "version": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", "dev": true }, "diff": { - "version": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", - "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", + "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==", "dev": true }, "diffie-hellman": { - "version": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", "dev": true, "requires": { - "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "miller-rabin": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", - "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz" + "bn.js": "4.11.8", + "miller-rabin": "4.0.1", + "randombytes": "2.0.5" } }, "doctrine": { - "version": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=", "dev": true, "requires": { - "esutils": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + "esutils": "1.1.6", + "isarray": "0.0.1" }, "dependencies": { "esutils": { - "version": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", "dev": true }, "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true } } }, "dom-serialize": { - "version": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", "dev": true, "requires": { - "custom-event": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "ent": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "void-elements": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz" + "custom-event": "1.0.1", + "ent": "2.2.0", + "extend": "3.0.1", + "void-elements": "2.0.1" } }, "dom-serializer": { - "version": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { - "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "entities": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz" + "domelementtype": "1.1.3", + "entities": "1.1.1" }, "dependencies": { "domelementtype": { - "version": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", "dev": true } } }, "domain-browser": { - "version": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", "dev": true }, "domelementtype": { - "version": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", "dev": true }, "domhandler": { - "version": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", "dev": true, "requires": { - "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz" + "domelementtype": "1.3.0" } }, "domutils": { - "version": "https://registry.npmjs.org/domutils/-/domutils-1.6.2.tgz", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.6.2.tgz", "integrity": "sha1-GVjMC0yUJuntNn+xyOhUiRsPo/8=", "dev": true, "requires": { - "dom-serializer": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz" + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" } }, "dot-case": { - "version": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", "dev": true, "requires": { - "no-case": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz" + "no-case": "2.3.2" } }, "dot-prop": { - "version": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", "dev": true, "requires": { - "is-obj": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" + "is-obj": "1.0.1" } }, "duplexer2": { - "version": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", "dev": true, "requires": { - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" + "readable-stream": "1.1.14" }, "dependencies": { "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" } }, "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true } } }, "ecc-jsbn": { - "version": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "dev": true, "optional": true, "requires": { - "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + "jsbn": "0.1.1" } }, "ee-first": { - "version": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "dev": true }, "elliptic": { - "version": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "dev": true, "requires": { - "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "brorand": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "hash.js": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "hmac-drbg": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "minimalistic-crypto-utils": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.3", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" } }, "encodeurl": { - "version": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", "dev": true }, "end-of-stream": { - "version": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", "dev": true, "requires": { - "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz" + "once": "1.3.3" }, "dependencies": { "once": { - "version": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", "dev": true, "requires": { - "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "wrappy": "1.0.2" } } } }, "engine.io": { - "version": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", "integrity": "sha1-jef5eJXSDTm4X4ju7nd7K9QrE9Q=", "dev": true, "requires": { - "accepts": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "base64id": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "cookie": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "engine.io-parser": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", - "ws": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz" + "accepts": "1.3.3", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "2.3.3", + "engine.io-parser": "1.3.2", + "ws": "1.1.2" }, "dependencies": { "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz" + "ms": "0.7.2" } }, "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true } } }, "engine.io-client": { - "version": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz", "integrity": "sha1-F5jtk0USRkU9TG9jXXogH+lA1as=", "dev": true, "requires": { - "component-emitter": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "component-inherit": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "engine.io-parser": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", - "has-cors": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "indexof": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "parsejson": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", - "parseqs": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "parseuri": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "ws": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz", - "xmlhttprequest-ssl": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", - "yeast": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz" + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "2.3.3", + "engine.io-parser": "1.3.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parsejson": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "1.1.2", + "xmlhttprequest-ssl": "1.5.3", + "yeast": "0.1.2" }, "dependencies": { "component-emitter": { - "version": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true }, "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz" + "ms": "0.7.2" } }, "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true } } }, "engine.io-parser": { - "version": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=", "dev": true, "requires": { - "after": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "arraybuffer.slice": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", - "base64-arraybuffer": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "blob": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "has-binary": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", - "wtf-8": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz" + "after": "0.8.2", + "arraybuffer.slice": "0.0.6", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.4", + "has-binary": "0.1.7", + "wtf-8": "1.0.0" } }, "ent": { - "version": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", "dev": true }, "entities": { - "version": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", "dev": true }, "error-ex": { - "version": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + "is-arrayish": "0.2.1" } }, "es6-promise": { - "version": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.0.5.tgz", - "integrity": "sha1-eILzCt3lskDM+n99eMVIMwlRrkI=", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz", + "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==", "dev": true }, "escape-html": { - "version": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "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": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "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 }, "escodegen": { - "version": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", "dev": true, "requires": { - "esprima": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "optionator": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz" + "esprima": "2.7.3", + "estraverse": "1.9.3", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.2.0" }, "dependencies": { "esprima": { - "version": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", "dev": true }, "estraverse": { - "version": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", "dev": true }, "source-map": { - "version": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", "dev": true, "optional": true, "requires": { - "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz" + "amdefine": "1.0.1" } } } }, "espree": { - "version": "https://registry.npmjs.org/espree/-/espree-2.2.5.tgz", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/espree/-/espree-2.2.5.tgz", "integrity": "sha1-32kbkxCIlAKuspzAZnCMVmkLhUs=", "dev": true }, "estraverse": { - "version": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", "dev": true }, "esutils": { - "version": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, "eventemitter3": { - "version": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", "dev": true }, "events": { - "version": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", "dev": true }, "evp_bytestokey": { - "version": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", - "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=", + "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": { - "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz" + "md5.js": "1.3.4", + "safe-buffer": "5.1.1" } }, "expand-braces": { - "version": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", "dev": true, "requires": { - "array-slice": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "array-unique": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "braces": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz" + "array-slice": "0.2.3", + "array-unique": "0.2.1", + "braces": "0.1.5" }, "dependencies": { "array-slice": { - "version": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", "dev": true }, "braces": { - "version": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", "dev": true, "requires": { - "expand-range": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz" + "expand-range": "0.1.1" } }, "expand-range": { - "version": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", "dev": true, "requires": { - "is-number": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", - "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz" + "is-number": "0.1.1", + "repeat-string": "0.2.2" } }, "is-number": { - "version": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=", "dev": true }, "repeat-string": { - "version": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=", "dev": true } } }, "expand-brackets": { - "version": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz" + "is-posix-bracket": "0.1.1" } }, "expand-range": { - "version": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz" + "fill-range": "2.2.3" } }, "expand-tilde": { - "version": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=", "dev": true, "requires": { - "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" + "os-homedir": "1.0.2" } }, "extend": { - "version": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", "dev": true }, "extglob": { - "version": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + "is-extglob": "1.0.0" } }, "extract-zip": { - "version": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz", - "integrity": "sha1-ksz22B73Cp+kwXRxFMzvbYaIpsQ=", + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz", + "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=", "dev": true, "requires": { - "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", - "yauzl": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz" + "concat-stream": "1.6.0", + "debug": "2.6.9", + "mkdirp": "0.5.0", + "yauzl": "2.4.1" }, "dependencies": { - "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", - "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=", - "dev": true - }, - "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", - "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", - "dev": true, - "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - } - } - }, - "extsprintf": { - "version": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", - "dev": true - }, - "eyes": { - "version": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", - "dev": true - }, - "fancy-log": { - "version": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", - "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=", - "dev": true, - "requires": { - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "time-stamp": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz" - } - }, - "fast-levenshtein": { - "version": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fd-slicer": { - "version": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", - "dev": true, - "requires": { - "pend": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" - } - }, - "filename-regex": { - "version": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fill-range": { - "version": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "dev": true, - "requires": { - "is-number": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "isobject": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "randomatic": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "repeat-element": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" - } - }, - "finalhandler": { - "version": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz", - "integrity": "sha1-70fneVDpmXgOhgIqVg4yF+DQzIk=", - "dev": true, - "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "parseurl": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "unpipe": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - } - }, - "find-index": { - "version": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", - "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", - "dev": true - }, - "find-up": { - "version": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" - } - }, - "findup-sync": { - "version": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz", - "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=", - "dev": true, - "requires": { - "detect-file": "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz", - "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "micromatch": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "resolve-dir": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz" - } - }, - "fined": { - "version": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", - "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", - "dev": true, - "requires": { - "expand-tilde": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "is-plain-object": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.3.tgz", - "object.defaults": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "object.pick": "https://registry.npmjs.org/object.pick/-/object.pick-1.2.0.tgz", - "parse-filepath": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.1.tgz" - }, - "dependencies": { - "expand-tilde": { - "version": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz" - } - } - } - }, - "first-chunk-stream": { - "version": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", - "dev": true - }, - "flagged-respawn": { - "version": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz", - "integrity": "sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU=", - "dev": true - }, - "for-in": { - "version": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" - } - }, - "forever-agent": { - "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "requires": { - "asynckit": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz" - } - }, - "fs-exists-sync": { - "version": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", - "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=", - "dev": true - }, - "fs-extra": { - "version": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.0.0.tgz", - "integrity": "sha1-M3NSve1KC3FPPrhN6M6nZenTdgA=", - "dev": true, - "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "jsonfile": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz" - } - }, - "fs-extra-promise": { - "version": "https://registry.npmjs.org/fs-extra-promise/-/fs-extra-promise-0.4.1.tgz", - "integrity": "sha1-rCjNLPa6ckjYI13ziHts9u3fNC8=", - "dev": true, - "requires": { - "bluebird": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "fs-extra": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz" - }, - "dependencies": { - "fs-extra": { - "version": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "dev": true, - "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "jsonfile": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "klaw": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz" - } - } - } - }, - "fs.realpath": { - "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", - "integrity": "sha1-MoK3E/s62A7eDp/PRhG1qm/AM/Q=", - "dev": true, - "optional": true, - "requires": { - "nan": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", - "node-pre-gyp": "0.6.36" - }, - "dependencies": { - "abbrev": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", - "dev": true, - "optional": true - }, - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "aproba": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", - "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" - } - }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true, - "optional": 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, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true, - "optional": 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, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", - "dev": true, - "optional": true - }, - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "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" - } - }, - "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.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true, - "optional": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "optional": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", - "dev": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", - "dev": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "optional": true - }, - "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, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", - "dev": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "optional": true, - "requires": { - "aproba": "1.1.1", - "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" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "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" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "dev": true, - "optional": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } - }, - "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, - "optional": true - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "optional": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true - }, - "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, - "optional": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "1.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=", - "dev": true - }, - "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true, - "optional": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true, - "optional": true - }, - "jodid25519": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "optional": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "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, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, - "mime-db": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", - "dev": true - }, - "mime-types": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", - "dev": true, - "requires": { - "mime-db": "1.27.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "1.1.7" - } - }, "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", @@ -2966,3683 +2478,3843 @@ "dev": true }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", "dev": true, "requires": { "minimist": "0.0.8" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true - }, - "node-pre-gyp": { - "version": "0.6.36", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz", - "integrity": "sha1-22BBEst04NR3VU6bUFsXq936t4Y=", - "dev": true, - "optional": true, - "requires": { - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" - } - }, - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" - } - }, - "npmlog": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", - "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", - "dev": 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", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "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, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", - "dev": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" - } - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "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.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" - } - }, - "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", - "dev": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", - "dev": true - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true, - "optional": true - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, - "optional": true, - "requires": { - "hoek": "2.16.3" - } - }, - "sshpk": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", - "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", - "dev": true, - "optional": true, - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, - "string_decoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", - "dev": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "optional": 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" - } - }, - "tar-pack": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", - "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", - "dev": true, - "optional": true, - "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" - } - }, - "tough-cookie": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", - "dev": true, - "optional": true, - "requires": { - "punycode": "1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", - "dev": true, - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", - "dev": true, - "optional": true - }, - "verror": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", - "dev": true, - "optional": true, - "requires": { - "extsprintf": "1.0.2" - } - }, - "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "dev": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fancy-log": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", + "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "time-stamp": "1.1.0" + } + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "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 + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "requires": { + "pend": "1.2.0" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "finalhandler": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.6.tgz", + "integrity": "sha1-AHrqM9Gk0+QgF/YkhIrVjSEvgU8=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + }, + "dependencies": { + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", "dev": true } } }, + "find-index": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", + "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", + "dev": true + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "findup-sync": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz", + "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=", + "dev": true, + "requires": { + "detect-file": "0.1.0", + "is-glob": "2.0.1", + "micromatch": "2.3.11", + "resolve-dir": "0.1.1" + } + }, + "fined": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", + "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", + "dev": true, + "requires": { + "expand-tilde": "2.0.2", + "is-plain-object": "2.0.4", + "object.defaults": "1.1.0", + "object.pick": "1.3.0", + "parse-filepath": "1.0.1" + }, + "dependencies": { + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "1.0.1" + } + } + } + }, + "first-chunk-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", + "dev": true + }, + "flagged-respawn": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz", + "integrity": "sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU=", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "1.0.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.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "fs-exists-sync": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", + "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=", + "dev": true + }, + "fs-extra": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.0.0.tgz", + "integrity": "sha1-M3NSve1KC3FPPrhN6M6nZenTdgA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0" + } + }, + "fs-extra-promise": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/fs-extra-promise/-/fs-extra-promise-0.4.1.tgz", + "integrity": "sha1-rCjNLPa6ckjYI13ziHts9u3fNC8=", + "dev": true, + "requires": { + "bluebird": "3.5.1", + "fs-extra": "0.30.0" + }, + "dependencies": { + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1", + "path-is-absolute": "1.0.1", + "rimraf": "2.6.1" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, "gaze": { - "version": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", "dev": true, "requires": { - "globule": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz" - } - }, - "generate-function": { - "version": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", - "dev": true - }, - "generate-object-property": { - "version": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", - "dev": true, - "requires": { - "is-property": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + "globule": "0.1.0" } }, "get-pkg-repo": { - "version": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=", "dev": true, "requires": { - "hosted-git-info": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "parse-github-repo-url": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.0.tgz", - "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz" + "hosted-git-info": "2.5.0", + "meow": "3.7.0", + "normalize-package-data": "2.4.0", + "parse-github-repo-url": "1.4.1", + "through2": "2.0.3" } }, "get-stdin": { - "version": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", "dev": true }, "getpass": { - "version": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - }, - "dependencies": { - "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } + "assert-plus": "1.0.0" } }, "git-raw-commits": { - "version": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.2.0.tgz", - "integrity": "sha1-DzqL/ZmuDy2LkiTViJKXXppS0Dw=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.3.0.tgz", + "integrity": "sha1-C8hZbpDV/+c29/VUa9LRL3OrqsY=", "dev": true, "requires": { - "dargs": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", - "lodash.template": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", - "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "split2": "https://registry.npmjs.org/split2/-/split2-2.1.1.tgz", - "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz" + "dargs": "4.1.0", + "lodash.template": "4.4.0", + "meow": "3.7.0", + "split2": "2.2.0", + "through2": "2.0.3" } }, "git-remote-origin-url": { - "version": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", "dev": true, "requires": { - "gitconfiglocal": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + "gitconfiglocal": "1.0.0", + "pify": "2.3.0" } }, "git-semver-tags": { - "version": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.2.0.tgz", - "integrity": "sha1-sx/QLIq1eL1sm1ysyl4cZMEXesE=", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.2.3.tgz", + "integrity": "sha1-GItFOIK/nXojr9Mbq6U32rc4jV0=", "dev": true, "requires": { - "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz" + "meow": "3.7.0", + "semver": "5.3.0" } }, "gitconfiglocal": { - "version": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", "dev": true, "requires": { - "ini": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" + "ini": "1.3.4" } }, - "github-url-from-git": { - "version": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.5.0.tgz", - "integrity": "sha1-+YX+3MCpqledyI16/waNVcxiUaA=", - "dev": true - }, "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "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": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { - "version": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" + "is-glob": "2.0.1" } }, "glob-stream": { - "version": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", "dev": true, "requires": { - "glob": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "glob2base": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "ordered-read-streams": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", - "through2": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "unique-stream": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz" + "glob": "4.5.3", + "glob2base": "0.0.12", + "minimatch": "2.0.10", + "ordered-read-streams": "0.1.0", + "through2": "0.6.5", + "unique-stream": "1.0.0" }, "dependencies": { "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", "dev": true, "requires": { - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "2.0.10", + "once": "1.4.0" } }, "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "minimatch": { - "version": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", "dev": true, "requires": { - "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz" + "brace-expansion": "1.1.8" } }, "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" } }, "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, "through2": { - "version": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "dev": true, "requires": { - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "readable-stream": "1.0.34", + "xtend": "4.0.1" } } } }, "glob-watcher": { - "version": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", "dev": true, "requires": { - "gaze": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz" + "gaze": "0.5.2" } }, "glob2base": { - "version": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", "dev": true, "requires": { - "find-index": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz" + "find-index": "0.1.1" } }, "global-modules": { - "version": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=", "dev": true, "requires": { - "global-prefix": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", - "is-windows": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz" + "global-prefix": "0.1.5", + "is-windows": "0.2.0" } }, "global-prefix": { - "version": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", "integrity": "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=", "dev": true, "requires": { - "homedir-polyfill": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "ini": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "is-windows": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", - "which": "https://registry.npmjs.org/which/-/which-1.2.14.tgz" + "homedir-polyfill": "1.0.1", + "ini": "1.3.4", + "is-windows": "0.2.0", + "which": "1.3.0" } }, "globals": { - "version": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", "dev": true }, "globule": { - "version": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", "dev": true, "requires": { - "glob": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" + "glob": "3.1.21", + "lodash": "1.0.2", + "minimatch": "0.2.14" }, "dependencies": { "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", "dev": true, "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" + "graceful-fs": "1.2.3", + "inherits": "1.0.2", + "minimatch": "0.2.14" } }, "graceful-fs": { - "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", "dev": true }, "inherits": { - "version": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", "dev": true }, "lodash": { - "version": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", "dev": true }, "lru-cache": { - "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", "dev": true }, "minimatch": { - "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", "dev": true, "requires": { - "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + "lru-cache": "2.7.3", + "sigmund": "1.0.1" } } } }, "glogg": { - "version": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", "dev": true, "requires": { - "sparkles": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz" + "sparkles": "1.0.0" } }, "graceful-fs": { - "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, "gulp": { - "version": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", "dev": true, "requires": { - "archy": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "deprecated": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", - "gulp-util": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", - "interpret": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", - "liftoff": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz", - "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "orchestrator": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", - "pretty-hrtime": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "tildify": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", - "v8flags": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "vinyl-fs": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz" + "archy": "1.0.0", + "chalk": "1.1.3", + "deprecated": "0.0.1", + "gulp-util": "3.0.8", + "interpret": "1.0.4", + "liftoff": "2.3.0", + "minimist": "1.2.0", + "orchestrator": "0.3.8", + "pretty-hrtime": "1.0.3", + "semver": "4.3.6", + "tildify": "1.2.0", + "v8flags": "2.1.1", + "vinyl-fs": "0.3.14" }, "dependencies": { "semver": { - "version": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", "dev": true } } }, "gulp-rename": { - "version": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz", "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc=", "dev": true }, "gulp-replace": { - "version": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-0.5.4.tgz", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-0.5.4.tgz", "integrity": "sha1-aaZ5FLvRPFYr/xT1BKQDeWqg2qk=", "dev": true, "requires": { - "istextorbinary": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-1.0.2.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "replacestream": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.2.tgz" + "istextorbinary": "1.0.2", + "readable-stream": "2.3.3", + "replacestream": "4.0.3" } }, "gulp-tslint": { - "version": "https://registry.npmjs.org/gulp-tslint/-/gulp-tslint-6.1.2.tgz", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/gulp-tslint/-/gulp-tslint-6.1.2.tgz", "integrity": "sha1-ni3oLvJaqkN4/Yn+W0Q7Pq9wL+0=", "dev": true, "requires": { - "gulp-util": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", - "map-stream": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + "gulp-util": "3.0.8", + "map-stream": "0.1.0", + "through": "2.3.8" } }, "gulp-util": { - "version": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", "dev": true, "requires": { - "array-differ": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "array-uniq": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "beeper": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "dateformat": "https://registry.npmjs.org/dateformat/-/dateformat-2.0.0.tgz", - "fancy-log": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", - "gulplog": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "has-gulplog": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "lodash._reescape": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "lodash._reevaluate": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "lodash.template": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "multipipe": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "replace-ext": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "vinyl": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz" + "array-differ": "1.0.0", + "array-uniq": "1.0.3", + "beeper": "1.1.1", + "chalk": "1.1.3", + "dateformat": "2.2.0", + "fancy-log": "1.3.0", + "gulplog": "1.0.0", + "has-gulplog": "0.1.0", + "lodash._reescape": "3.0.0", + "lodash._reevaluate": "3.0.0", + "lodash._reinterpolate": "3.0.0", + "lodash.template": "3.6.2", + "minimist": "1.2.0", + "multipipe": "0.1.2", + "object-assign": "3.0.0", + "replace-ext": "0.0.1", + "through2": "2.0.3", + "vinyl": "0.5.3" }, "dependencies": { "dateformat": { - "version": "https://registry.npmjs.org/dateformat/-/dateformat-2.0.0.tgz", - "integrity": "sha1-J0Pjq7XD/CRi5SfcpEXgTp9N7hc=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", "dev": true }, "lodash.template": { - "version": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", "dev": true, "requires": { - "lodash._basecopy": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "lodash._basetostring": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "lodash._basevalues": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "lodash._isiterateecall": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "lodash.escape": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "lodash.keys": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "lodash.restparam": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "lodash.templatesettings": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz" + "lodash._basecopy": "3.0.1", + "lodash._basetostring": "3.0.1", + "lodash._basevalues": "3.0.0", + "lodash._isiterateecall": "3.0.9", + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0", + "lodash.keys": "3.1.2", + "lodash.restparam": "3.6.1", + "lodash.templatesettings": "3.1.1" } }, "lodash.templatesettings": { - "version": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", "dev": true, "requires": { - "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "lodash.escape": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz" + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0" } }, "object-assign": { - "version": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", "dev": true } } }, "gulplog": { - "version": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", "dev": true, "requires": { - "glogg": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz" + "glogg": "1.0.0" } }, "handlebars": { - "version": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", - "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "uglify-js": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { - "version": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz" + "amdefine": "1.0.1" } } } }, + "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": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "dev": true, "requires": { - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "commander": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "is-my-json-valid": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + "ajv": "5.3.0", + "har-schema": "2.0.0" } }, "has-ansi": { - "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "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": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + "ansi-regex": "2.1.1" } }, "has-binary": { - "version": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", "dev": true, "requires": { - "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + "isarray": "0.0.1" }, "dependencies": { "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true } } }, "has-cors": { - "version": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", "dev": true }, "has-flag": { - "version": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, "has-gulplog": { - "version": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", "dev": true, "requires": { - "sparkles": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz" + "sparkles": "1.0.0" } }, "hash-base": { - "version": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", "dev": true, "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "inherits": "2.0.3" } }, "hash.js": { - "version": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha1-NA3tvmKQGHFRweodd3o0SJNd+EY=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "dev": true, "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz" + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" } }, "hasha": { - "version": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", "dev": true, "requires": { - "is-stream": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + "is-stream": "1.1.0", + "pinkie-promise": "2.0.1" } }, "hawk": { - "version": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", "dev": true, "requires": { - "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "cryptiles": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "sntp": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.0", + "sntp": "2.1.0" } }, "header-case": { - "version": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", "dev": true, "requires": { - "no-case": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz", - "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz" + "no-case": "2.3.2", + "upper-case": "1.1.3" } }, "hmac-drbg": { - "version": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "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": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "minimalistic-crypto-utils": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + "hash.js": "1.1.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" } }, "hoek": { - "version": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", + "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==", "dev": true }, "home-or-tmp": { - "version": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "homedir-polyfill": { - "version": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", "dev": true, "requires": { - "parse-passwd": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" + "parse-passwd": "1.0.0" } }, "hosted-git-info": { - "version": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha1-bWDjSzq7yDEwYsO3mO+NkBoHrzw=", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", "dev": true }, "htmlparser2": { - "version": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "dev": true, "requires": { - "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "domhandler": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", - "domutils": "https://registry.npmjs.org/domutils/-/domutils-1.6.2.tgz", - "entities": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz" + "domelementtype": "1.3.0", + "domhandler": "2.4.1", + "domutils": "1.6.2", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.3" } }, "http-errors": { - "version": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", - "integrity": "sha1-X4uO2YrKVFZWv1cplzh/kEpyIlc=", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", "dev": true, "requires": { - "depd": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "setprototypeof": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz" + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.4.0" } }, "http-proxy": { - "version": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", "dev": true, "requires": { - "eventemitter3": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", - "requires-port": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" + "eventemitter3": "1.2.0", + "requires-port": "1.0.0" } }, "http-signature": { - "version": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "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": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "jsprim": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "sshpk": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" } }, "https-browserify": { - "version": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", + "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": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", - "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=", + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", "dev": true }, "ieee754": { - "version": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", "dev": true }, "indent-string": { - "version": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" + "repeating": "2.0.1" } }, "indexof": { - "version": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", "dev": true }, "inflight": { - "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { - "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "ini": { - "version": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", "dev": true }, + "inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + }, "interpret": { - "version": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", - "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz", + "integrity": "sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA=", "dev": true }, "invariant": { - "version": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "dev": true, "requires": { - "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz" + "loose-envify": "1.3.1" } }, "invert-kv": { - "version": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, "is-absolute": { - "version": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz", + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz", "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=", "dev": true, "requires": { - "is-relative": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz", - "is-windows": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz" + "is-relative": "0.2.1", + "is-windows": "0.2.0" } }, "is-arrayish": { - "version": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "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": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz" + "binary-extensions": "1.10.0" } }, "is-buffer": { - "version": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-builtin-module": { - "version": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" + "builtin-modules": "1.1.1" } }, "is-dotfile": { - "version": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", "dev": true }, "is-equal-shallow": { - "version": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz" + "is-primitive": "2.0.0" } }, "is-extendable": { - "version": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-extglob": { - "version": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true }, "is-finite": { - "version": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "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": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { - "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "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": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + "number-is-nan": "1.0.1" } }, "is-glob": { - "version": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + "is-extglob": "1.0.0" } }, "is-lower-case": { - "version": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", "dev": true, "requires": { - "lower-case": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz" - } - }, - "is-my-json-valid": { - "version": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", - "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", - "dev": true, - "requires": { - "generate-function": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "generate-object-property": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "jsonpointer": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "lower-case": "1.1.4" } }, "is-number": { - "version": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + "kind-of": "3.2.2" } }, "is-obj": { - "version": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, "is-plain-object": { - "version": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.3.tgz", - "integrity": "sha1-wVvz5LZrYtcu+vKSWEhmPsvGGbY=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + "isobject": "3.0.1" }, "dependencies": { "isobject": { - "version": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "is-posix-bracket": { - "version": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", "dev": true }, "is-primitive": { - "version": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "dev": true }, - "is-property": { - "version": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", - "dev": true - }, "is-relative": { - "version": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz", "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=", "dev": true, "requires": { - "is-unc-path": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz" + "is-unc-path": "0.1.2" } }, "is-stream": { - "version": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-subset": { - "version": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", "dev": true }, "is-text-path": { - "version": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", "dev": true, "requires": { - "text-extensions": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.5.0.tgz" + "text-extensions": "1.7.0" } }, "is-typedarray": { - "version": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, "is-unc-path": { - "version": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz", "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=", "dev": true, "requires": { - "unc-path-regex": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz" + "unc-path-regex": "0.1.2" } }, "is-upper-case": { - "version": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", "dev": true, "requires": { - "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz" + "upper-case": "1.1.3" } }, "is-utf8": { - "version": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "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": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=", "dev": true }, "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isbinaryfile": { - "version": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=", "dev": true }, "isexe": { - "version": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { - "version": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + "isarray": "1.0.0" } }, "isstream": { - "version": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, "istanbul": { - "version": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", "dev": true, "requires": { - "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "async": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "escodegen": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "esprima": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "glob": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "handlebars": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", - "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.4.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "nopt": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "which": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", - "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" + "abbrev": "1.0.9", + "async": "1.5.2", + "escodegen": "1.8.1", + "esprima": "2.7.3", + "glob": "5.0.15", + "handlebars": "4.0.11", + "js-yaml": "3.10.0", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "once": "1.4.0", + "resolve": "1.1.7", + "supports-color": "3.2.3", + "which": "1.3.0", + "wordwrap": "1.0.0" }, "dependencies": { "esprima": { - "version": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", "dev": true }, "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "resolve": { - "version": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", "dev": true }, "supports-color": { - "version": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" + "has-flag": "1.0.0" } }, "wordwrap": { - "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true } } }, "istextorbinary": { - "version": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-1.0.2.tgz", "integrity": "sha1-rOGTVNGpoBc+/rEITOD4ewrX3s8=", "dev": true, "requires": { - "binaryextensions": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-1.0.1.tgz", - "textextensions": "https://registry.npmjs.org/textextensions/-/textextensions-1.0.2.tgz" + "binaryextensions": "1.0.1", + "textextensions": "1.0.2" } }, "jasmine-core": { - "version": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.6.4.tgz", - "integrity": "sha1-3skmzQqfoof7bbXHVfpIfnTOysU=", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", "dev": true }, "js-tokens": { - "version": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "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": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.4.tgz", - "integrity": "sha1-UgtFZPhlc7qWZir4Woyvp7S1pvY=", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", "dev": true, "requires": { - "argparse": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "esprima": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz" + "argparse": "1.0.9", + "esprima": "4.0.0" }, "dependencies": { "esprima": { - "version": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", "dev": true } } }, "jsbn": { - "version": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true, "optional": true }, "jsesc": { - "version": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, "json-schema": { - "version": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "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": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "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 }, "json3": { - "version": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", "dev": true }, "json5": { - "version": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, "jsonfile": { - "version": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "dev": true, "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" + "graceful-fs": "4.1.11" } }, "jsonparse": { - "version": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, - "jsonpointer": { - "version": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", - "dev": true - }, - "JSONStream": { - "version": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", - "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", - "dev": true, - "requires": { - "jsonparse": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - } - }, "jsprim": { - "version": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "dev": true, "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "json-schema": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "verror": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" - }, - "dependencies": { - "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" } }, "karma": { - "version": "https://registry.npmjs.org/karma/-/karma-1.7.0.tgz", - "integrity": "sha1-b3oaQGRG+i4YfslTmGmPTO5HYmk=", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.1.tgz", + "integrity": "sha512-k5pBjHDhmkdaUccnC7gE3mBzZjcxyxYsYVaqiL2G5AqlfLyBO5nw2VdNK+O16cveEPd/gIOWULH7gkiYYwVNHg==", "dev": true, "requires": { - "bluebird": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "body-parser": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz", - "chokidar": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "colors": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "combine-lists": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", - "connect": "https://registry.npmjs.org/connect/-/connect-3.6.2.tgz", - "core-js": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "di": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "dom-serialize": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "expand-braces": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", - "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "http-proxy": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", - "isbinaryfile": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "log4js": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", - "mime": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "qjobs": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz", - "range-parser": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "socket.io": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "tmp": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", - "useragent": "https://registry.npmjs.org/useragent/-/useragent-2.1.13.tgz" + "bluebird": "3.5.1", + "body-parser": "1.18.2", + "chokidar": "1.7.0", + "colors": "1.1.2", + "combine-lists": "1.0.1", + "connect": "3.6.5", + "core-js": "2.5.1", + "di": "0.0.1", + "dom-serialize": "2.2.1", + "expand-braces": "0.1.2", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "http-proxy": "1.16.2", + "isbinaryfile": "3.0.2", + "lodash": "3.10.1", + "log4js": "0.6.38", + "mime": "1.4.1", + "minimatch": "3.0.4", + "optimist": "0.6.1", + "qjobs": "1.1.5", + "range-parser": "1.2.0", + "rimraf": "2.6.1", + "safe-buffer": "5.1.1", + "socket.io": "1.7.3", + "source-map": "0.5.7", + "tmp": "0.0.31", + "useragent": "2.2.1" }, "dependencies": { "colors": { - "version": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", "dev": true }, "lodash": { - "version": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", "dev": true } } }, "karma-cli": { - "version": "https://registry.npmjs.org/karma-cli/-/karma-cli-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/karma-cli/-/karma-cli-1.0.1.tgz", "integrity": "sha1-rmw8WKMTodALRRZMRVubhs4X+WA=", "dev": true, "requires": { - "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz" + "resolve": "1.5.0" } }, "karma-coverage": { - "version": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-1.1.1.tgz", "integrity": "sha1-Wv+LOc9plNwi3kyENix2ABtjfPY=", "dev": true, "requires": { - "dateformat": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "istanbul": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + "dateformat": "1.0.12", + "istanbul": "0.4.5", + "lodash": "3.10.1", + "minimatch": "3.0.4", + "source-map": "0.5.7" }, "dependencies": { "lodash": { - "version": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", "dev": true } } }, "karma-jasmine": { - "version": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.0.tgz", "integrity": "sha1-IuTAa/mhguUpTR9wXjczgRuBCs8=", "dev": true }, "karma-phantomjs-launcher": { - "version": "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz", "integrity": "sha1-0jyjSAG9qYY60xjju0vUBisTrNI=", "dev": true, "requires": { - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "phantomjs-prebuilt": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz" + "lodash": "4.17.4", + "phantomjs-prebuilt": "2.1.16" } }, "karma-typescript": { - "version": "https://registry.npmjs.org/karma-typescript/-/karma-typescript-3.0.4.tgz", - "integrity": "sha1-nN7u3dFnFpNEDDTsYqui1v+eSwU=", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/karma-typescript/-/karma-typescript-3.0.8.tgz", + "integrity": "sha1-oayGsA2nRNwcA83HgXopgucvEXE=", "dev": true, "requires": { - "acorn": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", - "assert": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz", - "async": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "base64-js": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "browser-resolve": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", - "browserify-zlib": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "buffer": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "console-browserify": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "constants-browserify": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "crypto-browserify": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz", - "diff": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", - "domain-browser": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "es6-promise": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.0.5.tgz", - "events": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "gulp-util": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.7.tgz", - "https-browserify": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "ieee754": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "istanbul": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", - "karma-coverage": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-1.1.1.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "log4js": "https://registry.npmjs.org/log4js/-/log4js-1.1.1.tgz", - "magic-string": "https://registry.npmjs.org/magic-string/-/magic-string-0.19.1.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "os-browserify": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", - "pad": "https://registry.npmjs.org/pad/-/pad-1.1.0.tgz", - "path-browserify": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "process": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "querystring-es3": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "remap-istanbul": "https://registry.npmjs.org/remap-istanbul/-/remap-istanbul-0.8.4.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "stream-browserify": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "stream-http": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "through2": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz", - "timers-browserify": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "tmp": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz", - "tty-browserify": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "url": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "util": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "vm-browserify": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz" + "acorn": "4.0.13", + "amdefine": "1.0.0", + "assert": "1.4.1", + "async": "2.6.0", + "base64-js": "1.2.1", + "browser-resolve": "1.11.2", + "browserify-zlib": "0.2.0", + "buffer": "5.0.8", + "combine-source-map": "0.8.0", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "convert-source-map": "1.5.0", + "crypto-browserify": "3.12.0", + "diff": "3.4.0", + "domain-browser": "1.1.7", + "es6-promise": "4.1.1", + "events": "1.1.1", + "glob": "7.1.2", + "https-browserify": "1.0.0", + "ieee754": "1.1.8", + "isarray": "1.0.0", + "istanbul": "0.4.5", + "json-stringify-safe": "5.0.1", + "karma-coverage": "1.1.1", + "lodash": "4.17.4", + "log4js": "1.1.1", + "magic-string": "0.19.1", + "minimatch": "3.0.4", + "os-browserify": "0.3.0", + "pad": "1.2.1", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.3", + "remap-istanbul": "0.8.4", + "source-map": "0.5.7", + "stream-browserify": "2.0.1", + "stream-http": "2.7.2", + "string_decoder": "1.0.3", + "through2": "2.0.1", + "timers-browserify": "2.0.4", + "tmp": "0.0.29", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.3", + "vm-browserify": "0.0.4" }, "dependencies": { "amdefine": { - "version": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", "integrity": "sha1-/RdHRwDLXMnCtwnwvp0jzjwZjDM=", "dev": true }, "async": { - "version": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha1-hDGQ/WtzV6C54clW7d3V7IRitU0=", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "dev": true, "requires": { - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" - } - }, - "gulp-util": { - "version": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.7.tgz", - "integrity": "sha1-eJJcS4+LSQBawBoBHFV+YhiUHLs=", - "dev": true, - "requires": { - "array-differ": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "array-uniq": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "beeper": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "dateformat": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "fancy-log": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", - "gulplog": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "has-gulplog": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "lodash._reescape": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "lodash._reevaluate": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "lodash.template": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "multipipe": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "replace-ext": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "through2": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz", - "vinyl": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz" - } - }, - "lodash.template": { - "version": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", - "dev": true, - "requires": { - "lodash._basecopy": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "lodash._basetostring": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "lodash._basevalues": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "lodash._isiterateecall": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "lodash.escape": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "lodash.keys": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "lodash.restparam": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "lodash.templatesettings": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz" - } - }, - "lodash.templatesettings": { - "version": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", - "dev": true, - "requires": { - "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "lodash.escape": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz" + "lodash": "4.17.4" } }, "log4js": { - "version": "https://registry.npmjs.org/log4js/-/log4js-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-1.1.1.tgz", "integrity": "sha1-wh0px2BAieTyVYM+f5SzRh3h/0M=", "dev": true, "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "streamroller": "https://registry.npmjs.org/streamroller/-/streamroller-0.4.1.tgz" + "debug": "2.6.9", + "semver": "5.3.0", + "streamroller": "0.4.1" } }, - "object-assign": { - "version": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true - }, - "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, "through2": { - "version": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz", "integrity": "sha1-OE51MU1J8y3hLuu4E2uOtrXVnak=", "dev": true, "requires": { - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "readable-stream": "2.0.6", + "xtend": "4.0.1" }, "dependencies": { "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "dev": true, "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.2" } + }, + "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 } } }, "tmp": { - "version": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz", + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz", "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=", "dev": true, "requires": { - "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + "os-tmpdir": "1.0.2" } } } }, "karma-typescript-es6-transform": { - "version": "https://registry.npmjs.org/karma-typescript-es6-transform/-/karma-typescript-es6-transform-1.0.1.tgz", - "integrity": "sha1-Xma6gk8lH+lz8zZAMU95NFEuWM4=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/karma-typescript-es6-transform/-/karma-typescript-es6-transform-1.0.2.tgz", + "integrity": "sha1-uIuXd+dFDPDaySsBRt0u36mMbTA=", "dev": true, "requires": { - "acorn": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "babel-core": "https://registry.npmjs.org/babel-core/-/babel-core-6.25.0.tgz", - "babel-preset-es2015": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", - "log4js": "https://registry.npmjs.org/log4js/-/log4js-1.1.1.tgz", - "magic-string": "https://registry.npmjs.org/magic-string/-/magic-string-0.19.1.tgz" + "acorn": "4.0.13", + "babel-core": "6.26.0", + "babel-preset-es2015": "6.24.1", + "log4js": "1.1.1", + "magic-string": "0.19.1" }, "dependencies": { "log4js": { - "version": "https://registry.npmjs.org/log4js/-/log4js-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-1.1.1.tgz", "integrity": "sha1-wh0px2BAieTyVYM+f5SzRh3h/0M=", "dev": true, "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "streamroller": "https://registry.npmjs.org/streamroller/-/streamroller-0.4.1.tgz" + "debug": "2.6.9", + "semver": "5.3.0", + "streamroller": "0.4.1" } } } }, "kew": { - "version": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", "dev": true }, "kind-of": { - "version": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "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": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz" + "is-buffer": "1.1.6" } }, "klaw": { - "version": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", "dev": true, "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" + "graceful-fs": "4.1.11" } }, "lazy-cache": { - "version": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true, "optional": true }, "lcid": { - "version": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz" + "invert-kv": "1.0.0" } }, "levn": { - "version": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, "liftoff": { - "version": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz", "integrity": "sha1-qY8v9nGD2Lp8+soQVIvX/wVQs4U=", "dev": true, "requires": { - "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "findup-sync": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz", - "fined": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", - "flagged-respawn": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz", - "lodash.isplainobject": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "lodash.isstring": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "lodash.mapvalues": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", - "rechoir": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz" + "extend": "3.0.1", + "findup-sync": "0.4.3", + "fined": "1.1.0", + "flagged-respawn": "0.3.2", + "lodash.isplainobject": "4.0.6", + "lodash.isstring": "4.0.1", + "lodash.mapvalues": "4.6.0", + "rechoir": "0.6.2", + "resolve": "1.5.0" } }, "load-json-file": { - "version": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "parse-json": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "strip-bom": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "lodash": { - "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", "dev": true }, "lodash._basecopy": { - "version": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", "dev": true }, "lodash._basetostring": { - "version": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", "dev": true }, "lodash._basevalues": { - "version": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", "dev": true }, "lodash._getnative": { - "version": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", "dev": true }, "lodash._isiterateecall": { - "version": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", "dev": true }, "lodash._reescape": { - "version": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", "dev": true }, "lodash._reevaluate": { - "version": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", "dev": true }, "lodash._reinterpolate": { - "version": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", "dev": true }, "lodash._root": { - "version": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", "dev": true }, "lodash.escape": { - "version": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", "dev": true, "requires": { - "lodash._root": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz" + "lodash._root": "3.0.1" } }, "lodash.isarguments": { - "version": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", "dev": true }, "lodash.isarray": { - "version": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", "dev": true }, "lodash.isplainobject": { - "version": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", "dev": true }, "lodash.isstring": { - "version": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", "dev": true }, "lodash.keys": { - "version": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", "dev": true, "requires": { - "lodash._getnative": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "lodash.isarguments": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "lodash.isarray": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" + "lodash._getnative": "3.9.1", + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" } }, "lodash.map": { - "version": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", "dev": true }, "lodash.mapvalues": { - "version": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", "dev": true }, + "lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", + "dev": true + }, "lodash.restparam": { - "version": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", "dev": true }, "lodash.template": { - "version": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", "dev": true, "requires": { - "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "lodash.templatesettings": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz" + "lodash._reinterpolate": "3.0.0", + "lodash.templatesettings": "4.1.0" } }, "lodash.templatesettings": { - "version": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", "dev": true, "requires": { - "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz" + "lodash._reinterpolate": "3.0.0" } }, "log4js": { - "version": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", + "version": "0.6.38", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=", "dev": true, "requires": { - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz" + "readable-stream": "1.0.34", + "semver": "4.3.6" }, "dependencies": { "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" } }, "semver": { - "version": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", "dev": true }, "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true } } }, "longest": { - "version": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", "dev": true }, "loose-envify": { - "version": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz" + "js-tokens": "3.0.2" } }, "loud-rejection": { - "version": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "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": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "signal-exit": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz" + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" } }, "lower-case": { - "version": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", "dev": true }, "lower-case-first": { - "version": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", "dev": true, "requires": { - "lower-case": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz" + "lower-case": "1.1.4" } }, "lru-cache": { - "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha1-Yi4y6CSItJJ5EUpPns9F581rulU=", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "dev": true, "requires": { - "pseudomap": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "yallist": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "magic-string": { - "version": "https://registry.npmjs.org/magic-string/-/magic-string-0.19.1.tgz", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.19.1.tgz", "integrity": "sha1-FNdoATyvLsj96hakmvgvw3fnUgE=", "dev": true, "requires": { - "vlq": "https://registry.npmjs.org/vlq/-/vlq-0.2.2.tgz" + "vlq": "0.2.3" } }, "map-cache": { - "version": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, "map-obj": { - "version": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, "map-stream": { - "version": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", "dev": true }, "marked": { - "version": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz", "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=", "dev": true }, + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "dev": true, + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3" + }, + "dependencies": { + "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.1" + } + } + } + }, "media-typer": { - "version": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, "meow": { - "version": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "loud-rejection": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "map-obj": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "read-pkg-up": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "redent": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "trim-newlines": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz" + "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" } }, "micromatch": { - "version": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "array-unique": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "braces": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "expand-brackets": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "extglob": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "filename-regex": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "normalize-path": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "object.omit": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "parse-glob": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "regex-cache": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz" + "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": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", - "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", + "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": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "brorand": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + "bn.js": "4.11.8", + "brorand": "1.1.0" } }, "mime": { - "version": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", - "integrity": "sha1-WR2E02U6awtKO5343lqoEI5y5eA=", + "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": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", "dev": true }, "mime-types": { - "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", "dev": true, "requires": { - "mime-db": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz" + "mime-db": "1.30.0" } }, "minimalistic-assert": { - "version": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", "dev": true }, "minimalistic-crypto-utils": { - "version": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "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": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "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": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz" + "brace-expansion": "1.1.8" } }, "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, "mkdirp": { - "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + "minimist": "0.0.8" }, "dependencies": { "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true } } }, "mkdirp-promise": { - "version": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", "dev": true, "requires": { - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" + "mkdirp": "0.5.1" } }, "modify-values": { - "version": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.0.tgz", "integrity": "sha1-4rbN65zhn5kxelNyLz2/XfXqqrI=", "dev": true }, "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "multipipe": { - "version": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", "dev": true, "requires": { - "duplexer2": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz" + "duplexer2": "0.0.2" } }, - "nan": { - "version": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", - "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", - "dev": true, - "optional": true - }, "natives": { - "version": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz", "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=", "dev": true }, "negotiator": { - "version": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", "dev": true }, "no-case": { - "version": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz", - "integrity": "sha1-euuhxzpSGEJlVUt9wDuvcg34AIE=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "dev": true, "requires": { - "lower-case": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz" + "lower-case": "1.1.4" } }, "node-html-encoder": { - "version": "https://registry.npmjs.org/node-html-encoder/-/node-html-encoder-0.0.2.tgz", + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/node-html-encoder/-/node-html-encoder-0.0.2.tgz", "integrity": "sha1-iXNhjXJ9pVJqgwtH0HwNgD4KFcY=", "dev": true }, "node-version": { - "version": "https://registry.npmjs.org/node-version/-/node-version-1.0.0.tgz", - "integrity": "sha1-G5uVhKmn96YSPyFc0UplK/IasZ4=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/node-version/-/node-version-1.1.0.tgz", + "integrity": "sha512-t1V2RFiaTavaW3jtQO0A2nok6k7/Gghuvx2rjvICuT0B0dYaObBQ4U0xHL+ZTPFZodt1LMYG2Vi2nypfz4/AJg==", "dev": true }, "nopt": { - "version": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { - "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz" + "abbrev": "1.0.9" } }, "normalize-package-data": { - "version": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", + "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": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "is-builtin-module": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "validate-npm-package-license": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz" + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.3.0", + "validate-npm-package-license": "3.0.1" } }, "normalize-path": { - "version": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz" + "remove-trailing-separator": "1.1.0" } }, "number-is-nan": { - "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "nunjucks": { - "version": "https://registry.npmjs.org/nunjucks/-/nunjucks-2.5.2.tgz", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-2.5.2.tgz", "integrity": "sha1-6n00bnhbikh0Zmw8yp4YxXf7oiw=", "dev": true, "requires": { - "asap": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz", - "chokidar": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "yargs": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz" + "asap": "2.0.6", + "chokidar": "1.7.0", + "yargs": "3.32.0" }, "dependencies": { "cliui": { - "version": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "wrap-ansi": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz" + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" } }, "window-size": { - "version": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", "dev": true }, "yargs": { - "version": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", "dev": true, "requires": { - "camelcase": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "cliui": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "os-locale": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "window-size": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", - "y18n": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz" + "camelcase": "2.1.1", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "os-locale": "1.4.0", + "string-width": "1.0.2", + "window-size": "0.1.4", + "y18n": "3.2.1" } } } }, "oauth-sign": { - "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", "dev": true }, "object-assign": { - "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object-component": { - "version": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", "dev": true }, "object.defaults": { - "version": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", "dev": true, "requires": { - "array-each": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "array-slice": "https://registry.npmjs.org/array-slice/-/array-slice-1.0.0.tgz", - "for-own": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "isobject": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + "array-each": "1.0.1", + "array-slice": "1.0.0", + "for-own": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "for-own": { - "version": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", "dev": true, "requires": { - "for-in": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" + "for-in": "1.0.2" } }, "isobject": { - "version": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "object.omit": { - "version": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "is-extendable": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "object.pick": { - "version": "https://registry.npmjs.org/object.pick/-/object.pick-1.2.0.tgz", - "integrity": "sha1-tTkr7peC2m2ft9avr1OXefEjTCs=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } } }, "objectdiff": { - "version": "https://registry.npmjs.org/objectdiff/-/objectdiff-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/objectdiff/-/objectdiff-1.1.0.tgz", "integrity": "sha1-jXoVvmy4Zw34pJDMa+EqTwXqgvQ=", "dev": true }, "on-finished": { - "version": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "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": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + "ee-first": "1.1.1" } }, "once": { - "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "wrappy": "1.0.2" } }, "optimist": { - "version": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" + "minimist": "0.0.10", + "wordwrap": "0.0.3" }, "dependencies": { "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", "dev": true } } }, "optionator": { - "version": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "fast-levenshtein": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "levn": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" }, "dependencies": { "wordwrap": { - "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true } } }, "options": { - "version": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", "dev": true }, "orchestrator": { - "version": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", "dev": true, "requires": { - "end-of-stream": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", - "sequencify": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", - "stream-consume": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz" + "end-of-stream": "0.1.5", + "sequencify": "0.0.7", + "stream-consume": "0.1.0" } }, "ordered-read-streams": { - "version": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", "dev": true }, "os-browserify": { - "version": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", - "integrity": "sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ=", + "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": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "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": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "dev": true, "requires": { - "lcid": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz" + "lcid": "1.0.0" } }, "os-tmpdir": { - "version": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "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 }, "pad": { - "version": "https://registry.npmjs.org/pad/-/pad-1.1.0.tgz", - "integrity": "sha1-en0YUgDrrDL58S7nVsOh0IezGQs=", - "dev": true + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/pad/-/pad-1.2.1.tgz", + "integrity": "sha512-cx/l/K+9UjGXJmoYolvP0l3cEUyB9BUdUL3wj3uwskIiApboLsinvsXxU9nSNg9Luz2ZyH0zzJNbqgLSNtfIDw==", + "dev": true, + "requires": { + "coffee-script": "1.12.7", + "wcwidth": "1.0.1" + } }, "pad-right": { - "version": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz", "integrity": "sha1-b7ySQEXSRPKiokRQMGDTv8YAl3Q=", "dev": true, "requires": { - "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + "repeat-string": "1.6.1" } }, "pako": { - "version": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "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 }, "param-case": { - "version": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "dev": true, "requires": { - "no-case": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz" + "no-case": "2.3.2" } }, "parse-asn1": { - "version": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", "dev": true, "requires": { - "asn1.js": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", - "browserify-aes": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", - "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "evp_bytestokey": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", - "pbkdf2": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz" + "asn1.js": "4.9.2", + "browserify-aes": "1.1.1", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.3", + "pbkdf2": "3.0.14" } }, "parse-filepath": { - "version": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.1.tgz", "integrity": "sha1-FZ1hVdQ5BNFsEO9piRHaHpGWm3M=", "dev": true, "requires": { - "is-absolute": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz", - "map-cache": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "path-root": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz" + "is-absolute": "0.2.6", + "map-cache": "0.2.2", + "path-root": "0.1.1" } }, "parse-github-repo-url": { - "version": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.0.tgz", - "integrity": "sha1-KGxT4smWLgZBZJ7jrJUI/KTdlZw=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz", + "integrity": "sha1-nn2LslKmy2ukJZUGC3v23z28H1A=", "dev": true }, "parse-glob": { - "version": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "is-dotfile": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { - "version": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "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": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz" + "error-ex": "1.3.1" } }, "parse-passwd": { - "version": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", "dev": true }, "parsejson": { - "version": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", "dev": true, "requires": { - "better-assert": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz" + "better-assert": "1.0.2" } }, "parseqs": { - "version": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "dev": true, "requires": { - "better-assert": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz" + "better-assert": "1.0.2" } }, "parseuri": { - "version": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "dev": true, "requires": { - "better-assert": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz" + "better-assert": "1.0.2" } }, "parseurl": { - "version": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", "dev": true }, "pascal-case": { - "version": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", "dev": true, "requires": { - "camel-case": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "upper-case-first": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz" + "camel-case": "3.0.0", + "upper-case-first": "1.1.2" } }, "path-browserify": { - "version": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", "dev": true }, "path-case": { - "version": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", "dev": true, "requires": { - "no-case": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz" + "no-case": "2.3.2" } }, "path-exists": { - "version": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "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": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { - "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-parse": { - "version": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "dev": true }, "path-root": { - "version": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", "dev": true, "requires": { - "path-root-regex": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz" + "path-root-regex": "0.1.2" } }, "path-root-regex": { - "version": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", "dev": true }, "path-type": { - "version": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "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": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pbkdf2": { - "version": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz", - "integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=", + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", + "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", "dev": true, "requires": { - "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "create-hmac": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "ripemd160": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "sha.js": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz" + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.9" } }, "pend": { - "version": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", "dev": true }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, "phantomjs-prebuilt": { - "version": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz", - "integrity": "sha1-1T0xH8+30dCN2yQBRVjxGIxRbaA=", + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", + "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", "dev": true, "requires": { - "es6-promise": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.0.5.tgz", - "extract-zip": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz", - "fs-extra": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", - "hasha": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", - "kew": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", - "progress": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "request": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "request-progress": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", - "which": "https://registry.npmjs.org/which/-/which-1.2.14.tgz" + "es6-promise": "4.1.1", + "extract-zip": "1.6.6", + "fs-extra": "1.0.0", + "hasha": "2.2.0", + "kew": "0.7.0", + "progress": "1.1.8", + "request": "2.83.0", + "request-progress": "2.0.1", + "which": "1.3.0" }, "dependencies": { "fs-extra": { - "version": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", "dev": true, "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "jsonfile": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "klaw": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz" + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1" } } } }, "pify": { - "version": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pinkie": { - "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "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": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "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": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + "pinkie": "2.0.4" } }, "prelude-ls": { - "version": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, "preserve": { - "version": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, "pretty-hrtime": { - "version": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", "dev": true }, "private": { - "version": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", - "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", "dev": true }, "process": { - "version": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", "dev": true }, "process-nextick-args": { - "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", "dev": true }, "progress": { - "version": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", "dev": true }, "promise-polyfill": { - "version": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.0.2.tgz", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.0.2.tgz", "integrity": "sha1-2chtPcTcLfkBboiUbe/Wm0m0EWI=", "dev": true }, "pseudomap": { - "version": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "public-encrypt": { - "version": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", "dev": true, "requires": { - "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "browserify-rsa": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "parse-asn1": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz" + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "parse-asn1": "5.1.0", + "randombytes": "2.0.5" } }, "punycode": { - "version": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, "q": { - "version": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=", "dev": true }, "qjobs": { - "version": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz", "integrity": "sha1-ZZ3p8s+NzCehSBJ28gU3cnI4LnM=", "dev": true }, "qs": { - "version": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", "dev": true }, "querystring": { - "version": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", "dev": true }, "querystring-es3": { - "version": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, "queue": { - "version": "https://registry.npmjs.org/queue/-/queue-4.2.1.tgz", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/queue/-/queue-4.2.1.tgz", "integrity": "sha1-UxjtiiJ6lzTmv+6ySgV3gpInUds=", "dev": true, "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "inherits": "2.0.3" } }, "randomatic": { - "version": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha1-x6vpzIuHwLqodrGf3oP9RkeX44w=", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "dev": true, "requires": { - "is-number": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { - "version": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "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": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { - "version": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "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": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz" + "is-buffer": "1.1.6" } } } }, "kind-of": { - "version": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz" + "is-buffer": "1.1.6" } } } }, "randombytes": { - "version": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", - "integrity": "sha1-3ACaJGuNCaF3tLegrne8Vw9LG3k=", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", + "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", "dev": true, "requires": { - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" + "safe-buffer": "5.1.1" + } + }, + "randomfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", + "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", + "dev": true, + "requires": { + "randombytes": "2.0.5", + "safe-buffer": "5.1.1" } }, "range-parser": { - "version": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "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": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz", - "integrity": "sha1-mUl2z2pQlqQRYoQEkvC9xdbn+5Y=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", "dev": true, "requires": { - "bytes": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", - "unpipe": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" } }, "read-pkg": { - "version": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "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": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "path-type": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { - "version": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "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": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "read-pkg": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz" + "find-up": "1.1.2", + "read-pkg": "1.1.0" } }, "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "dev": true, "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" } }, "readdirp": { - "version": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "set-immediate-shim": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.3", + "set-immediate-shim": "1.0.1" } }, "rechoir": { - "version": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "requires": { - "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz" + "resolve": "1.5.0" } }, "redent": { - "version": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "strip-indent": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz" + "indent-string": "2.1.0", + "strip-indent": "1.0.1" } }, "reflect-metadata": { - "version": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.10.tgz", + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.10.tgz", "integrity": "sha1-tPg3BEFqytiZiMmxVjXUfgO5NEo=", "dev": true }, "regenerate": { - "version": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", - "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", + "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", "dev": true }, "regenerator-runtime": { - "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", "dev": true }, "regenerator-transform": { - "version": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz", - "integrity": "sha1-On0GdSDLe3F2dp61/4aGkb7+EoM=", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "dev": true, "requires": { - "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "private": "https://registry.npmjs.org/private/-/private-0.1.7.tgz" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" } }, "regex-cache": { - "version": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", - "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "is-primitive": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz" + "is-equal-shallow": "0.1.3" } }, "regexpu-core": { - "version": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", - "regjsgen": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "regjsparser": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz" + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" } }, "regjsgen": { - "version": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", "dev": true }, "regjsparser": { - "version": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + "jsesc": "0.5.0" }, "dependencies": { "jsesc": { - "version": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true } } }, "remap-istanbul": { - "version": "https://registry.npmjs.org/remap-istanbul/-/remap-istanbul-0.8.4.tgz", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/remap-istanbul/-/remap-istanbul-0.8.4.tgz", "integrity": "sha1-tL/f28kO+mNemiix9KEW4iyMJpc=", "dev": true, "requires": { - "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "gulp-util": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.7.tgz", - "istanbul": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "through2": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz" + "amdefine": "1.0.1", + "gulp-util": "3.0.7", + "istanbul": "0.4.5", + "source-map": "0.5.7", + "through2": "2.0.1" }, "dependencies": { "gulp-util": { - "version": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.7.tgz", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.7.tgz", "integrity": "sha1-eJJcS4+LSQBawBoBHFV+YhiUHLs=", "dev": true, "requires": { - "array-differ": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "array-uniq": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "beeper": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "dateformat": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "fancy-log": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", - "gulplog": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "has-gulplog": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "lodash._reescape": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "lodash._reevaluate": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "lodash.template": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "multipipe": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "replace-ext": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "through2": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz", - "vinyl": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz" + "array-differ": "1.0.0", + "array-uniq": "1.0.3", + "beeper": "1.1.1", + "chalk": "1.1.3", + "dateformat": "1.0.12", + "fancy-log": "1.3.0", + "gulplog": "1.0.0", + "has-gulplog": "0.1.0", + "lodash._reescape": "3.0.0", + "lodash._reevaluate": "3.0.0", + "lodash._reinterpolate": "3.0.0", + "lodash.template": "3.6.2", + "minimist": "1.2.0", + "multipipe": "0.1.2", + "object-assign": "3.0.0", + "replace-ext": "0.0.1", + "through2": "2.0.1", + "vinyl": "0.5.3" } }, "lodash.template": { - "version": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", "dev": true, "requires": { - "lodash._basecopy": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "lodash._basetostring": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "lodash._basevalues": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "lodash._isiterateecall": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "lodash.escape": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "lodash.keys": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "lodash.restparam": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "lodash.templatesettings": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz" + "lodash._basecopy": "3.0.1", + "lodash._basetostring": "3.0.1", + "lodash._basevalues": "3.0.0", + "lodash._isiterateecall": "3.0.9", + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0", + "lodash.keys": "3.1.2", + "lodash.restparam": "3.6.1", + "lodash.templatesettings": "3.1.1" } }, "lodash.templatesettings": { - "version": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", "dev": true, "requires": { - "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "lodash.escape": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz" + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0" } }, "object-assign": { - "version": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", "dev": true }, "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "dev": true, "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.2" } }, "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, "through2": { - "version": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz", "integrity": "sha1-OE51MU1J8y3hLuu4E2uOtrXVnak=", "dev": true, "requires": { - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "readable-stream": "2.0.6", + "xtend": "4.0.1" } } } }, "remove-trailing-separator": { - "version": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", - "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, "repeat-element": { - "version": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", "dev": true }, "repeat-string": { - "version": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "repeating": { - "version": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz" + "is-finite": "1.0.2" } }, "replace-ext": { - "version": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", "dev": true }, "replacestream": { - "version": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.2.tgz", - "integrity": "sha1-DEFAcH5PAyP1DeBEhRcIz1i8N70=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz", + "integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==", "dev": true, "requires": { - "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz" + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1", + "readable-stream": "2.3.3" } }, "request": { - "version": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "version": "2.83.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", "dev": true, "requires": { - "aws-sign2": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "aws4": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "form-data": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "har-validator": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "hawk": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "is-typedarray": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "qs": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "stringstream": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz" + "aws-sign2": "0.7.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.1", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" }, "dependencies": { - "qs": { - "version": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", - "dev": true - }, "uuid": { - "version": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", "dev": true } } }, "request-progress": { - "version": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", "dev": true, "requires": { - "throttleit": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz" + "throttleit": "1.0.0" } }, "requires-port": { - "version": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, "resolve": { - "version": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", - "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { - "path-parse": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz" + "path-parse": "1.0.5" } }, "resolve-dir": { - "version": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=", "dev": true, "requires": { - "expand-tilde": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", - "global-modules": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz" + "expand-tilde": "1.2.2", + "global-modules": "0.2.3" } }, "right-align": { - "version": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, "optional": true, "requires": { - "align-text": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz" + "align-text": "0.1.4" } }, "right-pad": { - "version": "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz", "integrity": "sha1-jKCMLLtbVedNr6lr9/0aJ9VoyNA=", "dev": true }, "rimraf": { - "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", "dev": true, "requires": { - "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz" + "glob": "7.1.2" } }, "ripemd160": { - "version": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", "dev": true, "requires": { - "hash-base": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "hash-base": "2.0.2", + "inherits": "2.0.3" } }, "rxjs": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.4.0.tgz", - "integrity": "sha1-p9sUqxV/nXqsalbmVeejhg05vyY=", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.2.tgz", + "integrity": "sha512-oRYoIKWBU3Ic37fLA5VJu31VqQO4bWubRntcHSJ+cwaDQBwdnZ9x4zmhJfm/nFQ2E82/I4loSioHnACamrKGgA==", "dev": true, "requires": { "symbol-observable": "1.0.4" } }, "safe-buffer": { - "version": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true }, "semver": { - "version": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true }, "sentence-case": { - "version": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", "dev": true, "requires": { - "no-case": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz", - "upper-case-first": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz" + "no-case": "2.3.2", + "upper-case-first": "1.1.2" } }, "sequencify": { - "version": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", "dev": true }, "set-immediate-shim": { - "version": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", "dev": true }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, "setprototypeof": { - "version": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", "dev": true }, "sha.js": { - "version": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", - "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", + "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", "dev": true, "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "inherits": "2.0.3", + "safe-buffer": "5.1.1" } }, "shelljs": { - "version": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", "dev": true, "requires": { - "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "interpret": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", - "rechoir": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" + "glob": "7.1.2", + "interpret": "1.0.4", + "rechoir": "0.6.2" } }, "sigmund": { - "version": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", "dev": true }, "signal-exit": { - "version": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "slash": { - "version": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true }, "snake-case": { - "version": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", "dev": true, "requires": { - "no-case": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz" + "no-case": "2.3.2" } }, "sntp": { - "version": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", "dev": true, "requires": { - "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + "hoek": "4.2.0" } }, "socket.io": { - "version": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz", "integrity": "sha1-uK+cq6AJSeVo42nxMn6pvp6iRhs=", "dev": true, "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "engine.io": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", - "has-binary": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", - "socket.io-adapter": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", - "socket.io-client": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz", - "socket.io-parser": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz" + "debug": "2.3.3", + "engine.io": "1.8.3", + "has-binary": "0.1.7", + "object-assign": "4.1.0", + "socket.io-adapter": "0.5.0", + "socket.io-client": "1.7.3", + "socket.io-parser": "2.3.1" }, "dependencies": { "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz" + "ms": "0.7.2" } }, "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true }, "object-assign": { - "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=", "dev": true } } }, "socket.io-adapter": { - "version": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=", "dev": true, "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "socket.io-parser": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz" + "debug": "2.3.3", + "socket.io-parser": "2.3.1" }, "dependencies": { "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz" + "ms": "0.7.2" } }, "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true } } }, "socket.io-client": { - "version": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz", "integrity": "sha1-sw6GqhDV7zVGYBwJzeR2Xjgdo3c=", "dev": true, "requires": { - "backo2": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "component-bind": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "component-emitter": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "engine.io-client": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz", - "has-binary": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", - "indexof": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "object-component": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "parseuri": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "socket.io-parser": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", - "to-array": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz" + "backo2": "1.0.2", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "2.3.3", + "engine.io-client": "1.8.3", + "has-binary": "0.1.7", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseuri": "0.0.5", + "socket.io-parser": "2.3.1", + "to-array": "0.1.4" }, "dependencies": { "component-emitter": { - "version": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true }, "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz" + "ms": "0.7.2" } }, "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true } } }, "socket.io-parser": { - "version": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=", "dev": true, "requires": { - "component-emitter": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "json3": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz" + "component-emitter": "1.1.2", + "debug": "2.2.0", + "isarray": "0.0.1", + "json3": "3.3.2" }, "dependencies": { "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + "ms": "0.7.1" } }, "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", "dev": true } } }, "source-map": { - "version": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "source-map-support": { - "version": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", - "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + "source-map": "0.5.7" } }, "sparkles": { - "version": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", "dev": true }, "spdx-correct": { - "version": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "dev": true, "requires": { - "spdx-license-ids": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz" + "spdx-license-ids": "1.2.2" } }, "spdx-expression-parse": { - "version": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", "dev": true }, "spdx-license-ids": { - "version": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", "dev": true }, "spdx-license-list": { - "version": "https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-2.1.0.tgz", "integrity": "sha1-N4j/tcgLJK++goOTTp5mhOpqIY0=", "dev": true }, "split": { - "version": "https://registry.npmjs.org/split/-/split-1.0.0.tgz", - "integrity": "sha1-xDlc5oOrzSVLwo/h2rtuXCfc/64=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "requires": { - "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + "through": "2.3.8" } }, "split2": { - "version": "https://registry.npmjs.org/split2/-/split2-2.1.1.tgz", - "integrity": "sha1-eh9VHhdqkOzTNF9yRqDP4XXvT9A=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", + "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", "dev": true, "requires": { - "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz" + "through2": "2.0.3" } }, "sprintf-js": { - "version": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "sshpk": { - "version": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", "dev": true, "requires": { - "asn1": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "bcrypt-pbkdf": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "dashdash": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "ecc-jsbn": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "getpass": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" - }, - "dependencies": { - "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" } }, "stack-trace": { - "version": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", "dev": true }, "statuses": { - "version": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", "dev": true }, "stream-browserify": { - "version": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "dev": true, "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz" + "inherits": "2.0.3", + "readable-stream": "2.3.3" } }, "stream-consume": { - "version": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=", "dev": true }, "stream-http": { - "version": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "integrity": "sha1-QKBQ7I3DtTsz2ZCUFcAsC/Gr+60=", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", + "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", "dev": true, "requires": { - "builtin-status-codes": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "to-arraybuffer": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" } }, "streamroller": { - "version": "https://registry.npmjs.org/streamroller/-/streamroller-0.4.1.tgz", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.4.1.tgz", "integrity": "sha1-1DW9WXQ3Or2b2QaDWVEwhRBswF8=", "dev": true, "requires": { - "date-format": "https://registry.npmjs.org/date-format/-/date-format-0.0.0.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" + "date-format": "0.0.0", + "debug": "0.7.4", + "mkdirp": "0.5.1", + "readable-stream": "1.1.14" }, "dependencies": { "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=", "dev": true }, "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" } }, "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true } } }, - "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", - "dev": true, - "requires": { - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" - } - }, "string-width": { - "version": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "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": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" } }, "stringmap": { - "version": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz", "integrity": "sha1-VWwTeyWPlCuHdvWy71gqoGnX0bE=", "dev": true }, "stringstream": { - "version": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", "dev": true }, "strip-ansi": { - "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + "ansi-regex": "2.1.1" } }, "strip-bom": { - "version": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "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": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" + "is-utf8": "0.2.1" } }, "strip-indent": { - "version": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "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": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" + "get-stdin": "4.0.1" } }, "supports-color": { - "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, "swap-case": { - "version": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", "dev": true, "requires": { - "lower-case": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz" + "lower-case": "1.1.4", + "upper-case": "1.1.3" } }, "symbol-observable": { @@ -6652,172 +6324,202 @@ "dev": true }, "tempfile": { - "version": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz", "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=", "dev": true, "requires": { - "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "uuid": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz" + "os-tmpdir": "1.0.2", + "uuid": "2.0.3" } }, "text-extensions": { - "version": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.5.0.tgz", - "integrity": "sha1-0cstFLXQvEW/3Kigikc/aMfrDLw=", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.7.0.tgz", + "integrity": "sha512-AKXZeDq230UaSzaO5s3qQUZOaC7iKbzq0jOFL614R7d9R593HLqAOL0cYoqLdkNrjBSOdmoQI06yigq1TSBXAg==", "dev": true }, "textextensions": { - "version": "https://registry.npmjs.org/textextensions/-/textextensions-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-1.0.2.tgz", "integrity": "sha1-ZUhjk+4fK7A5pgy7oFsLaL2VAdI=", "dev": true }, "throttleit": { - "version": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", "dev": true }, "through": { - "version": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, "through2": { - "version": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "readable-stream": "2.3.3", + "xtend": "4.0.1" } }, "tildify": { - "version": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", "dev": true, "requires": { - "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" + "os-homedir": "1.0.2" } }, "time-stamp": { - "version": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", "dev": true }, "timers-browserify": { - "version": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", + "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", "dev": true, "requires": { - "process": "https://registry.npmjs.org/process/-/process-0.11.10.tgz" + "setimmediate": "1.0.5" } }, "title-case": { - "version": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", "dev": true, "requires": { - "no-case": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz", - "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz" + "no-case": "2.3.2", + "upper-case": "1.1.3" } }, "tmp": { - "version": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", "dev": true, "requires": { - "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + "os-tmpdir": "1.0.2" } }, "to-array": { - "version": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", "dev": true }, "to-arraybuffer": { - "version": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, "to-fast-properties": { - "version": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, "tough-cookie": { - "version": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", "dev": true, "requires": { - "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + "punycode": "1.4.1" } }, "trim-newlines": { - "version": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", "dev": true }, "trim-off-newlines": { - "version": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", "dev": true }, "trim-right": { - "version": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, "tsickle": { - "version": "https://registry.npmjs.org/tsickle/-/tsickle-0.21.6.tgz", + "version": "0.21.6", + "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.21.6.tgz", "integrity": "sha1-U7Abl5xcE/2xOvs/uVgXflmRWI0=", "dev": true, "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "source-map-support": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz" + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "source-map": "0.5.7", + "source-map-support": "0.4.18" } }, + "tslib": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.8.0.tgz", + "integrity": "sha512-ymKWWZJST0/CkgduC2qkzjMOWr4bouhuURNXCn/inEX0L57BnRG6FhX76o7FOnsjHazCjfU2LKeSrlS2sIKQJg==", + "dev": true + }, "tslint": { - "version": "https://registry.npmjs.org/tslint/-/tslint-3.15.1.tgz", + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-3.15.1.tgz", "integrity": "sha1-2hZcqT2P3CwIa1EWXuG6y0jJjqU=", "dev": true, "requires": { - "colors": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "diff": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz", - "findup-sync": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", - "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", - "underscore.string": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz" + "colors": "1.1.2", + "diff": "2.2.3", + "findup-sync": "0.3.0", + "glob": "7.1.2", + "optimist": "0.6.1", + "resolve": "1.5.0", + "underscore.string": "3.3.4" }, "dependencies": { "colors": { - "version": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", "dev": true }, "diff": { - "version": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz", "integrity": "sha1-YOr9DSjukG5Oj/ClLBIpUhAzv5k=", "dev": true }, "findup-sync": { - "version": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", "dev": true, "requires": { - "glob": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" + "glob": "5.0.15" }, "dependencies": { "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } } } @@ -6825,446 +6527,523 @@ } }, "tslint-eslint-rules": { - "version": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-1.6.1.tgz", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-1.6.1.tgz", "integrity": "sha1-OekvMZVq0qZsAGHDUfqWwICK4Pg=", "dev": true, "requires": { - "doctrine": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", - "tslint": "https://registry.npmjs.org/tslint/-/tslint-3.15.1.tgz" + "doctrine": "0.7.2", + "tslint": "3.15.1" } }, "tslint-ionic-rules": { - "version": "https://registry.npmjs.org/tslint-ionic-rules/-/tslint-ionic-rules-0.0.8.tgz", + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/tslint-ionic-rules/-/tslint-ionic-rules-0.0.8.tgz", "integrity": "sha1-au1vjjzUBlIzAdHW0Db38DbdKAk=", "dev": true, "requires": { - "tslint-eslint-rules": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-1.6.1.tgz" + "tslint-eslint-rules": "1.6.1" } }, "tty-browserify": { - "version": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "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": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", - "dev": true + "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.1" + } }, "tweetnacl": { - "version": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true, "optional": true }, "type-check": { - "version": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + "prelude-ls": "1.1.2" } }, "type-is": { - "version": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", "dev": true, "requires": { - "media-typer": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz" + "media-typer": "0.3.0", + "mime-types": "2.1.17" } }, "typedarray": { - "version": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, "typescript": { - "version": "https://registry.npmjs.org/typescript/-/typescript-2.3.3.tgz", - "integrity": "sha1-ljnzw7QBSOjKl/4IpR3RiRu2viI=", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.4.2.tgz", + "integrity": "sha1-+DlfhdRZJ2BnyYiqQYN6j4KHCEQ=", "dev": true }, "uglify-js": { - "version": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, "optional": true, "requires": { - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "uglify-to-browserify": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "yargs": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" } }, "uglify-to-browserify": { - "version": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", "dev": true, "optional": true }, "ultron": { - "version": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", "dev": true }, "unc-path-regex": { - "version": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", "dev": true }, "underscore": { - "version": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", "dev": true }, "underscore-contrib": { - "version": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz", "integrity": "sha1-ZltmwkeD+PorGMn4y7Dix9SMJsc=", "dev": true, "requires": { - "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" + "underscore": "1.6.0" } }, "underscore.string": { - "version": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", "dev": true, "requires": { - "sprintf-js": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "sprintf-js": "1.0.3", + "util-deprecate": "1.0.2" } }, "unique-stream": { - "version": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", "dev": true }, "unpipe": { - "version": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, "upper-case": { - "version": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", "dev": true }, "upper-case-first": { - "version": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", "dev": true, "requires": { - "upper-case": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz" + "upper-case": "1.1.3" } }, "url": { - "version": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "dev": true, "requires": { - "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "querystring": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + "punycode": "1.3.2", + "querystring": "0.2.0" }, "dependencies": { "punycode": { - "version": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", "dev": true } } }, "user-home": { - "version": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", "dev": true }, "useragent": { - "version": "https://registry.npmjs.org/useragent/-/useragent-2.1.13.tgz", - "integrity": "sha1-u6Q+iqJNXOuDwpN0c+EC4h33TBA=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz", + "integrity": "sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=", "dev": true, "requires": { - "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", - "tmp": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz" + "lru-cache": "2.2.4", + "tmp": "0.0.31" }, "dependencies": { "lru-cache": { - "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=", "dev": true } } }, "util": { - "version": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + "inherits": "2.0.1" }, "dependencies": { "inherits": { - "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", "dev": true } } }, "util-deprecate": { - "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "utils-merge": { - "version": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true }, "uuid": { - "version": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", "dev": true }, "v8flags": { - "version": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "dev": true, "requires": { - "user-home": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz" + "user-home": "1.1.1" } }, "validate-npm-package-license": { - "version": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "dev": true, "requires": { - "spdx-correct": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "spdx-expression-parse": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz" + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" } }, "validate.js": { - "version": "https://registry.npmjs.org/validate.js/-/validate.js-0.9.0.tgz", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/validate.js/-/validate.js-0.9.0.tgz", "integrity": "sha1-is8BRPFSChmDXGzGY/ReCDaqVsg=", "dev": true }, "verror": { - "version": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" } }, "vinyl": { - "version": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", "dev": true, "requires": { - "clone": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "clone-stats": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "replace-ext": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz" + "clone": "1.0.3", + "clone-stats": "0.0.1", + "replace-ext": "0.0.1" } }, "vinyl-fs": { - "version": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", "dev": true, "requires": { - "defaults": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "glob-stream": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", - "glob-watcher": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "strip-bom": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", - "through2": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "vinyl": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz" + "defaults": "1.0.3", + "glob-stream": "3.1.18", + "glob-watcher": "0.0.6", + "graceful-fs": "3.0.11", + "mkdirp": "0.5.1", + "strip-bom": "1.0.0", + "through2": "0.6.5", + "vinyl": "0.4.6" }, "dependencies": { "clone": { - "version": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", "dev": true }, "graceful-fs": { - "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", "dev": true, "requires": { - "natives": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz" + "natives": "1.1.0" } }, "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" } }, "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, "strip-bom": { - "version": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", "dev": true, "requires": { - "first-chunk-stream": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "is-utf8": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" + "first-chunk-stream": "1.0.0", + "is-utf8": "0.2.1" } }, "through2": { - "version": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "dev": true, "requires": { - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "readable-stream": "1.0.34", + "xtend": "4.0.1" } }, "vinyl": { - "version": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", "dev": true, "requires": { - "clone": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "clone-stats": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz" + "clone": "0.2.0", + "clone-stats": "0.0.1" } } } }, "vlq": { - "version": "https://registry.npmjs.org/vlq/-/vlq-0.2.2.tgz", - "integrity": "sha1-4xbVJXtAuGu0PLjV/qXX9U1rDKE=", + "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": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "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": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" + "indexof": "0.0.1" } }, "void-elements": { - "version": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", "dev": true }, - "which": { - "version": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", - "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "dev": true, "requires": { - "isexe": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + "defaults": "1.0.3" + } + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "2.0.0" } }, "window-size": { - "version": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", "dev": true, "optional": true }, "winston": { - "version": "https://registry.npmjs.org/winston/-/winston-2.3.1.tgz", - "integrity": "sha1-C0hCDZeMAYBM8CMLZIhhWYIloRk=", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", "dev": true, "requires": { - "async": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", - "colors": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "cycle": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", - "eyes": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "stack-trace": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz" + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" }, "dependencies": { "async": { - "version": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", "dev": true } } }, "word-wrap": { - "version": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, "wordwrap": { - "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, "wrap-ansi": { - "version": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" } }, "wrappy": { - "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "ws": { - "version": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz", "integrity": "sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8=", "dev": true, "requires": { - "options": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "ultron": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz" + "options": "0.0.6", + "ultron": "1.0.2" } }, "wtf-8": { - "version": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=", "dev": true }, "xmlhttprequest-ssl": { - "version": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=", "dev": true }, "xtend": { - "version": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", "dev": true }, "y18n": { - "version": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "dev": true }, "yallist": { - "version": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "yargs": { - "version": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, "optional": true, "requires": { - "camelcase": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "cliui": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "window-size": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz" + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" }, "dependencies": { "camelcase": { - "version": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", "dev": true, "optional": true @@ -7272,21 +7051,24 @@ } }, "yauzl": { - "version": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", "dev": true, "requires": { - "fd-slicer": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz" + "fd-slicer": "1.0.1" } }, "yeast": { - "version": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", "dev": true }, "zone.js": { - "version": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.12.tgz", - "integrity": "sha1-hv9QU8mK7CkaC/S7rFAdaUoFz7s=", + "version": "0.8.18", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.18.tgz", + "integrity": "sha512-knKOBQM0oea3/x9pdyDuDi7RhxDlJhOIkeixXSiTKWLgs4LpK37iBc+1HaHwzlciHUKT172CymJFKo8Xgh+44Q==", "dev": true } } diff --git a/package.json b/package.json index 414e41de..d4cc528f 100644 --- a/package.json +++ b/package.json @@ -1,21 +1,21 @@ { "name": "ionic-native", - "version": "4.3.1", + "version": "4.6.0", "description": "Native plugin wrappers for Cordova and Ionic with TypeScript, ES6+, Promise and Observable support", "homepage": "https://ionicframework.com/", "author": "Ionic Team (https://ionic.io)", "license": "MIT", "devDependencies": { - "@angular/compiler": "4.1.3", - "@angular/compiler-cli": "4.1.3", - "@angular/core": "4.1.3", + "@angular/compiler": "4.4.4", + "@angular/compiler-cli": "4.4.4", + "@angular/core": "4.4.4", "@types/cordova": "0.0.34", - "@types/jasmine": "^2.5.51", - "@types/node": "^7.0.27", + "@types/jasmine": "^2.6.3", + "@types/node": "^8.0.50", "canonical-path": "0.0.2", "child-process-promise": "2.2.1", - "conventional-changelog-cli": "1.3.1", - "cpr": "2.0.2", + "conventional-changelog-cli": "1.3.4", + "cpr": "2.0.0", "cz-conventional-changelog": "2.0.0", "decamelize": "1.2.0", "dgeni": "0.4.7", @@ -39,12 +39,12 @@ "q": "1.5.0", "queue": "4.2.1", "rimraf": "2.6.1", - "rxjs": "5.4.0", + "rxjs": "5.5.2", "semver": "5.3.0", "tslint": "3.15.1", "tslint-ionic-rules": "0.0.8", - "typescript": "2.3.3", - "zone.js": "0.8.12" + "typescript": "~2.4.2", + "zone.js": "0.8.18" }, "scripts": { "start": "npm run test:watch", diff --git a/scripts/templates/wrap-min.tmpl b/scripts/templates/wrap-min.tmpl index d7b3beda..dde30c4b 100644 --- a/scripts/templates/wrap-min.tmpl +++ b/scripts/templates/wrap-min.tmpl @@ -1,9 +1,23 @@ -import { Plugin, IonicNativePlugin } from '@ionic-native/core'; +/** + * This is a template for new plugin wrappers + * + * TODO: + * - Add/Change information below + * - Document usage (importing, executing main functionality) + * - Remove any imports that you are not using + * - Add this file to /src/index.ts (follow style of other plugins) + * - Remove all the comments included in this template, EXCEPT the @Plugin wrapper docs and any other docs you added + * - Remove this note + * + */ import { Injectable } from '@angular/core'; +import { Plugin, Cordova, CordovaProperty, CordovaInstance, InstanceProperty, IonicNativePlugin } from '@ionic-native/core'; +import { Observable } from 'rxjs/Observable'; /** * @name {{ Plugin_Name }} * @description + * This plugin does something * * @usage * ```typescript @@ -15,16 +29,33 @@ import { Injectable } from '@angular/core'; * ... * * + * this.{{ pluginName }}.functionName('Hello', 123) + * .then((res: any) => console.log(res)) + * .catch((error: any) => console.error(error)); + * * ``` */ @Plugin({ pluginName: '{{ PluginName }}', - plugin: '', - pluginRef: '', - repo: '', - platforms: [] + plugin: '', // npm package name, example: cordova-plugin-camera + pluginRef: '', // the variable reference to call the plugin, example: navigator.geolocation + repo: '', // the github repository URL for the plugin + install: '', // OPTIONAL install command, in case the plugin requires variables + installVariables: [], // OPTIONAL the plugin requires variables + platforms: [] // Array of platforms supported, example: ['Android', 'iOS'] }) @Injectable() export class {{ PluginName }} extends IonicNativePlugin { + /** + * This function does something + * @param arg1 {string} Some param to configure something + * @param arg2 {number} Another param to configure something + * @return {Promise} Returns a promise that resolves when something happens + */ + @Cordova() + functionName(arg1: string, arg2: number): Promise { + return; // We add return; here to avoid any IDE / Compiler errors + } + } diff --git a/scripts/templates/wrap.tmpl b/scripts/templates/wrap.tmpl index 9c6d250f..dde30c4b 100644 --- a/scripts/templates/wrap.tmpl +++ b/scripts/templates/wrap.tmpl @@ -40,8 +40,9 @@ import { Observable } from 'rxjs/Observable'; plugin: '', // npm package name, example: cordova-plugin-camera pluginRef: '', // the variable reference to call the plugin, example: navigator.geolocation repo: '', // the github repository URL for the plugin - platforms: [], // Array of platforms supported, example: ['Android', 'iOS'] install: '', // OPTIONAL install command, in case the plugin requires variables + installVariables: [], // OPTIONAL the plugin requires variables + platforms: [] // Array of platforms supported, example: ['Android', 'iOS'] }) @Injectable() export class {{ PluginName }} extends IonicNativePlugin { diff --git a/src/@ionic-native/core/decorators.ts b/src/@ionic-native/core/decorators.ts index 7a6e0265..0a99c370 100644 --- a/src/@ionic-native/core/decorators.ts +++ b/src/@ionic-native/core/decorators.ts @@ -105,17 +105,6 @@ export interface CordovaCheckOptions { observable?: boolean; } -export interface CordovaFiniteObservableOptions extends CordovaOptions { - /** - * Function that gets a result returned from plugin's success callback, and decides whether it is last value and observable should complete. - */ - resultFinalPredicate?: (result: any) => boolean; - /** - * Function that gets called after resultFinalPredicate, and removes service data that indicates end of stream from the result. - */ - resultTransform?: (result: any) => any; -} - /** * @private */ @@ -167,7 +156,6 @@ export function CordovaCheck(opts: CordovaCheckOptions = {}) { }; } - /** * @private * @@ -323,39 +311,3 @@ export function CordovaFunctionOverride(opts: any = {}) { }; } - -/** - * @private - * - * Wraps method that returns an observable that can be completed. Provided opts.resultFinalPredicate dictates when the observable completes. - * - */ -export function CordovaFiniteObservable(opts: CordovaFiniteObservableOptions = {}) { - if (opts.observable === false) { - throw new Error('CordovaFiniteObservable decorator can only be used on methods that returns observable. Please provide correct option.'); - } - opts.observable = true; - return (target: Object, methodName: string, descriptor: TypedPropertyDescriptor) => { - return { - value: function(...args: any[]) { - let wrappedObservable: Observable = wrap(this, methodName, opts).apply(this, args); - return new Observable((observer) => { - let wrappedSubscription = wrappedObservable.subscribe({ - next: (x) => { - observer.next(opts.resultTransform ? opts.resultTransform(x) : x); - if (opts.resultFinalPredicate && opts.resultFinalPredicate(x)) { - observer.complete(); - } - }, - error: (err) => { observer.error(err); }, - complete: () => { observer.complete(); } - }); - return () => { - wrappedSubscription.unsubscribe(); - }; - }); - }, - enumerable: true - }; - }; -} diff --git a/src/@ionic-native/core/plugin.ts b/src/@ionic-native/core/plugin.ts index 4e5e6123..4118e482 100644 --- a/src/@ionic-native/core/plugin.ts +++ b/src/@ionic-native/core/plugin.ts @@ -230,7 +230,7 @@ export function wrapEventObservable(event: string, element: any = window): Obser export function overrideFunction(pluginObj: any, methodName: string, args: any[], opts: any = {}): Observable { return new Observable(observer => { - const availabilityCheck = checkAvailability(pluginObj, methodName); + const availabilityCheck = checkAvailability(pluginObj, null, pluginObj.constructor.getPluginName()); if (availabilityCheck === true) { const pluginInstance = getPlugin(pluginObj.constructor.getPluginRef()); diff --git a/src/@ionic-native/plugins/action-sheet/index.ts b/src/@ionic-native/plugins/action-sheet/index.ts index 28c33d82..5273f8d0 100644 --- a/src/@ionic-native/plugins/action-sheet/index.ts +++ b/src/@ionic-native/plugins/action-sheet/index.ts @@ -21,7 +21,7 @@ export interface ActionSheetOptions { /** * Theme to be used on Android */ - androidTheme?: number; + androidTheme?: 1 | 2 | 3 | 4 | 5; /** * Enable a cancel on Android @@ -46,7 +46,7 @@ export interface ActionSheetOptions { /** * On an iPad, set the X,Y position */ - position?: number[]; + position?: [number, number]; /** * Choose if destructive button will be the last @@ -123,7 +123,7 @@ export class ActionSheet extends IonicNativePlugin { * button pressed (1 based, so 1, 2, 3, etc.) */ @Cordova() - show(options?: ActionSheetOptions): Promise { return; } + show(options?: ActionSheetOptions): Promise { return; } /** diff --git a/src/@ionic-native/plugins/admob-pro/index.ts b/src/@ionic-native/plugins/admob-pro/index.ts index ad9c66b1..bb1c400a 100644 --- a/src/@ionic-native/plugins/admob-pro/index.ts +++ b/src/@ionic-native/plugins/admob-pro/index.ts @@ -1,11 +1,17 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; -export type AdSize = 'SMART_BANNER' | 'BANNER' | 'MEDIUM_RECTANGLE' | 'FULL_BANNER' | 'LEADERBOARD' | 'SKYSCRAPER' | 'CUSTOM'; +export type AdSize = + | 'SMART_BANNER' + | 'BANNER' + | 'MEDIUM_RECTANGLE' + | 'FULL_BANNER' + | 'LEADERBOARD' + | 'SKYSCRAPER' + | 'CUSTOM'; export interface AdMobOptions { - /** * Banner ad ID */ @@ -71,10 +77,13 @@ export interface AdMobOptions { */ license?: any; + /** + * Set offset + */ + offsetTopBar?: boolean; } export interface AdExtras { - color_bg: string; color_bg_top: string; @@ -86,7 +95,6 @@ export interface AdExtras { color_text: string; color_url: string; - } /** @@ -134,7 +142,6 @@ export interface AdExtras { }) @Injectable() export class AdMobPro extends IonicNativePlugin { - AD_POSITION: { NO_CHANGE: number; TOP_LEFT: number; @@ -167,7 +174,9 @@ export class AdMobPro extends IonicNativePlugin { * @returns {Promise} Returns a Promise that resolves when the banner is created */ @Cordova() - createBanner(adIdOrOptions: string | AdMobOptions): Promise { return; } + createBanner(adIdOrOptions: string | AdMobOptions): Promise { + return; + } /** * Destroy the banner, remove it from screen. @@ -175,7 +184,7 @@ export class AdMobPro extends IonicNativePlugin { @Cordova({ sync: true }) - removeBanner(): void { } + removeBanner(): void {} /** * Show banner at position @@ -184,7 +193,7 @@ export class AdMobPro extends IonicNativePlugin { @Cordova({ sync: true }) - showBanner(position: number): void { } + showBanner(position: number): void {} /** * Show banner at custom position @@ -194,7 +203,7 @@ export class AdMobPro extends IonicNativePlugin { @Cordova({ sync: true }) - showBannerAtXY(x: number, y: number): void { } + showBannerAtXY(x: number, y: number): void {} /** * Hide the banner, remove it from screen, but can show it later @@ -202,7 +211,7 @@ export class AdMobPro extends IonicNativePlugin { @Cordova({ sync: true }) - hideBanner(): void { } + hideBanner(): void {} /** * Prepare interstitial banner @@ -210,7 +219,9 @@ export class AdMobPro extends IonicNativePlugin { * @returns {Promise} Returns a Promise that resolves when interstitial is prepared */ @Cordova() - prepareInterstitial(adIdOrOptions: string | AdMobOptions): Promise { return; } + prepareInterstitial(adIdOrOptions: string | AdMobOptions): Promise { + return; + } /** * Show interstitial ad when it's ready @@ -218,7 +229,7 @@ export class AdMobPro extends IonicNativePlugin { @Cordova({ sync: true }) - showInterstitial(): void { } + showInterstitial(): void {} /** * Prepare a reward video ad @@ -226,7 +237,9 @@ export class AdMobPro extends IonicNativePlugin { * @returns {Promise} Returns a Promise that resolves when the ad is prepared */ @Cordova() - prepareRewardVideoAd(adIdOrOptions: string | AdMobOptions): Promise { return; } + prepareRewardVideoAd(adIdOrOptions: string | AdMobOptions): Promise { + return; + } /** * Show a reward video ad @@ -234,7 +247,7 @@ export class AdMobPro extends IonicNativePlugin { @Cordova({ sync: true }) - showRewardVideoAd(): void { } + showRewardVideoAd(): void {} /** * Sets the values for configuration and targeting @@ -242,14 +255,18 @@ export class AdMobPro extends IonicNativePlugin { * @returns {Promise} Returns a Promise that resolves when the options have been set */ @Cordova() - setOptions(options: AdMobOptions): Promise { return; } + setOptions(options: AdMobOptions): Promise { + return; + } /** * Get user ad settings * @returns {Promise} Returns a promise that resolves with the ad settings */ @Cordova() - getAdSettings(): Promise { return; } + getAdSettings(): Promise { + return; + } /** * Triggered when failed to receive Ad @@ -260,7 +277,9 @@ export class AdMobPro extends IonicNativePlugin { event: 'onAdFailLoad', element: document }) - onAdFailLoad(): Observable { return; } + onAdFailLoad(): Observable { + return; + } /** * Triggered when Ad received @@ -271,7 +290,9 @@ export class AdMobPro extends IonicNativePlugin { event: 'onAdLoaded', element: document }) - onAdLoaded(): Observable { return; } + onAdLoaded(): Observable { + return; + } /** * Triggered when Ad will be showed on screen @@ -282,7 +303,9 @@ export class AdMobPro extends IonicNativePlugin { event: 'onAdPresent', element: document }) - onAdPresent(): Observable { return; } + onAdPresent(): Observable { + return; + } /** * Triggered when user click the Ad, and will jump out of your App @@ -293,7 +316,9 @@ export class AdMobPro extends IonicNativePlugin { event: 'onAdLeaveApp', element: document }) - onAdLeaveApp(): Observable { return; } + onAdLeaveApp(): Observable { + return; + } /** * Triggered when dismiss the Ad and back to your App @@ -304,6 +329,7 @@ export class AdMobPro extends IonicNativePlugin { event: 'onAdDismiss', element: document }) - onAdDismiss(): Observable { return; } - + onAdDismiss(): Observable { + return; + } } diff --git a/src/@ionic-native/plugins/alipay/index.ts b/src/@ionic-native/plugins/alipay/index.ts index 219b7b3a..c0e517e6 100644 --- a/src/@ionic-native/plugins/alipay/index.ts +++ b/src/@ionic-native/plugins/alipay/index.ts @@ -101,17 +101,17 @@ export interface AlipayOrder { plugin: 'cordova-alipay-base', pluginRef: 'Alipay.Base', repo: 'https://github.com/xueron/cordova-alipay-base', - install: 'ionic cordova plugin add cordova-alipay-base --variable APP_ID=your_app_id', - installVariables: ['APP_ID'], + install: 'ionic cordova plugin add cordova-alipay-base --variable ALI_PID=your_app_id', + installVariables: ['ALI_PID'], platforms: ['Android', 'iOS'] }) @Injectable() export class Alipay extends IonicNativePlugin { /** * Open Alipay to perform App pay - * @param order { AlipayOrder } alipay options + * @param order { AlipayOrder | string } alipay options * @returns {Promise} Returns a Promise that resolves with the success return, or rejects with an error. */ @Cordova() - pay(order: AlipayOrder): Promise { return; } + pay(order: AlipayOrder | string): Promise { return; } } diff --git a/src/@ionic-native/plugins/android-exoplayer/index.ts b/src/@ionic-native/plugins/android-exoplayer/index.ts new file mode 100644 index 00000000..26fe4883 --- /dev/null +++ b/src/@ionic-native/plugins/android-exoplayer/index.ts @@ -0,0 +1,273 @@ +import { Injectable } from '@angular/core'; +import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Observable } from 'rxjs/Observable'; + +export type AndroidExoPlayerAspectRatio = 'FILL_SCREEN' | 'FIT_SCREEN'; + +export interface AndroidExoPlayerParams { + /** + * Url of the video to play. + */ + url: string; + + /** + * Set the user agent. Default is `ExoPlayerPlugin` + */ + userAgent?: string; + + /** + * Set the player aspect ratio. + */ + aspectRatio?: AndroidExoPlayerAspectRatio; + + /** + * Hide controls after this many milliseconds, default is `5000`. + */ + hideTimeout?: number; + + /** + * When set to false stream will not automatically start. + */ + autoPlay?: boolean; + + /** + * Start playback at this many milliseconds into video, default is `0`. + */ + seekTo?: number; + + /** + * Amount of time in milliseconds to use when skipping forward, default is `1000`. + */ + forwardTime?: number; + + /** + * Amount of time in milliseconds to use when skipping backward, default is `1000`. + */ + rewindTime?: number; + + /** + * Only play audio in the backgroud, default is `false`. + * If you pass in `audioOnly: true`, make sure to manually close the player on some event (like escape button) since the plugin won't be detecting keypresses when playing audio in the background. + */ + audioOnly?: true; + + /** + * Optional subtitle url to display over the video. + * We currently support .srt and .vtt subtitle formats. Subtitles are not supported on all stream types, as ExoPlayer has requirement that both video and subtitle "must have the same number of periods, and must not have any dynamic windows", which means for simple mp4s it should work, but on more complex HLS/Dash setups it might not. + */ + subtitleUrl?: string; + + /** + * okhttp connect timeout in milliseconds (default is `0`) + */ + connectTimeout?: number; + + /** + * okhttp read timeout in milliseconds (default is `0`) + */ + readTimeout?: number; + + /** + * okhttp write timeout in milliseconds (default is `0`) + */ + writeTimeout?: number; + + /** + * okhttp socket ping interval in milliseconds (default is `0` or disabled) + */ + pingInterval?: number; + + /** + * Number of times datasource will retry the stream before giving up (default is `3`) + */ + retryCount?: number; + + /** + * If this object is not present controller will not be visible. + */ + controller?: AndroidExoPlayerControllerConfig; +} + +export interface AndroidExoplayerState { + [s: string]: string; +} + +export interface AndroidExoPlayerControllerConfig { + /** + * Image in the controller. + */ + streamImage: string; + + /** + * + */ + streamTitle: string; + + /** + * + */ + streamDescription: string; + + /** + * Hide entire progress bar. + */ + hideProgress?: true; + + /** + * If progress bar is visible hide current position from it + */ + hidePosition: false; + + /** + * If progress bar is visible Hide stream duration from it + */ + hideDuration: false; + + /** + * Override the player control button icons. + */ + controlIcons?: { + /** + * Rewind button icon. + */ + exo_rew: string; + + /** + * Play button icon. + */ + exo_play: string; + + /** + * Payse button icon. + */ + exo_pause: string; + + /** + * Fast forward button icon. + */ + exo_ffwd: string; + }; +} + +/** + * @name Android ExoPlayer + * @description + * Cordova media player plugin using Google's ExoPlayer framework. + * + * https://github.com/google/ExoPlayer + * + * @usage + * ```typescript + * import { AndroidExoPlayer } from '@ionic-native/android-exoplayer'; + * + * constructor(private androidExoPlayer: AndroidExoPlayer) { } + * + * ... + * + * this.androidExoPlayer.show({url: 'http://www.youtube.com/api/manifest/dash/id/bf5bb2419360daf1/source/youtube'}); + * + * ``` + * + * @interfaces + * AndroidExoPlayerParams + * AndroidExoplayerState + * AndroidExoPlayerControllerConfig + */ +@Plugin({ + pluginName: 'AndroidExoPlayer', + plugin: 'cordova-plugin-exoplayer', + pluginRef: 'ExoPlayer', + repo: 'https://github.com/frontyard/cordova-plugin-exoplayer', + platforms: ['Android'] +}) +@Injectable() +export class AndroidExoplayer extends IonicNativePlugin { + /** + * Show the player. + * @param parameters {AndroidExoPlayerParams} Parameters + * @return {Observable} + */ + @Cordova({ + observable: true, + clearFunction: 'close', + clearWithArgs: false, + successIndex: 1, + errorIndex: 2 + }) + show(parameters: AndroidExoPlayerParams): Observable { return; } + + /** + * Switch stream without disposing of the player. + * @param url {string} The url of the new stream. + * @param controller {AndroidExoPlayerControllerConfig} Configuration of the controller. + * @return {Promise} + */ + @Cordova() + setStream(url: string, controller: AndroidExoPlayerControllerConfig): Promise { return; } + + /** + * Will pause if playing and play if paused + * @return {Promise} + */ + @Cordova() + playPause(): Promise { return; } + + /** + * Stop playing. + * @return {Promise} + */ + @Cordova() + stop(): Promise { return; } + + /** + * Jump to a particular position. + * @param milliseconds {number} Position in stream in milliseconds + * @return {Promise} + */ + @Cordova() + seekTo(milliseconds: number): Promise { return; } + + /** + * Jump to a particular time relative to the current position. + * @param milliseconds {number} Time in milliseconds + * @return {Promise} + */ + @Cordova() + seekBy(milliseconds: number): Promise { return; } + + /** + * Get the current player state. + * @return {Promise} + */ + @Cordova() + getState(): Promise { return; } + + /** + * Show the controller. + * @return {Promise} + */ + @Cordova() + showController(): Promise { return; } + + /** + * Hide the controller. + * @return {Promise} + */ + @Cordova() + hideController(): Promise { return; } + + /** + * Update the controller configuration. + * @param controller {AndroidExoPlayerControllerConfig} Configuration of the controller. + * @return {Promise} + */ + @Cordova() + setController(controller: AndroidExoPlayerControllerConfig): Promise { return; } + + /** + * Close and dispose of player, call before destroy. + * @return {Promise} + */ + @Cordova() + close(): Promise { return; } +} diff --git a/src/@ionic-native/plugins/android-full-screen/index.ts b/src/@ionic-native/plugins/android-full-screen/index.ts index 8971f6da..e0d023a9 100644 --- a/src/@ionic-native/plugins/android-full-screen/index.ts +++ b/src/@ionic-native/plugins/android-full-screen/index.ts @@ -14,8 +14,6 @@ export enum AndroidSystemUiFlags { HideNavigation = 2, /** View has requested to go into the normal fullscreen mode so that its content can take over the screen while still allowing the user to interact with the application. SYSTEM_UI_FLAG_FULLSCREEN */ Fullscreen = 4, - /** Requests the navigation bar to draw in a mode that is compatible with light navigation bar backgrounds. SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR */ - LightNavigationBar = 16, /** When using other layout flags, we would like a stable view of the content insets given to fitSystemWindows(Rect). SYSTEM_UI_FLAG_LAYOUT_STABLE */ LayoutStable = 256, /** View would like its window to be laid out as if it has requested SYSTEM_UI_FLAG_HIDE_NAVIGATION, even if it currently hasn't. SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION */ @@ -45,8 +43,8 @@ export enum AndroidSystemUiFlags { * ... * * this.androidFullScreen.isImmersiveModeSupported() - * .then(() => this.androidFullScreen.immersiveMode()) - * .catch((error: any) => console.log(error)); + * .then(() => console.log('Immersive mode supported')) + * .catch(err => console.log(error)); * * ``` */ diff --git a/src/@ionic-native/plugins/android-permissions/index.ts b/src/@ionic-native/plugins/android-permissions/index.ts index daa3ddfe..6ee43826 100644 --- a/src/@ionic-native/plugins/android-permissions/index.ts +++ b/src/@ionic-native/plugins/android-permissions/index.ts @@ -18,13 +18,15 @@ import { Injectable } from '@angular/core'; * ... * * this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.CAMERA).then( - * success => console.log('Permission granted'), + * result => console.log('Has permission?',result.hasPermission), * err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.CAMERA) * ); * * this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.CAMERA, this.androidPermissions.PERMISSION.GET_ACCOUNTS]); * * ``` + * + * Android 26 and above: due to Android 26's changes to permissions handling (permissions are requested at time of use rather than at runtime,) if your app does not include any functions (eg. other Ionic Native plugins) that utilize a particular permission, then `requestPermission()` and `requestPermissions()` will resolve immediately with no prompt shown to the user. Thus, you must include a function utilizing the feature you would like to use before requesting permission for it. */ @Plugin({ pluginName: 'AndroidPermissions', diff --git a/src/@ionic-native/plugins/app-availability/index.ts b/src/@ionic-native/plugins/app-availability/index.ts index 3011921b..3ff0b199 100644 --- a/src/@ionic-native/plugins/app-availability/index.ts +++ b/src/@ionic-native/plugins/app-availability/index.ts @@ -27,8 +27,8 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; * * this.appAvailability.check(app) * .then( - * (yes: string) => console.log(app + ' is available'), - * (no: string) => console.log(app + ' is NOT available') + * (yes: boolean) => console.log(app + ' is available'), + * (no: boolean) => console.log(app + ' is NOT available') * ); * ``` */ diff --git a/src/@ionic-native/plugins/app-rate/index.ts b/src/@ionic-native/plugins/app-rate/index.ts index 29898e78..170ee7b4 100644 --- a/src/@ionic-native/plugins/app-rate/index.ts +++ b/src/@ionic-native/plugins/app-rate/index.ts @@ -1,8 +1,7 @@ import { Injectable } from '@angular/core'; -import { Cordova, CordovaProperty, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, CordovaProperty, IonicNativePlugin, Plugin } from '@ionic-native/core'; export interface AppRatePreferences { - /** * Custom BCP 47 language tag */ @@ -23,10 +22,15 @@ export interface AppRatePreferences { */ usesUntilPrompt?: number; + /** + * Simple Mode to display the rate dialog directly and bypass negative feedback filtering flow + */ + simpleMode?: boolean; + /** * leave app or no when application page opened in app store (now supported only for iOS). Defaults to `false` */ - openStoreInApp?: boolean; + inAppReview?: boolean; /** * use custom view for rate dialog. Defaults to `false` @@ -36,7 +40,7 @@ export interface AppRatePreferences { /** * Custom locale object */ - customLocale?: any; + customLocale?: AppRateCustomLocale; /** * Callbacks for events @@ -47,11 +51,38 @@ export interface AppRatePreferences { * App Store URLS */ storeAppURL?: AppUrls; +} +export interface AppRateCustomLocale { + /** Title */ + title?: string; + + /** Message */ + message?: string; + + /** Cancel button label */ + cancelButtonLabel?: string; + + /** Later button label */ + laterButtonLabel?: string; + + /** Rate button label */ + rateButtonLabel?: string; + + /** Yes button label */ + yesButtonLabel?: string; + + /** No button label */ + noButtonLabel?: string; + + /** App rate promt title */ + appRatePromptTitle?: string; + + /** Feedback prompt title */ + feedbackPromptTitle?: string; } export interface AppRateCallbacks { - /** * call back function. called when user clicked on rate-dialog buttons */ @@ -65,11 +96,9 @@ export interface AppRateCallbacks { * call back function. called when user clicked on negative feedback */ handleNegativeFeedback?: Function; - } export interface AppUrls { - /** * application id in AppStore */ @@ -94,7 +123,6 @@ export interface AppUrls { * application URL in WindowsStore */ windows8?: string; - } /** @@ -137,6 +165,7 @@ export interface AppUrls { * AppRatePreferences * AppUrls * AppRateCallbacks + * AppRateCustomLocal * */ @Plugin({ @@ -148,25 +177,22 @@ export interface AppUrls { }) @Injectable() export class AppRate extends IonicNativePlugin { - /** * Configure various settings for the Rating View. * See table below for options */ - @CordovaProperty - preferences: AppRatePreferences; + @CordovaProperty preferences: AppRatePreferences; /** * Prompts the user for rating * @param {boolean} immediately Show the rating prompt immediately. */ @Cordova() - promptForRating(immediately: boolean): void { }; + promptForRating(immediately: boolean): void {} /** * Immediately send the user to the app store rating page */ @Cordova() - navigateToAppStore(): void { }; - + navigateToAppStore(): void {} } diff --git a/src/@ionic-native/plugins/app-update/index.ts b/src/@ionic-native/plugins/app-update/index.ts index 3b2158ac..0da8452f 100644 --- a/src/@ionic-native/plugins/app-update/index.ts +++ b/src/@ionic-native/plugins/app-update/index.ts @@ -1,5 +1,11 @@ -import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; import { Injectable } from '@angular/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; + +export interface AppUpdateOptions { + authType: string; + username?: string; + password?: string; +} /** * @name App Update @@ -24,13 +30,15 @@ import { Injectable } from '@angular/core'; * * constructor(private appUpdate: AppUpdate) { * - * const updateUrl = 'http://your-remote-api.com/update.xml'; - * this.appUpdate.checkAppUpdate(updateUrl); + * const updateUrl = 'https://your-remote-api.com/update.xml'; + * this.appUpdate.checkAppUpdate(updateUrl).then(() => { console.log('Update available') }); * * } * ``` * * The plugin will compare the app version and update it automatically if the API has a newer version to install. + * @interfaces + * AppUpdateOptions */ @Plugin({ pluginName: 'AppUpdate', @@ -49,5 +57,7 @@ export class AppUpdate extends IonicNativePlugin { @Cordova({ callbackOrder: 'reverse' }) - checkAppUpdate(updateUrl: string): Promise { return; } + checkAppUpdate(updateUrl: string, options?: AppUpdateOptions): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/app-version/index.ts b/src/@ionic-native/plugins/app-version/index.ts index 1962cdeb..a612159d 100644 --- a/src/@ionic-native/plugins/app-version/index.ts +++ b/src/@ionic-native/plugins/app-version/index.ts @@ -38,30 +38,30 @@ export class AppVersion extends IonicNativePlugin { /** * Returns the name of the app - * @returns {Promise} + * @returns {Promise} */ @Cordova() - getAppName(): Promise { return; } + getAppName(): Promise { return; } /** * Returns the package name of the app - * @returns {Promise} + * @returns {Promise} */ @Cordova() - getPackageName(): Promise { return; } + getPackageName(): Promise { return; } /** * Returns the build identifier of the app - * @returns {Promise} + * @returns {Promise} */ @Cordova() - getVersionCode(): Promise { return; } + getVersionCode(): Promise { return; } /** * Returns the version of the app - * @returns {Promise} + * @returns {Promise} */ @Cordova() - getVersionNumber(): Promise { return; } + getVersionNumber(): Promise { return; } } diff --git a/src/@ionic-native/plugins/apple-pay/index.ts b/src/@ionic-native/plugins/apple-pay/index.ts new file mode 100644 index 00000000..1995cb49 --- /dev/null +++ b/src/@ionic-native/plugins/apple-pay/index.ts @@ -0,0 +1,327 @@ +import {Injectable} from '@angular/core'; +import {Observable} from 'rxjs/Observable'; +import { + Plugin, + Cordova, + IonicNativePlugin +} from '@ionic-native/core'; + +export type IMakePayments = 'This device can make payments and has a supported card' | 'This device cannot make payments.' | 'This device can make payments but has no supported cards'; +export type IShippingType = 'shipping' | 'delivery' | 'store' | 'service'; +export type IBillingRequirement = 'none' | 'all' | 'postcode' | 'name' | 'email' | 'phone'; +export type ITransactionStatus = 'success' | 'failure' | 'invalid-billing-address' | 'invalid-shipping-address' | 'invalid-shipping-contact' | 'require-pin' | 'incorrect-pin' | 'locked-pin'; +export type ICompleteTransaction = 'Payment status applied.'; +export type IUpdateItemsAndShippingStatus = 'Updated List Info' | 'Did you make a payment request?'; + +export interface IPaymentResponse { + billingNameFirst?: string; + billingNameMiddle?: string; + billingNameLast?: string; + billingEmailAddress?: string; + billingSupplementarySubLocality?: string; + billingAddressStreet?: string; + billingAddressCity?: string; + billingAddressState?: string; + billingPostalCode?: string; + billingCountry?: string; + billingISOCountryCode?: string; + + shippingNameFirst?: string; + shippingNameMiddle?: string; + shippingNameLast?: string; + shippingEmailAddress?: string; + shippingPhoneNumber?: string; + shippingSupplementarySubLocality?: string; + shippingAddressStreet?: string; + shippingAddressCity?: string; + shippingAddressState?: string; + shippingPostalCode?: string; + shippingCountry?: string; + shippingISOCountryCode?: string; + + paymentData: string; + transactionIdentifier: string; + paymentMethodDisplayName?: string; + paymentMethodNetwork?: string; + paymentMethodTypeCard?: string; +} + +export interface IOrderItem { + label: string; + amount: number; +} +export interface IShippingMethod { + identifier: string; + label: string; + detail: string; + amount: number; +} +export interface IOrderItemsAndShippingMethods { + items: IOrderItem[]; + shippingMethods?: IShippingMethod[]; +} + +export interface IOrder extends IOrderItemsAndShippingMethods { + merchantIdentifier: string; + currencyCode: string; + countryCode: string; + billingAddressRequirement?: IBillingRequirement | IBillingRequirement[]; + shippingAddressRequirement?: IBillingRequirement | IBillingRequirement[]; + shippingType?: IShippingType; +} + +export interface ISelectedShippingContact { + shippingAddressCity: string; + shippingAddressState: string; + shippingPostalCode: string; + shippingISOCountryCode: string; +} + +/** + * @name Apple Pay + * @description + * A dependency free Cordova plugin to provide Apple Pay functionality. + * + * @usage + * ```typescript + * import { ApplePay } from '@ionic-native/apple-pay'; + * + * + * constructor(private applePay: ApplePay) { } + * + * ... + * async applePay() { + * // This block is optional -- only if you need to update order items/shipping + * // methods in response to shipping method selections + * this.applePay.startListeningForShippingContactSelection() + * .subscribe(async selection => { + * try { + * await this.applePay.updateItemsAndShippingMethods({ + * items: getFromSelection(selection), + * shippingMethods: getFromSelection(selection), + * }); + * } + * catch { + * // handle update items error + * } + * }); + * + * try { + * const applePayTransaction = await this.applePay.makePaymentRequest({ + * items, + * shippingMethods, + * merchantIdentifier, + * currencyCode, + * countryCode, + * billingAddressRequirement: ['name', 'email', 'phone'], + * shippingAddressRequirement: 'none', + * shippingType: 'shipping' + * }); + * + * const transactionStatus = await completeTransactionWithMerchant(applePayTransaction); + * await this.applePay.completeLastTransaction(transactionStatus); + * } catch { + * // handle payment request error + * // Can also handle stop complete transaction but these should normally not occur + * } + * + * // only if you started listening before + * await this.applePay.stopListeningForShippingContactSelection(); + * } + * ``` + */ +@Plugin({ + pluginName: 'ApplePay', + plugin: 'cordova-plugin-applepay', + pluginRef: 'ApplePay', + repo: 'https://github.com/samkelleher/cordova-plugin-applepay', + platforms: ['iOS'], +}) +@Injectable() +export class ApplePay extends IonicNativePlugin { + + /** + * Detects if the current device supports Apple Pay and has any capable cards registered. + * @return {Promise} Returns a promise + * + * @usage + * try { + * const message = await this.applePay.canMakePayments(); + * // Apple Pay is enabled and a supported card is setup. Expect: + * // 'This device can make payments and has a supported card' + * } catch (message) { + * // There is an issue, examine the message to see the details, will be: + * // 'This device cannot make payments.'' + * // 'This device can make payments but has no supported cards' + * } + */ + @Cordova({ + otherPromise: true + }) + canMakePayments(): Promise { + return; + } + + /** + * Starts listening for shipping contact selection changes + * Any time the user selects shipping contact, this callback will fire. + * You *must* call `updateItemsAndShippingMethods` in response or else the + * user will not be able to process payment. + * @return {Observable} emits with shipping contact information on + * shipping contact selection changes + */ + @Cordova({ + observable: true, + clearFunction: 'stopListeningForShippingContactSelection' + }) + startListeningForShippingContactSelection(): Observable { + return; + } + + /** + * Stops listening for shipping contact selection changes + * @return {Promise} whether stop listening was successful. This should + * really only fail if this is called without starting listening + */ + @Cordova({ + otherPromise: true + }) + stopListeningForShippingContactSelection(): Promise { + return; + } + + /** + * Update the list of pay sheet items and shipping methods in response to + * a shipping contact selection event. This *must* be called in response to + * any shipping contact selection event or else the user will not be able + * to complete a transaction on the pay sheet. Do not call without + * subscribing to shipping contact selection events first + * @returns {Promise} + * + * @param {Object} including `items` and `shippingMethods` properties. + * + * @usage + * this.applePay.startListeningForShippingContactSelection().pluck('shippingAddressState').subscribe(shippingAddressState => { + * let shippingMethods; + * if ('AK' === shippingAddressState) { + * shippingMethods = [{ + * identifier: 'Alaska', + * label: 'Alaska', + * detail: 'For shipping to Alaska', + * amount: 9.99 + * },]; + * } else { + * shippingMethods = [{ + * identifier: 'Continental', + * label: 'Continental', + * detail: 'For shipping Continentally', + * amount: 5.99 + * }]; + * } + * this.paySheetItems.shippingCost = { + * label: 'Shipping Cost', + * amount: shippingMethod[0].amount + * }; + * this.applePay.updateItemsAndShippingMethods(this.paySheetItems, shippingMethods); + * }); + */ + @Cordova({ + otherPromise: true + }) + updateItemsAndShippingMethods(list: IOrderItemsAndShippingMethods): Promise { + return; + } + + /** + * Request a payment with Apple Pay + * @return {Promise} Returns a promise that resolves when something happens + * + * @param order {IOrder} + * + * @usage + * try { + * const paymentResponse = this.applePay.makePaymentRequest({ + * items: [ + * { + * label: '3 x Basket Items', + * amount: 49.99 + * }, + * { + * label: 'Next Day Delivery', + * amount: 3.99 + * }, + * { + * label: 'My Fashion Company', + * amount: 53.98 + * } + * ], + * shippingMethods: [ + * { + * identifier: 'NextDay', + * label: 'NextDay', + * detail: 'Arrives tomorrow by 5pm.', + * amount: 3.99 + * }, + * { + * identifier: 'Standard', + * label: 'Standard', + * detail: 'Arrive by Friday.', + * amount: 4.99 + * }, + * { + * identifier: 'SaturdayDelivery', + * label: 'Saturday', + * detail: 'Arrive by 5pm this Saturday.', + * amount: 6.99 + * } + * ], + * merchantIdentifier: 'merchant.apple.test', + * currencyCode: 'GBP', + * countryCode: 'GB', + * billingAddressRequirement: 'none', + * shippingAddressRequirement: 'none', + * shippingType: 'shipping', + * }); + * + * // The user has authorized the payment. + * + * // Handle the token, asynchronously, i.e. pass to your merchant bank to + * // action the payment, then once finished, depending on the outcome: + * + * // Here is an example implementation: + * + * const captureStatus = await MyPaymentProvider.authorizeApplePayToken(paymentResponse.paymentData); + * await this.applePay.completeLastTransaction('success'); + * } + * catch (err) { + * if (isPaymentAuthError(err)) { + * this.completeLastTransaction('failure'); + * } + * else { + * // Failed to open pay sheet or user canceled payment + * } + * } + */ + @Cordova({ + otherPromise: true + }) + makePaymentRequest(order: IOrder): Promise { + return; + } + + /** + * Once the makePaymentRequest has been resolved successfully, the device will be waiting for a completion event. + * This means, that the application must proceed with the token authorisation and return a success, failure, + * or other validation error. Once this has been passed back, the Apple Pay sheet will be dismissed via an animation. + * @return {Promise} Returns a promise that resolves after confirmation of payment authorization completion + * + * @param complete {ITransactionStatus} + * + */ + @Cordova({ + otherPromise: true + }) + completeLastTransaction(complete: ITransactionStatus): Promise { + return; + } +} diff --git a/src/@ionic-native/plugins/appodeal/index.ts b/src/@ionic-native/plugins/appodeal/index.ts index 5d72981f..b96596da 100644 --- a/src/@ionic-native/plugins/appodeal/index.ts +++ b/src/@ionic-native/plugins/appodeal/index.ts @@ -46,14 +46,16 @@ export class Appodeal extends IonicNativePlugin { * @param {number} adType */ @Cordova() - initialize(appKey: string, adType: number): void { }; + initialize(appKey: string, adType: number): void {} /** * check if SDK has been initialized * @returns {Promise} */ @Cordova() - isInitialized(): Promise { return; }; + isInitialized(): Promise { + return; + } /** * show ad of specified type @@ -61,7 +63,9 @@ export class Appodeal extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - show(adType: number): Promise { return; }; + show(adType: number): Promise { + return; + } /** * show ad of specified type with placement options @@ -70,24 +74,26 @@ export class Appodeal extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - showWithPlacement( - adType: number, - placement: any - ): Promise { return; }; + showWithPlacement(adType: number, placement: any): Promise { + return; + } /** * hide ad of specified type * @param {number} adType */ @Cordova() - hide(adType: number): void { }; + hide(adType: number): void {} /** * confirm use of ads of specified type * @param {number} adType + * @returns {Promise} */ @Cordova() - confirm(adType: number): void { }; + canShow(adType: number): Promise { + return; + } /** * check if ad of specified type has been loaded @@ -95,7 +101,9 @@ export class Appodeal extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - isLoaded(adType: number): Promise { return; }; + isLoaded(adType: number): Promise { + return; + } /** * check if ad of specified @@ -103,7 +111,9 @@ export class Appodeal extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - isPrecache(adType: number): Promise { return; }; + isPrecache(adType: number): Promise { + return; + } /** * @@ -111,75 +121,77 @@ export class Appodeal extends IonicNativePlugin { * @param autoCache */ @Cordova() - setAutoCache(adType: number, autoCache: any): void { }; + setAutoCache(adType: number, autoCache: any): void {} /** * forcefully cache an ad by type * @param {number} adType */ @Cordova() - cache(adType: number): void { }; + cache(adType: number): void {} /** * * @param {boolean} set */ @Cordova() - setOnLoadedTriggerBoth(set: boolean): void { }; + setTriggerOnLoadedOnPrecache(set: boolean): void {} /** * enable or disable Smart Banners * @param {boolean} enabled */ @Cordova() - setSmartBanners(enabled: boolean): void { }; + setSmartBanners(enabled: boolean): void {} /** * enable or disable banner backgrounds * @param {boolean} enabled */ @Cordova() - setBannerBackground(enabled: boolean): void { }; + setBannerBackground(enabled: boolean): void {} /** * enable or disable banner animations * @param {boolean} enabled */ @Cordova() - setBannerAnimation(enabled: boolean): void { }; + setBannerAnimation(enabled: boolean): void {} /** * * @param value */ @Cordova() - set728x90Banners(value: any): void { }; + set728x90Banners(value: any): void {} /** * enable or disable logging * @param {boolean} logging */ @Cordova() - setLogging(logging: boolean): void { }; + setLogLevel(logging: boolean): void {} /** * enable or disable testing mode * @param {boolean} testing */ @Cordova() - setTesting(testing: boolean): void { }; + setTesting(testing: boolean): void {} /** * reset device ID */ @Cordova() - resetUUID(): void { }; + resetUUID(): void {} /** * get version of Appdeal SDK */ @Cordova() - getVersion(): Promise { return; }; + getVersion(): Promise { + return; + } /** * @@ -187,7 +199,7 @@ export class Appodeal extends IonicNativePlugin { * @param {number} adType */ @Cordova() - disableNetwork(network?: string, adType?: number): void { }; + disableNetwork(network?: string, adType?: number): void {} /** * @@ -195,54 +207,54 @@ export class Appodeal extends IonicNativePlugin { * @param {number} adType */ @Cordova() - disableNetworkType(network?: string, adType?: number): void { }; + disableNetworkType(network?: string, adType?: number): void {} /** * disable Location permissions for Appodeal SDK */ @Cordova() - disableLocationPermissionCheck(): void { }; + disableLocationPermissionCheck(): void {} /** * disable Storage permissions for Appodeal SDK */ @Cordova() - disableWriteExternalStoragePermissionCheck(): void { }; + disableWriteExternalStoragePermissionCheck(): void {} /** * enable event listeners * @param {boolean} enabled */ @Cordova() - enableInterstitialCallbacks(enabled: boolean): void { }; + enableInterstitialCallbacks(enabled: boolean): void {} /** * enable event listeners * @param {boolean} enabled */ @Cordova() - enableSkippableVideoCallbacks(enabled: boolean): void { }; + enableSkippableVideoCallbacks(enabled: boolean): void {} /** * enable event listeners * @param {boolean} enabled */ @Cordova() - enableNonSkippableVideoCallbacks(enabled: boolean): void { }; + enableNonSkippableVideoCallbacks(enabled: boolean): void {} /** * enable event listeners * @param {boolean} enabled */ @Cordova() - enableBannerCallbacks(enabled: boolean): void { }; + enableBannerCallbacks(enabled: boolean): void {} /** * enable event listeners * @param {boolean} enabled */ @Cordova() - enableRewardedVideoCallbacks(enabled: boolean): void { }; + enableRewardedVideoCallbacks(enabled: boolean): void {} /** * @@ -250,7 +262,7 @@ export class Appodeal extends IonicNativePlugin { * @param {boolean} value */ @Cordova() - setCustomBooleanRule(name: string, value: boolean): void { }; + setCustomBooleanRule(name: string, value: boolean): void {} /** * @@ -258,7 +270,7 @@ export class Appodeal extends IonicNativePlugin { * @param {number} value */ @Cordova() - setCustomIntegerRule(name: string, value: number): void { }; + setCustomIntegerRule(name: string, value: number): void {} /** * set rule with float value @@ -266,7 +278,7 @@ export class Appodeal extends IonicNativePlugin { * @param {number} value */ @Cordova() - setCustomDoubleRule(name: string, value: number): void { }; + setCustomDoubleRule(name: string, value: number): void {} /** * set rule with string value @@ -274,243 +286,321 @@ export class Appodeal extends IonicNativePlugin { * @param {string} value */ @Cordova() - setCustomStringRule(name: string, value: string): void { }; + setCustomStringRule(name: string, value: string): void {} /** * set ID preference in Appodeal for current user * @param id */ @Cordova() - setUserId(id: any): void { }; + setUserId(id: any): void {} /** * set Email preference in Appodeal for current user * @param email */ @Cordova() - setEmail(email: any): void { }; + setEmail(email: any): void {} /** * set Birthday preference in Appodeal for current user * @param birthday */ @Cordova() - setBirthday(birthday: any): void { }; + setBirthday(birthday: any): void {} /** * et Age preference in Appodeal for current user * @param age */ @Cordova() - setAge(age: any): void { }; + setAge(age: any): void {} /** * set Gender preference in Appodeal for current user * @param gender */ @Cordova() - setGender(gender: any): void { }; + setGender(gender: any): void {} /** * set Occupation preference in Appodeal for current user * @param occupation */ @Cordova() - setOccupation(occupation: any): void { }; + setOccupation(occupation: any): void {} /** * set Relation preference in Appodeal for current user * @param relation */ @Cordova() - setRelation(relation: any): void { }; + setRelation(relation: any): void {} /** * set Smoking preference in Appodeal for current user * @param smoking */ @Cordova() - setSmoking(smoking: any): void { }; + setSmoking(smoking: any): void {} /** * set Alcohol preference in Appodeal for current user * @param alcohol */ @Cordova() - setAlcohol(alcohol: any): void { }; + setAlcohol(alcohol: any): void {} /** * set Interests preference in Appodeal for current user * @param interests */ @Cordova() - setInterests(interests: any): void { }; + setInterests(interests: any): void {} @Cordova({ eventObservable: true, event: 'onInterstitialLoaded', element: document }) - onInterstitialLoaded(): Observable { return; } + onInterstitialLoaded(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onInterstitialFailedToLoad', element: document }) - onInterstitialFailedToLoad(): Observable { return; } + onInterstitialFailedToLoad(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onInterstitialShown', element: document }) - onInterstitialShown(): Observable { return; } + onInterstitialShown(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onInterstitialClicked', element: document }) - onInterstitialClicked(): Observable { return; } + onInterstitialClicked(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onInterstitialClosed', element: document }) - onInterstitialClosed(): Observable { return; } + onInterstitialClosed(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onSkippableVideoLoaded', element: document }) - onSkippableVideoLoaded(): Observable { return; } + onSkippableVideoLoaded(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onSkippableVideoFailedToLoad', element: document }) - onSkippableVideoFailedToLoad(): Observable { return; } + onSkippableVideoFailedToLoad(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onSkippableVideoShown', element: document }) - onSkippableVideoShown(): Observable { return; } + onSkippableVideoShown(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onSkippableVideoFinished', element: document }) - onSkippableVideoFinished(): Observable { return; } + onSkippableVideoFinished(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onSkippableVideoClosed', element: document }) - onSkippableVideoClosed(): Observable { return; } + onSkippableVideoClosed(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onRewardedVideoLoaded', element: document }) - onRewardedVideoLoaded(): Observable { return; } + onRewardedVideoLoaded(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onRewardedVideoFailedToLoad', element: document }) - onRewardedVideoFailedToLoad(): Observable { return; } + onRewardedVideoFailedToLoad(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onRewardedVideoShown', element: document }) - onRewardedVideoShown(): Observable { return; } + onRewardedVideoShown(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onRewardedVideoFinished', element: document }) - onRewardedVideoFinished(): Observable { return; } + onRewardedVideoFinished(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onRewardedVideoClosed', element: document }) - onRewardedVideoClosed(): Observable { return; } + onRewardedVideoClosed(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onNonSkippableVideoLoaded', element: document }) - onNonSkippableVideoLoaded(): Observable { return; } + onNonSkippableVideoLoaded(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onNonSkippableVideoFailedToLoad', element: document }) - onNonSkippableVideoFailedToLoad(): Observable { return; } + onNonSkippableVideoFailedToLoad(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onNonSkippableVideoShown', element: document }) - onNonSkippableVideoShown(): Observable { return; } + onNonSkippableVideoShown(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onNonSkippableVideoFinished', element: document }) - onNonSkippableVideoFinished(): Observable { return; } + onNonSkippableVideoFinished(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onNonSkippableVideoClosed', element: document }) - onNonSkippableVideoClosed(): Observable { return; } + onNonSkippableVideoClosed(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onBannerClicked', element: document }) - onBannerClicked(): Observable { return; } + onBannerClicked(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onBannerFailedToLoad', element: document }) - onBannerFailedToLoad(): Observable { return; } + onBannerFailedToLoad(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onBannerLoaded', element: document }) - onBannerLoaded(): Observable { return; } + onBannerLoaded(): Observable { + return; + } @Cordova({ eventObservable: true, event: 'onBannerShown', element: document }) - onBannerShown(): Observable { return; } + onBannerShown(): Observable { + return; + } + + @Cordova() + getRewardParametersForPlacement(placement: string): Promise { + return; + } + + @Cordova() + getRewardParameters(): Promise { + return; + } + + @Cordova() + canShowWithPlacement(adType: string, placement: string): Promise { + return; + } + + @Cordova({ + platforms: ['Android'] + }) + showTestScreen(value: any): void {} + + @Cordova() + muteVideosIfCallsMuted(value: any): Promise { + return; + } + + @Cordova() + setChildDirectedTreatment(value: boolean): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/background-mode/index.ts b/src/@ionic-native/plugins/background-mode/index.ts index 2d715929..6619db59 100644 --- a/src/@ionic-native/plugins/background-mode/index.ts +++ b/src/@ionic-native/plugins/background-mode/index.ts @@ -2,48 +2,52 @@ import { Injectable } from '@angular/core'; import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; - /** * Configurations items that can be updated. */ export interface BackgroundModeConfiguration { - /** * Title of the background task */ - title?: String; + title?: string; /** * Description of background task */ - text?: String; + text?: string; /** * This will look for `.png` in platforms/android/res/drawable|mipmap */ icon?: string; + /** + * Set the background color of the notification circle + */ color?: string; /** - * By default the app will come to foreground when taping on the notification. If false, plugin won't come to foreground when tapped. + * By default the app will come to foreground when tapping on the notification. If false, plugin won't come to foreground when tapped. */ resume?: boolean; + /** + * When set to false makes the notifications visible on lockscreen (Android 5.0+) + */ hidden?: boolean; + /** Big text */ bigText?: boolean; /** * The text that scrolls itself on statusbar */ - ticker?: String; + ticker?: string; /** * if true plugin will not display a notification. Default is false. */ silent?: boolean; - } /** @@ -74,7 +78,6 @@ export interface BackgroundModeConfiguration { }) @Injectable() export class BackgroundMode extends IonicNativePlugin { - /** * Enable the background mode. * Once called, prevents the app from being paused while in background. @@ -82,14 +85,16 @@ export class BackgroundMode extends IonicNativePlugin { @Cordova({ sync: true }) - enable(): void { } + enable(): void {} /** * Disable the background mode. * Once the background mode has been disabled, the app will be paused when in background. */ @Cordova() - disable(): Promise { return; } + disable(): Promise { + return; + } /** * Checks if background mode is enabled or not. @@ -98,7 +103,9 @@ export class BackgroundMode extends IonicNativePlugin { @Cordova({ sync: true }) - isEnabled(): boolean { return; } + isEnabled(): boolean { + return; + } /** * Can be used to get the information if the background mode is active. @@ -107,7 +114,9 @@ export class BackgroundMode extends IonicNativePlugin { @Cordova({ sync: true }) - isActive(): boolean { return; } + isActive(): boolean { + return; + } /** * Override the default title, ticker and text. @@ -117,7 +126,9 @@ export class BackgroundMode extends IonicNativePlugin { @Cordova({ platforms: ['Android'] }) - setDefaults(options?: BackgroundModeConfiguration): Promise { return; } + setDefaults(options?: BackgroundModeConfiguration): Promise { + return; + } /** * Modify the displayed information. @@ -140,7 +151,9 @@ export class BackgroundMode extends IonicNativePlugin { clearFunction: 'un', clearWithArgs: true }) - on(event: string): Observable { return; } + on(event: string): Observable { + return; + } /** * Android allows to programmatically move from foreground to background. @@ -149,7 +162,7 @@ export class BackgroundMode extends IonicNativePlugin { platforms: ['Android'], sync: true }) - moveToBackground(): void { } + moveToBackground(): void {} /** * Enable GPS-tracking in background (Android). @@ -158,7 +171,7 @@ export class BackgroundMode extends IonicNativePlugin { platforms: ['Android'], sync: true }) - disableWebViewOptimizations (): void { } + disableWebViewOptimizations(): void {} /** * Android allows to programmatically move from background to foreground. @@ -167,7 +180,7 @@ export class BackgroundMode extends IonicNativePlugin { platforms: ['Android'], sync: true }) - moveToForeground(): void { } + moveToForeground(): void {} /** * Override the back button on Android to go to background instead of closing the app. @@ -176,7 +189,7 @@ export class BackgroundMode extends IonicNativePlugin { platforms: ['Android'], sync: true }) - overrideBackButton(): void { } + overrideBackButton(): void {} /** * Exclude the app from the recent task list. Works on Android 5.0+. @@ -185,7 +198,7 @@ export class BackgroundMode extends IonicNativePlugin { platforms: ['Android'], sync: true }) - excludeFromTaskList(): void { } + excludeFromTaskList(): void {} /** * The method works async instead of isActive() or isEnabled(). @@ -193,7 +206,9 @@ export class BackgroundMode extends IonicNativePlugin { @Cordova({ platforms: ['Android'] }) - isScreenOff(): Promise { return; } + isScreenOff(): Promise { + return; + } /** * Turn screen on @@ -202,7 +217,7 @@ export class BackgroundMode extends IonicNativePlugin { platforms: ['Android'], sync: true }) - wakeUp(): void { } + wakeUp(): void {} /** * Turn screen on and show app even locked @@ -211,6 +226,5 @@ export class BackgroundMode extends IonicNativePlugin { platforms: ['Android'], sync: true }) - unlock(): void { } - + unlock(): void {} } diff --git a/src/@ionic-native/plugins/badge/index.ts b/src/@ionic-native/plugins/badge/index.ts index 7da09cf7..815711c7 100644 --- a/src/@ionic-native/plugins/badge/index.ts +++ b/src/@ionic-native/plugins/badge/index.ts @@ -1,7 +1,6 @@ import { Injectable } from '@angular/core'; import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; - /** * @name Badge * @description @@ -31,13 +30,14 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class Badge extends IonicNativePlugin { - /** * Clear the badge of the app icon. * @returns {Promise} */ @Cordova() - clear(): Promise { return; } + clear(): Promise { + return; + } /** * Set the badge of the app icon. @@ -45,14 +45,18 @@ export class Badge extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - set(badgeNumber: number): Promise { return; } + set(badgeNumber: number): Promise { + return; + } /** * Get the badge of the app icon. * @returns {Promise} */ @Cordova() - get(): Promise { return; } + get(): Promise { + return; + } /** * Increase the badge number. @@ -60,7 +64,9 @@ export class Badge extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - increase(increaseBy: number): Promise { return; } + increase(increaseBy: number): Promise { + return; + } /** * Decrease the badge number. @@ -68,20 +74,34 @@ export class Badge extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - decrease(decreaseBy: number): Promise { return; } + decrease(decreaseBy: number): Promise { + return; + } + + /** + * Check support to show badges. + * @returns {Promise} + */ + @Cordova() + isSupported(): Promise { + return; + } /** * Determine if the app has permission to show badges. * @returns {Promise} */ @Cordova() - hasPermission(): Promise { return; } + hasPermission(): Promise { + return; + } /** * Register permission to set badge notifications * @returns {Promise} */ @Cordova() - registerPermission(): Promise { return; } - + requestPermission(): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/barcode-scanner/index.ts b/src/@ionic-native/plugins/barcode-scanner/index.ts index f55f76a0..467d613c 100644 --- a/src/@ionic-native/plugins/barcode-scanner/index.ts +++ b/src/@ionic-native/plugins/barcode-scanner/index.ts @@ -1,8 +1,7 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; export interface BarcodeScannerOptions { - /** * Prefer front camera. Supported on iOS and Android. */ @@ -52,11 +51,26 @@ export interface BarcodeScannerOptions { * Display scanned text for X ms. 0 suppresses it entirely, default 1500. Supported on Android only. */ resultDisplayDuration?: number; - } export interface BarcodeScanResult { - format: 'QR_CODE' | 'DATA_MATRIX' | 'UPC_E' | 'UPC_A' | 'EAN_8' | 'EAN_13' | 'CODE_128' | 'CODE_39' | 'CODE_93' | 'CODABAR' | 'ITF' | 'RSS14' | 'RSS_EXPANDED' | 'PDF417' | 'AZTEC' | 'MSI'; + format: + | 'QR_CODE' + | 'DATA_MATRIX' + | 'UPC_E' + | 'UPC_A' + | 'EAN_8' + | 'EAN_13' + | 'CODE_128' + | 'CODE_39' + | 'CODE_93' + | 'CODABAR' + | 'ITF' + | 'RSS14' + | 'RSS_EXPANDED' + | 'PDF417' + | 'AZTEC' + | 'MSI'; cancelled: boolean; text: string; } @@ -77,10 +91,10 @@ export interface BarcodeScanResult { * ... * * - * this.barcodeScanner.scan().then((barcodeData) => { - * // Success! Barcode data is here - * }, (err) => { - * // An error occurred + * this.barcodeScanner.scan().then(barcodeData => { + * console.log('Barcode data', barcodeData); + * }).catch(err => { + * console.log('Error', err); * }); * ``` * @interfaces @@ -96,7 +110,6 @@ export interface BarcodeScanResult { }) @Injectable() export class BarcodeScanner extends IonicNativePlugin { - Encode: { TEXT_TYPE: string; EMAIL_TYPE: string; @@ -117,7 +130,9 @@ export class BarcodeScanner extends IonicNativePlugin { @Cordova({ callbackOrder: 'reverse' }) - scan(options?: BarcodeScannerOptions): Promise { return; } + scan(options?: BarcodeScannerOptions): Promise { + return; + } /** * Encodes data into a barcode. @@ -127,6 +142,7 @@ export class BarcodeScanner extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - encode(type: string, data: any): Promise { return; } - + encode(type: string, data: any): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/base64-to-gallery/index.ts b/src/@ionic-native/plugins/base64-to-gallery/index.ts index 0acc4da0..c4ac50c7 100644 --- a/src/@ionic-native/plugins/base64-to-gallery/index.ts +++ b/src/@ionic-native/plugins/base64-to-gallery/index.ts @@ -1,5 +1,15 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; + +export interface Base64ToGalleryOptions { + /** Saved file name prefix */ + prefix: string; + /** + * On Android runs Media Scanner after file creation. + * On iOS if true the file will be added to camera roll, otherwise will be saved to a library folder. + */ + mediaScanner: boolean; +} /** * @name Base64 To Gallery @@ -19,6 +29,8 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; * err => console.log('Error saving image to gallery ', err) * ); * ``` + * @interfaces + * Base64ToGalleryOptions */ @Plugin({ pluginName: 'Base64ToGallery', @@ -29,19 +41,20 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class Base64ToGallery extends IonicNativePlugin { - /** * Converts a base64 string to an image file in the device gallery * @param {string} data The actual base64 string that you want to save - * @param {any} [options] An object with properties: prefix: string, mediaScanner: boolean. Prefix will be prepended to the filename. If true, mediaScanner runs Media Scanner on Android and saves to Camera Roll on iOS; if false, saves to Library folder on iOS. + * @param {any} [options] An object with properties * @returns {Promise} returns a promise that resolves when the image is saved. */ @Cordova({ successIndex: 2, errorIndex: 3 }) - base64ToGallery(data: string, options?: { prefix?: string; mediaScanner?: boolean }): Promise { + base64ToGallery( + data: string, + options?: Base64ToGalleryOptions + ): Promise { return; } - } diff --git a/src/@ionic-native/plugins/battery-status/index.ts b/src/@ionic-native/plugins/battery-status/index.ts index 339503b6..d096bdad 100644 --- a/src/@ionic-native/plugins/battery-status/index.ts +++ b/src/@ionic-native/plugins/battery-status/index.ts @@ -1,9 +1,8 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; export interface BatteryStatusResponse { - /** * The battery charge percentage */ @@ -13,7 +12,6 @@ export interface BatteryStatusResponse { * A boolean that indicates whether the device is plugged in */ isPlugged: boolean; - } /** @@ -31,11 +29,9 @@ export interface BatteryStatusResponse { * * * // watch change in battery status - * let subscription = this.batteryStatus.onChange().subscribe( - * (status: BatteryStatusResponse) => { + * const subscription = this.batteryStatus.onChange().subscribe(status => { * console.log(status.level, status.isPlugged); - * } - * ); + * }); * * // stop watch * subscription.unsubscribe(); @@ -49,11 +45,10 @@ export interface BatteryStatusResponse { plugin: 'cordova-plugin-battery-status', pluginRef: 'navigator.battery', repo: 'https://github.com/apache/cordova-plugin-battery-status', - platforms: ['Amazon Fire OS', 'Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'Tizen', 'Ubuntu', 'Windows'] + platforms: ['iOS', 'Android', 'Windows', 'Browser'] }) @Injectable() export class BatteryStatus extends IonicNativePlugin { - /** * Watch the change in battery level * @returns {Observable} Returns an observable that pushes a status object @@ -62,7 +57,9 @@ export class BatteryStatus extends IonicNativePlugin { eventObservable: true, event: 'batterystatus' }) - onChange(): Observable { return; } + onChange(): Observable { + return; + } /** * Watch when the battery level goes low @@ -72,7 +69,9 @@ export class BatteryStatus extends IonicNativePlugin { eventObservable: true, event: 'batterylow' }) - onLow(): Observable { return; } + onLow(): Observable { + return; + } /** * Watch when the battery level goes to critial @@ -82,6 +81,7 @@ export class BatteryStatus extends IonicNativePlugin { eventObservable: true, event: 'batterycritical' }) - onCritical(): Observable { return; } - + onCritical(): Observable { + return; + } } diff --git a/src/@ionic-native/plugins/ble/index.ts b/src/@ionic-native/plugins/ble/index.ts index db7a25b6..3deff7a1 100644 --- a/src/@ionic-native/plugins/ble/index.ts +++ b/src/@ionic-native/plugins/ble/index.ts @@ -1,7 +1,12 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; +export interface BLEScanOptions { + /** true if duplicate devices should be reported, false (default) if devices should only be reported once. */ + reportDuplicates?: boolean; +} + /** * @name BLE * @description @@ -167,6 +172,8 @@ import { Observable } from 'rxjs/Observable'; * * UUIDs are always strings and not numbers. Some 16-bit UUIDs, such as '2220' look like integers, but they're not. (The integer 2220 is 0x8AC in hex.) This isn't a problem with 128 bit UUIDs since they look like strings 82b9e6e1-593a-456f-be9b-9215160ebcac. All 16-bit UUIDs should also be passed to methods as strings. * + * @interfaces + * BLEScanOptions */ @Plugin({ pluginName: 'BLE', @@ -177,7 +184,6 @@ import { Observable } from 'rxjs/Observable'; }) @Injectable() export class BLE extends IonicNativePlugin { - /** * Scan and discover BLE peripherals for the specified amount of time. * @@ -194,7 +200,9 @@ export class BLE extends IonicNativePlugin { @Cordova({ observable: true }) - scan(services: string[], seconds: number): Observable { return; } + scan(services: string[], seconds: number): Observable { + return; + } /** * Scan and discover BLE peripherals until `stopScan` is called. @@ -217,7 +225,9 @@ export class BLE extends IonicNativePlugin { clearFunction: 'stopScan', clearWithArgs: false }) - startScan(services: string[]): Observable { return; } + startScan(services: string[]): Observable { + return; + } /** * Scans for BLE devices. This function operates similarly to the `startScan` function, but allows you to specify extra options (like allowing duplicate device reports). @@ -230,7 +240,12 @@ export class BLE extends IonicNativePlugin { clearFunction: 'stopScan', clearWithArgs: false }) - startScanWithOptions(services: string[], options: { reportDuplicates?: boolean } | any): Observable { return; } + startScanWithOptions( + services: string[], + options: BLEScanOptions + ): Observable { + return; + } /** * Stop a scan started by `startScan`. @@ -247,7 +262,9 @@ export class BLE extends IonicNativePlugin { * @return returns a Promise. */ @Cordova() - stopScan(): Promise { return; } + stopScan(): Promise { + return; + } /** * Connect to a peripheral. @@ -268,7 +285,9 @@ export class BLE extends IonicNativePlugin { clearFunction: 'disconnect', clearWithArgs: true }) - connect(deviceId: string): Observable { return; } + connect(deviceId: string): Observable { + return; + } /** * Disconnect from a peripheral. @@ -282,7 +301,9 @@ export class BLE extends IonicNativePlugin { * @return Returns a Promise */ @Cordova() - disconnect(deviceId: string): Promise { return; } + disconnect(deviceId: string): Promise { + return; + } /** * Read the value of a characteristic. @@ -297,7 +318,9 @@ export class BLE extends IonicNativePlugin { deviceId: string, serviceUUID: string, characteristicUUID: string - ): Promise { return; }; + ): Promise { + return; + } /** * Write the value of a characteristic. @@ -333,7 +356,9 @@ export class BLE extends IonicNativePlugin { serviceUUID: string, characteristicUUID: string, value: ArrayBuffer - ): Promise { return; } + ): Promise { + return; + } /** * Write the value of a characteristic without waiting for confirmation from the peripheral. @@ -350,7 +375,9 @@ export class BLE extends IonicNativePlugin { serviceUUID: string, characteristicUUID: string, value: ArrayBuffer - ): Promise { return; } + ): Promise { + return; + } /** * Register to be notified when the value of a characteristic changes. @@ -376,7 +403,9 @@ export class BLE extends IonicNativePlugin { deviceId: string, serviceUUID: string, characteristicUUID: string - ): Observable { return; } + ): Observable { + return; + } /** * Stop being notified when the value of a characteristic changes. @@ -391,7 +420,9 @@ export class BLE extends IonicNativePlugin { deviceId: string, serviceUUID: string, characteristicUUID: string - ): Promise { return; } + ): Promise { + return; + } /** * Report the connection status. @@ -407,7 +438,9 @@ export class BLE extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - isConnected(deviceId: string): Promise { return; } + isConnected(deviceId: string): Promise { + return; + } /** * Report if bluetooth is enabled. @@ -415,7 +448,40 @@ export class BLE extends IonicNativePlugin { * @returns {Promise} Returns a Promise that resolves if Bluetooth is enabled, and rejects if disabled. */ @Cordova() - isEnabled(): Promise { return; } + isEnabled(): Promise { + return; + } + + /** + * Register to be notified when Bluetooth state changes on the device. + * + * @usage + * ``` + * BLE.startStateNotifications().subscribe(state => { + * console.log("Bluetooth is " + state); + * }); + * ``` + * + * @return Returns an Observable that notifies when the Bluetooth is enabled or disabled on the device. + */ + @Cordova({ + observable: true, + clearFunction: 'stopStateNotifications', + clearWithArgs: false + }) + startStateNotifications(): Observable { + return; + } + + /** + * Stop state notifications. + * + * @returns {Promise} + */ + @Cordova() + stopStateNotifications(): Promise { + return; + } /** * Open System Bluetooth settings (Android only). @@ -423,7 +489,9 @@ export class BLE extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - showBluetoothSettings(): Promise { return; } + showBluetoothSettings(): Promise { + return; + } /** * Enable Bluetooth on the device (Android only). @@ -431,7 +499,9 @@ export class BLE extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - enable(): Promise { return; } + enable(): Promise { + return; + } /** * Read the RSSI value on the device connection. @@ -441,7 +511,7 @@ export class BLE extends IonicNativePlugin { *@returns {Promise} */ @Cordova() - readRSSI( - deviceId: string, - ): Promise { return; } + readRSSI(deviceId: string): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/blinkup/index.ts b/src/@ionic-native/plugins/blinkup/index.ts new file mode 100644 index 00000000..b02d7154 --- /dev/null +++ b/src/@ionic-native/plugins/blinkup/index.ts @@ -0,0 +1,114 @@ +import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; +import { Observable } from 'rxjs/Observable'; +import { Injectable } from '@angular/core'; + +/** + * Interface of a blink up options. + */ +export interface BlinkUpOptions { + apiKey: string; + developmentPlanId?: string; + isInDevelopment?: boolean; + timeoutMs?: number; +} + +/** + * Interface of a blink up wifi options. + */ +export interface BlinkUpWifiOptions { + apiKey: string; + timeoutMs?: number; + ssid: string; + password: string; +} + +/** + * Interface of a blink up wps options. + */ +export interface BlinkUpWPSOptions { + apiKey: string; + timeoutMs?: number; + wpsPin: string; +} + +/** + * @name BlinkUp + * @description + * Electric Imp BlinkUp ionic plugin. + * + * @usage + * ```typescript + * import { BlinkUp } from '@ionic-native/blinkup'; + * + * const options = { + * apiKey: 'API_KEY', + * timeoutMs: 60000, + * ssid: 'MY_SSID', + * password: 'MY_PASSWORD' + * } + * BlinkUp.flashWifiBlinkUp(options).subscribe( + * (result) => console.log('Done'), + * (error) => console.log(error) + * ) + * ``` + */ +@Plugin({ + pluginName: 'BlinkUp', + plugin: 'cordova-plugin-blinkup', + pluginRef: 'blinkup', + repo: 'https://github.com/SensorShare/cordova-plugin-blinkup', + platforms: ['Android', 'iOS'] +}) +@Injectable() +export class BlinkUp extends IonicNativePlugin { + /** + * startBlinkUp - starts the blinkup process + * @param {module:blinkup.BlinkUpOptions} options BlinkUp Options + * @return {Observable} Returns an Observable + */ + @Cordova({ + callbackOrder: 'reverse', + observable: true + }) + startBlinkUp(options: BlinkUpOptions): Observable { return; } + + /** + * flashWifiBlinkUp - invokes the flash wifi process + * @param {module:blinkup.BlinkUpWifiOptions} options BlinkUp Wifi Options + * @return {Observable} Returns an Observable + */ + @Cordova({ + callbackOrder: 'reverse', + observable: true + }) + flashWifiBlinkUp(options: BlinkUpWifiOptions): Observable { return; } + + /** + * flashWPSBlinkUp - invokes the flash wps process + * @param {module:blinkup.BlinkUpWPSOptions} options BlinkUp WPS Options + * @return {Observable} Returns an Observable + */ + @Cordova({ + callbackOrder: 'reverse', + observable: true + }) + flashWPSBlinkUp(options: BlinkUpWPSOptions): Observable { return; } + + /** + * abortBlinkUp - abort blinkup process + * @return {Observable} Returns an Observable + */ + @Cordova({ + observable: true + }) + abortBlinkUp(): Observable { return; } + + /** + * clearBlinkUpData - clear wifi data + * @return {Observable} Returns an Observable + */ + @Cordova({ + observable: true + }) + clearBlinkUpData(): Observable { return; } +} diff --git a/src/@ionic-native/plugins/braintree/index.ts b/src/@ionic-native/plugins/braintree/index.ts new file mode 100644 index 00000000..dd805ff9 --- /dev/null +++ b/src/@ionic-native/plugins/braintree/index.ts @@ -0,0 +1,250 @@ +import { Injectable } from '@angular/core'; +import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; + +/** + * Options for the setupApplePay method. + */ +export interface ApplePayOptions { + /** + * Apple Merchant ID - can be obtained from the Apple Developer Portal. + */ + merchantId: string; + + /** + * The currency in which to receive payment. + * This is a 3 letter currency code (ISO-4217) - e.g. "GBP", "USD", "MXN", etc. + */ + currency: string; + + /** + * The locale in which payment is accepted. + * This is a 2 letter country code (ISO-3166-1) - e.g. "GB", "US", "MX" + */ + country: string; +} + +/** + * Options for the presentDropInPaymentUI method. + */ +export interface PaymentUIOptions { + /** + * The amount of the transaction to show in the drop-in UI on the + * summary row as well as the call-to-action button, as a string. + * If not provided, this value will default to "0.00", e.g. free. + * Unless you are simply capturing authorizations, you probably + * want to fill this value in! + */ + amount?: string; + + /** + * The description of the transaction to show in the drop-in UI on the summary row. + * Defaults to empty string. + */ + primaryDescription?: string; +} + +/** + * Successful callback result for the presentDropInPaymentUI method. + */ +export interface PaymentUIResult { + /** + * Indicates if the user used the cancel button to close the dialog without + * completing the payment. + */ + userCancelled: boolean; + + /** + * The nonce returned for the payment transaction (if a payment was completed). + */ + nonce: string; + + /** + * The payment type (if a payment was completed) (credit card, check, paypal, etc). + */ + type: string; + + /** + * A description of the payment method (if a payment was completed). + */ + localizedDescription: string; + + /** + * Information about the credit card used to complete a payment (if a credit card was used). + */ + card: { + /** + * The last two digits of the credit card used. + */ + lastTwo: string; + + /** + * An enumerated value used to indicate the type of credit card used. + * + * Can be one of the following values: + * + * BTCardNetworkUnknown + * BTCardNetworkAMEX + * BTCardNetworkDinersClub + * BTCardNetworkDiscover + * BTCardNetworkMasterCard + * BTCardNetworkVisa + * BTCardNetworkJCB + * BTCardNetworkLaser + * BTCardNetworkMaestro + * BTCardNetworkUnionPay + * BTCardNetworkSolo + * BTCardNetworkSwitch + * BTCardNetworkUKMaestro + */ + network: string; + }; + + /** + * Information about the PayPal account used to complete a payment (if a PayPal account was used). + */ + payPalAccount: { + email: string; + firstName: string; + lastName: string; + phone: string; + billingAddress: string; + shippingAddress: string; + clientMetadataId: string; + payerId: string; + }; + + /** + * Information about the Apple Pay card used to complete a payment (if Apple Pay was used). + */ + applePaycard: { + }; + + /** + * Information about 3D Secure card used to complete a payment (if 3D Secure was used). + */ + threeDSecureCard: { + liabilityShifted: boolean; + liabilityShiftPossible: boolean; + }; + + /** + * Information about Venmo account used to complete a payment (if a Venmo account was used). + */ + venmoAccount: { + username: string; + }; +} + +/** + * @name Braintree + * @description + * This plugin enables the use of the Braintree Drop-In Payments UI in your Ionic applications on Android and iOS, using the native Drop-In UI for each platform (not the Javascript SDK). + * + * Ionic Native utilizes [a maintaned fork](https://github.com/taracque/cordova-plugin-braintree) of the original `cordova-plugin-braintree` + * + * For information on how to use Apple Pay with this plugin, please refer to the [plugin documentation](https://github.com/Taracque/cordova-plugin-braintree#apple-pay-ios-only) + * + * **NOTE**: This is not a complete payments solution. All of the Braintree client-side UIs simply generate a payment nonce that must then be processed by your server to complete the payment. + * See the [Braintree Node server documentation](https://developers.braintreepayments.com/start/hello-server/node) for details and a [sample Express server](https://github.com/braintree/braintree_express_example) that implements the required functionality. + * + * @usage + * ```typescript + * import { Braintree, ApplePayOptions, PaymentUIOptions } from '@ionic-native/braintree'; + * + * constructor(private braintree: Braintree) { } + * + * ... + * + * // Your Braintree `Tokenization Key` from the Braintree dashboard. + * // Alternatively you can also generate this token server-side + * // using a client ID in order to allow users to use stored payment methods. + * // See the [Braintree Client Token documentation](https://developers.braintreepayments.com/reference/request/client-token/generate/node#customer_id) for details. + * const BRAINTREE_TOKEN = ''; + * + * // NOTE: Do not provide this unless you have configured your Apple Developer account + * // as well as your Braintree merchant account, otherwise the Braintree module will fail. + * const appleOptions: ApplePayOptions = { + * merchantId: '', + * currency: 'USD', + * country: 'US' + * }; + * + * const paymentOptions: PaymentUIOptions = { + * amount: '14.99', + * primaryDescription: 'Your product or service (per /item, /month, /week, etc)', + * }; + * + * this.braintree.initialize(BRAINTREE_TOKEN) + * .then(() => this.braintree.setupApplePay(appleOptions)) + * .then(() => this.braintree.presentDropInPaymentUI(paymentOptions)) + * .then((result: PaymentUIResult) => { + * if (result.userCancelled) { + * console.log("User cancelled payment dialog."); + * } else { + * console.log("User successfully completed payment!"); + * console.log("Payment Nonce: " + result.nonce); + * console.log("Payment Result.", result); + * } + * }) + * .catch((error: string) => console.error(error)); + * + * ``` + * + * @interfaces + * ApplePayOptions + * PaymentUIOptions + * PaymentUIResult + */ +@Plugin({ + pluginName: 'Braintree', + plugin: 'cordova-plugin-braintree', + pluginRef: 'BraintreePlugin', + repo: 'https://github.com/taracque/cordova-plugin-braintree', + platforms: ['Android', 'iOS'], + install: 'ionic cordova plugin add https://github.com/taracque/cordova-plugin-braintree', + installVariables: [], +}) +@Injectable() +export class Braintree extends IonicNativePlugin { + + /** + * Used to initialize the Braintree client. This function must be called before other methods can be used. + * As the initialize code is async, be sure you call all Braintree related methods after the initialize promise has resolved. + * + * @param token {string} The client token or tokenization key to use with the Braintree client. + * @return {Promise} Returns a promise that resolves with undefined on successful initialization, or rejects with a string message describing the failure. + */ + @Cordova({ + platforms: ['Android', 'iOS'], + }) + initialize(token: string): Promise { return; } + + /** + * Used to configure Apple Pay on iOS. + * In order for Apple Pay payments to appear on the Drop-In Payments UI, you must initialize the Apple Pay framework before using the Drop-In Payments UI. + * + * Do not turn on Apple Pay in Braintree if you don't have Apple Pay entitlements - the Braintree module will reject the attempt to set up Apple Pay. + * Please refer to the [Braintree Merchant Documentation](https://developers.braintreepayments.com/guides/apple-pay/configuration/ios/v4#apple-pay-certificate-request-and-provisioning) to set up a Merchant Account. + * + * Calling this function on Android is a `noop` so you can call it without having to check which cordova platform you are on! :D + * + * @param options {ApplePayOptions} The options used to configure Apple Pay. + * @return {Promise} Returns a promise that resolves with undefined on successful initialization, or rejects with a string message describing the failure. + */ + @Cordova({ + platforms: ['iOS'], + }) + setupApplePay(options: ApplePayOptions): Promise { return; } + + /** + * Shows Braintree's Drop-In Payments UI. + * Apple Pay is only shown in the Drop In UI if you have previously called `setupApplePay`. + * + * @param options {PaymentUIOptions} An optional argument used to configure the payment UI; see type definition for parameters. If not provided, the UI will show "0.00" as the price and an empty description. + * @return {Promise} Returns a promise that resolves with a PaymentUIResult object on successful payment (or the user cancels), or rejects with a string message describing the failure. + */ + @Cordova({ + platforms: ['Android', 'iOS'], + }) + presentDropInPaymentUI(options?: PaymentUIOptions): Promise { return; } +} diff --git a/src/@ionic-native/plugins/brightness/index.ts b/src/@ionic-native/plugins/brightness/index.ts index d6a4aa67..54120ab9 100644 --- a/src/@ionic-native/plugins/brightness/index.ts +++ b/src/@ionic-native/plugins/brightness/index.ts @@ -1,6 +1,5 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; - +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; /** * @name Brightness @@ -17,7 +16,7 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; * * ... * - * let brightnessValue: number = 0.8; + * let brightnessValue = 0.8; * this.brightness.setBrightness(brightnessValue); * ``` * @@ -31,15 +30,16 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class Brightness extends IonicNativePlugin { - /** * Sets the brightness of the display. * - * @param {value} Floating number between 0 and 1 in which case 1 means 100% brightness and 0 means 0% brightness. + * @param value {number} Floating number between 0 and 1 in which case 1 means 100% brightness and 0 means 0% brightness. * @returns {Promise} Returns a Promise that resolves if setting brightness was successful. */ @Cordova() - setBrightness(value: number): Promise { return; } + setBrightness(value: number): Promise { + return; + } /** * Reads the current brightness of the device display. @@ -48,12 +48,13 @@ export class Brightness extends IonicNativePlugin { * brightness value of the device display (floating number between 0 and 1). */ @Cordova() - getBrightness(): Promise { return; } + getBrightness(): Promise { + return; + } /** - * Keeps the screen on. Prevents the device from setting the screen to sleep. - */ + * Keeps the screen on. Prevents the device from setting the screen to sleep. + */ @Cordova() - setKeepScreenOn(value: boolean): void { } - + setKeepScreenOn(value: boolean): void {} } diff --git a/src/@ionic-native/plugins/broadcaster/index.ts b/src/@ionic-native/plugins/broadcaster/index.ts index 8aabbb90..eb291aae 100644 --- a/src/@ionic-native/plugins/broadcaster/index.ts +++ b/src/@ionic-native/plugins/broadcaster/index.ts @@ -28,7 +28,7 @@ import { Observable } from 'rxjs/Observable'; plugin: 'cordova-plugin-broadcaster', pluginRef: 'broadcaster', repo: 'https://github.com/bsorrentino/cordova-broadcaster', - platforms: ['Android', 'iOS'] + platforms: ['Android', 'iOS', 'Browser'] }) @Injectable() export class Broadcaster extends IonicNativePlugin { diff --git a/src/@ionic-native/plugins/calendar/index.ts b/src/@ionic-native/plugins/calendar/index.ts index 329df366..5854ce0e 100644 --- a/src/@ionic-native/plugins/calendar/index.ts +++ b/src/@ionic-native/plugins/calendar/index.ts @@ -1,8 +1,7 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; export interface CalendarOptions { - /** * Id */ @@ -47,7 +46,14 @@ export interface CalendarOptions { * URL */ url?: string; +} +export interface NameOrOptions { + /** Calendar name */ + calendarName?: string; + + /** Calendar color as a HEX string */ + calendarColor?: string; } /** @@ -72,6 +78,7 @@ export interface CalendarOptions { * ``` * @interfaces * CalendarOptions + * NameOrOptions */ @Plugin({ pluginName: 'Calendar', @@ -82,7 +89,6 @@ export interface CalendarOptions { }) @Injectable() export class Calendar extends IonicNativePlugin { - /** * This function checks if we have permission to read/write from/to the calendar. * The promise will resolve with `true` when: @@ -95,51 +101,65 @@ export class Calendar extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - hasReadWritePermission(): Promise { return; } + hasReadWritePermission(): Promise { + return; + } /** * Check if we have read permission * @returns {Promise} */ @Cordova() - hasReadPermission(): Promise { return; } + hasReadPermission(): Promise { + return; + } /** * Check if we have write permission * @returns {Promise} */ @Cordova() - hasWritePermission(): Promise { return; } + hasWritePermission(): Promise { + return; + } /** * Request write permission * @returns {Promise} */ @Cordova() - requestWritePermission(): Promise { return; } + requestWritePermission(): Promise { + return; + } /** * Request read permission * @returns {Promise} */ @Cordova() - requestReadPermission(): Promise { return; } + requestReadPermission(): Promise { + return; + } /** * Requests read/write permissions * @returns {Promise} */ @Cordova() - requestReadWritePermission(): Promise { return; } + requestReadWritePermission(): Promise { + return; + } /** * Create a calendar. (iOS only) * - * @param {string | Object} nameOrOptions either a string name or a options object. If string, provide the calendar name. IF an object, provide a calendar name as a string and a calendar color in hex format as a string + * @param {string | CalendarOptions} nameOrOptions either a string name or a options object. If string, provide the calendar name. IF an object, provide a calendar name as a string and a calendar color in hex format as a string * @returns {Promise} Returns a Promise */ @Cordova() - createCalendar(nameOrOptions: string | any): Promise { return; } + createCalendar(nameOrOptions: string | CalendarOptions): Promise { + return; + } /** * Delete a calendar. (iOS only) @@ -147,7 +167,9 @@ export class Calendar extends IonicNativePlugin { * @returns {Promise} Returns a Promise */ @Cordova() - deleteCalendar(name: string): Promise { return; } + deleteCalendar(name: string): Promise { + return; + } /** * Returns the default calendar options. @@ -157,7 +179,21 @@ export class Calendar extends IonicNativePlugin { @Cordova({ sync: true }) - getCalendarOptions(): CalendarOptions { return; } + getCalendarOptions(): CalendarOptions { + return; + } + + /** + * Returns options for a custom calender with sepcific colord + * + * @return {NameOrOptions} Returns an object with the default options + */ + @Cordova({ + sync: true + }) + getCreateCalendarOptions(): NameOrOptions { + return; + } /** * Silently create an event. @@ -175,7 +211,9 @@ export class Calendar extends IonicNativePlugin { notes?: string, startDate?: Date, endDate?: Date - ): Promise { return; } + ): Promise { + return; + } /** * Silently create an event with additional options. @@ -196,7 +234,9 @@ export class Calendar extends IonicNativePlugin { startDate?: Date, endDate?: Date, options?: CalendarOptions - ): Promise { return; } + ): Promise { + return; + } /** * Interactively create an event. @@ -215,7 +255,9 @@ export class Calendar extends IonicNativePlugin { notes?: string, startDate?: Date, endDate?: Date - ): Promise { return; } + ): Promise { + return; + } /** * Interactively create an event with additional options. @@ -236,7 +278,9 @@ export class Calendar extends IonicNativePlugin { startDate?: Date, endDate?: Date, options?: CalendarOptions - ): Promise { return; } + ): Promise { + return; + } /** * Find an event. @@ -255,7 +299,9 @@ export class Calendar extends IonicNativePlugin { notes?: string, startDate?: Date, endDate?: Date - ): Promise { return; } + ): Promise { + return; + } /** * Find an event with additional options. @@ -275,7 +321,9 @@ export class Calendar extends IonicNativePlugin { startDate?: Date, endDate?: Date, options?: CalendarOptions - ): Promise { return; } + ): Promise { + return; + } /** * Find a list of events within the specified date range. (Android only) @@ -287,14 +335,18 @@ export class Calendar extends IonicNativePlugin { @Cordova({ platforms: ['Android'] }) - listEventsInRange(startDate: Date, endDate: Date): Promise { return; } + listEventsInRange(startDate: Date, endDate: Date): Promise { + return; + } /** * Get a list of all calendars. * @returns {Promise} A Promise that resolves with the list of calendars, or rejects with an error. */ @Cordova() - listCalendars(): Promise { return; } + listCalendars(): Promise { + return; + } /** * Get a list of all future events in the specified calendar. (iOS only) @@ -303,7 +355,9 @@ export class Calendar extends IonicNativePlugin { @Cordova({ platforms: ['iOS'] }) - findAllEventsInNamedCalendar(calendarName: string): Promise { return; } + findAllEventsInNamedCalendar(calendarName: string): Promise { + return; + } /** * Modify an event. (iOS only) @@ -334,7 +388,9 @@ export class Calendar extends IonicNativePlugin { newNotes?: string, newStartDate?: Date, newEndDate?: Date - ): Promise { return; } + ): Promise { + return; + } /** * Modify an event with additional options. (iOS only) @@ -369,7 +425,9 @@ export class Calendar extends IonicNativePlugin { newEndDate?: Date, filterOptions?: CalendarOptions, newOptions?: CalendarOptions - ): Promise { return; } + ): Promise { + return; + } /** * Delete an event. @@ -388,7 +446,9 @@ export class Calendar extends IonicNativePlugin { notes?: string, startDate?: Date, endDate?: Date - ): Promise { return; } + ): Promise { + return; + } /** * Delete an event from the specified Calendar. (iOS only) @@ -411,7 +471,9 @@ export class Calendar extends IonicNativePlugin { startDate?: Date, endDate?: Date, calendarName?: string - ): Promise { return; } + ): Promise { + return; + } /** * Open the calendar at the specified date. @@ -419,6 +481,7 @@ export class Calendar extends IonicNativePlugin { * @return {Promise} Promise returns a promise */ @Cordova() - openCalendar(date: Date): Promise { return; } - + openCalendar(date: Date): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/call-log/index.ts b/src/@ionic-native/plugins/call-log/index.ts new file mode 100644 index 00000000..43608abb --- /dev/null +++ b/src/@ionic-native/plugins/call-log/index.ts @@ -0,0 +1,67 @@ +import { Injectable } from '@angular/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; + +export interface CallLogObject { + name: string; + value: string|Array; + operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'like'; +} + +/** + * @name Call Log + * @description + * This plugin access the call history on a device and that can be filtered + * + * @usage + * ```typescript + * import { CallLog } from '@ionic-native/call-log'; + * + * + * constructor(private callLog: CallLog) { } + * + * ```` + * @interfaces + * CallLogObject + * + */ +@Plugin({ + pluginName: 'CallLog', + plugin: 'cordova-plugin-calllog', + pluginRef: 'plugins.callLog', + repo: 'https://github.com/creacore-team/cordova-plugin-calllog', + platforms: ['Android'] +}) +@Injectable() +export class CallLog extends IonicNativePlugin { + /** + * This function return the call logs + * @param filters {CallLogObject[]} array of object to filter the query + * @return {Promise} + */ + @Cordova() + getCallLog(filters: CallLogObject[]): Promise { + return; + } + + /** + * Check permission + * @returns {Promise} + */ + @Cordova({ + platforms: ['Android'] + }) + hasReadPermission(): Promise { + return; + } + + /** + * Request permission + * @returns {Promise} + */ + @Cordova({ + platforms: ['Android'] + }) + requestReadPermission(): Promise { + return; + } +} diff --git a/src/@ionic-native/plugins/call-number/index.ts b/src/@ionic-native/plugins/call-number/index.ts index 92294819..77a5ddd7 100644 --- a/src/@ionic-native/plugins/call-number/index.ts +++ b/src/@ionic-native/plugins/call-number/index.ts @@ -1,5 +1,6 @@ import { Injectable } from '@angular/core'; -import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; + /** * @name Call Number * @description @@ -16,8 +17,8 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; * * * this.callNumber.callNumber("18001010101", true) - * .then(() => console.log('Launched dialer!')) - * .catch(() => console.log('Error launching dialer')); + * .then(res => console.log('Launched dialer!', res)) + * .catch(err => console.log('Error launching dialer', err)); * * ``` */ @@ -30,7 +31,6 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class CallNumber extends IonicNativePlugin { - /** * Calls a phone number * @param numberToCall {string} The phone number to call as a string @@ -44,4 +44,14 @@ export class CallNumber extends IonicNativePlugin { return; } + /** + * Check if call feature is available + * @return {Promise} + */ + @Cordova({ + callbackOrder: 'reverse' + }) + isCallSupported(): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/camera-preview/index.ts b/src/@ionic-native/plugins/camera-preview/index.ts index 0700fbe9..de541501 100644 --- a/src/@ionic-native/plugins/camera-preview/index.ts +++ b/src/@ionic-native/plugins/camera-preview/index.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; export interface CameraPreviewDimensions { /** The width of the camera preview, default to window.screen.width */ @@ -36,6 +36,9 @@ export interface CameraPreviewOptions { /** Alpha channel of the preview box, float, [0,1], default 1 */ alpha?: number; + + /** Tap to set specific focus point. Note, this assumes the camera is full-screen. default false */ + tapToFocus?: boolean; } export interface CameraPreviewPictureOptions { @@ -128,12 +131,12 @@ export interface CameraPreviewPictureOptions { pluginName: 'CameraPreview', plugin: 'cordova-plugin-camera-preview', pluginRef: 'CameraPreview', - repo: 'https://github.com/cordova-plugin-camera-preview/cordova-plugin-camera-preview', + repo: + 'https://github.com/cordova-plugin-camera-preview/cordova-plugin-camera-preview', platforms: ['Android', 'iOS'] }) @Injectable() export class CameraPreview extends IonicNativePlugin { - FOCUS_MODE = { FIXED: 'fixed', AUTO: 'auto', @@ -186,35 +189,45 @@ export class CameraPreview extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - startCamera(options: CameraPreviewOptions): Promise { return; } + startCamera(options: CameraPreviewOptions): Promise { + return; + } /** * Stops the camera preview instance. (iOS & Android) * @return {Promise} */ @Cordova() - stopCamera(): Promise { return; } + stopCamera(): Promise { + return; + } /** * Switch from the rear camera and front camera, if available. * @return {Promise} */ @Cordova() - switchCamera(): Promise { return; } + switchCamera(): Promise { + return; + } /** * Hide the camera preview box. * @return {Promise} */ @Cordova() - hide(): Promise { return; } + hide(): Promise { + return; + } /** * Show the camera preview box. * @return {Promise} */ @Cordova() - show(): Promise { return; } + show(): Promise { + return; + } /** * Take the picture (base64) @@ -225,7 +238,9 @@ export class CameraPreview extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - takePicture(options?: CameraPreviewPictureOptions): Promise { return; } + takePicture(options?: CameraPreviewPictureOptions): Promise { + return; + } /** * @@ -238,7 +253,9 @@ export class CameraPreview extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - setColorEffect(effect: string): Promise { return; } + setColorEffect(effect: string): Promise { + return; + } /** * Set the zoom (Android) @@ -249,21 +266,27 @@ export class CameraPreview extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - setZoom(zoom?: number): Promise { return; } + setZoom(zoom?: number): Promise { + return; + } /** - * Get the maximum zoom (Android) - * @return {Promise} - */ + * Get the maximum zoom (Android) + * @return {Promise} + */ @Cordova() - getMaxZoom(): Promise { return; } + getMaxZoom(): Promise { + return; + } /** * Get current zoom (Android) * @return {Promise} */ @Cordova() - getZoom(): Promise { return; } + getZoom(): Promise { + return; + } /** * Set the preview Size @@ -274,14 +297,18 @@ export class CameraPreview extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - setPreviewSize(dimensions?: CameraPreviewDimensions): Promise { return; } + setPreviewSize(dimensions?: CameraPreviewDimensions): Promise { + return; + } /** * Get focus mode * @return {Promise} */ @Cordova() - getFocusMode(): Promise { return; } + getFocusMode(): Promise { + return; + } /** * Set the focus mode @@ -292,21 +319,27 @@ export class CameraPreview extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - setFocusMode(focusMode?: string): Promise { return; } + setFocusMode(focusMode?: string): Promise { + return; + } /** * Get supported focus modes * @return {Promise} */ @Cordova() - getSupportedFocusModes(): Promise { return; } + getSupportedFocusModes(): Promise { + return; + } /** * Get the current flash mode * @return {Promise} */ @Cordova() - getFlashMode(): Promise { return; } + getFlashMode(): Promise { + return; + } /** * Set the flashmode @@ -317,35 +350,45 @@ export class CameraPreview extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - setFlashMode(flashMode?: string): Promise { return; } + setFlashMode(flashMode?: string): Promise { + return; + } /** * Get supported flash modes * @return {Promise} */ @Cordova() - getSupportedFlashModes(): Promise { return; } + getSupportedFlashModes(): Promise { + return; + } /** * Get supported picture sizes * @return {Promise} */ @Cordova() - getSupportedPictureSizes(): Promise { return; } + getSupportedPictureSizes(): Promise { + return; + } /** * Get exposure mode * @return {Promise} */ @Cordova() - getExposureMode(): Promise { return; } + getExposureMode(): Promise { + return; + } /** * Get exposure modes * @return {Promise} */ @Cordova() - getExposureModes(): Promise { return; } + getExposureModes(): Promise { + return; + } /** * Set exposure mode @@ -356,14 +399,18 @@ export class CameraPreview extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - setExposureMode(lock?: string): Promise { return; } + setExposureMode(lock?: string): Promise { + return; + } /** * Get exposure compensation (Android) * @return {Promise} */ @Cordova() - getExposureCompensation(): Promise { return; } + getExposureCompensation(): Promise { + return; + } /** * Set exposure compensation (Android) @@ -374,14 +421,18 @@ export class CameraPreview extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - setExposureCompensation(exposureCompensation?: number): Promise { return; } + setExposureCompensation(exposureCompensation?: number): Promise { + return; + } /** * Get exposure compensation range (Android) * @return {Promise} */ @Cordova() - getExposureCompensationRange(): Promise { return; } + getExposureCompensationRange(): Promise { + return; + } /** * Set specific focus point. Note, this assumes the camera is full-screen. @@ -390,6 +441,16 @@ export class CameraPreview extends IonicNativePlugin { * @return {Promise} */ @Cordova() - tapToFocus(xPoint: number, yPoint: number): Promise { return; } + tapToFocus(xPoint: number, yPoint: number): Promise { + return; + } + /** + * Add a listener for the back event for the preview + * @return {Promise} if backbutton pressed + */ + @Cordova() + onBackButton(): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/camera/index.ts b/src/@ionic-native/plugins/camera/index.ts index ac789d5d..5afb2021 100644 --- a/src/@ionic-native/plugins/camera/index.ts +++ b/src/@ionic-native/plugins/camera/index.ts @@ -161,7 +161,7 @@ export enum Direction { plugin: 'cordova-plugin-camera', pluginRef: 'navigator.camera', repo: 'https://github.com/apache/cordova-plugin-camera', - platforms: ['Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'Ubuntu', 'Windows', 'Windows Phone 8'] + platforms: ['Android', 'Browser', 'iOS', 'Windows'] }) @Injectable() export class Camera extends IonicNativePlugin { diff --git a/src/@ionic-native/plugins/code-push/index.ts b/src/@ionic-native/plugins/code-push/index.ts index 59b5591c..6db99ce7 100644 --- a/src/@ionic-native/plugins/code-push/index.ts +++ b/src/@ionic-native/plugins/code-push/index.ts @@ -400,7 +400,7 @@ export interface DownloadProgress { * @description * CodePush plugin for Cordova by Microsoft that supports iOS and Android. * - * For more info, please see https://github.com/ksachdeva/ionic2-code-push-example + * For more info, please see https://github.com/Dellos7/example-cordova-code-push-plugin * * @usage * ```typescript diff --git a/src/@ionic-native/plugins/contacts/index.ts b/src/@ionic-native/plugins/contacts/index.ts index f3e7f5d6..49570323 100644 --- a/src/@ionic-native/plugins/contacts/index.ts +++ b/src/@ionic-native/plugins/contacts/index.ts @@ -1,10 +1,9 @@ -import { Injectable } from '@angular/core'; import { CordovaInstance, InstanceProperty, Plugin, getPromise, InstanceCheck, checkAvailability, CordovaCheck, IonicNativePlugin } from '@ionic-native/core'; declare const window: any, navigator: any; -export type ContactFieldType = '*' | 'addresses' | 'birthday' | 'categories' | 'country' | 'department' | 'displayName' | 'emails' | 'familyName' | 'formatted' | 'givenName' | 'honorificPrefix' | 'honorificSuffix' | 'id' | 'ims' | 'locality' | 'middleName' | 'name' | 'nickname' | 'note' | 'organizations' | 'phoneNumbers' | 'photos' | 'postalCode' | 'region' | 'streetAddress' | 'title' | 'urls'; +export type ContactFieldType = '*' | 'addresses' | 'birthday' | 'categories' | 'country' | 'department' | 'displayName' | 'emails' | 'name.familyName' | 'name.formatted' | 'name.givenName' | 'name.honorificPrefix' | 'name.honorificSuffix' | 'id' | 'ims' | 'locality' | 'name.middleName' | 'name' | 'nickname' | 'note' | 'organizations' | 'phoneNumbers' | 'photos' | 'postalCode' | 'region' | 'streetAddress' | 'title' | 'urls'; export interface IContactProperties { @@ -294,9 +293,8 @@ export class ContactFindOptions implements IContactFindOptions { plugin: 'cordova-plugin-contacts', pluginRef: 'navigator.contacts', repo: 'https://github.com/apache/cordova-plugin-contacts', - platforms: ['Android', 'BlackBerry 10', 'Firefox OS', 'iOS', 'Ubuntu', 'Windows', 'Windows Phone 8'] + platforms: ['Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'Ubuntu', 'Windows', 'Windows 8', 'Windows Phone'] }) -@Injectable() export class Contacts extends IonicNativePlugin { /** diff --git a/src/@ionic-native/plugins/couchbase-lite/index.ts b/src/@ionic-native/plugins/couchbase-lite/index.ts index 75af4e3a..467a0e80 100644 --- a/src/@ionic-native/plugins/couchbase-lite/index.ts +++ b/src/@ionic-native/plugins/couchbase-lite/index.ts @@ -45,7 +45,6 @@ import { Injectable } from '@angular/core'; * return Observable.throw(error.json() || 'Couchbase Lite error'); * }) * } - * * getAllDbs() { * let url = this.getUrl(); * url = url+'_all_dbs'; @@ -56,6 +55,59 @@ import { Injectable } from '@angular/core'; * return Observable.throw(error.json() || 'Couchbase Lite error'); * }) * } + * // DOCUMENTS // + * getAllDocuments(database_name:string){ + * let url = this.getUrl(); + * // include_docs=true will include a doc inside response, it is false by default + * url = url + database_name + '/_all_docs?include_docs=true'; + * return this._http + * .get(url) + * .map(data => { this.results = data['results'] }) + * .catch((error:any) => { + * return Observable.throw(error.json() || 'Couchbase Lite error'); + * }) . + * } + * createDocument(database_name:string,document){ + * let url = this.getUrl(); + * url = url + database_name; + * return this._http + * .post(url,document) + * .map(data => { this.results = data['results'] }) + * .catch((error:any) => { + * return Observable.throw(error.json() || 'Couchbase Lite error'); + * }) . + * } + * let document = { + * _id:'You can either specify the document ID (must be string) else couchbase generates one for your doc', + * data:{name:'sandman',age:25,city:pune} + * } + * createDocument('justbe', document); + * // successful response + * { "id": "string","rev": "string","ok": true } + * updateDocument(database_name:string,document){ + * let url = this.getUrl(); + * url = url + database_name + '/' + document._id; + * return this._http + * .put(url,document) + * .map(data => { this.results = data['results'] }) + * .catch((error:any) => { + * return Observable.throw(error.json() || 'Couchbase Lite error'); + * }) . + * } + * // for updation of document your document must contain most recent rev(revision) id. + * // for each updation of document new rev id is get generated + * // successful response + * { "id": "string","rev": "string(new revision id)","ok": true } + * deleteDocument(database_name:string,document){ + * let url = this.getUrl(); + * url = url + database_name + '/' + document._id +'?rev='+doc._rev; + * return this._http + * .delete(url) + * .map(data => { this.results = data['results'] }) + * .catch((error:any) => { + * return Observable.throw(error.json() || 'Couchbase Lite error'); + * }) . + * } * * * ``` diff --git a/src/@ionic-native/plugins/crop/index.ts b/src/@ionic-native/plugins/crop/index.ts index 52c5c041..92867500 100644 --- a/src/@ionic-native/plugins/crop/index.ts +++ b/src/@ionic-native/plugins/crop/index.ts @@ -1,6 +1,12 @@ import { Injectable } from '@angular/core'; import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +export interface CropOptions { + quality?: number; + targetHeight?: number; + targetWidth?: number; +} + /** * @name Crop * @description Crops images @@ -18,6 +24,8 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; * error => console.error('Error cropping image', error) * ); * ``` + * @interfaces + * CropOptions */ @Plugin({ pluginName: 'Crop', @@ -28,7 +36,6 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class Crop extends IonicNativePlugin { - /** * Crops an image * @param pathToImage @@ -38,6 +45,7 @@ export class Crop extends IonicNativePlugin { @Cordova({ callbackOrder: 'reverse' }) - crop(pathToImage: string, options?: { quality: number }): Promise { return; } - + crop(pathToImage: string, options?: CropOptions): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/date-picker/index.ts b/src/@ionic-native/plugins/date-picker/index.ts index 5c666786..110e14f4 100644 --- a/src/@ionic-native/plugins/date-picker/index.ts +++ b/src/@ionic-native/plugins/date-picker/index.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; export interface DatePickerOptions { /** @@ -21,13 +21,13 @@ export interface DatePickerOptions { /** * Maximum date - * Default?: empty String + * Default: empty String */ maxDate?: Date | string | number; /** * Label for the dialog title. If empty, uses android default (Set date/Set time). - * Default?: empty String + * Default: empty String */ titleText?: string; @@ -116,7 +116,6 @@ export interface DatePickerOptions { * Force locale for datePicker. */ locale?: string; - } /** @@ -155,7 +154,6 @@ export interface DatePickerOptions { }) @Injectable() export class DatePicker extends IonicNativePlugin { - /** * @hidden */ @@ -176,5 +174,4 @@ export class DatePicker extends IonicNativePlugin { show(options: DatePickerOptions): Promise { return; } - } diff --git a/src/@ionic-native/plugins/db-meter/index.ts b/src/@ionic-native/plugins/db-meter/index.ts index 01e54bd8..b413617f 100644 --- a/src/@ionic-native/plugins/db-meter/index.ts +++ b/src/@ionic-native/plugins/db-meter/index.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; /** @@ -21,7 +21,7 @@ import { Observable } from 'rxjs/Observable'; * * // Check if we are listening * this.dbMeter.isListening().then( - * (isListening: boolean) => console.log(isListening) + * isListening => console.log(isListening) * ); * * // Stop listening @@ -43,7 +43,6 @@ import { Observable } from 'rxjs/Observable'; }) @Injectable() export class DBMeter extends IonicNativePlugin { - /** * Starts listening * @returns {Observable} Returns an observable. Subscribe to start listening. Unsubscribe to stop listening. @@ -52,27 +51,34 @@ export class DBMeter extends IonicNativePlugin { observable: true, clearFunction: 'stop' }) - start(): Observable { return; } + start(): Observable { + return; + } /** * Stops listening * @hidden */ @Cordova() - stop(): Promise { return; } + stop(): Promise { + return; + } /** * Check if the DB Meter is listening * @returns {Promise} Returns a promise that resolves with a boolean that tells us whether the DB meter is listening */ @Cordova() - isListening(): Promise { return; } + isListening(): Promise { + return; + } /** * Delete the DB Meter instance * @returns {Promise} Returns a promise that will resolve if the instance has been deleted, and rejects if errors occur. */ @Cordova() - delete(): Promise { return; } - + delete(): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/deeplinks/index.ts b/src/@ionic-native/plugins/deeplinks/index.ts index 0039f271..0b951916 100644 --- a/src/@ionic-native/plugins/deeplinks/index.ts +++ b/src/@ionic-native/plugins/deeplinks/index.ts @@ -23,6 +23,13 @@ export interface DeeplinkMatch { } +export interface DeeplinkOptions { + /** + * Set the matched route as root page using `navCtrl.setRoot()` method. + */ + root: boolean; +} + /** * @name Deeplinks * @description This plugin handles deeplinks on iOS and Android for both custom URL scheme links @@ -116,6 +123,8 @@ export class Deeplinks extends IonicNativePlugin { * promise result which you can then use to navigate in the app as you see fit. * * @param {Object} paths + * + * @param {DeeplinkOptions} options * * @returns {Observable} Returns an Observable that resolves each time a deeplink comes through, and * errors if a deeplink comes through that does not match a given path. @@ -123,6 +132,6 @@ export class Deeplinks extends IonicNativePlugin { @Cordova({ observable: true }) - routeWithNavController(navController: any, paths: any): Observable { return; } + routeWithNavController(navController: any, paths: any, options?: DeeplinkOptions): Observable { return; } } diff --git a/src/@ionic-native/plugins/device-accounts/index.ts b/src/@ionic-native/plugins/device-accounts/index.ts index ec345c16..903ddc38 100644 --- a/src/@ionic-native/plugins/device-accounts/index.ts +++ b/src/@ionic-native/plugins/device-accounts/index.ts @@ -1,5 +1,16 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; + +export interface AndroidAccount { + /** Account creator */ + CREATOR: AndroidAccount; + + /** Account name */ + name: string; + + /** Account type */ + type: string; +} /** * @name Device Accounts @@ -19,6 +30,8 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; * .catch(error => console.error(error)); * * ``` + * @interfaces + * AndroidAccount */ @Plugin({ pluginName: 'DeviceAccounts', @@ -29,33 +42,39 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class DeviceAccounts extends IonicNativePlugin { - /** * Gets all accounts registered on the Android Device - * @returns {Promise} + * @returns {Promise} */ @Cordova() - get(): Promise { return; } + get(): Promise { + return; + } /** * Get all accounts registered on Android device for requested type - * @returns {Promise} + * @returns {Promise} */ @Cordova() - getByType(type: string): Promise { return; } + getByType(type: string): Promise { + return; + } /** * Get all emails registered on Android device (accounts with 'com.google' type) - * @returns {Promise} + * @returns {Promise} */ @Cordova() - getEmails(): Promise { return; } + getEmails(): Promise { + return; + } /** * Get the first email registered on Android device - * @returns {Promise} + * @returns {Promise} */ @Cordova() - getEmail(): Promise { return; } - + getEmail(): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/device-feedback/index.ts b/src/@ionic-native/plugins/device-feedback/index.ts index 5246e4e6..132c523f 100644 --- a/src/@ionic-native/plugins/device-feedback/index.ts +++ b/src/@ionic-native/plugins/device-feedback/index.ts @@ -1,5 +1,14 @@ import { Injectable } from '@angular/core'; -import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; + +export interface DeviceFeedbackEnabled { + /** Haptic Feedback */ + haptic: boolean; + + /** Acoustic Feedback */ + acoustic: boolean; +} + /** * @name Device Feedback * @description @@ -19,8 +28,7 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; * * this.deviceFeedback.haptic(0); * - * this.deviceFeedback.isFeedbackEnabled() - * .then((feedback) => { + * this.deviceFeedback.isFeedbackEnabled().then(feedback => { * console.log(feedback); * // { * // acoustic: true, @@ -29,6 +37,8 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; * }); * * ``` + * @innterfaces + * DeviceFeedbackEnabled */ @Plugin({ pluginName: 'DeviceFeedback', @@ -39,25 +49,25 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class DeviceFeedback extends IonicNativePlugin { - /** * Provide sound feedback to user, nevertheless respect user's settings and current active device profile as native feedback do. */ @Cordova({ sync: true }) - acoustic(): void { } + acoustic(): void {} /** * Provide vibrate feedback to user, nevertheless respect user's tactile feedback setting as native feedback do. - * @param type {Number} Specify type of vibration feedback. 0 for long press, 1 for virtual key, or 3 for keyboard tap. + * @param type {number} Specify type of vibration feedback. 0 for long press, 1 for virtual key, or 3 for keyboard tap. */ @Cordova({ sync: true }) - haptic(type: number): void { } + haptic(type: number): void {} /** * Check if haptic and acoustic feedback is enabled by user settings. - * @returns {Promise} + * @returns {Promise} */ @Cordova() - isFeedbackEnabled(): Promise<{ haptic: boolean; acoustic: boolean; }> { return; } - + isFeedbackEnabled(): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/device-orientation/index.ts b/src/@ionic-native/plugins/device-orientation/index.ts index bbddc033..ffd4e52a 100644 --- a/src/@ionic-native/plugins/device-orientation/index.ts +++ b/src/@ionic-native/plugins/device-orientation/index.ts @@ -22,7 +22,7 @@ export interface DeviceOrientationCompassHeading { /** * The time at which this heading was determined. (DOMTimeStamp) */ - timestamp: any; + timestamp: number; } diff --git a/src/@ionic-native/plugins/device/index.ts b/src/@ionic-native/plugins/device/index.ts index 4a5caa2e..8f2b4cd6 100644 --- a/src/@ionic-native/plugins/device/index.ts +++ b/src/@ionic-native/plugins/device/index.ts @@ -24,7 +24,7 @@ declare const window: any; plugin: 'cordova-plugin-device', pluginRef: 'device', repo: 'https://github.com/apache/cordova-plugin-device', - platforms: ['Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'macOS', 'Tizen', 'Ubuntu', 'Windows', 'Windows Phone'] + platforms: ['Android', 'Browser', 'iOS', 'macOS', 'Windows'] }) @Injectable() export class Device extends IonicNativePlugin { diff --git a/src/@ionic-native/plugins/diagnostic/index.ts b/src/@ionic-native/plugins/diagnostic/index.ts index 4937ff72..e4a44766 100644 --- a/src/@ionic-native/plugins/diagnostic/index.ts +++ b/src/@ionic-native/plugins/diagnostic/index.ts @@ -125,6 +125,16 @@ export class Diagnostic extends IonicNativePlugin { POWERING_OFF: string; }; + @CordovaProperty + motionStatus: { + NOT_REQUESTED: string; + GRANTED: string; + DENIED: string; + RESTRICTED: string; + NOT_AVAILABLE: string; + NOT_DETERMINED: string; + UNKNOWN: string; + }; /** * Checks if app is able to access device location. @@ -162,7 +172,7 @@ export class Diagnostic extends IonicNativePlugin { /** * Displays the device location settings to allow user to enable location services/change location mode. */ - @Cordova({ sync: true, platforms: ['Android', 'Windows 10'] }) + @Cordova({ sync: true, platforms: ['Android', 'Windows 10', 'iOS'] }) switchToLocationSettings(): void { } /** @@ -609,7 +619,26 @@ export class Diagnostic extends IonicNativePlugin { }) registerNFCStateChangeHandler(handler: Function): void { } + /** + * Checks if the device data roaming setting is enabled. + * @returns {Promise} + */ + @Cordova({ platforms: ['Android'] }) + isDataRoamingEnabled(): Promise { return; } + /** + * Checks if the device setting for ADB(debug) is switched on. + * @returns {Promise} + */ + @Cordova({ platforms: ['Android'] }) + isADBModeEnabled(): Promise { return; } + + /** + * Checks if the device is rooted. + * @returns {Promise} + */ + @Cordova({ platforms: ['Android'] }) + isDeviceRooted(): Promise { return; } // IOS ONLY @@ -640,7 +669,7 @@ export class Diagnostic extends IonicNativePlugin { * Checks if remote (push) notifications are enabled. * @returns {Promise} */ - @Cordova({ platforms: ['iOS'] }) + @Cordova({ platforms: ['iOS', 'Android'] }) isRemoteNotificationsEnabled(): Promise { return; } /** @@ -650,6 +679,14 @@ export class Diagnostic extends IonicNativePlugin { @Cordova({ platforms: ['iOS'] }) isRegisteredForRemoteNotifications(): Promise { return; } + /** + * Returns the authorization status for the application to use Remote Notifications. + * Note: Works on iOS 10+ only (iOS 9 and below will invoke the error callback). + * @returns {Promise} + */ + @Cordova({ platforms: ['iOS'] }) + getRemoteNotificationsAuthorizationStatus(): Promise { return; } + /** * Indicates the current setting of notification types for the app in the Settings app. * Note: on iOS 8+, if "Allow Notifications" switch is OFF, all types will be returned as disabled. @@ -720,13 +757,23 @@ export class Diagnostic extends IonicNativePlugin { isMotionRequestOutcomeAvailable(): Promise { return; } /** - * Requests and checks motion authorization for the application: there is no way to independently request only or check only, so both must be done in one operation. + * Requests motion tracking authorization for the application. * - * Learn more about this method [here](https://github.com/dpa99c/cordova-diagnostic-plugin#requestandcheckmotionauthorization) + * Learn more about this method [here](https://github.com/dpa99c/cordova-diagnostic-plugin#requestmotionauthorization) * - * @return {Promise} + * @return {Promise} */ @Cordova({ platforms: ['iOS'] }) - requestAndCheckMotionAuthorization(): Promise { return; } + requestMotionAuthorization(): Promise { return; } + + /** + * Checks motion authorization status for the application. + * + * Learn more about this method [here](https://github.com/dpa99c/cordova-diagnostic-plugin#getmotionauthorizationstatus) + * + * @return {Promise} + */ + @Cordova({ platforms: ['iOS'] }) + getMotionAuthorizationStatus(): Promise { return; } } diff --git a/src/@ionic-native/plugins/dialogs/index.ts b/src/@ionic-native/plugins/dialogs/index.ts index 4c59e779..65710e89 100644 --- a/src/@ionic-native/plugins/dialogs/index.ts +++ b/src/@ionic-native/plugins/dialogs/index.ts @@ -46,7 +46,7 @@ export interface DialogsPromptCallback { plugin: 'cordova-plugin-dialogs', pluginRef: 'navigator.notification', repo: 'https://github.com/apache/cordova-plugin-dialogs', - platforms: ['Amazon Fire OS', 'Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'Tizen', 'Ubuntu', 'Windows', 'Windows Phone'] + platforms: ['Amazon Fire OS', 'Android', 'Browser', 'iOS', 'Windows'] }) @Injectable() export class Dialogs extends IonicNativePlugin { diff --git a/src/@ionic-native/plugins/dns/index.ts b/src/@ionic-native/plugins/dns/index.ts new file mode 100644 index 00000000..ece314ed --- /dev/null +++ b/src/@ionic-native/plugins/dns/index.ts @@ -0,0 +1,40 @@ +import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; +import { Injectable } from '@angular/core'; + +/** + * @name DNS + * @description A plugin for Apache Cordova that enables applications to manually resolve hostnames into an underlying network address. This is mostly useful for determining whether there is a problem with the device's DNS server configuration. + * + * @usage + * ```typescript + * import { DNS } from '@ionic-native/dns'; + * + * + * constructor(private dns: DNS) { } + * + * ... + * this.dns.resolve(hostname) + * .then( + * address => console.log('Resolved ' + hostname + ' to ' + address), + * error => console.log('Failed to resolve ' + hostname + ': ' + error) + * ); + * + * ``` + */ +@Plugin({ + pluginName: 'DNS', + plugin: 'cordova-plugin-dns', + pluginRef: 'cordova.plugins.dns', + repo: 'https://bitbucket.org/zegeba/cordova-plugin-dns', + platforms: ['Android'] +}) +@Injectable() +export class DNS extends IonicNativePlugin { + /** + * Resolve hostnames into an underlying network address. + * @param hostname + * @returns {Promise} Returns a promise that resolves with the resolution. + */ + @Cordova() + resolve(hostname: string): Promise { return; } +} diff --git a/src/@ionic-native/plugins/document-picker/index.ts b/src/@ionic-native/plugins/document-picker/index.ts new file mode 100644 index 00000000..f9f636f6 --- /dev/null +++ b/src/@ionic-native/plugins/document-picker/index.ts @@ -0,0 +1,45 @@ + +import { Injectable } from '@angular/core'; +import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; + + +/** + * @name iOS DocumentPicker + * @description + * + * Opens the file picker on iOS for the user to select a file, returns a file URI. + * Allows the user to upload files from icloud + * + * @usage + * ```typescript + * import { IOSDocumentPicker } from '@ionic-native/document-picker'; + * + * constructor(private docPicker: IOSDocumentPicker) { } + * + * ... + * + * this.docPicker.getFile('all') + * .then(uri => console.log(uri)) + * .catch(e => console.log(e)); + * + * ``` + */ +@Plugin({ + pluginName: 'IOSDocumentPicker', + plugin: 'cordova-plugin-documentpicker.DocumentPicker', + pluginRef: 'DocumentPicker', + repo: 'https://github.com/iampossible/Cordova-DocPicker', + platforms: ['iOS'] +}) +@Injectable() +export class DocumentPicker extends IonicNativePlugin { + + /** + * Open a file + * @param {string} filters files between 'image', 'pdf' or 'all' + * @returns {Promise} + */ + @Cordova() + getFile(options?: string): Promise { return; } + +} diff --git a/src/@ionic-native/plugins/facebook/index.ts b/src/@ionic-native/plugins/facebook/index.ts index 21bd6f59..2ba25276 100644 --- a/src/@ionic-native/plugins/facebook/index.ts +++ b/src/@ionic-native/plugins/facebook/index.ts @@ -156,17 +156,6 @@ export class Facebook extends IonicNativePlugin { EVENT_PARAM_VALUE_NO: '0' }; - /** - * Browser wrapper - * @param {number} appId Your Facebook AppID from their dashboard - * @param {string} version The version of API you may want to use. Optional - * @returns {Promise} - */ - @Cordova() - browserInit(appId: number, version?: string): Promise { - return; - } - /** * Login to Facebook to authenticate this app. * diff --git a/src/@ionic-native/plugins/fcm/index.ts b/src/@ionic-native/plugins/fcm/index.ts index af5f0b5e..269937ab 100644 --- a/src/@ionic-native/plugins/fcm/index.ts +++ b/src/@ionic-native/plugins/fcm/index.ts @@ -31,25 +31,25 @@ export interface NotificationData { * * ... * - * fcm.subscribeToTopic('marketing'); + * this.fcm.subscribeToTopic('marketing'); * - * fcm.getToken().then(token=>{ + * this.fcm.getToken().then(token => { * backend.registerToken(token); - * }) + * }); * - * fcm.onNotification().subscribe(data=>{ + * this.fcm.onNotification().subscribe(data => { * if(data.wasTapped){ * console.log("Received in background"); * } else { * console.log("Received in foreground"); * }; - * }) + * }); * - * fcm.onTokenRefresh().subscribe(token=>{ + * this.fcm.onTokenRefresh().subscribe(token => { * backend.registerToken(token); - * }) + * }); * - * fcm.unsubscribeFromTopic('marketing'); + * this.fcm.unsubscribeFromTopic('marketing'); * * ``` * @interfaces diff --git a/src/@ionic-native/plugins/file-picker/index.ts b/src/@ionic-native/plugins/file-picker/index.ts new file mode 100644 index 00000000..311f764b --- /dev/null +++ b/src/@ionic-native/plugins/file-picker/index.ts @@ -0,0 +1,41 @@ +import { Injectable } from '@angular/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; + +/** + * @name iOS File Picker + * @description + * + * Opens the file picker on iOS for the user to select a file, returns a file URI. + * + * @usage + * ```typescript + * import { IOSFilePicker } from '@ionic-native/file-picker'; + * + * constructor(private filePicker: IOSFilePicker) { } + * + * ... + * + * this.filePicker.pickFile() + * .then(uri => console.log(uri)) + * .catch(err => console.log('Error', err)); + * + * ``` + */ +@Plugin({ + pluginName: 'iOS File Picker', + plugin: 'cordova-plugin-filepicker', + pluginRef: 'filePicker', + repo: 'https://github.com/jcesarmobile/FilePicker-Phonegap-iOS-Plugin', + platforms: ['iOS'] +}) +@Injectable() +export class IOSFilePicker extends IonicNativePlugin { + /** + * Open a file + * @returns {Promise} + */ + @Cordova() + pickFile(): Promise { + return; + } +} diff --git a/src/@ionic-native/plugins/file-transfer/index.ts b/src/@ionic-native/plugins/file-transfer/index.ts index 41df16a6..0530d56d 100644 --- a/src/@ionic-native/plugins/file-transfer/index.ts +++ b/src/@ionic-native/plugins/file-transfer/index.ts @@ -112,6 +112,10 @@ export interface FileTransferError { * @description * This plugin allows you to upload and download files. * + * @deprecated + * This plugin has been deprecated in favor of XHR2 + * https://cordova.apache.org/blog/2017/10/18/from-filetransfer-to-xhr2.html + * * @usage * ```typescript * import { FileTransfer, FileUploadOptions, FileTransferObject } from '@ionic-native/file-transfer'; diff --git a/src/@ionic-native/plugins/file/index.ts b/src/@ionic-native/plugins/file/index.ts index 4436fcb6..8b4bfd9d 100644 --- a/src/@ionic-native/plugins/file/index.ts +++ b/src/@ionic-native/plugins/file/index.ts @@ -620,7 +620,7 @@ declare const window: Window; plugin: 'cordova-plugin-file', pluginRef: 'cordova.file', repo: 'https://github.com/apache/cordova-plugin-file', - platforms: ['Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'macOS', 'Ubuntu', 'Windows', 'Windows Phone'] + platforms: ['Android', 'Browser', 'iOS', 'macOS', 'Windows'] }) @Injectable() export class File extends IonicNativePlugin { @@ -1000,7 +1000,7 @@ export class File extends IonicNativePlugin { * * @param {string} path Base FileSystem. Please refer to the iOS and Android filesystems above * @param {string} fileName path relative to base path - * @param {string | Blob} text content or blob to write + * @param {string | Blob | ArrayBuffer} text content, blob or ArrayBuffer to write * @param {IWriteOptions} options replace file if set to true. See WriteOptions for more information. * @returns {Promise} Returns a Promise that resolves to updated file entry or rejects with an error. */ diff --git a/src/@ionic-native/plugins/firebase-analytics/index.ts b/src/@ionic-native/plugins/firebase-analytics/index.ts index a6ef388d..5cdac8fd 100644 --- a/src/@ionic-native/plugins/firebase-analytics/index.ts +++ b/src/@ionic-native/plugins/firebase-analytics/index.ts @@ -43,7 +43,7 @@ export class FirebaseAnalytics extends IonicNativePlugin { * @param params {any} Some param to configure something * @return {Promise} Returns a promise */ - @Cordova() + @Cordova({ sync: true }) logEvent(name: string, params: any): Promise { return; } /** @@ -52,7 +52,7 @@ export class FirebaseAnalytics extends IonicNativePlugin { * @param id {string} The user ID * @return {Promise} Returns a promise */ - @Cordova() + @Cordova({ sync: true }) setUserId(id: string): Promise { return; } /** @@ -62,7 +62,7 @@ export class FirebaseAnalytics extends IonicNativePlugin { * @param value {string} The property value * @return {Promise} Returns a promise */ - @Cordova() + @Cordova({ sync: true }) setUserProperty(name: string, value: string): Promise { return; } /** @@ -70,7 +70,7 @@ export class FirebaseAnalytics extends IonicNativePlugin { * @param enabled {boolean} * @return {Promise} Returns a promise */ - @Cordova() + @Cordova({ sync: true }) setEnabled(enabled: boolean): Promise { return; } /** @@ -79,7 +79,7 @@ export class FirebaseAnalytics extends IonicNativePlugin { * @param name {string} The name of the screen * @return {Promise} Returns a promise */ - @Cordova() + @Cordova({ sync: true }) setCurrentScreen(name: string): Promise { return; } } diff --git a/src/@ionic-native/plugins/firebase-dynamic-links/index.ts b/src/@ionic-native/plugins/firebase-dynamic-links/index.ts index 00bc7cbd..95902117 100644 --- a/src/@ionic-native/plugins/firebase-dynamic-links/index.ts +++ b/src/@ionic-native/plugins/firebase-dynamic-links/index.ts @@ -1,22 +1,19 @@ import { Injectable } from '@angular/core'; import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; +import { Observable } from 'rxjs/Observable'; -export interface DynamicLinksOptions { - title: string; - message: string; - deepLink?: string; - callToActionText?: string; +export interface IDynamicLink { + matchType: 'Weak' | 'Strong'; + deepLink: string; } /** * @beta * @name Firebase Dynamic Links * @description - * Cordova plugin for Firebase Invites and Firebase Dynamic Links + * Cordova plugin for Firebase Dynamic Links * * Variables APP_DOMAIN and APP_PATH specify web URL where your app will start an activity to handle the link. They also used to setup support for App Indexing. - * Variable REVERSED_CLIENT_ID can be found in your GoogleService-Info.plist under the same key name. - * Variable PHOTO_LIBRARY_USAGE_DESCRIPTION specifies required value for NSPhotoLibraryUsageDescription on iOS. * Go to firebase console and export google-services.json and GoogleService-Info.plist. Put those files into the root of your cordova app folder. * * Preferences: @@ -41,17 +38,6 @@ export interface DynamicLinksOptions { * constructor(private firebaseDynamicLinks: FirebaseDynamicLinks) { } * * ... - * // The deepLink and callToActionText properties are optional - * const options: DynamicLinksOptions = { - * title: 'My Title'; - * message: 'My message'; - * deepLink: 'http://example.com/'; - * callToActionText: 'Message on button'; - * } - * - * this.firebaseDynamicLinks.sendInvitation(options) - * .then((res: any) => console.log(res)) - * .catch((error: any) => console.error(error)); * * this.firebaseDynamicLinks.onDynamicLink() * .then((res: any) => console.log(res)) //Handle the logic here after opening the app with the Dynamic link @@ -75,17 +61,12 @@ export class FirebaseDynamicLinks extends IonicNativePlugin { /** * Registers callback that is triggered on each dynamic link click. - * @return {Promise} Returns a promise + * @return {Observable} Returns an observable */ - @Cordova() - onDynamicLink(): Promise { return; } - - /** - * Display invitation dialog. - * @param options {DynamicLinksOptions} Some param to configure something - * @return {Promise} Returns a promise - */ - @Cordova() - sendInvitation(options: DynamicLinksOptions): Promise { return; } + @Cordova({ + callbackOrder: 'reverse', + observable: true, + }) + onDynamicLink(): Observable { return; } } diff --git a/src/@ionic-native/plugins/firebase/index.ts b/src/@ionic-native/plugins/firebase/index.ts index 29a78ae8..d1d1abde 100644 --- a/src/@ionic-native/plugins/firebase/index.ts +++ b/src/@ionic-native/plugins/firebase/index.ts @@ -30,17 +30,18 @@ import { Observable } from 'rxjs/Observable'; plugin: 'cordova-plugin-firebase', pluginRef: 'FirebasePlugin', repo: 'https://github.com/arnesson/cordova-plugin-firebase', - platforms: ['Android', 'iOS'] + platforms: ['Android', 'iOS'], }) @Injectable() export class Firebase extends IonicNativePlugin { - /** * Get the device token * @return {Promise} */ @Cordova() - getToken(): Promise { return; } + getToken(): Promise { + return; + } /** * Get notified when a token is refreshed @@ -49,7 +50,9 @@ export class Firebase extends IonicNativePlugin { @Cordova({ observable: true }) - onTokenRefresh(): Observable { return; } + onTokenRefresh(): Observable { + return; + } /** * Get notified when the user opens a notification @@ -58,7 +61,9 @@ export class Firebase extends IonicNativePlugin { @Cordova({ observable: true }) - onNotificationOpen(): Observable { return; } + onNotificationOpen(): Observable { + return; + } /** * Grant permission to receive push notifications @@ -67,14 +72,18 @@ export class Firebase extends IonicNativePlugin { @Cordova({ platforms: ['iOS'] }) - grantPermission(): Promise { return; } + grantPermission(): Promise { + return; + } /** - * Check permission to receive push notifications - * @return {Promise<{isEnabled: boolean}>} - */ + * Check permission to receive push notifications + * @return {Promise<{isEnabled: boolean}>} + */ @Cordova() - hasPermission(): Promise<{isEnabled: boolean}> { return; } + hasPermission(): Promise<{ isEnabled: boolean }> { + return; + } /** * Set icon badge number. Set to 0 to clear the badge. @@ -82,14 +91,18 @@ export class Firebase extends IonicNativePlugin { * @return {Promise} */ @Cordova() - setBadgeNumber(badgeNumber: number): Promise { return; } + setBadgeNumber(badgeNumber: number): Promise { + return; + } /** * Get icon badge number * @return {Promise} */ @Cordova() - getBadgeNumber(): Promise { return; } + getBadgeNumber(): Promise { + return; + } /** * Subscribe to a topic @@ -97,7 +110,9 @@ export class Firebase extends IonicNativePlugin { * @return {Promise} */ @Cordova() - subscribe(topic: string): Promise { return; } + subscribe(topic: string): Promise { + return; + } /** * Unsubscribe from a topic @@ -105,14 +120,18 @@ export class Firebase extends IonicNativePlugin { * @return {Promise} */ @Cordova() - unsubscribe(topic: string): Promise { return; } + unsubscribe(topic: string): Promise { + return; + } /** * Unregister from firebase, used to stop receiving push notifications. * Call this when you logout user from your app. */ @Cordova() - unregister(): Promise { return; } + unregister(): Promise { + return; + } /** * Log an event using Analytics @@ -121,7 +140,9 @@ export class Firebase extends IonicNativePlugin { * @return {Promise} */ @Cordova() - logEvent(type: string, data: any): Promise { return; } + logEvent(type: string, data: any): Promise { + return; + } /** * Log an Error using FirebaseCrash @@ -129,7 +150,9 @@ export class Firebase extends IonicNativePlugin { * @return {Promise} */ @Cordova() - logError(message: string): Promise { return; } + logError(message: string): Promise { + return; + } /** * Set the name of the current screen in Analytics @@ -137,7 +160,9 @@ export class Firebase extends IonicNativePlugin { * @return {Promise} */ @Cordova() - setScreenName(name: string): Promise { return; } + setScreenName(name: string): Promise { + return; + } /** * Set a user id for use in Analytics @@ -145,7 +170,9 @@ export class Firebase extends IonicNativePlugin { * @return {Promise} */ @Cordova() - setUserId(userId: string): Promise { return; } + setUserId(userId: string): Promise { + return; + } /** * Set a user property for use in Analytics @@ -154,22 +181,31 @@ export class Firebase extends IonicNativePlugin { * @return {Promise} */ @Cordova() - setUserProperty(name: string, value: string): Promise { return; } + setUserProperty(name: string, value: string): Promise { + return; + } /** * Fetch Remote Config parameter values for your app * @param cacheExpirationSeconds {number} * @return {Promise} */ - @Cordova() - fetch(cacheExpirationSeconds?: number): Promise { return; } + @Cordova({ + successIndex: 1, + errorIndex: 2 + }) + fetch(cacheExpirationSeconds?: number): Promise { + return; + } /** * Activate the Remote Config fetched config * @return {Promise} */ @Cordova() - activateFetched(): Promise { return; } + activateFetched(): Promise { + return; + } /** * Retrieve a Remote Config value @@ -177,8 +213,13 @@ export class Firebase extends IonicNativePlugin { * @param [namespace] {string} * @return {Promise} */ - @Cordova() - getValue(key: string, namespace?: string): Promise { return; } + @Cordova({ + successIndex: 2, + errorIndex: 3 + }) + getValue(key: string, namespace?: string): Promise { + return; + } /** * Retrieve a Remote Config byte array @@ -189,7 +230,9 @@ export class Firebase extends IonicNativePlugin { @Cordova({ platforms: ['Android'] }) - getByteArray(key: string, namespace?: string): Promise { return; } + getByteArray(key: string, namespace?: string): Promise { + return; + } /** * Get the current state of the FirebaseRemoteConfig singleton object @@ -198,7 +241,9 @@ export class Firebase extends IonicNativePlugin { @Cordova({ platforms: ['Android'] }) - getInfo(): Promise { return; } + getInfo(): Promise { + return; + } /** * Change the settings for the FirebaseRemoteConfig object's operations @@ -208,7 +253,9 @@ export class Firebase extends IonicNativePlugin { @Cordova({ platforms: ['Android'] }) - setConfigSettings(settings: any): Promise { return; } + setConfigSettings(settings: any): Promise { + return; + } /** * Set defaults in the Remote Config @@ -219,6 +266,44 @@ export class Firebase extends IonicNativePlugin { @Cordova({ platforms: ['Android'] }) - setDefaults(defaults: any, namespace?: string): Promise { return; } + setDefaults(defaults: any, namespace?: string): Promise { + return; + } + /** + * Sends an SMS to the user with the SMS verification code and returns the Verification ID required to sign in using phone authentication + * @param phoneNumber {string} + * @returns {Promise} + */ + @Cordova({ + platforms: ['iOS'] + }) + getVerificationID(phoneNumber: string): Promise { + return; + } + + /** + * Sends an SMS to the user with the SMS verification code and returns the Verification ID required to sign in using phone authentication + * @param phoneNumber {string} the phone number, including '+' and country code + * @param timeoutDuration {number} the timeout in sec - no more SMS will be sent to this number until this timeout expires + * @returns {Promise} + */ + @Cordova({ + platforms: ['Android'], + successIndex: 2, + errorIndex: 3 + }) + verifyPhoneNumber(phoneNumber: string, timeoutDuration: number): Promise { + return; + } + + /** + * Allows the user to enable/disable analytics collection + * @param enabled {booleab} value to set collection + * @returns {Promise} + */ + @Cordova() + setAnalyticsCollectionEnabled(enabled: boolean): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/flurry-analytics/index.ts b/src/@ionic-native/plugins/flurry-analytics/index.ts index 121a647f..6116dd19 100644 --- a/src/@ionic-native/plugins/flurry-analytics/index.ts +++ b/src/@ionic-native/plugins/flurry-analytics/index.ts @@ -182,7 +182,7 @@ export class FlurryAnalyticsObject { * * @usage * ```typescript - * import { FlurryAnalytics, FlurryAnalyticsObject, FlurryAnalyticsOptions } from 'ionic-native/flurry-analytics'; + * import { FlurryAnalytics, FlurryAnalyticsObject, FlurryAnalyticsOptions } from '@ionic-native/flurry-analytics'; * * constructor(private flurryAnalytics: FlurryAnalytics) { } * diff --git a/src/@ionic-native/plugins/ftp/index.ts b/src/@ionic-native/plugins/ftp/index.ts index ef8f1dcd..c2c3be5a 100644 --- a/src/@ionic-native/plugins/ftp/index.ts +++ b/src/@ionic-native/plugins/ftp/index.ts @@ -1,5 +1,6 @@ import { Injectable } from '@angular/core'; import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; +import { Observable } from 'rxjs'; /** * @name FTP @@ -95,24 +96,28 @@ export class FTP extends IonicNativePlugin { * * @param localFile {string} The file (with full path) you want to upload. e.g. "/local/path/to/localFile". * @param remoteFile {string} The file (with full path) you want to located on the ftp server. e.g. "/adf/123/newDir/remoteFile". - * @return {Promise} Returns a promise. + * @return {Observable} Returns an observable. * It will be triggered many times according the file's size. * The arg `0`, `0.1xx`, `0.2xx` ... `1` means the upload percent. When it reach `1`, means success. */ - @Cordova() - upload(localFile: string, remoteFile: string): Promise { return; } + @Cordova({ + observable: true + }) + upload(localFile: string, remoteFile: string): Observable { return; } /** * Download one remote file on the ftp server to local path. * * @param localFile {string} The file (with full path) you want to upload. e.g. "/local/path/to/localFile". * @param remoteFile {string} The file (with full path) you want to located on the ftp server. e.g. "/adf/123/newDir/remoteFile". - * @return {Promise} Returns a promise. + * @return {Observable} Returns an observable. * It will be triggered many times according the file's size. * The arg `0`, `0.1xx`, `0.2xx` ... `1` means the upload percent. When it reach `1`, means success. */ - @Cordova() - download(localFile: string, remoteFile: string): Promise { return; } + @Cordova({ + observable: true + }) + download(localFile: string, remoteFile: string): Observable { return; } /** * Cancel all requests. Always success. diff --git a/src/@ionic-native/plugins/geolocation/index.ts b/src/@ionic-native/plugins/geolocation/index.ts index 52e8f52d..0ea3937a 100644 --- a/src/@ionic-native/plugins/geolocation/index.ts +++ b/src/@ionic-native/plugins/geolocation/index.ts @@ -117,6 +117,14 @@ export interface GeolocationOptions { * * This API is based on the W3C Geolocation API Specification, and only executes on devices that don't already provide an implementation. * + * For iOS you have to add this configuration to your configuration.xml file + * ```xml + * + * We want your location! Best regards NSA + * + * ``` + * + * * @usage * * ```typescript @@ -155,7 +163,7 @@ export interface GeolocationOptions { repo: 'https://github.com/apache/cordova-plugin-geolocation', install: 'ionic cordova plugin add cordova-plugin-geolocation --variable GEOLOCATION_USAGE_DESCRIPTION="To locate you"', installVariables: ['GEOLOCATION_USAGE_DESCRIPTION'], - platforms: ['Amazon Fire OS', 'Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'Ubuntu', 'Windows', 'Windows Phone'] + platforms: ['Amazon Fire OS', 'Android', 'Browser', 'iOS', 'Windows'] }) @Injectable() export class Geolocation extends IonicNativePlugin { diff --git a/src/@ionic-native/plugins/globalization/index.ts b/src/@ionic-native/plugins/globalization/index.ts index 29763d12..9a56e9e9 100644 --- a/src/@ionic-native/plugins/globalization/index.ts +++ b/src/@ionic-native/plugins/globalization/index.ts @@ -1,9 +1,20 @@ import { Injectable } from '@angular/core'; import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +export interface GlobalizationOptions { + formatLength: string; + selector: string; +} + /** * @name Globalization * @description + * This plugin obtains information and performs operations specific to the user's locale, language, and timezone. + * + * @deprecated + * With the [ECMA Internationalization API](https://www.ecma-international.org/ecma-402/1.0/) now supported on iOS, Android and Windows devices, this plugin is not required any more. + * Migrating from this plugin to the [ECMA Internationalization API](https://www.ecma-international.org/ecma-402/1.0/) is explained in this [Cordova blog post](https://cordova.apache.org/news/2017/11/20/migrate-from-cordova-globalization-plugin.html). + * * @usage * ```typescript * import { Globalization } from '@ionic-native/globalization'; @@ -20,30 +31,35 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; * * * ``` + * @interfaces + * GlobalizationOptions */ @Plugin({ pluginName: 'Globalization', plugin: 'cordova-plugin-globalization', pluginRef: 'navigator.globalization', repo: 'https://github.com/apache/cordova-plugin-globalization', - platforms: ['Amazon Fire OS', 'Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'Tizen', 'Ubuntu', 'Windows', 'Windows Phone'] + platforms: ['Amazon Fire OS', 'Android', 'Browser', 'iOS', 'Windows'] }) @Injectable() export class Globalization extends IonicNativePlugin { - /** * Returns the BCP-47 compliant language identifier tag to the successCallback with a properties object as a parameter. That object should have a value property with a String value. * @returns {Promise<{value: string}>} */ @Cordova() - getPreferredLanguage(): Promise<{ value: string }> { return; } + getPreferredLanguage(): Promise<{ value: string }> { + return; + } /** * Returns the BCP 47 compliant locale identifier string to the successCallback with a properties object as a parameter. * @returns {Promise<{value: string}>} */ @Cordova() - getLocaleName(): Promise<{ value: string }> { return; } + getLocaleName(): Promise<{ value: string }> { + return; + } /** * Converts date to string @@ -55,7 +71,12 @@ export class Globalization extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - dateToString(date: Date, options: { formatLength: string, selector: string }): Promise<{ value: string }> { return; } + dateToString( + date: Date, + options: GlobalizationOptions + ): Promise<{ value: string }> { + return; + } /** * Parses a date formatted as a string, according to the client's user preferences and calendar using the time zone of the client, and returns the corresponding date object. @@ -67,17 +88,40 @@ export class Globalization extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - stringToDate(dateString: string, options: { formatLength: string, selector: string }): Promise<{ year: number, month: number, day: number, hour: number, minute: number, second: number, millisecond: number }> { return; } + stringToDate( + dateString: string, + options: GlobalizationOptions + ): Promise<{ + year: number; + month: number; + day: number; + hour: number; + minute: number; + second: number; + millisecond: number; + }> { + return; + } /** * Returns a pattern string to format and parse dates according to the client's user preferences. * @param options Object with the format length and selector - * @returns {Promise<{ pattern: string, timezone: string, utf_offset: number, dst_offset: number }>} Returns a promise. + * @returns {Promise<{ pattern: string, timezone: string, utc_offset: number, dst_offset: number }>} Returns a promise. */ @Cordova({ callbackOrder: 'reverse' }) - getDatePattern(options: { formatLength: string, selector: string }): Promise<{ pattern: string, timezone: string, utf_offset: number, dst_offset: number }> { return; } + getDatePattern( + options: GlobalizationOptions + ): Promise<{ + pattern: string; + timezone: string; + iana_timezone: string; + utc_offset: number; + dst_offset: number; + }> { + return; + } /** * Returns an array of the names of the months or days of the week, depending on the client's user preferences and calendar. @@ -87,7 +131,12 @@ export class Globalization extends IonicNativePlugin { @Cordova({ callbackOrder: 'reverse' }) - getDateNames(options: { type: string, item: string }): Promise<{ value: Array }> { return; } + getDateNames(options: { + type: string; + item: string; + }): Promise<{ value: Array }> { + return; + } /** * Indicates whether daylight savings time is in effect for a given date using the client's time zone and calendar. @@ -95,14 +144,18 @@ export class Globalization extends IonicNativePlugin { * @returns {Promise<{dst: string}>} reutrns a promise with the value */ @Cordova() - isDayLightSavingsTime(date: Date): Promise<{ dst: string }> { return; } + isDayLightSavingsTime(date: Date): Promise<{ dst: string }> { + return; + } /** * Returns the first day of the week according to the client's user preferences and calendar. * @returns {Promise<{value: string}>} returns a promise with the value */ @Cordova() - getFirstDayOfWeek(): Promise<{ value: string }> { return; } + getFirstDayOfWeek(): Promise<{ value: string }> { + return; + } /** * Returns a number formatted as a string according to the client's user preferences. @@ -113,7 +166,12 @@ export class Globalization extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - numberToString(numberToConvert: number, options: { type: string }): Promise<{ value: string }> { return; } + numberToString( + numberToConvert: number, + options: { type: string } + ): Promise<{ value: string }> { + return; + } /** * @@ -125,7 +183,12 @@ export class Globalization extends IonicNativePlugin { successIndex: 1, errorIndex: 2 }) - stringToNumber(stringToConvert: string, options: { type: string }): Promise<{ value: number | string }> { return; } + stringToNumber( + stringToConvert: string, + options: { type: string } + ): Promise<{ value: number | string }> { + return; + } /** * Returns a pattern string to format and parse numbers according to the client's user preferences. @@ -135,7 +198,20 @@ export class Globalization extends IonicNativePlugin { @Cordova({ callbackOrder: 'reverse' }) - getNumberPattern(options: { type: string }): Promise<{ pattern: string, symbol: string, fraction: number, rounding: number, positive: string, negative: string, decimal: string, grouping: string }> { return; } + getNumberPattern(options: { + type: string; + }): Promise<{ + pattern: string; + symbol: string; + fraction: number; + rounding: number; + positive: string; + negative: string; + decimal: string; + grouping: string; + }> { + return; + } /** * Returns a pattern string to format and parse currency values according to the client's user preferences and ISO 4217 currency code. @@ -143,6 +219,16 @@ export class Globalization extends IonicNativePlugin { * @returns {Promise<{ pattern: string, code: string, fraction: number, rounding: number, decimal: number, grouping: string }>} */ @Cordova() - getCurrencyPattern(currencyCode: string): Promise<{ pattern: string, code: string, fraction: number, rounding: number, decimal: number, grouping: string }> { return; } - + getCurrencyPattern( + currencyCode: string + ): Promise<{ + pattern: string; + code: string; + fraction: number; + rounding: number; + decimal: number; + grouping: string; + }> { + return; + } } diff --git a/src/@ionic-native/plugins/google-analytics/index.ts b/src/@ionic-native/plugins/google-analytics/index.ts index 9af3c62e..1b7fe31e 100644 --- a/src/@ionic-native/plugins/google-analytics/index.ts +++ b/src/@ionic-native/plugins/google-analytics/index.ts @@ -38,7 +38,6 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class GoogleAnalytics extends IonicNativePlugin { - /** * In your 'deviceready' handler, set up your Analytics tracker. * https://developers.google.com/analytics/devguides/collection/analyticsjs/ @@ -50,7 +49,9 @@ export class GoogleAnalytics extends IonicNativePlugin { successIndex: 2, errorIndex: 3 }) - startTrackerWithId(id: string, interval?: number): Promise { return; } + startTrackerWithId(id: string, interval?: number): Promise { + return; + } /** * Enabling Advertising Features in Google Analytics allows you to take advantage of Remarketing, Demographics & Interests reports, and more @@ -58,7 +59,9 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - setAllowIDFACollection(allow: boolean): Promise { return; } + setAllowIDFACollection(allow: boolean): Promise { + return; + } /** * Set a UserId @@ -67,7 +70,9 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - setUserId(id: string): Promise { return; } + setUserId(id: string): Promise { + return; + } /** * Set a anonymize Ip address @@ -75,15 +80,40 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - setAnonymizeIp(anonymize: boolean): Promise { return; } + setAnonymizeIp(anonymize: boolean): Promise { + return; + } /** - * Sets the app version + * Set the app version * @param appVersion {string} App version * @returns {Promise} */ @Cordova() - setAppVersion(appVersion: string): Promise { return; } + setAppVersion(appVersion: string): Promise { + return; + } + + /** + * Get a variable + * @param key {string} Variable + * @returns {Promise} + */ + @Cordova() + getVar(key: string): Promise { + return; + } + + /** + * Set a variable + * @param key {string} Variable + * @param value {string} Parameter + * @returns {Promise} + */ + @Cordova() + setVar(key: string, value: string): Promise { + return; + } /** * Set OptOut @@ -91,14 +121,18 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - setOptOut(optout: boolean): Promise { return; } + setOptOut(optout: boolean): Promise { + return; + } /** * Enable verbose logging * @returns {Promise} */ @Cordova() - debugMode(): Promise { return; } + debugMode(): Promise { + return; + } /** * Track custom metric @@ -110,7 +144,9 @@ export class GoogleAnalytics extends IonicNativePlugin { successIndex: 2, errorIndex: 3 }) - trackMetric(key: number, value?: number): Promise { return; } + trackMetric(key: number, value?: number): Promise { + return; + } /** * Track a screen @@ -125,7 +161,13 @@ export class GoogleAnalytics extends IonicNativePlugin { successIndex: 3, errorIndex: 4 }) - trackView(title: string, campaignUrl?: string, newSession?: boolean): Promise { return; } + trackView( + title: string, + campaignUrl?: string, + newSession?: boolean + ): Promise { + return; + } /** * Add a Custom Dimension @@ -135,7 +177,9 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - addCustomDimension(key: number, value: string): Promise { return; } + addCustomDimension(key: number, value: string): Promise { + return; + } /** * Track an event @@ -151,7 +195,15 @@ export class GoogleAnalytics extends IonicNativePlugin { successIndex: 5, errorIndex: 6 }) - trackEvent(category: string, action: string, label?: string, value?: number, newSession?: boolean): Promise { return; } + trackEvent( + category: string, + action: string, + label?: string, + value?: number, + newSession?: boolean + ): Promise { + return; + } /** * Track an exception @@ -160,7 +212,9 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - trackException(description: string, fatal: boolean): Promise { return; } + trackException(description: string, fatal: boolean): Promise { + return; + } /** * Track User Timing (App Speed) @@ -171,7 +225,14 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - trackTiming(category: string, intervalInMilliseconds: number, variable: string, label: string): Promise { return; } + trackTiming( + category: string, + intervalInMilliseconds: number, + variable: string, + label: string + ): Promise { + return; + } /** * Add a Transaction (Ecommerce) @@ -185,7 +246,16 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - addTransaction(id: string, affiliation: string, revenue: number, tax: number, shipping: number, currencyCode: string): Promise { return; } + addTransaction( + id: string, + affiliation: string, + revenue: number, + tax: number, + shipping: number, + currencyCode: string + ): Promise { + return; + } /** * Add a Transaction Item (Ecommerce) @@ -200,7 +270,17 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - addTransactionItem(id: string, name: string, sku: string, category: string, price: number, quantity: number, currencyCode: string): Promise { return; } + addTransactionItem( + id: string, + name: string, + sku: string, + category: string, + price: number, + quantity: number, + currencyCode: string + ): Promise { + return; + } /** * Enable/disable automatic reporting of uncaught exceptions @@ -208,6 +288,19 @@ export class GoogleAnalytics extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - enableUncaughtExceptionReporting(shouldEnable: boolean): Promise { return; } + enableUncaughtExceptionReporting(shouldEnable: boolean): Promise { + return; + } + /** + * Manually dispatch any data + * @returns {Promise} + * @platform + */ + @Cordova({ + platforms: ['Android', 'iOS', 'Windows'] + }) + dispatch(): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/google-maps/index.ts b/src/@ionic-native/plugins/google-maps/index.ts index a1154245..3d875b2b 100644 --- a/src/@ionic-native/plugins/google-maps/index.ts +++ b/src/@ionic-native/plugins/google-maps/index.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { Cordova, CordovaCheck, CordovaInstance, Plugin, InstanceProperty, InstanceCheck, checkAvailability, IonicNativePlugin } from '@ionic-native/core'; +import { CordovaCheck, CordovaInstance, Plugin, InstanceProperty, InstanceCheck, checkAvailability, IonicNativePlugin } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; import 'rxjs/add/observable/fromEvent'; @@ -91,86 +91,168 @@ export class LatLngBounds implements ILatLngBounds { getCenter(): LatLng { return; } } -export interface GoogleMapOptions { - - mapType?: MapType; - - controls?: { - - /** - * Turns the compass on or off. - */ - compass?: boolean; - - /** - * Turns the myLocation picker on or off. If turns on this button, the application displays a permission dialog to obtain the geolocation data. - */ - myLocationButton?: boolean; - - /** - * Turns the indoor picker on or off. - */ - indoorPicker?: boolean; - - /** - * Turns the map toolbar on or off. This option is for Android only. - */ - mapToolbar?: boolean; - - /** - * Turns the zoom controller on or off. This option is for Android only. - */ - zoom?: boolean; - }; - - gestures?: { - scroll?: boolean; - tilt?: boolean; - zoom?: boolean; - rotate?: boolean; - }; +export interface GoogleMapControlOptions { /** - * Map styles + * Turns the compass on or off. + */ + compass?: boolean; + + /** + * Turns the myLocation button on or off. If turns on this button, the application displays a permission dialog to obtain the geolocation data. + */ + myLocationButton?: boolean; + + /** + * Turns the myLocation control(blue dot) on or off. If turns on this control, the application displays a permission dialog to obtain the geolocation data. + */ + myLocation?: boolean; + + /** + * Turns the indoor picker on or off. + */ + indoorPicker?: boolean; + + /** + * **Android** + * Turns the map toolbar on or off. + */ + mapToolbar?: boolean; + + /** + * **Android** + * Turns the zoom controller on or off. + */ + zoom?: boolean; + + /** + * Accept extra properties for future updates + */ + [key: string]: any; +} + +export interface GoogleMapGestureOptions { + + /** + * Set false to disable the scroll gesture (default: true) + */ + scroll?: boolean; + + /** + * Set false to disable the tilt gesture (default: true) + */ + tilt?: boolean; + + /** + * Set false to disable the zoom gesture (default: true) + */ + zoom?: boolean; + + /** + * Set false to disable the rotate gesture (default: true) + */ + rotate?: boolean; + + /** + * Accept extra properties for future updates + */ + [key: string]: any; +} + +export interface GoogleMapZoomOptions { + minZoom?: number; + maxZoom?: number; +} + +export interface GoogleMapPaddingOptions { + left?: number; + top?: number; + bottom?: number; + right?: number; +} + +export interface GoogleMapPreferenceOptions { + + /** + * Minimum and maximum zoom levels for zooming gestures. + */ + zoom?: GoogleMapZoomOptions; + + /** + * Paddings of controls. + */ + padding?: GoogleMapPaddingOptions; + + /** + * Turns the 3D buildings layer on or off. + */ + building?: boolean; + + /** + * Accept extra properties for future updates + */ + [key: string]: any; +} + +export interface GoogleMapOptions { + + /** + * mapType [options] + */ + mapType?: MapType; + + /** + * controls [options] + */ + controls?: GoogleMapControlOptions; + + /** + * gestures [options] + */ + gestures?: GoogleMapGestureOptions; + + /** + * Map styles [options] * @ref https://developers.google.com/maps/documentation/javascript/style-reference */ styles?: any[]; /** - * Initial camera position + * Initial camera position [options] */ camera?: CameraPosition; - preferences?: { + /** + * preferences [options] + */ + preferences?: GoogleMapPreferenceOptions; - /** - * Minimum and maximum zoom levels for zooming gestures. - */ - zoom?: { - minZoom?: number; - maxZoom?: number; - }; - - /** - * Paddings of controls. - */ - padding?: { - left?: number; - top?: number; - bottom?: number; - right?: number; - }; - - /** - * Turns the 3D buildings layer on or off. - */ - building?: boolean - }; + /** + * Accept extra properties for future updates + */ + [key: string]: any; } export interface CameraPosition { /** * The center location of the camera view. + * + * [usage 1] + * + * let cameraPos: CameraPosition = { + * target: {lat: ..., lng: ...}, + * zoom: 10 + * } + * + * [usage 2] The zoom property is ignored when you specify multiple position + * + * let cameraPos: CameraPosition = { + * target: [ + * {lat: ..., lng: ...}, + * {lat: ..., lng: ...}, + * {lat: ..., lng: ...} + * ] + * } */ target?: T; /** @@ -196,18 +278,91 @@ export interface CameraPosition { } export interface CircleOptions { - center?: ILatLng; - radius?: number; + /** + * Center position of circle + */ + center: ILatLng; + + /** + * Radius of circle in meter + */ + radius: number; + + /** + * Set the stroke color + * (rgb, rgba, #RRGGBB, "colorname", ...etc) + */ strokeColor?: string; + + /** + * Set the stroke width in pixel + */ strokeWidth?: number; + /** + * Set the inside color of polygon + * (rgb, rgba, #RRGGBB, "colorname", ...etc) + */ fillColor?: string; + + /** + * Set to true to receive the CIRCLE_CLICK event + * (default: false) + */ clickable?: boolean; + + /** + * Set to false to hide + */ visible?: boolean; + + /** + * Z-index + */ zIndex?: number; + + /** + * Accept own properties + * You can get the property later using `get()` method. + */ + [key: string]: any; } export interface GeocoderRequest { + + /** + * The address property or position property is required. + * You can not specify both property at the same time. + * + * [geocoding usage1] + * let request: GeocoderRequest = { + * address: "Los Angeles, California, USA" + * }; + * + * [geocoding usage2] + * let request: GeocoderRequest = { + * address: [ + * "Los Angeles, California, USA", + * "San Francisco, California, USA", + * ] + * }; + */ address?: string | string[]; + + /** + * + * [reverse-geocoding usage1] + * let request: GeocoderRequest = { + * position: {"lat": 37.421655, "lng": -122.085637} + * }; + * + * [reverse-geocoding usage2] + * let request: GeocoderRequest = { + * address: [ + * {"lat": 37.421655, "lng": -122.085637}, + * {"lat": 37.332, "lng": -122.030781} + * ] + * }; + */ position?: ILatLng | ILatLng[]; } @@ -236,31 +391,44 @@ export interface GroundOverlayOptions { /** * URL of overlay */ - url?: string; + url: string; + /** * Bounds, array of ILatLng */ - bounds?: Array; + bounds: Array; + /** - * Set to false to ignore click event + * Set to true to receive the GROUND_OVERLAY_CLICK event + * (default: false) */ clickable?: boolean; + /** * Set to false to hide */ visible?: boolean; + /** * Opacity. From 0.0 to 1.0 . */ opacity?: number; + /** * Bearing */ bearing?: number; + /** * Z-index */ zIndex?: number; + + /** + * Accept own properties + * You can get the property later using `get()` method. + */ + [key: string]: any; } export interface ILatLng { @@ -341,13 +509,52 @@ export interface MarkerOptions { * Set to true to disable auto panning when the marker is clicked. */ disableAutoPan?: boolean; + + /** + * Accept own properties + * You can get the property later using `get()` method. + */ + [key: string]: any; } export interface MarkerClusterOptions { + /** + * Maximum zoom level of clustering + * (default: 15, max: 18) + */ maxZoomLevel?: number; + + /** + * Draw a rectangle that contains all locations of clustered when you tap on a clister marker. + * (default: true) + */ boundsDraw?: boolean; + + /** + * Position list + * [ + * {title: "store A", position: {lat: ..., lng: ...}}, + * {title: "store B", position: {lat: ..., lng: ...}}, + * {title: "store C", position: {lat: ..., lng: ...}} + * ] + */ markers: MarkerOptions[]; + + /** + * Conditions of clustering + * [ + * {icon: "assets/small.png", min: 2, max: 10}, + * {icon: "assets/middle.png", min: 11, max: 30}, + * {icon: "assets/large.png", min: 31}, + * ] + */ icons: any[]; + + /** + * Accept own properties + * You can get the property later using `get()` method. + */ + [key: string]: any; } export interface MyLocation { @@ -363,36 +570,192 @@ export interface MyLocation { } export interface MyLocationOptions { + /** + * Set true if you want to try to use GPS mandatory. + * (In false, the plugin try to use GPS and network) + * (default: false) + */ enableHighAccuracy?: boolean; } export interface PolygonOptions { - points?: Array; + /** + * Pass ILatLng[] to specify the vertixes. + * You need to contain two points at least. + */ + points: Array; + + /** + * Set true if you want to draw the curve polygon based on the earth + * (default: false) + */ geodesic?: boolean; + + /** + * Set the stroke color + * (rgb, rgba, #RRGGBB, "colorname", ...etc) + */ strokeColor?: string; + + /** + * Set the stroke width in pixel + */ strokeWidth?: number; + + /** + * Set the inside color of polygon + * (rgb, rgba, #RRGGBB, "colorname", ...etc) + */ fillColor?: string; + + /** + * Set false if you want to create invisible polygon + * (Invisible polygon is not clickable, default true) + */ visible?: boolean; + + /** + * Hierarchy z-index + */ zIndex?: number; + + /** + * Pass ILatLng[][] to create holes in polygon + */ addHole?: Array>; + + /** + * Set true if you want to receive the POLYGON_CLICK event + * (default: false) + */ + clickable?: boolean; + + /** + * Accept own properties + * You can get the property later using `get()` method. + */ + [key: string]: any; } export interface PolylineOptions { - points?: Array; + /** + * Pass ILatLng[] to specify the vertixes. + * You need to contain two points at least. + */ + points: Array; + + /** + * Set false if you want to create invisible polyline + * (Invisible polyline is not clickable, default true) + */ visible?: boolean; + + /** + * Set true if you want to draw the curve polyline based on the earth + * (default: false) + */ geodesic?: boolean; + + /** + * Set the stroke color + * (rgb, rgba, #RRGGBB, "colorname", ...etc) + */ color?: string; + + /** + * Set the stroke width in pixel + */ width?: number; + + /** + * Hierarchy z-index + */ zIndex?: number; + + /** + * Set true if you want to receive the POLYLINE_CLICK event + * (default: false) + */ + clickable?: boolean; + + /** + * Accept own properties + * You can get the property later using `get()` method. + */ + [key: string]: any; } export interface TileOverlayOptions { + /** + * This callback must return string of image URL. + * If no tile, you need to return null. + */ getTile: (x: number, y: number, zoom: number) => string; + + /** + * Set false if you want to create invisible tilelayer + * (default true) + */ visible?: boolean; + + /** + * Hierarchy z-index of tilelayer + */ zIndex?: number; + + /** + * Default: 512px + */ tileSize?: number; + + /** + * Default: 1.0 + */ opacity?: number; + + /** + * Set true if you want to display the tile information over the tile images. + */ debug?: boolean; + + /** + * Accept own properties + * You can get the property later using `get()` method. + */ + [key: string]: any; +} + +export interface ToDataUrlOptions { + /** + * True if you want get high quality map snapshot + */ + uncompress?: boolean; +} + + +/** + * Options for map.addKmlOverlay() method + */ +export interface KmlOverlayOptions { + /* + * The url or file path of KML file. KMZ format is not supported. + */ + url: string; + + /* + * Do not fire the KML_CLICK event if false. Default is true. + */ + clickable?: boolean; + + /* + * Do not display the default infoWindow if true. Default is false. + */ + suppressInfoWindows?: boolean; + + /** + * Accept own properties for future update + */ + [key: string]: any; } @@ -402,12 +765,41 @@ export interface TileOverlayOptions { export class VisibleRegion implements ILatLngBounds { private _objectInstance: any; + /** + * The northeast of the bounds that contains the farLeft, farRight, nearLeft and nearRight. + * Since the map view is able to rotate, the farRight is not the same as the northeast. + */ @InstanceProperty northeast: ILatLng; + + /** + * The southwest of the bounds that contains the farLeft, farRight, nearLeft and nearRight. + * Since the map view is able to rotate, the nearLeft is not the same as the southwest. + */ @InstanceProperty southwest: ILatLng; + + /** + * The nearRight indicates the lat/lng of the top-left of the map view. + */ @InstanceProperty farLeft: ILatLng; + + /** + * The nearRight indicates the lat/lng of the top-right of the map view. + */ @InstanceProperty farRight: ILatLng; + + /** + * The nearRight indicates the lat/lng of the bottom-left of the map view. + */ @InstanceProperty nearLeft: ILatLng; + + /** + * The nearRight indicates the lat/lng of the bottom-right of the map view. + */ @InstanceProperty nearRight: ILatLng; + + /** + * constant value : `VisibleRegion` + */ @InstanceProperty type: string; constructor(southwest: LatLngBounds, northeast: LatLngBounds, farLeft: ILatLng, farRight: ILatLng, nearLeft: ILatLng, nearRight: ILatLng) { @@ -443,11 +835,12 @@ export class VisibleRegion implements ILatLngBounds { * @hidden * You can listen to these events where appropriate */ -export const GoogleMapsEvent: { [eventName: string]: string; } = { +export const GoogleMapsEvent = { MAP_READY: 'map_ready', - MAP_LOADED: 'map_loaded', MAP_CLICK: 'map_click', MAP_LONG_CLICK: 'map_long_click', + POI_CLICK: 'poi_click', + MY_LOCATION_CLICK: 'my_location_click', MY_LOCATION_BUTTON_CLICK: 'my_location_button_click', INDOOR_BUILDING_FOCUSED: 'indoor_building_focused', INDOOR_LEVEL_ACTIVATED: 'indoor_level_activated', @@ -463,14 +856,14 @@ export const GoogleMapsEvent: { [eventName: string]: string; } = { INFO_LONG_CLICK: 'info_long_click', INFO_CLOSE: 'info_close', INFO_OPEN: 'info_open', - CLUSTER_CLICK: 'cluster_click', MARKER_CLICK: 'marker_click', MARKER_DRAG: 'marker_drag', MARKER_DRAG_START: 'marker_drag_start', MARKER_DRAG_END: 'marker_drag_end', MAP_DRAG: 'map_drag', MAP_DRAG_START: 'map_drag_start', - MAP_DRAG_END: 'map_drag_end' + MAP_DRAG_END: 'map_drag_end', + KML_CLICK: 'kml_click' }; /** @@ -517,15 +910,13 @@ export const GoogleMapsMapTypeId: { [mapType: string]: MapType; } = { * }) * export class HomePage { * map: GoogleMap; - * mapElement: HTMLElement; - * constructor(private googleMaps: GoogleMaps) { } + * constructor() { } * * ionViewDidLoad() { * this.loadMap(); * } * * loadMap() { - * this.mapElement = document.getElementById('map'); * * let mapOptions: GoogleMapOptions = { * camera: { @@ -538,7 +929,7 @@ export const GoogleMapsMapTypeId: { [mapType: string]: MapType; } = { * } * }; * - * this.map = this.googleMaps.create(this.mapElement, mapOptions); + * this.map = GoogleMaps.create('map_canvas', mapOptions); * * // Wait the MAP_READY before using any methods. * this.map.one(GoogleMapsEvent.MAP_READY) @@ -583,6 +974,8 @@ export const GoogleMapsMapTypeId: { [mapType: string]: MapType; } = { * Polygon * Polyline * Spherical + * KmlOverlay + * Poly * TileOverlay * BaseClass * BaseArrayClass @@ -603,6 +996,7 @@ export const GoogleMapsMapTypeId: { [mapType: string]: MapType; } = { * PolygonOptions * PolylineOptions * TileOverlayOptions + * KmlOverlayOptions * VisibleRegion */ @Plugin({ @@ -610,6 +1004,7 @@ export const GoogleMapsMapTypeId: { [mapType: string]: MapType; } = { pluginRef: 'plugin.google.maps', plugin: 'cordova-plugin-googlemaps', repo: 'https://github.com/mapsplugin/cordova-plugin-googlemaps', + document: 'https://github.com/mapsplugin/cordova-plugin-googlemaps-doc/blob/master/v2.0.0/README.md', install: 'ionic cordova plugin add cordova-plugin-googlemaps --variable API_KEY_FOR_ANDROID="YOUR_ANDROID_API_KEY_IS_HERE" --variable API_KEY_FOR_IOS="YOUR_IOS_API_KEY_IS_HERE"', installVariables: ['API_KEY_FOR_ANDROID', 'API_KEY_FOR_IOS'], platforms: ['Android', 'iOS'] @@ -620,15 +1015,33 @@ export class GoogleMaps extends IonicNativePlugin { /** * Creates a new GoogleMap instance * @param element {string | HTMLElement} Element ID or reference to attach the map to - * @param options {any} Options + * @param options {GoogleMapOptions} [options] Options * @return {GoogleMap} */ - create(element: string | HTMLElement, options?: GoogleMapOptions): GoogleMap { - let googleMap: GoogleMap = new GoogleMap(element, options); - googleMap.set('_overlays', new BaseArrayClass()); + static create(element: string | HTMLElement | GoogleMapOptions, options?: GoogleMapOptions): GoogleMap { + if (element instanceof HTMLElement) { + if (element.getAttribute('__pluginMapId')) { + console.error('GoogleMaps', element.tagName + '[__pluginMapId=\'' + element.getAttribute('__pluginMapId') + '\'] has already map.'); + return; + } + } else if (typeof element === 'object') { + options = element; + element = null; + } + let googleMap: GoogleMap = new GoogleMap(element, options); + googleMap.set('_overlays', {}); return googleMap; } + /** + * @deprecation + * @hidden + */ + create(element: string | HTMLElement | GoogleMapOptions, options?: GoogleMapOptions): GoogleMap { + console.error('GoogleMaps', '[deprecated] Please use GoogleMaps.create()'); + return GoogleMaps.create(element, options); + } + } /** @@ -646,7 +1059,7 @@ export class BaseClass { /** * Adds an event listener. - * + * @param eventName {string} event name you want to observe. * @return {Observable} */ @InstanceCheck({ observable: true }) @@ -660,19 +1073,17 @@ export class BaseClass { let overlay: Marker = this.get(args[args.length - 1].getId()); if (!overlay) { let markerJS: any = args[args.length - 1]; + let markerId: string = markerJS.getId(); let markerCluster: MarkerCluster = this; overlay = new Marker(markerCluster.getMap(), markerJS); - this.get('_overlays').push(markerJS.getId()); - this.set(markerJS.getId(), overlay); + this.get('_overlays')[markerId] = overlay; markerJS.one(markerJS.getId() + '_remove', () => { - let idx = this.get('_overlays').indexOf(overlay); - this.get('_overlays').removeAt(idx); - this.set(markerJS.getId(), undefined); + this.get('_overlays')[markerId] = null; }); } args[args.length - 1] = overlay; } else { - args[args.length - 1] = this._objectInstance.getMap().get(args[args.length - 1].getId()); + args[args.length - 1] = this._objectInstance.getMap().get('_overlays')[args[args.length - 1].getId()]; } } observer.next(args); @@ -682,7 +1093,7 @@ export class BaseClass { /** * Adds an event listener that works once. - * + * @param eventName {string} event name you want to observe. * @return {Promise} */ @InstanceCheck() @@ -696,19 +1107,17 @@ export class BaseClass { let overlay: Marker = this.get(args[args.length - 1].getId()); if (!overlay) { let markerJS: any = args[args.length - 1]; + let markerId: string = markerJS.getId(); let markerCluster: MarkerCluster = this; overlay = new Marker(markerCluster.getMap(), markerJS); - this.get('_overlays').push(markerJS.getId()); - this.set(markerJS.getId(), overlay); + this.get('_overlays')[markerId] = overlay; markerJS.one(markerJS.getId() + '_remove', () => { - let idx = this.get('_overlays').indexOf(overlay); - this.get('_overlays').removeAt(idx); - this.set(markerJS.getId(), undefined); + this.get('_overlays')[markerId] = null; }); } args[args.length - 1] = overlay; } else { - args[args.length - 1] = this._objectInstance.getMap().get(args[args.length - 1].getId()); + args[args.length - 1] = this._objectInstance.getMap().get('_overlays')[args[args.length - 1].getId()]; } } resolve(args); @@ -718,32 +1127,33 @@ export class BaseClass { /** * Gets a value - * @param key + * @param key {any} */ @CordovaInstance({ sync: true }) get(key: string): any { return; } /** * Sets a value - * @param key - * @param value + * @param key {string} The key name for the value. `(key)_changed` will be fired when you set value through this method. + * @param value {any} + * @param noNotify {boolean} [options] True if you want to prevent firing the `(key)_changed` event. */ @CordovaInstance({ sync: true }) set(key: string, value: any, noNotify?: boolean): void { } /** * Bind a key to another object - * @param key {string} - * @param target {any} - * @param targetKey? {string} - * @param noNotify? {boolean} + * @param key {string} The property name you want to observe. + * @param target {any} The target object you want to observe. + * @param targetKey? {string} [options] The property name you want to observe. If you omit this, the `key` argument is used. + * @param noNotify? {boolean} [options] True if you want to prevent `(key)_changed` event when you bind first time, because the internal status is changed from `undefined` to something. */ @CordovaInstance({ sync: true }) bindTo(key: string, target: any, targetKey?: string, noNotify?: boolean): void { } /** - * Listen to a map event. - * + * Alias of `addEventListener` + * @param key {string} The property name you want to observe. * @return {Observable} */ @InstanceCheck({ observable: true }) @@ -757,19 +1167,17 @@ export class BaseClass { let overlay: Marker = this.get(args[args.length - 1].getId()); if (!overlay) { let markerJS: any = args[args.length - 1]; + let markerId: string = markerJS.getId(); let markerCluster: MarkerCluster = this; overlay = new Marker(markerCluster.getMap(), markerJS); - this.get('_overlays').push(markerJS.getId()); - this.set(markerJS.getId(), overlay); + this.get('_overlays')[markerId] = overlay; markerJS.one(markerJS.getId() + '_remove', () => { - let idx = this.get('_overlays').indexOf(overlay); - this.get('_overlays').removeAt(idx); - this.set(markerJS.getId(), undefined); + this.get('_overlays')[markerId] = null; }); } args[args.length - 1] = overlay; } else { - args[args.length - 1] = this._objectInstance.getMap().get(args[args.length - 1].getId()); + args[args.length - 1] = this._objectInstance.getMap().get('_overlays')[args[args.length - 1].getId()]; } } observer.next(args); @@ -778,8 +1186,8 @@ export class BaseClass { } /** - * Listen to a map event only once. - * + * Alias of `addEventListenerOnce` + * @param key {string} The property name you want to observe. * @return {Promise} */ @InstanceCheck() @@ -793,19 +1201,17 @@ export class BaseClass { let overlay: Marker = this.get(args[args.length - 1].getId()); if (!overlay) { let markerJS: any = args[args.length - 1]; + let markerId: string = markerJS.getId(); let markerCluster: MarkerCluster = this; overlay = new Marker(markerCluster.getMap(), markerJS); - this.get('_overlays').push(markerJS.getId()); - this.set(markerJS.getId(), overlay); + this.get('_overlays')[markerId] = overlay; markerJS.one(markerJS.getId() + '_remove', () => { - let idx = this.get('_overlays').indexOf(overlay); - this.get('_overlays').removeAt(idx); - this.set(markerJS.getId(), undefined); + this.get('_overlays')[markerId] = null; }); } args[args.length - 1] = overlay; } else { - args[args.length - 1] = this._objectInstance.getMap().get(args[args.length - 1].getId()); + args[args.length - 1] = this._objectInstance.getMap().get('_overlays')[args[args.length - 1].getId()]; } } resolve(args); @@ -821,6 +1227,8 @@ export class BaseClass { /** * Dispatch event. + * @param eventName {string} Event name + * @param parameters {any} [options] The data you want to pass to event listerners. */ @CordovaInstance({ sync: true }) trigger(eventName: string, ...parameters: any[]): void {} @@ -833,10 +1241,36 @@ export class BaseClass { destroy(): void { let map: GoogleMap = this._objectInstance.getMap(); if (map) { - map.get('_overlays').set(this._objectInstance.getId(), undefined); + delete this._objectInstance.getMap().get('_overlays')[this._objectInstance.getId()]; } this._objectInstance.remove(); } + + /** + * Remove event listener(s) + * The `removeEventListener()` has three usages: + * - removeEventListener("eventName", listenerFunction); + * This removes one particular event listener + * - removeEventListener("eventName"); + * This removes the event listeners that added for the event name. + * - removeEventListener(); + * This removes all listeners. + * + * @param eventName {string} [options] Event name + * @param listener {Function} [options] Event listener + */ + @CordovaInstance({ sync: true }) + removeEventListener(eventName?: string, listener?: (...parameters: any[]) => void): void {} + + /** + * Alias of `removeEventListener` + * + * @param eventName {string} [options] Event name + * @param listener {Function} [options] Event listener + */ + @CordovaInstance({ sync: true }) + off(eventName?: string, listener?: (...parameters: any[]) => void): void {} + } /** @@ -862,7 +1296,7 @@ export class BaseArrayClass extends BaseClass { /** * Removes all elements from the array. - * @param noNotify? {boolean} Set true to prevent remove_at events. + * @param noNotify? {boolean} [options] Set true to prevent remove_at events. */ @CordovaInstance({ sync: true }) empty(noNotify?: boolean): void {} @@ -870,29 +1304,78 @@ export class BaseArrayClass extends BaseClass { /** * Iterate over each element, calling the provided callback. * @param fn {Function} - * @param callback? {Function} */ @CordovaInstance({ sync: true }) - forEach(fn: ((element: T, index?: number) => void) | ((element: T, callback: () => void) => void), callback?: () => void): void {} + forEach(fn: (element: T, index?: number) => void): void {} + + /** + * Iterate over each element, calling the provided callback. + * @param fn {Function} + * @return {Promise} + */ + @CordovaCheck() + forEachAsync(fn: ((element: T, callback: () => void) => void)): Promise { + return new Promise((resolve) => { + this._objectInstance.forEachAsync(fn, resolve); + }); + } + + /** + * Iterate over each element, then return a new value. + * Then you can get the results of each callback. + * @param fn {Function} + * @return {Array} returns a new array with the results + */ + @CordovaInstance({ sync: true }) + map(fn: (element: T, index: number) => any): any[] { return; } /** * Iterate over each element, calling the provided callback. * Then you can get the results of each callback. * @param fn {Function} - * @param callback? {Function} - * @return {Array} returns a new array with the results + * @param callback {Function} + * @return {Promise} returns a new array with the results */ - @CordovaInstance({ sync: true }) - map(fn: Function, callback?: ((element: T, index: number) => T) | ((element: T, callback: (newElement: T) => void) => void)): T[] { return; } + @CordovaCheck() + mapAsync(fn: ((element: T, callback: (newElement: any) => void) => void)): Promise { + return new Promise((resolve) => { + this._objectInstance.mapAsync(fn, resolve); + }); + } + + /** + * Same as `mapAsync`, but keep the execution order + * @param fn {Function} + * @param callback {Function} + * @return {Promise} returns a new array with the results + */ + @CordovaCheck() + mapSeries(fn: ((element: T, callback: (newElement: any) => void) => void)): Promise { + return new Promise((resolve) => { + this._objectInstance.mapSeries(fn, resolve); + }); + } /** * The filter() method creates a new array with all elements that pass the test implemented by the provided function. * @param fn {Function} - * @param callback? {Function} - * @return {Array} returns a new array with the results + * @return {Array} returns a new filtered array */ @CordovaInstance({ sync: true }) - filter(fn: Function, callback?: ((element: T, index: number) => T) | ((element: T, callback: (newElement: T) => void) => void)): T[] { return; } + filter(fn: (element: T, index: number) => boolean): T[] { return; } + + /** + * The filterAsync() method creates a new array with all elements that pass the test implemented by the provided function. + * @param fn {Function} + * @param callback {Function} + * @return {Promise} returns a new filtered array + */ + @CordovaCheck() + filterAsync(fn: (element: T, callback: (result: boolean) => void) => void): Promise { + return new Promise((resolve) => { + this._objectInstance.filterAsync(fn, resolve); + }); + } /** * Returns a reference to the underlying Array. @@ -940,7 +1423,7 @@ export class BaseArrayClass extends BaseClass { * Inserts an element at the specified index. * @param index {number} * @param element {Object} - * @param noNotify? {boolean} Set true to prevent insert_at events. + * @param noNotify? {boolean} [options] Set true to prevent insert_at events. * @return {Object} */ @CordovaInstance({ sync: true }) @@ -948,7 +1431,7 @@ export class BaseArrayClass extends BaseClass { /** * Removes the last element of the array and returns that element. - * @param noNotify? {boolean} Set true to prevent remove_at events. + * @param noNotify? {boolean} [options] Set true to prevent remove_at events. * @return {Object} */ @CordovaInstance({ sync: true }) @@ -965,7 +1448,7 @@ export class BaseArrayClass extends BaseClass { /** * Removes an element from the specified index. * @param index {number} - * @param noNotify? {boolean} Set true to prevent insert_at events. + * @param noNotify? {boolean} [options] Set true to prevent remove_at events. */ @CordovaInstance({ sync: true }) removeAt(index: number, noNotify?: boolean): void {} @@ -974,7 +1457,7 @@ export class BaseArrayClass extends BaseClass { * Sets an element at the specified index. * @param index {number} * @param element {object} - * @param noNotify? {boolean} Set true to prevent set_at events. + * @param noNotify? {boolean} [options] Set true to prevent set_at events. */ @CordovaInstance({ sync: true }) setAt(index: number, element: T, noNotify?: boolean): void {} @@ -1005,7 +1488,7 @@ export class Circle extends BaseClass { * Return the map instance. * @return {GoogleMap} */ - getMap(): any { return this._map; } + getMap(): GoogleMap { return this._map; } /** * Change the center position. @@ -1148,20 +1631,37 @@ export class Environment { * Get the open source software license information for Google Maps SDK for iOS. * @return {Promise} */ - getLicenseInfo(): Promise { + static getLicenseInfo(): Promise { return new Promise((resolve) => { GoogleMaps.getPlugin().environment.getLicenseInfo((text: string) => resolve(text)); }); } + /** + * @deprecation + * @hidden + */ + getLicenseInfo(): Promise { + console.error('GoogleMaps', '[deprecated] This method is static. Please use Environment.getLicenseInfo()'); + return Environment.getLicenseInfo(); + } + /** * Specifies the background color of the app. * @param color */ - setBackgroundColor(color: string): void { + static setBackgroundColor(color: string): void { GoogleMaps.getPlugin().environment.setBackgroundColor(color); } + /** + * @deprecation + * @hidden + */ + setBackgroundColor(color: string): void { + console.error('GoogleMaps', '[deprecated] This method is static. Please use Environment.setBackgroundColor()'); + Environment.setBackgroundColor(color); + } } /** @@ -1174,12 +1674,22 @@ export class Environment { repo: '' }) export class Geocoder { + + /** + * @deprecation + * @hidden + */ + geocode(request: GeocoderRequest): Promise> { + console.error('GoogleMaps', '[deprecated] This method is static. Please use Geocoder.geocode()'); + return Geocoder.geocode(request); + } + /** * Converts position to address and vice versa * @param {GeocoderRequest} request Request object with either an address or a position * @return {Promise>} */ - geocode(request: GeocoderRequest): Promise> { + static geocode(request: GeocoderRequest): Promise> { if (request.address instanceof Array || Array.isArray(request.address) || request.position instanceof Array || Array.isArray(request.position)) { @@ -1219,6 +1729,28 @@ export class Geocoder { } } +/** + * @hidden + */ +@Plugin({ + pluginName: 'GoogleMaps', + pluginRef: 'plugin.google.maps.LocationService', + plugin: 'cordova-plugin-googlemaps', + repo: '' +}) +export class LocationService { + + /** + * Get the current device location without map + * @return {Promise} + */ + static getMyLocation(options?: MyLocationOptions): Promise { + return new Promise((resolve, reject) => { + GoogleMaps.getPlugin().LocationService.getMyLocation(options, resolve); + }); + } +} + /** * @hidden */ @@ -1229,22 +1761,75 @@ export class Geocoder { repo: '' }) export class Encoding { + + /** + * @deprecation + * @hidden + */ + decodePath(encoded: string, precision?: number): Array { + console.error('GoogleMaps', '[deprecated] This method is static. Please use Encoding.decodePath()'); + return Encoding.decodePath(encoded, precision); + } + + /** + * @deprecation + * @hidden + */ + encodePath(path: Array | BaseArrayClass): string { + console.error('GoogleMaps', '[deprecated] This method is static. Please use Encoding.encodePath()'); + return Encoding.encodePath(path); + } + /** * Decodes an encoded path string into a sequence of LatLngs. * @param encoded {string} an encoded path string * @param precision? {number} default: 5 - * @return {LatLng} + * @return {ILatLng[]} */ - @Cordova({ sync: true }) - decodePath(encoded: string, precision?: number): LatLng { return; } + static decodePath(encoded: string, precision?: number): Array { + return GoogleMaps.getPlugin().geometry.encoding.decodePath(encoded, precision); + } /** * Encodes a sequence of LatLngs into an encoded path string. * @param path {Array | BaseArrayClass} a sequence of LatLngs * @return {string} */ - @Cordova({ sync: true }) - encodePath(path: Array | BaseArrayClass): string { return; } + static encodePath(path: Array | BaseArrayClass): string { + return GoogleMaps.getPlugin().geometry.encoding.encodePath(path); + } +} + +/** + * @hidden + */ +@Plugin({ + pluginName: 'GoogleMaps', + pluginRef: 'plugin.google.maps.geometry.poly', + plugin: 'cordova-plugin-googlemaps', + repo: '' +}) +export class Poly { + + /** + * Returns true if the speicified location is in the polygon path + * @param location {ILatLng} + * @param path {ILatLng[]} + * @return {boolean} + */ + static containsLocation(location: ILatLng, path: ILatLng[]): boolean { + return GoogleMaps.getPlugin().geometry.poly.containsLocation(location, path); + } + + /** + * Returns true if the speicified location is on the polyline path + * @param location {ILatLng} + * @param path {ILatLng[]} + * @return {boolean} + */ + static isLocationOnEdge(location: ILatLng, path: ILatLng[]): boolean { + return GoogleMaps.getPlugin().geometry.poly.isLocationOnEdge(location, path); + } } /** @@ -1257,13 +1842,92 @@ export class Encoding { repo: '' }) export class Spherical { + + /** + * @deprecation + * @hidden + */ + computeDistanceBetween(from: ILatLng, to: ILatLng): number { + console.error('GoogleMaps', '[deprecated] This method is static. Please use Spherical.computeDistanceBetween()'); + return Spherical.computeDistanceBetween(from, to); + } + + /** + * @deprecation + * @hidden + */ + computeOffset(from: ILatLng, distance: number, heading: number): LatLng { + console.error('GoogleMaps', '[deprecated] This method is static. Please use Spherical.computeOffset()'); + return Spherical.computeOffset(from, distance, heading); + } + + /** + * @deprecation + * @hidden + */ + computeOffsetOrigin(to: ILatLng, distance: number, heading: number): LatLng { + console.error('GoogleMaps', '[deprecated] This method is static. Please use Spherical.computeOffsetOrigin()'); + return Spherical.computeOffsetOrigin(to, distance, heading); + } + + /** + * @deprecation + * @hidden + */ + computeLength(path: Array | BaseArrayClass): number { + console.error('GoogleMaps', '[deprecated] This method is static. Please use Spherical.computeLength()'); + return Spherical.computeLength(path); + } + + /** + * @deprecation + * @hidden + */ + computeArea(path: Array | BaseArrayClass): number { + console.error('GoogleMaps', '[deprecated] This method is static. Please use Spherical.computeArea()'); + return Spherical.computeArea(path); + } + + /** + * @deprecation + * @hidden + */ + computeSignedArea(path: Array | BaseArrayClass): number { + console.error('GoogleMaps', '[deprecated] This method is static. Please use Spherical.computeSignedArea()'); + return Spherical.computeSignedArea(path); + } + + /** + * @deprecation + * @hidden + */ + computeHeading(from: ILatLng, to: ILatLng): number { + console.error('GoogleMaps', '[deprecated] This method is static. Please use Spherical.computeHeading()'); + return Spherical.computeHeading(from, to); + } + + /** + * @deprecation + * @hidden + */ + interpolate(from: ILatLng, to: ILatLng, fraction: number): LatLng { + console.error('GoogleMaps', '[deprecated] This method is static. Please use Spherical.interpolate()'); + return Spherical.interpolate(from, to, fraction); + } + + + + + + + /** * Returns the distance, in meters, between two LatLngs. * @param locationA {ILatLng} * @param locationB {ILatLng} * @return {number} */ - computeDistanceBetween(from: ILatLng, to: ILatLng): number { + static computeDistanceBetween(from: ILatLng, to: ILatLng): number { return GoogleMaps.getPlugin().geometry.spherical.computeDistanceBetween(from, to); } @@ -1274,7 +1938,7 @@ export class Spherical { * @param heading {number} * @return {LatLng} */ - computeOffset(from: ILatLng, distance: number, heading: number): LatLng { + static computeOffset(from: ILatLng, distance: number, heading: number): LatLng { return GoogleMaps.getPlugin().geometry.spherical.computeOffset(from, distance, heading); } @@ -1285,7 +1949,7 @@ export class Spherical { * @param heading {number} The heading in degrees clockwise from north. * @return {LatLng} */ - computeOffsetOrigin(to: ILatLng, distance: number, heading: number): LatLng { + static computeOffsetOrigin(to: ILatLng, distance: number, heading: number): LatLng { return GoogleMaps.getPlugin().geometry.spherical.computeOffsetOrigin(to, distance, heading); } @@ -1294,7 +1958,7 @@ export class Spherical { * @param path {Array | BaseArrayClass} * @return {number} */ - computeLength(path: Array | BaseArrayClass): number { + static computeLength(path: Array | BaseArrayClass): number { return GoogleMaps.getPlugin().geometry.spherical.computeLength(path); } @@ -1303,7 +1967,7 @@ export class Spherical { * @param path {Array | BaseArrayClass}. * @return {number} */ - computeArea(path: Array | BaseArrayClass): number { + static computeArea(path: Array | BaseArrayClass): number { return GoogleMaps.getPlugin().geometry.spherical.computeArea(path); } @@ -1312,7 +1976,7 @@ export class Spherical { * @param path {Array | BaseArrayClass}. * @return {number} */ - computeSignedArea(path: Array | BaseArrayClass): number { + static computeSignedArea(path: Array | BaseArrayClass): number { return GoogleMaps.getPlugin().geometry.spherical.computeSignedArea(path); } @@ -1322,7 +1986,7 @@ export class Spherical { * @param to {ILatLng} * @return {number} */ - computeHeading(from: ILatLng, to: ILatLng): number { + static computeHeading(from: ILatLng, to: ILatLng): number { return GoogleMaps.getPlugin().geometry.spherical.computeHeading(from, to); } @@ -1333,7 +1997,7 @@ export class Spherical { * @param fraction {number} A fraction of the distance to travel from 0.0 to 1.0 . * @return {LatLng} */ - interpolate(from: ILatLng, to: ILatLng, fraction: number): LatLng { + static interpolate(from: ILatLng, to: ILatLng, fraction: number): LatLng { return GoogleMaps.getPlugin().geometry.spherical.interpolate(from, to, fraction); } } @@ -1349,19 +2013,84 @@ export class GoogleMap extends BaseClass { constructor(element: string | HTMLElement, options?: GoogleMapOptions) { super(); if (checkAvailability(GoogleMaps.getPluginRef(), null, GoogleMaps.getPluginName()) === true) { - if (typeof element === 'string') { - element = document.getElementById(element); + if (element instanceof HTMLElement) { + this._objectInstance = GoogleMaps.getPlugin().Map.getMap(element, options); + } else if (typeof element === 'string') { + let dummyObj: any = new (GoogleMaps.getPlugin().BaseClass)(); + this._objectInstance = dummyObj; + let onListeners: any[] = []; + let oneListeners: any[] = []; + let _origAddEventListener: any = this._objectInstance.addEventListener; + let _origAddEventListenerOnce: any = this._objectInstance.addEventListenerOnce; + this._objectInstance.addEventListener = (eventName: string, fn: () => void) => { + if (eventName === GoogleMapsEvent.MAP_READY) { + _origAddEventListener.call(dummyObj, eventName, fn); + } else { + onListeners.push([dummyObj, fn]); + } + }; + this._objectInstance.on = this._objectInstance.addEventListener; + + this._objectInstance.addEventListenerOnce = (eventName: string, fn: () => void) => { + if (eventName === GoogleMapsEvent.MAP_READY) { + _origAddEventListenerOnce.call(dummyObj, eventName, fn); + } else { + oneListeners.push([dummyObj, fn]); + } + }; + this._objectInstance.one = this._objectInstance.addEventListenerOnce; + (new Promise((resolve, reject) => { + let count: number = 0; + let timer: any = setInterval(() => { + let target = document.querySelector('.show-page #' + element); + if (target) { + clearInterval(timer); + resolve(target); + } else { + if (count++ < 20) { + return; + } + clearInterval(timer); + this._objectInstance.remove(); + console.error('Can not find the element [#' + element + ']'); + reject(); + } + }, 100); + })) + .then((target: any) => { + this._objectInstance = GoogleMaps.getPlugin().Map.getMap(target, options); + this._objectInstance.one(GoogleMapsEvent.MAP_READY, () => { + this.set('_overlays', {}); + onListeners.forEach((args) => { + this.on.apply(this, args); + }); + oneListeners.forEach((args) => { + this.one.apply(this, args); + }); + dummyObj.trigger(GoogleMapsEvent.MAP_READY); + }); + }) + .catch(() => { + this._objectInstance = null; + }); + } else if (element === null && options) { + this._objectInstance = GoogleMaps.getPlugin().Map.getMap(null, options); } - this._objectInstance = GoogleMaps.getPlugin().Map.getMap(element, options); } } /** * Changes the map div - * @param domNode + * @param domNode {HTMLElement | string} [options] If you want to display the map in an html element, you need to specify an element or id. If omit this argument, the map is detached from webview. */ - @CordovaInstance({ sync: true }) - setDiv(domNode?: HTMLElement): void { } + @InstanceCheck() + setDiv(domNode?: HTMLElement | string): void { + if (typeof domNode === 'string') { + this._objectInstance.setDiv(document.querySelector('.show-page #' + domNode)); + } else { + this._objectInstance.setDiv(domNode); + } + } /** * Returns the map HTML element @@ -1517,9 +2246,12 @@ export class GoogleMap extends BaseClass { */ @CordovaInstance() remove(): Promise { - this.get('_overlays').forEach((overlayId: string) => this.set(overlayId, null)); - this.get('_overlays').empty(); - this.set('_overlays', undefined); + if (this.get('_overlays')) { + Object.keys(this.get('_overlays')).forEach((overlayId: string) => { + this.get('_overlays')[overlayId] = null; + delete this.get('_overlays')[overlayId]; + }); + } return new Promise((resolve) => { this._objectInstance.remove(() => resolve()); }); @@ -1531,8 +2263,12 @@ export class GoogleMap extends BaseClass { */ @InstanceCheck() clear(): Promise { - this.get('_overlays').forEach((overlayId: string) => this.set(overlayId, null)); - this.get('_overlays').empty(); + if (this.get('_overlays')) { + Object.keys(this.get('_overlays')).forEach((overlayId: string) => { + this.get('_overlays')[overlayId] = null; + delete this.get('_overlays')[overlayId]; + }); + } return new Promise((resolve) => { this._objectInstance.clear(() => resolve()); }); @@ -1553,12 +2289,19 @@ export class GoogleMap extends BaseClass { fromPointToLatLng(point: any): Promise { return; } /** - * Set true if you want to show the MyLocation button + * Set true if you want to show the MyLocation control (blue dot) * @param enabled {boolean} */ @CordovaInstance({ sync: true }) setMyLocationEnabled(enabled: boolean): void {} + /** + * Set true if you want to show the MyLocation button + * @param enabled {boolean} + */ + @CordovaInstance({ sync: true }) + setMyLocationButtonEnabled(enabled: boolean): void {} + /** * Get the currently focused building * @return {Promise} @@ -1620,6 +2363,7 @@ export class GoogleMap extends BaseClass { /** * Adds a marker + * @param options {MarkerOptions} options * @return {Promise} */ @InstanceCheck() @@ -1627,14 +2371,14 @@ export class GoogleMap extends BaseClass { return new Promise((resolve, reject) => { this._objectInstance.addMarker(options, (marker: any) => { if (marker) { - let markerId: string = marker.getId(); + let overlayId: string = marker.getId(); const overlay: Marker = new Marker(this, marker); - this.get('_overlays').push(markerId); - this.set(markerId, overlay); - marker.one(markerId + '_remove', () => { - let idx: number = this.get('_overlays').indexOf(overlay); - this.get('_overlays').removeAt(idx); - this.set(markerId, undefined); + this.get('_overlays')[overlayId] = overlay; + marker.one(overlayId + '_remove', () => { + if (this.get('_overlays')) { + this.get('_overlays')[overlayId] = null; + overlay.destroy(); + } }); resolve(overlay); } else { @@ -1644,18 +2388,24 @@ export class GoogleMap extends BaseClass { }); } + /** + * Adds a marker cluster + * @param options {MarkerClusterOptions} options + * @return {Promise} + */ @InstanceCheck() addMarkerCluster(options: MarkerClusterOptions): Promise { return new Promise((resolve, reject) => { this._objectInstance.addMarkerCluster(options, (markerCluster: any) => { if (markerCluster) { + let overlayId = markerCluster.getId(); const overlay = new MarkerCluster(this, markerCluster); - this.get('_overlays').push(markerCluster.getId()); - this.set(markerCluster.getId(), overlay); + this.get('_overlays')[overlayId] = overlay; markerCluster.one('remove', () => { - let idx: number = this.get('_overlays').indexOf(overlay); - this.get('_overlays').removeAt(idx); - this.set(markerCluster.getId(), undefined); + if (this.get('_overlays')) { + this.get('_overlays')[overlayId] = null; + overlay.destroy(); + } }); markerCluster.set('_overlays', new BaseArrayClass()); resolve(overlay); @@ -1668,6 +2418,7 @@ export class GoogleMap extends BaseClass { /** * Adds a circle + * @param options {CircleOptions} options * @return {Promise} */ @InstanceCheck() @@ -1675,14 +2426,14 @@ export class GoogleMap extends BaseClass { return new Promise((resolve, reject) => { this._objectInstance.addCircle(options, (circle: any) => { if (circle) { - let circleId: string = circle.getId(); + let overlayId: string = circle.getId(); const overlay = new Circle(this, circle); - this.get('_overlays').push(circleId); - this.set(circleId, overlay); - circle.one(circleId + '_remove', () => { - let idx: number = this.get('_overlays').indexOf(overlay); - this.get('_overlays').removeAt(idx); - this.set(circleId, undefined); + this.get('_overlays')[overlayId] = overlay; + circle.one(overlayId + '_remove', () => { + if (this.get('_overlays')) { + this.get('_overlays')[overlayId] = null; + overlay.destroy(); + } }); resolve(overlay); } else { @@ -1694,6 +2445,7 @@ export class GoogleMap extends BaseClass { /** * Adds a polygon + * @param options {PolygonOptions} options * @return {Promise} */ @InstanceCheck() @@ -1701,14 +2453,14 @@ export class GoogleMap extends BaseClass { return new Promise((resolve, reject) => { this._objectInstance.addPolygon(options, (polygon: any) => { if (polygon) { - let polygonId: string = polygon.getId(); + let overlayId: string = polygon.getId(); const overlay = new Polygon(this, polygon); - this.get('_overlays').push(polygonId); - this.set(polygonId, overlay); - polygon.one(polygonId + '_remove', () => { - let idx: number = this.get('_overlays').indexOf(overlay); - this.get('_overlays').removeAt(idx); - this.set(polygonId, undefined); + this.get('_overlays')[overlayId] = overlay; + polygon.one(overlayId + '_remove', () => { + if (this.get('_overlays')) { + this.get('_overlays')[overlayId] = null; + overlay.destroy(); + } }); resolve(overlay); } else { @@ -1719,7 +2471,8 @@ export class GoogleMap extends BaseClass { } /** - * + * Adds a polyline + * @param options {PolylineOptions} options * @return {Promise} */ @InstanceCheck() @@ -1727,14 +2480,14 @@ export class GoogleMap extends BaseClass { return new Promise((resolve, reject) => { this._objectInstance.addPolyline(options, (polyline: any) => { if (polyline) { - let polylineId: string = polyline.getId(); + let overlayId: string = polyline.getId(); const overlay = new Polyline(this, polyline); - this.get('_overlays').push(polylineId); - this.set(polylineId, overlay); - polyline.one(polylineId + '_remove', () => { - let idx: number = this.get('_overlays').indexOf(overlay); - this.get('_overlays').removeAt(idx); - this.set(polylineId, undefined); + this.get('_overlays')[overlayId] = overlay; + polyline.one(overlayId + '_remove', () => { + if (this.get('_overlays')) { + this.get('_overlays')[overlayId] = null; + overlay.destroy(); + } }); resolve(overlay); } else { @@ -1745,6 +2498,8 @@ export class GoogleMap extends BaseClass { } /** + * Adds a tile overlay + * @param options {TileOverlayOptions} options * @return {Promise} */ @InstanceCheck() @@ -1752,14 +2507,14 @@ export class GoogleMap extends BaseClass { return new Promise((resolve, reject) => { this._objectInstance.addTileOverlay(options, (tileOverlay: any) => { if (tileOverlay) { - let tileOverlayId: string = tileOverlay.getId(); + let overlayId: string = tileOverlay.getId(); const overlay = new TileOverlay(this, tileOverlay); - this.get('_overlays').push(tileOverlayId); - this.set(tileOverlayId, overlay); - tileOverlay.one(tileOverlayId + '_remove', () => { - let idx: number = this.get('_overlays').indexOf(overlay); - this.get('_overlays').removeAt(idx); - this.set(tileOverlayId, undefined); + this.get('_overlays')[overlayId] = overlay; + tileOverlay.one(overlayId + '_remove', () => { + if (this.get('_overlays')) { + this.get('_overlays')[overlayId] = null; + overlay.destroy(); + } }); resolve(overlay); } else { @@ -1770,6 +2525,8 @@ export class GoogleMap extends BaseClass { } /** + * Adds a ground overlay + * @param options {GroundOverlayOptions} options * @return {Promise} */ @InstanceCheck() @@ -1777,14 +2534,14 @@ export class GoogleMap extends BaseClass { return new Promise((resolve, reject) => { this._objectInstance.addGroundOverlay(options, (groundOverlay: any) => { if (groundOverlay) { - let groundOverlayId: string = groundOverlay.getId(); + let overlayId: string = groundOverlay.getId(); const overlay = new GroundOverlay(this, groundOverlay); - this.get('_overlays').push(groundOverlayId); - this.set(groundOverlayId, overlay); - groundOverlay.one(groundOverlayId + '_remove', () => { - let idx: number = this.get('_overlays').indexOf(overlay); - this.get('_overlays').removeAt(idx); - this.set(groundOverlayId, undefined); + this.get('_overlays')[overlayId] = overlay; + groundOverlay.one(overlayId + '_remove', () => { + if (this.get('_overlays')) { + this.get('_overlays')[overlayId] = null; + overlay.destroy(); + } }); resolve(overlay); } else { @@ -1795,33 +2552,40 @@ export class GoogleMap extends BaseClass { } /** - * Refreshes layout. - * You can execute it, but you don't need to do that. The plugin does this automatically. + * Adds a kml overlay + * @param options {KmlOverlayOptions} options + * @return {Promise} */ - @CordovaInstance({ sync: true }) - refreshLayout(): void {} + @InstanceCheck() + addKmlOverlay(options: KmlOverlayOptions): Promise { + return new Promise((resolve, reject) => { + this._objectInstance.addKmlOverlay(options, (kmlOverlay: any) => { + if (kmlOverlay) { + let overlayId: string = kmlOverlay.getId(); + const overlay = new KmlOverlay(this, kmlOverlay); + this.get('_overlays')[overlayId] = overlay; + kmlOverlay.one(overlayId + '_remove', () => { + if (this.get('_overlays')) { + this.get('_overlays')[overlayId] = null; + overlay.destroy(); + } + }); + resolve(overlay); + } else { + reject(); + } + }); + }); + } /** - * @return {Promise} + * Returns the base64 encoded screen capture of the map. + * @param options {ToDataUrlOptions} [options] options + * @return {Promise} */ @CordovaInstance() - toDataURL(): Promise { return; } + toDataURL(params?: ToDataUrlOptions): Promise { return; } - // /** - // * @return {Promise} - // */ - // @InstanceCheck() - // addKmlOverlay(options: KmlOverlayOptions): Promise { - // return new Promise((resolve, reject) => { - // this._objectInstance.addKmlOverlay(options, (kmlOverlay: any) => { - // if (kmlOverlay) { - // resolve(new KmlOverlay(kmlOverlay)); - // } else { - // reject(); - // } - // }); - // }); - // } } /** @@ -1848,7 +2612,7 @@ export class GroundOverlay extends BaseClass { * Return the map instance. * @return {GoogleMap} */ - getMap(): any { return this._map; } + getMap(): GoogleMap { return this._map; } /** * Change the bounds of the GroundOverlay @@ -1938,7 +2702,7 @@ export class GroundOverlay extends BaseClass { */ @CordovaCheck() remove(): void { - this._objectInstance.getMap().get('_overlays').set(this.getId(), undefined); + delete this._objectInstance.getMap().get('_overlays')[this.getId()]; this._objectInstance.remove(); this.destroy(); } @@ -1953,18 +2717,11 @@ export class GroundOverlay extends BaseClass { pluginRef: 'plugin.google.maps.HtmlInfoWindow', repo: '' }) -export class HtmlInfoWindow extends IonicNativePlugin { - private _objectInstance: any; +export class HtmlInfoWindow extends BaseClass { - constructor(initialData?: any) { + constructor() { super(); - if (checkAvailability(HtmlInfoWindow.getPluginRef(), null, HtmlInfoWindow.getPluginName()) === true) { - if (initialData instanceof GoogleMaps.getPlugin().HtmlInfoWindow) { - this._objectInstance = initialData; - } else { - this._objectInstance = new (HtmlInfoWindow.getPlugin())(); - } - } + this._objectInstance = new (GoogleMaps.getPlugin().HtmlInfoWindow)(); } /** @@ -1977,9 +2734,10 @@ export class HtmlInfoWindow extends IonicNativePlugin { /** * Set your HTML contents. * @param content {any} String containing text or HTML element + * @param cssOptions? {any} CSS styles for the container element of HTMLInfoWindow */ @CordovaInstance() - setContent(content: string | Element): void {} + setContent(content: string | Element, cssOptions?: any): void {} /** * Open the htmlInfoWindow @@ -2020,7 +2778,7 @@ export class Marker extends BaseClass { * Return the map instance. * @return {GoogleMap} */ - getMap(): any { return this._map; } + getMap(): GoogleMap { return this._map; } /** * Set the marker position. @@ -2122,7 +2880,7 @@ export class Marker extends BaseClass { */ @CordovaCheck() remove(): void { - this._objectInstance.getMap().get('_overlays').set(this.getId(), undefined); + delete this._objectInstance.getMap().get('_overlays')[this.getId()]; this._objectInstance.remove(); this.destroy(); } @@ -2235,16 +2993,28 @@ export class MarkerCluster extends BaseClass { @CordovaInstance({ sync: true }) getId(): string { return; } + /** + * Add one marker location + * @param marker {MarkerOptions} one location + * @param skipRedraw? {boolean} marker cluster does not redraw the marker cluster if true. + */ @CordovaInstance({ sync: true }) - addMarker(marker: MarkerOptions): void {} + addMarker(marker: MarkerOptions, skipRedraw?: boolean): void {} + /** + * Add marker locations + * @param markers {MarkerOptions[]} multiple locations + */ @CordovaInstance({ sync: true }) addMarkers(markers: MarkerOptions[]): void {} + /** + * Remove the marker cluster + */ @InstanceCheck() remove(): void { this._objectInstance.set('_overlays', undefined); - this._objectInstance.getMap().get('_overlays').set(this.getId(), undefined); + delete this._objectInstance.getMap().get('_overlays')[this.getId()]; this._objectInstance.remove(); this.destroy(); } @@ -2253,7 +3023,7 @@ export class MarkerCluster extends BaseClass { * Return the map instance. * @return {GoogleMap} */ - getMap(): any { return this._map; } + getMap(): GoogleMap { return this._map; } } @@ -2281,7 +3051,7 @@ export class Polygon extends BaseClass { * Return the map instance. * @return {GoogleMap} */ - getMap(): any { return this._map; } + getMap(): GoogleMap { return this._map; } /** * Change the polygon points. @@ -2295,8 +3065,10 @@ export class Polygon extends BaseClass { * You can modify the points. * @return {BaseArrayClass} */ - @CordovaInstance({ sync: true }) - getPoints(): BaseArrayClass { return; } + @CordovaCheck() + getPoints(): BaseArrayClass { + return new BaseArrayClass(this._objectInstance.getPoints()); + } /** * Change the polygon holes. @@ -2310,8 +3082,15 @@ export class Polygon extends BaseClass { * You can modify the holes. * @return {BaseArrayClass} */ - @CordovaInstance({ sync: true }) - getHoles(): BaseArrayClass { return; } + @CordovaCheck() + getHoles(): BaseArrayClass { + let holes: ILatLng[][] = this._objectInstance.getPoints(); + let results: BaseArrayClass = new BaseArrayClass(); + holes.forEach((hole: ILatLng[]) => { + results.push(hole); + }); + return results; + } /** * Change the filling color (inner color) @@ -2387,7 +3166,7 @@ export class Polygon extends BaseClass { */ @InstanceCheck() remove(): void { - this._objectInstance.getMap().get('_overlays').set(this.getId(), undefined); + delete this._objectInstance.getMap().get('_overlays')[this.getId()]; this._objectInstance.remove(); this.destroy(); } @@ -2444,7 +3223,7 @@ export class Polyline extends BaseClass { * Return the map instance. * @return {GoogleMap} */ - getMap(): any { return this._map; } + getMap(): GoogleMap { return this._map; } /** * Change the polyline points. @@ -2456,9 +3235,12 @@ export class Polyline extends BaseClass { /** * Return an instance of the BaseArrayClass * You can modify the points. + * @return {BaseArrayClass} */ - @CordovaInstance({ sync: true }) - getPoints(): BaseArrayClass { return; } + @CordovaCheck() + getPoints(): BaseArrayClass { + return new BaseArrayClass(this._objectInstance.getPoints()); + } /** * When true, edges of the polyline are interpreted as geodesic and will follow the curvature of the Earth. @@ -2548,7 +3330,7 @@ export class Polyline extends BaseClass { */ @InstanceCheck() remove(): void { - this._objectInstance.getMap().get('_overlays').set(this.getId(), undefined); + delete this._objectInstance.getMap().get('_overlays')[this.getId()]; this._objectInstance.remove(); this.destroy(); } @@ -2578,7 +3360,7 @@ export class TileOverlay extends BaseClass { * Return the map instance. * @return {GoogleMap} */ - getMap(): any { return this._map; } + getMap(): GoogleMap { return this._map; } /** * Set whether the tiles should fade in. @@ -2647,108 +3429,88 @@ export class TileOverlay extends BaseClass { */ @CordovaCheck() remove(): void { - this._objectInstance.getMap().get('_overlays').set(this.getId(), undefined); + delete this._objectInstance.getMap().get('_overlays')[this.getId()]; this._objectInstance.remove(); this.destroy(); } } -// /** -// * @hidden -// */ -// export interface KmlOverlayOptions { -// url?: string; -// preserveViewport?: boolean; -// animation?: boolean; -// } -// /** -// * @hidden -// */ -// export class KmlOverlay { -// -// constructor(private _objectInstance: any) { } -// -// /** -// * Adds an event listener. -// * -// * @return {Observable} -// */ -// addEventListener(eventName: string): Observable { -// return Observable.fromEvent(this._objectInstance, eventName); -// } -// -// /** -// * Adds an event listener that works once. -// * -// * @return {Promise} -// */ -// addListenerOnce(eventName: string): Promise { -// if (!this._objectInstance) { -// return Promise.reject({ error: 'plugin_not_installed' }); -// } -// return new Promise( -// resolve => this._objectInstance.addListenerOnce(eventName, resolve) -// ); -// } -// -// /** -// * Gets a value -// * @param key -// */ -// @CordovaInstance({ sync: true }) -// get(key: string): any { return; } -// -// /** -// * Sets a value -// * @param key -// * @param value -// */ -// @CordovaInstance({ sync: true }) -// set(key: string, value: any): void { } -// -// /** -// * Listen to a map event. -// * -// * @return {Observable} -// */ -// on(eventName: string): Observable { -// if (!this._objectInstance) { -// return new Observable((observer) => { -// observer.error({ error: 'plugin_not_installed' }); -// }); -// } -// -// return new Observable( -// (observer) => { -// this._objectInstance.on(eventName, observer.next.bind(observer)); -// return () => this._objectInstance.off(event); -// } -// ); -// } -// -// /** -// * Listen to a map event only once. -// * -// * @return {Promise} -// */ -// one(eventName: string): Promise { -// if (!this._objectInstance) { -// return Promise.reject({ error: 'plugin_not_installed' }); -// } -// return new Promise( -// resolve => this._objectInstance.one(eventName, resolve) -// ); -// } -// -// /** -// * Clears all stored values -// */ -// @CordovaInstance({ sync: true }) -// empty(): void { } -// -// @CordovaInstance({ sync: true }) -// remove(): void { } -// -// @CordovaInstance({ sync: true }) -// getOverlays(): Array { return; } -// } +/** + * @hidden + */ +export class KmlOverlay extends BaseClass { + + private _map: GoogleMap; + + constructor(_map: GoogleMap, _objectInstance: any) { + super(); + this._map = _map; + this._objectInstance = _objectInstance; + + Object.defineProperty(self, 'camera', { + value: this._objectInstance.camera, + writable: false + }); + Object.defineProperty(self, 'kmlData', { + value: this._objectInstance.kmlData, + writable: false + }); + } + + /** + * Returns the viewport to contains all overlays + */ + @CordovaInstance({ sync: true }) + getDefaultViewport(): CameraPosition { return; } + + /** + * Return the ID of instance. + * @return {string} + */ + @CordovaInstance({ sync: true }) + getId(): string { return; } + + /** + * Return the map instance. + * @return {GoogleMap} + */ + getMap(): GoogleMap { return this._map; } + + /** + * Change visibility of the polyline + * @param visible {boolean} + */ + @CordovaInstance({ sync: true }) + setVisible(visible: boolean): void {} + + /** + * Return true if the polyline is visible + * @return {boolean} + */ + @CordovaInstance({ sync: true }) + getVisible(): boolean { return; } + + /** + * Change clickablity of the KmlOverlay + * @param clickable {boolean} + */ + @CordovaInstance({ sync: true }) + setClickable(clickable: boolean): void {} + + /** + * Return true if the KmlOverlay is clickable + * @return {boolean} + */ + @CordovaInstance({ sync: true }) + getClickable(): boolean { return; } + + /** + * Remove the KmlOverlay + */ + @InstanceCheck() + remove(): void { + delete this._objectInstance.getMap().get('_overlays')[this.getId()]; + this._objectInstance.remove(); + this.destroy(); + } +} diff --git a/src/@ionic-native/plugins/google-play-games-services/index.ts b/src/@ionic-native/plugins/google-play-games-services/index.ts new file mode 100644 index 00000000..5e6caecd --- /dev/null +++ b/src/@ionic-native/plugins/google-play-games-services/index.ts @@ -0,0 +1,264 @@ +import { Injectable } from '@angular/core'; +import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; + +export interface ScoreData { + + /** + * The score to submit. + */ + score: number; + + /** + * The leaderboard ID from Google Play Developer console. + */ + leaderboardId: string; + +} + +export interface LeaderboardData { + + /** + * The leaderboard ID from Goole Play Developer console. + */ + leaderboardId: string; + +} + +export interface AchievementData { + + /** + * The achievement ID from Google Play Developer console. + */ + achievementId: string; + +} + +export interface IncrementableAchievementData extends AchievementData { + + /** + * The amount to increment the achievement by. + */ + numSteps: number; + +} + +export interface SignedInResponse { + + /** + * True or false is the use is signed in. + */ + isSignedIn: boolean; + +} + +export interface Player { + + /** + * The players display name. + */ + displayName: string; + + /** + * The ID given to the player by Play Games Services. + */ + playerId: string; + + /** + * The title of the player based on their gameplay activity. Not + * all players have this and it may change over time. + */ + title: string|null; + + /** + * Retrieves the URI for loading this player's icon-size profile image. + * Returns null if the player has no profile image. + */ + iconImageUrl: string; + + /** + * Retrieves the URI for loading this player's hi-res profile image. Returns + * null if the player has no profile image. + */ + hiResIconImageUrl: string; + +} + +/** + * @name Google Play Games Services + * @description + * A Cordova plugin that let's you interact with Google Play Games Services. + * + * @usage + * ```typescript + * import { GooglePlayGamesServices } from '@ionic-native/google-play-games-services'; + * + * + * constructor(private googlePlayGamesServices: GooglePlayGamesServices) { } + * + * ... + * + * // Authenticate with Play Games Services + * this.googlePlayGamesServices.auth() + * .then(() => console.log('Logged in to Play Games Services')) + * .catch(e) => console.log('Error logging in Play Games Services', e); + * + * // Sign out of Play Games Services. + * this.googlePlayGamesServices.signOut() + * .then(() => console.log('Logged out of Play Games Services')) + * .catch(e => console.log('Error logging out of Play Games Services', e); + * + * // Check auth status. + * this.googlePlayGamesServices.isSignedIn() + * .then((signedIn: SignedInResponse) => { + * if (signedIn.isSignedIn) { + * hideLoginButton(); + * } + * }); + * + * // Fetch currently authenticated user's data. + * this.googlePlayGamesServices.showPlayer().then((data: Player) => { + * console.log('Player data', data); + * }); + * + * // Submit a score. + * this.googlePlayGamesServices.submitScore({ + * score: 100, + * leaderboardId: 'SomeLeaderboardId' + * }); + * + * // Show the native leaderboards window. + * this.googlePlayGamesServices.showAllLeaderboards() + * .then(() => console.log('The leaderboard window is visible.')); + * + * // Show a signle native leaderboard window. + * this.googlePlayGamesServices.showLeaderboard({ + * leaderboardId: 'SomeLeaderBoardId' + * }).then(() => console.log('The leaderboard window is visible.')); + * + * // Unlock an achievement. + * this.googlePlayGamesServices.unlockAchievement({ + * achievementId: 'SomeAchievementId' + * }).then(() => console.log('Achievement unlocked')); + * + * // Incremement an achievement. + * this.googlePlayGamesServices.incrementAchievement({ + * step: 1, + * achievementId: 'SomeAchievementId' + * }).then(() => console.log('Achievement incremented')); + * + * // Show the native achievements window. + * this.googlePlayGamesServices.showAchivements() + * .then(() => console.log('The achievements window is visible.')); + * + * ``` + */ +@Plugin({ + pluginName: 'GooglePlayGamesServices', + plugin: 'cordova-plugin-play-games-service', + pluginRef: 'plugins.playGamesServices', + repo: 'https://github.com/artberri/cordova-plugin-play-games-services', + platforms: ['Android'], + install: 'ionic cordova plugin add cordova-plugin-play-games-services --variable APP_ID="YOUR_APP_ID', +}) +@Injectable() +export class GooglePlayGamesServices extends IonicNativePlugin { + + /** + * Initialise native Play Games Service login procedure. + * + * @return {Promise} Returns a promise that resolves when the player + * is authenticated with Play Games Services. + */ + @Cordova() + auth(): Promise { return; } + + /** + * Sign out of Google Play Games Services. + * + * @return {Promise} Returns a promise that resolve when the player + * successfully signs out. + */ + @Cordova() + signOut(): Promise { return; } + + /** + * Check if the user is signed in. + * + * @return {Promise} Returns a promise that resolves with + * the signed in response. + */ + @Cordova() + isSignedIn(): Promise { return; } + + /** + * Show the currently authenticated player. + * + * @return {Promise} Returns a promise that resolves when Play + * Games Services returns the authenticated player. + */ + @Cordova() + showPlayer(): Promise { return; } + + /** + * Submit a score to a leaderboard. You should ensure that you have a + * successful return from auth() before submitting a score. + * + * @param data {ScoreData} The score data you want to submit. + * @return {Promise} Returns a promise that resolves when the + * score is submitted. + */ + @Cordova() + submitScore(data: ScoreData): Promise { return; } + + /** + * Launches the native Play Games leaderboard view controller to show all the + * leaderboards. + * + * @return {Promise} Returns a promise that resolves when the native + * leaderboards window opens. + */ + @Cordova() + showAllLeaderboards(): Promise { return; } + + /** + * Launches the native Play Games leaderboard view controll to show the + * specified leaderboard. + * + * @param data {LeaderboardData} The leaderboard you want to show. + * @return {Promise} Returns a promise that resolves when the native + * leaderboard window opens. + */ + @Cordova() + showLeaderboard(data: LeaderboardData): Promise { return; } + + /** + * Unlock an achievement. + * + * @param data {AchievementData} + * @return {Promise} Returns a promise that resolves when the + * achievement is unlocked. + */ + @Cordova() + unlockAchievement(data: AchievementData): Promise { return; } + + /** + * Increment an achievement. + * + * @param data {IncrementableAchievementData} + * @return {Promise} Returns a promise that resolves when the + * achievement is incremented. + */ + @Cordova() + incrementAchievement(data: IncrementableAchievementData): Promise { return; } + + /** + * Lauches the native Play Games achievements view controller to show + * achievements. + * + * @return {Promise} Returns a promise that resolves when the + * achievement window opens. + */ + @Cordova() + showAchievements(): Promise { return; } + +} diff --git a/src/@ionic-native/plugins/google-plus/index.ts b/src/@ionic-native/plugins/google-plus/index.ts index ee57fb4f..95a69106 100644 --- a/src/@ionic-native/plugins/google-plus/index.ts +++ b/src/@ionic-native/plugins/google-plus/index.ts @@ -63,4 +63,11 @@ export class GooglePlus extends IonicNativePlugin { @Cordova() disconnect(): Promise { return; } + /** + * This will retrieve the Android signing certificate fingerprint which is required in the Google Developer Console. + * @returns {Promise} + */ + @Cordova() + getSigningCertificateFingerprint(): Promise { return; } + } diff --git a/src/@ionic-native/plugins/health-kit/index.ts b/src/@ionic-native/plugins/health-kit/index.ts index 3184729a..aabd348e 100644 --- a/src/@ionic-native/plugins/health-kit/index.ts +++ b/src/@ionic-native/plugins/health-kit/index.ts @@ -6,7 +6,7 @@ export interface HealthKitOptions { * HKWorkoutActivityType constant * Read more here: https://developer.apple.com/library/ios/documentation/HealthKit/Reference/HKWorkout_Class/#//apple_ref/c/tdef/HKWorkoutActivityType */ - activityType?: string; // + activityType?: string; /** * 'hour', 'week', 'year' or 'day', default 'day' @@ -18,6 +18,12 @@ export interface HealthKitOptions { */ amount?: number; + /** + * specifies if the data returned by querySampleType() should be sorted by + * end date in ascending order, default is false + */ + ascending?: boolean; + /** * */ @@ -63,6 +69,11 @@ export interface HealthKitOptions { */ extraData?: any; + /** + * limits the maximum number of records returned by querySampleType() + */ + limit?: number; + /** * */ diff --git a/src/@ionic-native/plugins/hot-code-push/index.ts b/src/@ionic-native/plugins/hot-code-push/index.ts new file mode 100644 index 00000000..07cfb7b1 --- /dev/null +++ b/src/@ionic-native/plugins/hot-code-push/index.ts @@ -0,0 +1,270 @@ +import { Injectable } from '@angular/core'; +import { Cordova, Plugin, IonicNativePlugin, CordovaCheck } from '@ionic-native/core'; +import { Observable } from 'rxjs/Observable'; + +declare var chcp: any; + +export interface HotCodePushVersion { + /** + * Application's version name. This version is visible to the user on the stores. + */ + appVersion: string; + /** + * Application's build version number. + */ + buildVersion: string; + /** + * Version of the web content, that is displayed to the user. Basically, value of the release property from chcp.json file in your local www folder. + */ + currentWebVersion: string; + /** + * Previous web content version. This is a version of our backup. Can be empty, if there were no updates installed. + */ + previousWebVersion: string; + /** + * Version number of the web content, that was loaded by the plugin and ready to be installed. Basically, value of the release property from chcp.json file on your server. Can be empty, if no update is waiting for installation. + */ + readyToInstallWebVersion: string; +} + +export interface HotCodePushUpdate { + /** + * Current version installed. + */ + currentVersion: string; + /** + * Available version to replace the current one. + */ + readyToInstallVersion: string; +} + +export interface HotCodePushRequestOptions { + /** + * Url of the chcp.json config on the server. Plugin will use this one instead of from the config.xml. + */ + 'config-file'?: string; + /** + * Additional HTTP headers, that will be added to all requests in update download process, including loading configs and new/changed files. + */ + 'request-headers'?: {[key: string]: any}; +} + +/** + * For description on error codes, please visit https://github.com/nordnet/cordova-hot-code-push/wiki/Error-codes + */ +export enum ErrorCode { + NOTHING_TO_INSTALL = 1, + NOTHING_TO_UPDATE = 2, + FAILED_TO_DOWNLOAD_APPLICATION_CONFIG = -1, + APPLICATION_BUILD_VERSION_TOO_LOW = -2, + FAILED_TO_DOWNLOAD_CONTENT_MANIFEST = -3, + FAILED_TO_DOWNLOAD_UPDATE_FILES = -4, + FAILED_TO_MOVE_LOADED_FILES_TO_INSTALLATION_FOLDER = -5, + UPDATE_IS_INVALID = -6, + FAILED_TO_COPY_FILES_FROM_PREVIOUS_RELEASE = -7, + FAILED_TO_COPY_NEW_CONTENT_FILES = -8, + LOCAL_VERSION_OF_APPLICATION_CONFIG_NOT_FOUND = -9, + LOCAL_VERSION_OF_MANIFEST_NOT_FOUND = -10, + LOADED_VERSION_OF_APPLICATION_CONFIG_NOT_FOUND = -11, + LOADED_VERSION_OF_MANIFEST_NOT_FOUND = -12, + FAILED_TO_INSTALL_ASSETS_ON_EXTERNAL_STORAGE = -13, + CANT_INSTALL_WHILE_DOWNLOAD_IN_PROGRESS = -14, + CANT_DOWNLOAD_UPDATE_WHILE_INSTALLATION_IN_PROGRESS = -15, + INSTALLATION_ALREADY_IN_PROGRESS = -16, + DOWNLOAD_ALREADY_IN_PROGRESS = -17, + ASSETS_FOLDER_IS_NOT_YET_INSTALLED = -18, + NEW_APPLICATION_CONFIG_IS_INVALID = -19 +} + +export interface HotCodePushError { + code: ErrorCode; + description: string; +} + +export interface HotCodePushEventData { + details?: { + error?: HotCodePushError; + }; +}; + +/** + * @name Hot Code Push + * @description + * HotCodePush plugin for Cordova that supports iOS and Android. This plugin allows you to keep your html, css and js files synced with your server. + * + * For more info, please see the detailed wiki https://github.com/nordnet/cordova-hot-code-push/wiki + * + * @usage + * ```typescript + * import { HotCodePush } from '@ionic-native/hot-code-push'; + * + * constructor(private hotCodePush: HotCodePush) { } + * + * ... + * + * hotCodePush.fetchUpdate(options).then(data => { console.log('Update available'); }); + * + * ``` + */ +@Plugin({ + pluginName: 'HotCodePush', + plugin: 'cordova-hot-code-push', + pluginRef: 'chcp', + repo: 'https://github.com/nordnet/cordova-hot-code-push', + platforms: ['Android', 'iOS'] +}) +@Injectable() +export class HotCodePush extends IonicNativePlugin { + /** + * Show dialog with the request to update application through the Store (App Store or Google Play). + * @param message {string} Message to show in the dialog + * @returns {Promise} Resolves when the user is redirected to the store, rejects if the user declines. + */ + @Cordova() + requestApplicationUpdate(message: string): Promise { return; } + + /** + * Download updates from the server-side. + * @param options {HotCodePushRequestOptions} Additional options to the request. If not set - preferences from config.xml are used. + * @returns {Promise} Resolves if there is an update available, rejects otherwise. + */ + @CordovaCheck() + fetchUpdate(options?: HotCodePushRequestOptions): Promise { + return new Promise((resolve, reject) => { + HotCodePush.getPlugin().fetchUpdate((error: HotCodePushError, data: any) => { + if (error) { + reject(error); + } else { + resolve(data); + } + }, options); + }); + } + + /** + * Install update if there is anything to install. + * @returns {Promise} Resolves when the update is installed. + */ + @Cordova({ + callbackStyle: 'node' + }) + installUpdate(): Promise { return; } + + /** + * Check if update was loaded and ready to be installed. + * @returns {Promise} Resolves if an update is ready, rejects if there is no update. + */ + @Cordova({ + callbackStyle: 'node' + }) + isUpdateAvailableForInstallation(): Promise { return; } + + /** + * Gets information about the app's versions. + * @returns {Promise} Resolves with the information about the versions. + */ + @Cordova({ + callbackStyle: 'node' + }) + getVersionInfo(): Promise { return; } + + /** + * Event sent when new release was successfully loaded and ready to be installed. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_updateIsReadyToInstall' + }) + onUpdateIsReadyToInstall(): Observable { return; } + + /** + * Event sent when plugin couldn't load update from the server. Error details are attached to the event. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_updateLoadFailed' + }) + onUpdateLoadFailed(): Observable { return; } + + /** + * Event sent when we successfully loaded application config from the server, but there is nothing new is available. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_nothingToUpdate' + }) + onNothingToUpdate(): Observable { return; } + + /** + * Event sent when an update is about to be installed. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_beforeInstall' + }) + onBeforeInstall(): Observable { return; } + + /** + * Event sent when update was successfully installed. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_updateInstalled' + }) + onUpdateInstalled(): Observable { return; } + + /** + * Event sent when update installation failed. Error details are attached to the event. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_updateInstallFailed' + }) + onUpdateInstallFailed(): Observable { return; } + + /** + * Event sent when there is nothing to install. Probably, nothing was loaded before that. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_nothingToInstall' + }) + onNothingToInstall(): Observable { return; } + + /** + * Event sent when plugin is about to start installing bundle content on the external storage. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_beforeAssetsInstalledOnExternalStorage' + }) + onBeforeAssetsInstalledOnExternalStorage(): Observable { return; } + + /** + * Event sent when plugin successfully copied web project files from bundle on the external storage. Most likely you will use it for debug purpose only. Or even never. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_assetsInstalledOnExternalStorage' + }) + onAssetsInstalledOnExternalStorage(): Observable { return; } + + /** + * Event sent when plugin couldn't copy files from bundle on the external storage. If this happens - plugin won't work. Can occur when there is not enough free space on the device. + * @returns {Observable} + */ + @Cordova({ + eventObservable: true, + event: 'chcp_assetsInstallationError' + }) + onAssetsInstallationError(): Observable { return; } +} diff --git a/src/@ionic-native/plugins/http/index.ts b/src/@ionic-native/plugins/http/index.ts index 73d97c75..c55d2e46 100644 --- a/src/@ionic-native/plugins/http/index.ts +++ b/src/@ionic-native/plugins/http/index.ts @@ -1,19 +1,23 @@ import { Injectable } from '@angular/core'; -import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; export interface HTTPResponse { /** * The status number of the response */ status: number; - /** - * The data that is in the response. This property usually exists when a promise returned by a request method resolves. - */ - data?: any; /** * The headers of the response */ headers: any; + /** + * The URL of the response. This property will be the final URL obtained after any redirects. + */ + url: string; + /** + * The data that is in the response. This property usually exists when a promise returned by a request method resolves. + */ + data?: any; /** * Error response from the server. This property usually exists when a promise returned by a request method rejects. */ @@ -33,7 +37,7 @@ export interface HTTPResponse { * ```typescript * import { HTTP } from '@ionic-native/http'; * - * constructor(private http: HTTP) { } + * constructor(private http: HTTP) {} * * ... * @@ -66,7 +70,6 @@ export interface HTTPResponse { }) @Injectable() export class HTTP extends IonicNativePlugin { - /** * This returns an object representing a basic HTTP Authorization header of the form. * @param username {string} Username @@ -74,7 +77,12 @@ export class HTTP extends IonicNativePlugin { * @returns {Object} an object representing a basic HTTP Authorization header of the form {'Authorization': 'Basic base64encodedusernameandpassword'} */ @Cordova({ sync: true }) - getBasicAuthHeader(username: string, password: string): { Authorization: string; } { return; } + getBasicAuthHeader( + username: string, + password: string + ): { Authorization: string } { + return; + } /** * This sets up all future requests to use Basic HTTP authentication with the given username and password. @@ -82,55 +90,101 @@ export class HTTP extends IonicNativePlugin { * @param password {string} Password */ @Cordova({ sync: true }) - useBasicAuth(username: string, password: string): void { } + useBasicAuth(username: string, password: string): void {} /** - * Set a header for all future requests. Takes a header and a value. + * Get all headers defined for a given hostname. + * @param host {string} The hostname + * @returns {string} return all headers defined for the hostname + */ + @Cordova({ sync: true }) + getHeaders(host: string): string { + return; + } + + /** + * Set a header for all future requests. Takes a hostname, a header and a value. + * @param host {string} The hostname to be used for scoping this header * @param header {string} The name of the header * @param value {string} The value of the header */ @Cordova({ sync: true }) - setHeader(header: string, value: string): void { } + setHeader(host: string, header: string, value: string): void {} + + /** + * Get the name of the data serializer which will be used for all future POST and PUT requests. + * @returns {string} returns the name of the configured data serializer + */ + @Cordova({ sync: true }) + getDataSerializer(): string { + return; + } /** * Set the data serializer which will be used for all future POST and PUT requests. Takes a string representing the name of the serializer. - * @param serializer {string} The name of the serializer. Can be urlencoded or json + * @param serializer {string} The name of the serializer. Can be urlencoded, utf8 or json */ @Cordova({ sync: true }) - setDataSerializer(serializer: string): void { } + setDataSerializer(serializer: string): void {} /** - * Clear all cookies + * Add a custom cookie. + * @param url {string} Scope of the cookie + * @param cookie {string} RFC compliant cookie string */ @Cordova({ sync: true }) - clearCookies(): void { } + setCookie(url: string, cookie: string): void {} /** - * Remove cookies + * Clear all cookies. + */ + @Cordova({ sync: true }) + clearCookies(): void {} + + /** + * Remove cookies for given URL. * @param url {string} * @param cb */ @Cordova({ sync: true }) - removeCookies(url: string, cb: () => void): void { } + removeCookies(url: string, cb: () => void): void {} /** - * Set request timeout + * Resolve cookie string for given URL. + * @param url {string} + */ + @Cordova({ sync: true }) + getCookieString(url: string): string { return; } + + /** + * Get global request timeout value in seconds. + * @returns {number} returns the global request timeout value + */ + @Cordova({ sync: true }) + getRequestTimeout(): number { + return; + } + + /** + * Set global request timeout value in seconds. * @param timeout {number} The timeout in seconds. Default 60 */ @Cordova({ sync: true }) - setRequestTimeout(timeout: number): void { } + setRequestTimeout(timeout: number): void {} /** * Enable or disable SSL Pinning. This defaults to false. * - * To use SSL pinning you must include at least one .cer SSL certificate in your app project. You can pin to your server certificate or to one of the issuing CA certificates. For ios include your certificate in the root level of your bundle (just add the .cer file to your project/target at the root level). For android include your certificate in your project's platforms/android/assets folder. In both cases all .cer files found will be loaded automatically. If you only have a .pem certificate see this stackoverflow answer. You want to convert it to a DER encoded certificate with a .cer extension. + * To use SSL pinning you must include at least one .cer SSL certificate in your app project. You can pin to your server certificate or to one of the issuing CA certificates. For ios include your certificate in the root level of your bundle (just add the .cer file to your project/target at the root level). For android include your certificate in your project's platforms/android/assets folder. In both cases all .cer files found will be loaded automatically. If you only have a .pem certificate see this [stackoverflow answer](https://stackoverflow.com/questions/16583428/how-to-convert-an-ssl-certificate-in-linux/16583429#16583429). You want to convert it to a DER encoded certificate with a .cer extension. * * As an alternative, you can store your .cer files in the www/certificates folder. * @param enable {boolean} Set to true to enable * @returns {Promise} returns a promise that will resolve on success, and reject on failure */ @Cordova() - enableSSLPinning(enable: boolean): Promise { return; } + enableSSLPinning(enable: boolean): Promise { + return; + } /** * Accept all SSL certificates. Or disabled accepting all certificates. Defaults to false. @@ -138,15 +192,17 @@ export class HTTP extends IonicNativePlugin { * @returns {Promise} returns a promise that will resolve on success, and reject on failure */ @Cordova() - acceptAllCerts(accept: boolean): Promise { return; } + acceptAllCerts(accept: boolean): Promise { + return; + } /** - * Whether or not to validate the domain name in the certificate. This defaults to true. - * @param validate {boolean} Set to true to validate + * Disable following redirects automatically. + * @param disable {boolean} Set to true to disable following redirects automatically * @returns {Promise} returns a promise that will resolve on success, and reject on failure */ @Cordova() - validateDomainName(validate: boolean): Promise { return; } + disableRedirect(disable: boolean): Promise { return; } /** * Make a POST request @@ -156,7 +212,9 @@ export class HTTP extends IonicNativePlugin { * @returns {Promise} returns a promise that resolve on success, and reject on failure */ @Cordova() - post(url: string, body: any, headers: any): Promise { return; } + post(url: string, body: any, headers: any): Promise { + return; + } /** * Make a GET request @@ -166,7 +224,9 @@ export class HTTP extends IonicNativePlugin { * @returns {Promise} returns a promise that resolve on success, and reject on failure */ @Cordova() - get(url: string, parameters: any, headers: any): Promise { return; } + get(url: string, parameters: any, headers: any): Promise { + return; + } /** * Make a PUT request @@ -176,7 +236,21 @@ export class HTTP extends IonicNativePlugin { * @returns {Promise} returns a promise that resolve on success, and reject on failure */ @Cordova() - put(url: string, body: any, headers: any): Promise { return; } + put(url: string, body: any, headers: any): Promise { + return; + } + + /** + * Make a PATCH request + * @param url {string} The url to send the request to + * @param body {Object} The body of the request + * @param headers {Object} The headers to set for this request + * @returns {Promise} returns a promise that resolve on success, and reject on failure + */ + @Cordova() + patch(url: string, body: any, headers: any): Promise { + return; + } /** * Make a DELETE request @@ -186,7 +260,9 @@ export class HTTP extends IonicNativePlugin { * @returns {Promise} returns a promise that resolve on success, and reject on failure */ @Cordova() - delete(url: string, parameters: any, headers: any): Promise { return; } + delete(url: string, parameters: any, headers: any): Promise { + return; + } /** * Make a HEAD request @@ -196,7 +272,9 @@ export class HTTP extends IonicNativePlugin { * @returns {Promise} returns a promise that resolve on success, and reject on failure */ @Cordova() - head(url: string, parameters: any, headers: any): Promise { return; } + head(url: string, parameters: any, headers: any): Promise { + return; + } /** * @@ -208,7 +286,15 @@ export class HTTP extends IonicNativePlugin { * @returns {Promise} returns a promise that resolve on success, and reject on failure */ @Cordova() - uploadFile(url: string, body: any, headers: any, filePath: string, name: string): Promise { return; } + uploadFile( + url: string, + body: any, + headers: any, + filePath: string, + name: string + ): Promise { + return; + } /** * @@ -219,5 +305,12 @@ export class HTTP extends IonicNativePlugin { * @returns {Promise} returns a promise that resolve on success, and reject on failure */ @Cordova() - downloadFile(url: string, body: any, headers: any, filePath: string): Promise { return; } + downloadFile( + url: string, + body: any, + headers: any, + filePath: string + ): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/ibeacon/index.ts b/src/@ionic-native/plugins/ibeacon/index.ts index b0b4823f..8b77afed 100644 --- a/src/@ionic-native/plugins/ibeacon/index.ts +++ b/src/@ionic-native/plugins/ibeacon/index.ts @@ -248,12 +248,12 @@ export interface IBeaconDelegate { * delegate.didRangeBeaconsInRegion() * .subscribe( * data => console.log('didRangeBeaconsInRegion: ', data), - * error => console.error(); + * error => console.error() * ); * delegate.didStartMonitoringForRegion() * .subscribe( * data => console.log('didStartMonitoringForRegion: ', data), - * error => console.error(); + * error => console.error() * ); * delegate.didEnterRegion() * .subscribe( diff --git a/src/@ionic-native/plugins/image-resizer/index.ts b/src/@ionic-native/plugins/image-resizer/index.ts index 2928e119..165ffbcd 100644 --- a/src/@ionic-native/plugins/image-resizer/index.ts +++ b/src/@ionic-native/plugins/image-resizer/index.ts @@ -31,8 +31,7 @@ export interface ImageResizerOptions { quality?: number; /** - * A custom name for the file. Default name is a timestamp - * (Android and Windows only) + * A custom name for the file. Default name is a timestamp. You have to set this value on iOS */ fileName?: string; } diff --git a/src/@ionic-native/plugins/in-app-browser/index.ts b/src/@ionic-native/plugins/in-app-browser/index.ts index 98c70b38..beb4d860 100644 --- a/src/@ionic-native/plugins/in-app-browser/index.ts +++ b/src/@ionic-native/plugins/in-app-browser/index.ts @@ -24,6 +24,10 @@ export interface InAppBrowserOptions { mediaPlaybackRequiresUserAction?: 'yes' | 'no'; /** (Android Only) Set to yes to make InAppBrowser WebView to pause/resume with the app to stop background audio (this may be required to avoid Google Play issues) */ shouldPauseOnSuspend?: 'yes' | 'no'; + /** (Android Only) Set to yes to show a close button in the footer similar to the iOS Done button. The close button will appear the same as for the header hence use closebuttoncaption and closebuttoncolor to set its properties */ + footer?: 'yes' | 'no'; + /** (Android Only) Set to a valid hex color string, for example #00ff00 or #CC00ff00 (#aarrggbb) , and it will change the footer color from default. Only has effect if user has footer set to yes */ + footercolor?: string; /** (iOS Only) Set to a string to use as the Done button's caption. Note that you need to localize this value yourself. */ closebuttoncaption?: string; /** (iOS Only) Set to yes or no (default is no). Turns on/off the UIWebViewBounce property. */ @@ -166,7 +170,12 @@ export class InAppBrowserObject { * const browser = this.iab.create('https://ionicframework.com/'); * * browser.executeScript(...); + * * browser.insertCSS(...); + * browser.on('loadstop').subscribe(event => { + * browser.insertCSS({ code: "body{color: red;" }); + * }); + * * browser.close(); * * ``` @@ -181,7 +190,7 @@ export class InAppBrowserObject { plugin: 'cordova-plugin-inappbrowser', pluginRef: 'cordova.InAppBrowser', repo: 'https://github.com/apache/cordova-plugin-inappbrowser', - platforms: ['AmazonFire OS', 'Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'macOS', 'Ubuntu', 'Windows', 'Windows Phone'] + platforms: ['AmazonFire OS', 'Android', 'Browser', 'iOS', 'macOS', 'Windows'] }) @Injectable() export class InAppBrowser extends IonicNativePlugin { diff --git a/src/@ionic-native/plugins/index-app-content/index.ts b/src/@ionic-native/plugins/index-app-content/index.ts index 9b492df2..3e8e8399 100644 --- a/src/@ionic-native/plugins/index-app-content/index.ts +++ b/src/@ionic-native/plugins/index-app-content/index.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; export interface IndexItem { domain: string; @@ -71,7 +71,6 @@ export interface IndexItem { }) @Injectable() export class IndexAppContent extends IonicNativePlugin { - /** * The option to index app content might not be available at all due to device limitations or user settings. * Therefore it's highly recommended to check upfront if indexing is possible. @@ -92,17 +91,6 @@ export class IndexAppContent extends IonicNativePlugin { return; } - /** - * If user taps on a search result in spotlight then the app will be launched. - * You can register a Javascript handler to get informed when this happens. - * @param {IndexItem} Clicked Item - * @return {Promise} Returns promise - */ - @Cordova() - onItemPressed(payload: IndexItem) { - return; - } - /** * Clear all items stored for a given array of domains * @param {Array} Array of domains to clear @@ -132,5 +120,4 @@ export class IndexAppContent extends IonicNativePlugin { setIndexingInterval(intervalMinutes: number) { return; } - } diff --git a/src/@ionic-native/plugins/intercom/index.ts b/src/@ionic-native/plugins/intercom/index.ts index 8d6c4dcc..652841ce 100644 --- a/src/@ionic-native/plugins/intercom/index.ts +++ b/src/@ionic-native/plugins/intercom/index.ts @@ -60,6 +60,7 @@ export class Intercom extends IonicNativePlugin { * @param secureHash {string} * @param secureData {any} * @return {Promise} Returns a promise + * @deprecated Use setUserHash instead as of Intercom Cordova 4.0.0 and higher https://github.com/intercom/intercom-cordova/blob/master/CHANGELOG.md#400-2017-08-29 */ @Cordova() setSecureMode(secureHash: string, secureData: any): Promise { return; } diff --git a/src/@ionic-native/plugins/is-debug/index.ts b/src/@ionic-native/plugins/is-debug/index.ts index 59233a7a..4fda44f9 100644 --- a/src/@ionic-native/plugins/is-debug/index.ts +++ b/src/@ionic-native/plugins/is-debug/index.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; /** * @name Is Debug @@ -16,8 +16,8 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; * ... * * this.isDebug.getIsDebug() - * .then((isDebug: boolean) => console.log('Is debug:', isDebug)) - * .catch((error: any) => console.error(error)); + * .then(isDebug => console.log('Is debug:', isDebug)) + * .catch(err => console.error(err)); * * ``` */ @@ -30,7 +30,6 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; }) @Injectable() export class IsDebug extends IonicNativePlugin { - /** * Determine if an app was installed via xcode / eclipse / the ionic CLI etc * @returns {Promise} Returns a promise that resolves with true if the app was installed via xcode / eclipse / the ionic CLI etc. It will resolve to false if the app was downloaded from the app / play store by the end user. @@ -39,5 +38,4 @@ export class IsDebug extends IonicNativePlugin { getIsDebug(): Promise { return; } - } diff --git a/src/@ionic-native/plugins/jins-meme/index.ts b/src/@ionic-native/plugins/jins-meme/index.ts index 349a905a..c5121edd 100644 --- a/src/@ionic-native/plugins/jins-meme/index.ts +++ b/src/@ionic-native/plugins/jins-meme/index.ts @@ -31,10 +31,10 @@ declare const cordova: any; * ``` */ @Plugin({ - pluginName: 'Jins Meme', - plugin: 'JinsMemeSDK-Plugin-Cordova', - pluginRef: 'cordova.plugins.JinsMemePlugin', - repo: 'https://github.com/jins-meme/JinsMemeSDK-Plugin-Cordova', + pluginName: 'JINS MEME', + plugin: 'cordova-plugin-jins-meme', + pluginRef: 'JinsMemePlugin', + repo: 'https://github.com/BlyncSync/cordova-plugin-jins-meme', platforms: ['Android', 'iOS'] }) @Injectable() @@ -77,7 +77,7 @@ export class JinsMeme extends IonicNativePlugin { connect(target: string): Observable { return new Observable((observer: any) => { let data = cordova.plugins.JinsMemePlugin.connect(target, observer.next.bind(observer), observer.complete.bind(observer), observer.error.bind(observer)); - return () => console.log(data); + return data; }); } /** diff --git a/src/@ionic-native/plugins/launch-review/index.ts b/src/@ionic-native/plugins/launch-review/index.ts index 3c7b49b6..86c3c038 100644 --- a/src/@ionic-native/plugins/launch-review/index.ts +++ b/src/@ionic-native/plugins/launch-review/index.ts @@ -5,9 +5,9 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; * @name Launch Review * @description * - * This launches the native store app in order for the user to leave a review. - * On Android, the plugin opens the the app's storepage in the Play Store where the user can leave a review by pressing the stars to give a rating. - * On iOS, the plugin opens the app's storepage in the App Store and focuses the Review tab, where the user can leave a review by pressing "Write a review". + * Assists in leaving user reviews/ratings in the App Stores. + * - Launches the platform's App Store page for the current app in order for the user to leave a review. + * - On iOS (10.3 and above) invokes the native in-app rating dialog which allows a user to rate your app without needing to open the App Store. * * @usage * ```typescript @@ -17,9 +17,13 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; * * ... * - * const appId: string = 'yourAppId'; - * this.launchReview.launch(appId) + * this.launchReview.launch() * .then(() => console.log('Successfully launched store app'); + * + * if(this.launchReview.isRatingSupported()){ + * this.launchReview.rating() + * .then(() => console.log('Successfully launched rating dialog'); + * } * ``` */ @Plugin({ @@ -33,10 +37,34 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; export class LaunchReview extends IonicNativePlugin { /** - * Launch store app using given app ID + * Launches App Store on current platform in order to leave a review for given app. + * @param appId {string} - (optional) the platform-specific app ID to use to open the page in the store app. + * If not specified, the plugin will use the app ID for the app in which the plugin is contained. + * On Android this is the full package name of the app. For example, for Google Maps: `com.google.android.apps.maps` + * On iOS this is the Apple ID of the app. For example, for Google Maps: `585027354` * @returns {Promise} */ - @Cordova() - launch(appId: string): Promise { return; } + @Cordova({ platforms: ['Android', 'iOS'], callbackOrder: 'reverse' }) + launch(appId?: string): Promise { return; } + + /** + * Invokes the native in-app rating dialog which allows a user to rate your app without needing to open the App Store. + * Requires iOS 10.3 and above: Calling this on any platform/version other than iOS 10.3+ will result in the error callback. + * Success callback will be called up to 3 times: + * - First: after `LaunchReview.rating()` is called and the request to show the dialog is successful. Will be passed the value `requested`. + * - Second: if and when the Rating dialog is actually displayed. Will be passed the value `shown`. + * - Third: if and when the Rating dialog is dismissed. Will be passed the value `dismissed`. + * @returns {Promise} + */ + @Cordova({ platforms: ['iOS'] }) + rating(): Promise { return; } + + /** + * Indicates if the current platform/version supports in-app ratings dialog, i.e. calling LaunchReview.rating(). + * Will return true if current platform is iOS 10.3 or above. + * @returns {boolean} + */ + @Cordova({ platforms: ['Android', 'iOS'], sync: true }) + isRatingSupported(): boolean { return; } } diff --git a/src/@ionic-native/plugins/local-notifications/index.ts b/src/@ionic-native/plugins/local-notifications/index.ts old mode 100644 new mode 100755 index 3d3bcfeb..8ee9b025 --- a/src/@ionic-native/plugins/local-notifications/index.ts +++ b/src/@ionic-native/plugins/local-notifications/index.ts @@ -1,5 +1,195 @@ import { Injectable } from '@angular/core'; import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Observable } from 'rxjs/Observable'; + +export enum ELocalNotificationTriggerUnit { + SECOND = 'second', + MINUTE = 'minute', + HOUR = 'hour', + DAY = 'day', + WEEK = 'week', + MONTH = 'month', + QUARTER = 'quarter', + YEAR = 'year', + WEEKDAY = 'weekday', + WEEKDAY_ORDINAL = 'weekdayOrdinal', + WEEK_OF_MONTH = 'weekOfMonth' +} + +export interface ILocalNotificationTrigger { + + /** ***** FIX ***** */ + + /** + * The date and time when the system should deliver the local notification. If the specified value is nil or is a date in the past, the local notification is delivered immediately. + * Default: now ~ new Date() + */ + at?: Date; + + /** ***** TIMESPAN ***** */ + + /** + * Amount of units + */ + in?: number; + + /** + * Unit + */ + unit?: ELocalNotificationTriggerUnit; + + /** ***** REPEAT/MATCH ***** */ + + /** + * Amount of units + */ + count?: number; + + /** + * The unit + */ + every?: ELocalNotificationTriggerUnit; + + /** + * The end of the repeating notification + */ + before?: Date; + + /** + * The date and time when the system should deliver the local notification. If the specified value is nil or is a date in the past, the local notification is delivered immediately. + * Only for "repeat" + * Default: now ~ new Date() + */ + firstAt?: Date; + + /** + * Only for "match" + */ + after?: Date; + + /** ***** LOCATION ***** */ + + /** + * IOS ONLY + * Center of the location + * Latitude and Longitude values + */ + center?: number[]; + + /** + * IOS ONLY + * Radius in meters + */ + radius?: number; + + /** + * IOS ONLY + * Trigger on entry of the location + */ + notifyOnEntry?: boolean; + + /** + * IOS ONLY + * Trigger on exit of the location + */ + notifyOnExit?: boolean; + + /** + * IOS ONLY + * Trigger only once? + */ + single?: boolean; +} + +export enum ILocalNotificationActionType { + INPUT = 'input', + BUTTON = 'button' +} + +/** + * Notification action + * + * @see https://github.com/katzer/cordova-plugin-local-notifications#actions + */ +export interface ILocalNotificationAction { + /** + * The id of the action is used as the event name in the listener function + */ + id?: string; + + /** + * The title of the notification message + */ + title?: string; + + /** + * Specifies whether the action causes the app to launch in the foreground + */ + launch?: boolean; + + /** + * If the value is 'decline' the action is displayed with special highlighting to indicate that it performs a destructive task + */ + ui?: string; + + /** + * Specifies whether the action requires that the user’s device be unlocked. + * When the user selects an action with this option, the system prompts + * the user to unlock the device + */ + needsAuth?: boolean; + + /** + * The resource path of the action icon + */ + icon?: string; + + /** + * The type of the action. If omitted 'button' is used. + */ + type?: ILocalNotificationActionType; +} + +export interface ILocalNotificationProgressBar { + /** + * Is the progress bar enabled? + */ + enabled?: boolean; + + /** + * The current value + */ + value?: number; + + /** + * ANDROID ONLY + * The maximum value (default is 100) + */ + maxValue?: number; + + /** + * ANDROID ONLY + * Show an indeterminate progress bar + */ + indeterminate?: boolean; + + /** + * WINDOWS ONLY + * Gets or sets an optional string to be displayed instead of the + * default percentage string. If this isn't provided, something + * like "70%" will be displayed. + */ + description?: string; + + /** + * WINDOWS ONLY + * Sets the status (required), which is displayed underneath the progress bar + * on the left. + * This string should reflect the status of the operation, + * like "Downloading..." or "Installing..." + */ + status?: string; +} export interface ILocalNotification { @@ -19,20 +209,7 @@ export interface ILocalNotification { * Second row of the notification * Default: Empty string */ - text?: string; - - /** - * The interval at which to reschedule the local notification. That can be a value of second, minute, hour, day, week, month or year - * Default: 0 (which means that the system triggers the local notification once) - */ - every?: string; - - /** - * The date and time when the system should deliver the local notification. If the specified value is nil or is a date in the past, the local notification is delivered immediately. - * Default: now ~ new Date() - */ - at?: any; - firstAt?: any; + text?: string | string[]; /** * The number currently set as the badge of the app icon in Springboard (iOS) or at the right-hand side of the local notification (Android) @@ -67,33 +244,159 @@ export interface ILocalNotification { smallIcon?: string; /** - * ANDROID ONLY - * RGB value for the background color of the smallIcon. - * Default: Androids COLOR_DEFAULT, which will vary based on Android version. - */ + * ANDROID ONLY + * RGB value for the background color of the smallIcon. + * Default: Androids COLOR_DEFAULT, which will vary based on Android version. + */ color?: string; + /** + * ANDROID ONLY + * Use the default notification vibrate. + */ + vibrate?: boolean; /** * ANDROID ONLY - * Ongoing notifications differ from regular notifications in the following ways: - * - They are sorted above the regular notifications in the notification panel - * - They do not have an 'X' close button, and are not affected by the "Clear all" button - * Default: false + * Define the blinking of the LED on the device. + * If set to true, the LED will blink in the default color with + * timings for on and off set to 1000 ms. + * If set to a string, the LED will blink in this ARGB value with + * timings for on and off set to 1000 ms. + * If set to an array, the value of the key 0 will be used as the color, + * the value of the key 1 will be used as the 'on' timing, the value of + * the key 2 will be used as the 'off' timing */ - ongoing?: boolean; + led?: {color: string, on: number, off: number} | any[] | boolean | string; /** - * ANDROID ONLY - * ARGB value that you would like the LED on the device to blink - * Default: FFFFFF + * Notification priority. + * Integers between -2 and 2, whereas -2 is minimum and 2 is maximum priority */ - led?: string; - - /** - * Notification priority. - */ priority?: number; + + /** + * Is a silent notification + */ + silent?: boolean; + + /** + * Specifies whether the a click on the notification causes the app + * to launch in the foreground + */ + launch?: boolean; + + /** + * ANDROID ONLY + * Wakeup the device. (default is true) + */ + wakeup?: boolean; + + /** + * ANDROID ONLY + * Specifies a duration in milliseconds after which this notification should be canceled, if it is not already canceled. + */ + timeoutAfter?: number | false; + + /** + * Actions id or actions + */ + actions?: string | ILocalNotificationAction[]; + + /** + * When to trigger the notification + */ + trigger?: ILocalNotificationTrigger; + + /** + * A list of image attachments + */ + attachments?: string[]; + + /** + * ANDROID ONLY + * If and how the notification shall show the when date. + * Possbile values: + * boolean: true equals 'clock', false disable a watch/counter + * 'clock': Show the when date in the content view + * 'chronometer': Show a stopwatch + * + */ + clock?: boolean | string; + + /** + * Shows a progress bar + * Setting a boolean is a shortcut for {enabled: true/false} respectively + */ + progressBar?: ILocalNotificationProgressBar | boolean; + + /** + * ANDROID ONLY + * If multiple notifications have the same group your app can present + * them as a single group. + */ + group?: string; + + /** + * ANDROID ONLY + * If set to 'true' this notification could use 'summary' to summarize + * the contents of the whole group + */ + groupSummary?: boolean; + + /** + * ANDROID ONLY + * Summary of the whole notification group. Should be used in conjuntion + * with 'groupSummary' set to true + */ + summary?: string; + + /** + * ANDROID ONLY + * Sets the number of items this notification represents. + */ + number?: number; + + /** + * ANDROID ONLY + * Set whether this is an "ongoing" notification. + * Ongoing notifications cannot be dismissed by the user, + * so your application or service must take care of canceling them. + */ + sticky?: boolean; + + /** + * ANDROID ONLY + * Make this notification automatically dismissed when the user touches it. + */ + autoClear?: boolean; + + /** + * ANDROID ONLY + * If set to true the notification will be show in its entirety on all lockscreens. + * If set to false it will not be revealed on a secure lockscreen. + */ + lockscreen?: boolean; + + /** + * ANDROID ONLY + * Set the default notification options that will be used. + * The value should be one or more of the following fields combined with + * bitwise-or: DEFAULT_SOUND, DEFAULT_VIBRATE, DEFAULT_LIGHTS. + */ + defaults?: number; + + /** + * ANDROID ONLY + * Specifies the channel the notification should be delivered on. + */ + channel?: string; + + /** + * ANDROID ONLY + * Set the token for the media session + */ + mediaSession?: string; } /** @@ -137,7 +440,7 @@ export interface ILocalNotification { * // Schedule delayed notification * this.localNotifications.schedule({ * text: 'Delayed ILocalNotification', - * at: new Date(new Date().getTime() + 3600), + * trigger: {at: new Date(new Date().getTime() + 3600)}, * led: 'FF0000', * sound: null * }); @@ -147,7 +450,7 @@ export interface ILocalNotification { */ @Plugin({ pluginName: 'LocalNotifications', - plugin: 'de.appplant.cordova.plugin.local-notification', + plugin: 'cordova-plugin-local-notification', pluginRef: 'cordova.plugins.notification.local', repo: 'https://github.com/katzer/cordova-plugin-local-notifications', platforms: ['Android', 'iOS', 'Windows'] @@ -185,10 +488,7 @@ export class LocalNotifications extends IonicNativePlugin { * Clears all notifications * @returns {Promise} Returns a promise when all notifications have cleared */ - @Cordova({ - successIndex: 0, - errorIndex: 2 - }) + @Cordova() clearAll(): Promise { return; } /** @@ -203,10 +503,7 @@ export class LocalNotifications extends IonicNativePlugin { * Cancels all notifications * @returns {Promise} Returns a promise when all notifications are canceled */ - @Cordova({ - successIndex: 0, - errorIndex: 2 - }) + @Cordova() cancelAll(): Promise { return; } /** @@ -238,7 +535,7 @@ export class LocalNotifications extends IonicNativePlugin { * @returns {Promise>} */ @Cordova() - getAllIds(): Promise> { return; } + getIds(): Promise> { return; } /** * Get the ids of triggered notifications @@ -300,11 +597,11 @@ export class LocalNotifications extends IonicNativePlugin { getAllTriggered(): Promise> { return; } /** - * Register permission to show notifications if not already granted. + * Request permission to show notifications if not already granted. * @returns {Promise} */ @Cordova() - registerPermission(): Promise { return; } + requestPermission(): Promise { return; } /** * Informs if the app has the permission to show notifications. @@ -313,26 +610,75 @@ export class LocalNotifications extends IonicNativePlugin { @Cordova() hasPermission(): Promise { return; } + /** + * Adds a group of actions + * @param groupId The id of the action group + * @param actions The actions of this group + * @returns {Promise} + */ + @Cordova() + addActions(groupId: any, actions: Array): Promise { return; } + + /** + * Removes a group of actions + * @param groupId The id of the action group + * @returns {Promise} + */ + @Cordova() + removeActions(groupId: any): Promise { return; } + + /** + * Checks if a group of actions is defined + * @param groupId The id of the action group + * @returns {Promise} Whether the group is defined + */ + @Cordova() + hasActions(groupId: any): Promise { return; } + + /** + * Gets the (platform specific) default settings. + * @returns {Promise} An object with all default settings + */ + @Cordova({ + sync: true + }) + getDefaults(): Promise { return; } + + /** + * Overwrites the (platform specific) default settings. + * @returns {Promise} + */ + @Cordova({ + sync: true + }) + setDefaults(defaults: any): Promise { return; } /** * Sets a callback for a specific event - * @param eventName The name of the event. Available events: schedule, trigger, click, update, clear, clearall, cancel, cancelall - * @param callback Call back function. All events return notification and state parameter. clear and clearall return state parameter only. + * @param eventName {string} The name of the event. Available events: schedule, trigger, click, update, clear, clearall, cancel, cancelall. Custom event names are possible for actions + * @return {Observable} */ @Cordova({ - sync: true + observable: true, + clearFunction: 'un', + clearWithArgs: true }) - on(eventName: string, callback: any): void { } + on(eventName: string): Observable { return; } /** - * Removes a callback of a specific event - * @param eventName The name of the event. Available events: schedule, trigger, click, update, clear, clearall, cancel, cancelall - * @param callback Call back function. All events return notification and state parameter. clear and clearall return state parameter only. + * Not an official interface, however its possible to manually fire events. + ** @param eventName The name of the event. Available events: schedule, trigger, click, update, clear, clearall, cancel, cancelall. Custom event names are possible for actions + * @param args Optional arguments */ @Cordova({ sync: true }) - un(eventName: string, callback: any): void { } - + fireEvent(eventName: string, args: any): void { } + /** + * Fire queued events once the device is ready and all listeners are registered. + * @returns {Promise} + */ + @Cordova() + fireQueuedEvents(): Promise { return; } } diff --git a/src/@ionic-native/plugins/media-capture/index.ts b/src/@ionic-native/plugins/media-capture/index.ts index 580e155c..f1c5c0d1 100644 --- a/src/@ionic-native/plugins/media-capture/index.ts +++ b/src/@ionic-native/plugins/media-capture/index.ts @@ -147,7 +147,7 @@ export interface ConfigurationData { plugin: 'cordova-plugin-media-capture', pluginRef: 'navigator.device.capture', repo: 'https://github.com/apache/cordova-plugin-media-capture', - platforms: ['Android', 'BlackBerry 10', 'Browser', 'iOS', 'Ubuntu', 'Windows', 'Windows Phone'] + platforms: ['Android', 'Browser', 'iOS', 'Windows'] }) @Injectable() export class MediaCapture extends IonicNativePlugin { diff --git a/src/@ionic-native/plugins/media/index.ts b/src/@ionic-native/plugins/media/index.ts index 4cfbfc3b..d0036b17 100644 --- a/src/@ionic-native/plugins/media/index.ts +++ b/src/@ionic-native/plugins/media/index.ts @@ -284,7 +284,7 @@ export type MediaErrorCallback = (error: MediaError) => void; repo: 'https://github.com/apache/cordova-plugin-media', plugin: 'cordova-plugin-media', pluginRef: 'Media', - platforms: ['Android', 'BlackBerry 10', 'Browser', 'iOS', 'Tizen', 'Ubuntu', 'Windows', 'Windows Phone'] + platforms: ['Android', 'Browser', 'iOS', 'Windows'] }) @Injectable() export class Media extends IonicNativePlugin { diff --git a/src/@ionic-native/plugins/mixpanel/index.ts b/src/@ionic-native/plugins/mixpanel/index.ts index debf12a6..af5f2432 100644 --- a/src/@ionic-native/plugins/mixpanel/index.ts +++ b/src/@ionic-native/plugins/mixpanel/index.ts @@ -72,6 +72,13 @@ export class Mixpanel extends IonicNativePlugin { @Cordova() init(token: string): Promise { return; } + /** + * + * @returns {Promise} + */ + @Cordova() + getSuperProperties(): Promise { return; } + /** * * @param superProperties {any} @@ -80,6 +87,22 @@ export class Mixpanel extends IonicNativePlugin { @Cordova() registerSuperProperties(superProperties: any): Promise { return; } + /** + * + * @param superProperties {any} + * @returns {Promise} + */ + @Cordova() + registerSuperPropertiesOnce(superProperties: any): Promise { return; } + + /** + * + * @param superPropertyName {string} + * @returns {Promise} + */ + @Cordova() + unregisterSuperProperty(superPropertyName: string): Promise { return; } + /** * * @returns {Promise} diff --git a/src/@ionic-native/plugins/mobile-accessibility/index.ts b/src/@ionic-native/plugins/mobile-accessibility/index.ts index 66a1f632..f7348b7f 100644 --- a/src/@ionic-native/plugins/mobile-accessibility/index.ts +++ b/src/@ionic-native/plugins/mobile-accessibility/index.ts @@ -63,14 +63,14 @@ export class MobileAccessibility extends IonicNativePlugin { * @returns {Promise} A result method to receive the boolean result asynchronously from the native MobileAccessibility plugin. */ @Cordova({ platforms: ['iOS'] }) - isVoiceOverRunningCallback(): Promise { return; } + isVoiceOverRunning(): Promise { return; } /** * An Android/Amazon Fire OS-specific proxy for the MobileAccessibility.isScreenReaderRunning method. * @returns {Promise} A result method to receive the boolean result asynchronously from the native MobileAccessibility plugin. */ @Cordova({ platforms: ['Amazon Fire OS', 'Android'] }) - isTalkBackRunningCallback(): Promise { return; } + isTalkBackRunning(): Promise { return; } /** * On Android, this method returns true if ChromeVox is active and properly initialized with access to the text to speech API in the WebView. @@ -85,98 +85,98 @@ export class MobileAccessibility extends IonicNativePlugin { * @returns {Promise} Returns the result */ @Cordova({ platforms: ['iOS'] }) - isBoldTextEnabledCallback(): Promise { return; } + isBoldTextEnabled(): Promise { return; } /** * * @returns {Promise} Returns the result */ @Cordova() - isClosedCaptioningEnabledCallback(): Promise { return; } + isClosedCaptioningEnabled(): Promise { return; } /** * * @returns {Promise} Returns the result */ @Cordova({ platforms: ['iOS'] }) - isDarkerSystemColorsEnabledCallback(): Promise { return; } + isDarkerSystemColorsEnabled(): Promise { return; } /** * * @returns {Promise} Returns the result */ @Cordova({ platforms: ['iOS'] }) - isGrayscaleEnabledCallback(): Promise { return; } + isGrayscaleEnabled(): Promise { return; } /** * * @returns {Promise} Returns the result */ @Cordova({ platforms: ['iOS'] }) - isGuidedAccessEnabledCallback(): Promise { return; } + isGuidedAccessEnabled(): Promise { return; } /** * * @returns {Promise} Returns the result */ @Cordova({ platforms: ['iOS'] }) - isInvertColorsEnabledCallback(): Promise { return; } + isInvertColorsEnabled(): Promise { return; } /** * * @returns {Promise} Returns the result */ @Cordova({ platforms: ['iOS'] }) - isMonoAudioEnabledCallback(): Promise { return; } + isMonoAudioEnabled(): Promise { return; } /** * * @returns {Promise} Returns the result */ @Cordova({ platforms: ['iOS'] }) - isReduceMotionEnabledCallback(): Promise { return; } + isReduceMotionEnabled(): Promise { return; } /** * * @returns {Promise} Returns the result */ @Cordova({ platforms: ['iOS'] }) - isReduceTransparencyEnabledCallback(): Promise { return; } + isReduceTransparencyEnabled(): Promise { return; } /** * * @returns {Promise} Returns the result */ @Cordova({ platforms: ['iOS'] }) - isSpeakScreenEnabledCallback(): Promise { return; } + isSpeakScreenEnabled(): Promise { return; } /** * * @returns {Promise} Returns the result */ @Cordova({ platforms: ['iOS'] }) - isSpeakSelectionEnabledCallback(): Promise { return; } + isSpeakSelectionEnabled(): Promise { return; } /** * * @returns {Promise} Returns the result */ @Cordova({ platforms: ['iOS'] }) - isSwitchControlRunningCallback(): Promise { return; } + isSwitchControlRunning(): Promise { return; } /** * * @returns {Promise} Returns the result */ @Cordova({ platforms: ['Amazon Fire OS', 'Android'] }) - isTouchExplorationEnabledCallback(): Promise { return; } + isTouchExplorationEnabled(): Promise { return; } /** * * * @returns {Promise} Returns the result */ @Cordova() - getTextZoomCallback(): Promise { return; } + getTextZoom(): Promise { return; } /** * @param textZoom {number} A percentage value by which text in the WebView should be scaled. diff --git a/src/@ionic-native/plugins/ms-adal/index.ts b/src/@ionic-native/plugins/ms-adal/index.ts index f792b97f..ab0e55d8 100644 --- a/src/@ionic-native/plugins/ms-adal/index.ts +++ b/src/@ionic-native/plugins/ms-adal/index.ts @@ -11,6 +11,7 @@ export interface AuthenticationResult { status: string; statusCode: number; tenantId: string; + userInfo: UserInfo; /** * Creates authorization header for web requests. diff --git a/src/@ionic-native/plugins/music-controls/index.ts b/src/@ionic-native/plugins/music-controls/index.ts index 033de510..0304de87 100644 --- a/src/@ionic-native/plugins/music-controls/index.ts +++ b/src/@ionic-native/plugins/music-controls/index.ts @@ -1,24 +1,31 @@ import { Injectable } from '@angular/core'; -import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; export interface MusicControlsOptions { - track: string; - artist: string; - cover: string; - isPlaying: boolean; - dismissable: boolean; - hasPrev: boolean; - hasNext: boolean; - hasSkipForward: boolean; - hasSkipBackward: boolean; - skipForwardInterval: number; - skipBackwardInterval: number; - hasClose: boolean; - album: string; - duration: number; - elapsed: number; - ticker: string; + track?: string; + artist?: string; + cover?: string; + isPlaying?: boolean; + dismissable?: boolean; + hasPrev?: boolean; + hasNext?: boolean; + hasSkipForward?: boolean; + hasSkipBackward?: boolean; + skipForwardInterval?: number; + skipBackwardInterval?: number; + hasScrubbing?: boolean; + hasClose?: boolean; + album?: string; + duration?: number; + elapsed?: number; + ticker?: string; + playIcon?: string; + pauseIcon?: string; + prevIcon?: string; + nextIcon?: string; + closeIcon?: string; + notificationIcon?: string; } /** @@ -51,17 +58,26 @@ export interface MusicControlsOptions { * hasClose : true, // show close button, optional, default: false * * // iOS only, optional - * album : 'Absolution' // optional, default: '' + * album : 'Absolution', // optional, default: '' * duration : 60, // optional, default: 0 * elapsed : 10, // optional, default: 0 * hasSkipForward : true, // show skip forward button, optional, default: false * hasSkipBackward : true, // show skip backward button, optional, default: false * skipForwardInterval: 15, // display number for skip forward, optional, default: 0 * skipBackwardInterval: 15, // display number for skip backward, optional, default: 0 + * hasScrubbing: false, // enable scrubbing from control center and lockscreen progress bar, optional * * // Android only, optional - * // text displayed in the status bar when the notification (and the ticker) are updated - * ticker : 'Now playing "Time is Running Out"' + * // text displayed in the status bar when the notification (and the ticker) are updated, optional + * ticker : 'Now playing "Time is Running Out"', + * // All icons default to their built-in android equivalents + * // The supplied drawable name, e.g. 'media_play', is the name of a drawable found under android/res/drawable* folders + * playIcon: 'media_play', + * pauseIcon: 'media_pause', + * prevIcon: 'media_prev', + * nextIcon: 'media_next', + * closeIcon: 'media_close', + * notificationIcon: 'notification' * }); * * this.musicControls.subscribe().subscribe(action => { @@ -91,7 +107,7 @@ export interface MusicControlsOptions { * break; * case 'music-controls-seek-to': * const seekToInSeconds = JSON.parse(action).position; - * MusicControls.updateElapsed({ + * this.musicControls.updateElapsed({ * elapsed: seekToInSeconds, * isPlaying: true * }); @@ -138,21 +154,24 @@ export interface MusicControlsOptions { }) @Injectable() export class MusicControls extends IonicNativePlugin { - /** * Create the media controls * @param options {MusicControlsOptions} * @returns {Promise} */ @Cordova() - create(options: MusicControlsOptions): Promise { return; } + create(options: MusicControlsOptions): Promise { + return; + } /** * Destroy the media controller * @returns {Promise} */ @Cordova() - destroy(): Promise { return; } + destroy(): Promise { + return; + } /** * Subscribe to the events of the media controller @@ -161,34 +180,36 @@ export class MusicControls extends IonicNativePlugin { @Cordova({ observable: true }) - subscribe(): Observable { return; } + subscribe(): Observable { + return; + } /** * Start listening for events, this enables the Observable from the subscribe method */ @Cordova({ sync: true }) - listen(): void { } + listen(): void {} /** * Toggle play/pause: * @param isPlaying {boolean} */ @Cordova() - updateIsPlaying(isPlaying: boolean): void { } + updateIsPlaying(isPlaying: boolean): void {} /** - * Update elapsed time, optionally toggle play/pause: - * @param args {Object} - */ + * Update elapsed time, optionally toggle play/pause: + * @param args {Object} + */ @Cordova({ platforms: ['iOS'] }) - updateElapsed(args: { elapsed: string; isPlaying: boolean; }): void { } + updateElapsed(args: { elapsed: string; isPlaying: boolean }): void {} /** * Toggle dismissable: * @param dismissable {boolean} */ @Cordova() - updateDismissable(dismissable: boolean): void { } + updateDismissable(dismissable: boolean): void {} } diff --git a/src/@ionic-native/plugins/navigation-bar/index.ts b/src/@ionic-native/plugins/navigation-bar/index.ts index 784f3501..00f4c807 100644 --- a/src/@ionic-native/plugins/navigation-bar/index.ts +++ b/src/@ionic-native/plugins/navigation-bar/index.ts @@ -17,7 +17,7 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; * ... * * let autoHide: boolean = true; - * this.navigationBar.hide(autoHide); + * this.navigationBar.setUp(autoHide); * ``` */ @Plugin({ diff --git a/src/@ionic-native/plugins/network-interface/index.ts b/src/@ionic-native/plugins/network-interface/index.ts new file mode 100644 index 00000000..7a68fb12 --- /dev/null +++ b/src/@ionic-native/plugins/network-interface/index.ts @@ -0,0 +1,58 @@ +import { Injectable } from '@angular/core'; +import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; + +/** + * @name Network Interface + * @description + * Network interface information plugin for Cordova/PhoneGap that supports Android, Blackberry 10, Browser, iOS, and Windows Phone 8. + * + * @usage + * ```typescript + * import { NetworkInterface } from '@ionic-native/network-interface'; + * + * + * constructor(private networkInterface: NetworkInterface) { } + * + * ... + * + * this.networkInterface.getWiFiIPAddress(function (ip) { alert(ip); }); + * this.networkInterface.getCarrierIPAddress(function (ip) { alert(ip); }); + * + * + * ``` + */ +@Plugin({ + pluginName: 'NetworkInterface', + plugin: 'cordova-plugin-networkinterface', + pluginRef: 'networkinterface', + repo: 'https://github.com/salbahra/cordova-plugin-networkinterface', + platforms: ['Android', 'BlackBerry 10', 'Browser', 'iOS', 'Windows', 'Windows Phone'], +}) +@Injectable() +export class NetworkInterface extends IonicNativePlugin { + + @Cordova() + getIPAddress(): Promise { + return; + } + + /** + * Gets the WiFi IP address + * @param success {Function} Callback used when successful + * @param error {Function} Callback used when failure + */ + @Cordova() + getWiFiIPAddress(): Promise { + return; + } + + /** + * Gets the wireless carrier IP address + * @param success {Function} Callback used when successful + * @param error {Function} Callback used when failure + */ + @Cordova() + getCarrierIPAddress(): Promise { + return; + } +} diff --git a/src/@ionic-native/plugins/network/index.ts b/src/@ionic-native/plugins/network/index.ts index 3249a3d3..3148bcd8 100644 --- a/src/@ionic-native/plugins/network/index.ts +++ b/src/@ionic-native/plugins/network/index.ts @@ -53,7 +53,7 @@ declare const navigator: any; plugin: 'cordova-plugin-network-information', pluginRef: 'navigator.connection', repo: 'https://github.com/apache/cordova-plugin-network-information', - platforms: ['Amazon Fire OS', 'Android', 'BlackBerry 10', 'Browser', 'Firefox OS', 'iOS', 'Tizen', 'Ubuntu', 'Windows', 'Windows Phone'] + platforms: ['Amazon Fire OS', 'Android', 'Browser', 'iOS', 'Windows'] }) @Injectable() export class Network extends IonicNativePlugin { diff --git a/src/@ionic-native/plugins/nfc/index.ts b/src/@ionic-native/plugins/nfc/index.ts index 536506b3..0d885f7e 100644 --- a/src/@ionic-native/plugins/nfc/index.ts +++ b/src/@ionic-native/plugins/nfc/index.ts @@ -1,7 +1,29 @@ import { Injectable } from '@angular/core'; -import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; +import { Plugin, Cordova, IonicNativePlugin, CordovaProperty } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; declare let window: any; + +export interface NdefEvent { + tag: NdefTag; +} + +export interface NdefRecord { + id: any[]; + payload: number[]; + tnf: number; + type: number[]; +} + +export interface NdefTag { + canMakeReadOnly: boolean; + id: number[]; + isWriteable: boolean; + maxSize: number; + ndefMessage: NdefRecord[]; + techTypes: string[]; + type: string; +} + /** * @name NFC * @description @@ -49,6 +71,21 @@ declare let window: any; */ @Injectable() export class NFC extends IonicNativePlugin { + /** + * Starts the NFCNDEFReaderSession allowing iOS to scan NFC tags. + * @param onSuccess + * @param onFailure + * @returns {Observable} + */ + @Cordova({ + observable: true, + successIndex: 0, + errorIndex: 3, + clearFunction: 'invalidateSession', + clearWithArgs: true + }) + beginSession(onSuccess?: Function, onFailure?: Function): Observable { return; } + /** * Registers an event listener for any NDEF tag. * @param onSuccess @@ -62,7 +99,7 @@ export class NFC extends IonicNativePlugin { clearFunction: 'removeNdefListener', clearWithArgs: true }) - addNdefListener(onSuccess?: Function, onFailure?: Function): Observable { return; } + addNdefListener(onSuccess?: Function, onFailure?: Function): Observable { return; } /** * Registers an event listener for tags matching any tag type. @@ -218,15 +255,120 @@ export class NFC extends IonicNativePlugin { @Injectable() export class Ndef extends IonicNativePlugin { - @Cordova({ sync: true }) - uriRecord(uri: string): any { return; } + @CordovaProperty + TNF_EMPTY: number; + @CordovaProperty + TNF_WELL_KNOWN: number; + @CordovaProperty + TNF_MIME_MEDIA: number; + @CordovaProperty + TNF_ABSOLUTE_URI: number; + @CordovaProperty + TNF_EXTERNAL_TYPE: number; + @CordovaProperty + TNF_UNKNOWN: number; + @CordovaProperty + TNF_UNCHANGED: number; + @CordovaProperty + TNF_RESERVED: number; + + @CordovaProperty + RTD_TEXT: number[]; + @CordovaProperty + RTD_URI: number[]; + @CordovaProperty + RTD_SMART_POSTER: number[]; + @CordovaProperty + RTD_ALTERNATIVE_CARRIER: number[]; + @CordovaProperty + RTD_HANDOVER_CARRIER: number[]; + @CordovaProperty + RTD_HANDOVER_REQUEST: number[]; + @CordovaProperty + RTD_HANDOVER_SELECT: number[]; @Cordova({ sync: true }) - textRecord(text: string): any { return; } + record(tnf: number, type: number[] | string, id: number[] | string, payload: number[] | string): NdefRecord { return; } @Cordova({ sync: true }) - mimeMediaRecord(mimeType: string, payload: string): any { return; } + textRecord(text: string, languageCode: string, id: number[] | string): NdefRecord { return; } @Cordova({ sync: true }) - androidApplicationRecord(packageName: string): any { return; } + uriRecord(uri: string, id: number[] | string): NdefRecord { return; } + + @Cordova({ sync: true }) + absoluteUriRecord(uri: string, payload: number[] | string, id: number[] | string): NdefRecord { return; } + + @Cordova({ sync: true }) + mimeMediaRecord(mimeType: string, payload: string): NdefRecord { return; } + + @Cordova({ sync: true }) + smartPoster(ndefRecords: any[], id?: number[] | string ): NdefRecord { return; } + + @Cordova({ sync: true }) + emptyRecord(): NdefRecord { return; } + + @Cordova({ sync: true }) + androidApplicationRecord(packageName: string): NdefRecord { return; } + + @Cordova({ sync: true }) + encodeMessage(ndefRecords: any): any { return; } + + @Cordova({ sync: true }) + decodeMessage(bytes: any): any { return; } + + @Cordova({ sync: true }) + docodeTnf(tnf_byte: any): any { return; } + + @Cordova({ sync: true }) + encodeTnf(mb: any, me: any, cf: any, sr: any, il: any, tnf: any): any { return; } + + @Cordova({ sync: true }) + tnfToString(tnf: any): string { return; } + + @CordovaProperty + textHelper: TextHelper; + + @CordovaProperty + uriHelper: UriHelper; +} + +/** + * @hidden + */ +@Plugin({ + pluginName: 'NFC', + plugin: 'phonegap-nfc', + pluginRef: 'util' +}) +@Injectable() +export class NfcUtil extends IonicNativePlugin { + + @Cordova({ sync: true }) + toHex(i: number): string { return; } + + @Cordova({ sync: true }) + toPrintable(i: number): string { return; } + + @Cordova({ sync: true }) + bytesToString(i: number[]): string { return; } + + @Cordova({ sync: true }) + stringToBytes(s: string): number[] { return; } + + @Cordova({ sync: true }) + bytesToHexString(bytes: number[]): string { return; } + + @Cordova({ sync: true }) + isType(record: NdefRecord, tnf: number, type: number[]|string): boolean { return; } +} + +export class TextHelper extends IonicNativePlugin { + decodePayload(data: number[]): string { return; } + encodePayload(text: string, lang: string): number[] { return; } +} + +export class UriHelper extends IonicNativePlugin { + decodePayload(data: number[]): string { return; } + encodePayload(uri: string): number[] { return; } } diff --git a/src/@ionic-native/plugins/onesignal/index.ts b/src/@ionic-native/plugins/onesignal/index.ts index 1bed5ef0..e14883b8 100644 --- a/src/@ionic-native/plugins/onesignal/index.ts +++ b/src/@ionic-native/plugins/onesignal/index.ts @@ -97,13 +97,13 @@ export enum OSLockScreenVisibility { * Fully visible (default) */ Public = 1, - /** - * Contents are hidden - */ + /** + * Contents are hidden + */ Private = 0, - /** - * Not shown - */ + /** + * Not shown + */ Secret = -1 } @@ -115,13 +115,13 @@ export enum OSDisplayType { * notification is silent, or inFocusDisplaying is disabled. */ None = 0, - /** - * (**DEFAULT**) - native alert dialog display. - */ + /** + * (**DEFAULT**) - native alert dialog display. + */ InAppAlert = 1, - /** - * native notification display. - */ + /** + * native notification display. + */ Notification = 2 } @@ -301,18 +301,29 @@ export enum OSActionType { * The OneSignal plugin is an client implementation for using the [OneSignal](https://onesignal.com/) Service. * OneSignal is a simple implementation for delivering push notifications. * - * Requires Cordova plugin: `onesignal-cordova-plugin`. For more info, please see the [OneSignal Cordova Docs](https://documentation.onesignal.com/docs/phonegap-sdk-installation). + * Please view the official [OneSignal Ionic SDK Installation](https://documentation.onesignal.com/docs/ionic-sdk-setup) guide + * for more information. * * #### Icons * If you want to use generated icons with command `ionic cordova resources`: * - * 1. Add a file to your `hooks` directory inside the `after_prepare` folder called `030_copy_android_notification_icons.js` + * 1. Add a file to your `hooks` directory called `copy_android_notification_icons.js` * - * 2. Put the following code in it: + * 2. Configure the hook in your config.xml + * ``` + * + * + * + * ``` + * + * 3. Put the following code in it: * * ``` * #!/usr/bin/env node - * + + * var fs = require('fs'); + * var path = require('path'); + * var filestocopy = [{ * "resources/android/icon/drawable-hdpi-icon.png": * "platforms/android/res/drawable-hdpi/ic_stat_onesignal_default.png" @@ -329,26 +340,27 @@ export enum OSActionType { * "resources/android/icon/drawable-xxxhdpi-icon.png": * "platforms/android/res/drawable-xxxhdpi/ic_stat_onesignal_default.png" * } ]; - * - * var fs = require('fs'); - * var path = require('path'); - * - * // no need to configure below - * var rootdir = process.argv[2]; - * - * filestocopy.forEach(function(obj) { - * Object.keys(obj).forEach(function(key) { - * var val = obj[key]; - * var srcfile = path.join(rootdir, key); - * var destfile = path.join(rootdir, val); - * //console.log("copying "+srcfile+" to "+destfile); - * var destdir = path.dirname(destfile); - * if (fs.existsSync(srcfile) && fs.existsSync(destdir)) { - * fs.createReadStream(srcfile).pipe( - * fs.createWriteStream(destfile)); - * } + + * module.exports = function(context) { + + * // no need to configure below + * var rootdir = context.opts.projectRoot; + + * filestocopy.forEach(function(obj) { + * Object.keys(obj).forEach(function(key) { + * var val = obj[key]; + * var srcfile = path.join(rootdir, key); + * var destfile = path.join(rootdir, val); + * console.log("copying "+srcfile+" to "+destfile); + * var destdir = path.dirname(destfile); + * if (fs.existsSync(srcfile) && fs.existsSync(destdir)) { + * fs.createReadStream(srcfile).pipe( + * fs.createWriteStream(destfile)); + * } + * }); * }); - * }); + + * }; * ``` * * 3. From the root of your project make the file executable: @@ -396,14 +408,13 @@ export enum OSActionType { }) @Injectable() export class OneSignal extends IonicNativePlugin { - /** * constants to use in inFocusDisplaying() */ OSInFocusDisplayOption = { None: 0, - InAppAlert : 1, - Notification : 2 + InAppAlert: 1, + Notification: 2 }; /** @@ -414,7 +425,9 @@ export class OneSignal extends IonicNativePlugin { * @returns {any} */ @Cordova({ sync: true }) - startInit(appId: string, googleProjectNumber?: string): any { return; } + startInit(appId: string, googleProjectNumber?: string): any { + return; + } /** * Callback to run when a notification is received, whether it was displayed or not. @@ -424,7 +437,9 @@ export class OneSignal extends IonicNativePlugin { @Cordova({ observable: true }) - handleNotificationReceived(): Observable { return; } + handleNotificationReceived(): Observable { + return; + } /** * Callback to run when a notification is tapped on from the notification shade (**ANDROID**) or notification @@ -436,7 +451,9 @@ export class OneSignal extends IonicNativePlugin { @Cordova({ observable: true }) - handleNotificationOpened(): Observable { return; } + handleNotificationOpened(): Observable { + return; + } /** * **iOS** - Settings for iOS apps @@ -456,7 +473,9 @@ export class OneSignal extends IonicNativePlugin { iOSSettings(settings: { kOSSettingsKeyAutoPrompt: boolean; kOSSettingsKeyInAppLaunchURL: boolean; - }): any { return; } + }): any { + return; + } /** * Must be called after `startInit` to complete initialization of OneSignal. @@ -464,7 +483,9 @@ export class OneSignal extends IonicNativePlugin { * @returns {any} */ @Cordova({ sync: true }) - endInit(): any { return; } + endInit(): any { + return; + } /** * Prompt the user for notification permissions. Callback fires as soon as the user accepts or declines notifications. @@ -473,7 +494,9 @@ export class OneSignal extends IonicNativePlugin { @Cordova({ platforms: ['iOS'] }) - promptForPushNotificationsWithUserResponse(): Promise { return; } + promptForPushNotificationsWithUserResponse(): Promise { + return; + } /** * Retrieve a list of tags that have been set on the user from the OneSignal server. @@ -483,7 +506,9 @@ export class OneSignal extends IonicNativePlugin { * @returns {Promise} Returns a Promise that resolves when tags are recieved. */ @Cordova() - getTags(): Promise { return; } + getTags(): Promise { + return; + } /** * Lets you retrieve the OneSignal user id and device token. @@ -496,8 +521,9 @@ export class OneSignal extends IonicNativePlugin { * pushToken {string} A push token is a Google/Apple assigned identifier(unique per device per app). */ @Cordova() - getIds(): Promise<{userId: string; pushToken: string}> { return; } - + getIds(): Promise<{ userId: string; pushToken: string }> { + return; + } /** * Tag a user based on an app event of your choosing so later you can create segments on [onesignal.com](https://onesignal.com/) to target these users. @@ -507,7 +533,7 @@ export class OneSignal extends IonicNativePlugin { * @param {string} Value to set on the key. NOTE: Passing in a blank String deletes the key, you can also call deleteTag. */ @Cordova({ sync: true }) - sendTag(key: string, value: string): void { } + sendTag(key: string, value: string): void {} /** * Tag a user based on an app event of your choosing so later you can create segments on [onesignal.com](https://onesignal.com/) to target these users. @@ -516,7 +542,7 @@ export class OneSignal extends IonicNativePlugin { * @param {string} Pass a json object with key/value pairs like: {key: "value", key2: "value2"} */ @Cordova({ sync: true }) - sendTags(json: any): void { } + sendTags(json: any): void {} /** * Deletes a tag that was previously set on a user with `sendTag` or `sendTags`. Use `deleteTags` if you need to delete more than one. @@ -524,7 +550,7 @@ export class OneSignal extends IonicNativePlugin { * @param {string} Key to remove. */ @Cordova({ sync: true }) - deleteTag(key: string): void { } + deleteTag(key: string): void {} /** * Deletes tags that were previously set on a user with `sendTag` or `sendTags`. @@ -532,14 +558,14 @@ export class OneSignal extends IonicNativePlugin { * @param {Array} Keys to remove. */ @Cordova({ sync: true }) - deleteTags(keys: string[]): void { } + deleteTags(keys: string[]): void {} /** * Call this when you would like to prompt an iOS user to accept push notifications with the default system prompt. * Only works if you set `kOSSettingsAutoPrompt` to `false` in `iOSSettings` */ @Cordova({ sync: true }) - registerForPushNotifications(): void { } + registerForPushNotifications(): void {} /** * Warning: @@ -551,7 +577,7 @@ export class OneSignal extends IonicNativePlugin { * @param {boolean} false to disable vibrate, true to re-enable it. */ @Cordova({ sync: true }) - enableVibrate(enable: boolean): void { } + enableVibrate(enable: boolean): void {} /** * Warning: @@ -563,7 +589,7 @@ export class OneSignal extends IonicNativePlugin { * @param {boolean} false to disable sound, true to re-enable it. */ @Cordova({ sync: true }) - enableSound(enable: boolean): void { } + enableSound(enable: boolean): void {} /** * @@ -573,7 +599,9 @@ export class OneSignal extends IonicNativePlugin { * @returns {any} */ @Cordova({ sync: true }) - inFocusDisplaying(displayOption: OSDisplayType): any { return; } + inFocusDisplaying(displayOption: OSDisplayType): any { + return; + } /** * You can call this method with false to opt users out of receiving all notifications through OneSignal. @@ -582,7 +610,7 @@ export class OneSignal extends IonicNativePlugin { * @param {boolean} enable */ @Cordova({ sync: true }) - setSubscription(enable: boolean): void { } + setSubscription(enable: boolean): void {} /** * Get the current notification and permission state. Returns a OSPermissionSubscriptionState type described below. @@ -590,7 +618,9 @@ export class OneSignal extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - getPermissionSubscriptionState(): Promise { return; } + getPermissionSubscriptionState(): Promise { + return; + } /** * @@ -598,7 +628,9 @@ export class OneSignal extends IonicNativePlugin { * @returns {Promise} Returns a Promise that resolves if the notification was send successfully. */ @Cordova() - postNotification(notificationObj: OSNotification): Promise { return; } + postNotification(notificationObj: OSNotification): Promise { + return; + } /** * Cancels a single OneSignal notification based on its Android notification integer id. Use instead of NotificationManager.cancel(id); otherwise the notification will be restored when your app is restarted. @@ -611,14 +643,14 @@ export class OneSignal extends IonicNativePlugin { * Prompts the user for location permission to allow geotagging based on the "Location radius" filter on the OneSignal dashboard. */ @Cordova({ sync: true }) - promptLocation(): void { } + promptLocation(): void {} /** * * @param email {string} */ @Cordova({ sync: true }) - syncHashedEmail(email: string): void { } + syncHashedEmail(email: string): void {} /** * Enable logging to help debug if you run into an issue setting up OneSignal. @@ -629,10 +661,7 @@ export class OneSignal extends IonicNativePlugin { * @param {loglevel} contains two properties: logLevel (for console logging) and visualLevel (for dialog messages) */ @Cordova({ sync: true }) - setLogLevel(logLevel: { - logLevel: number, - visualLevel: number - }): void { } + setLogLevel(logLevel: { logLevel: number; visualLevel: number }): void {} /** * The passed in function will be fired when a notification permission setting changes. @@ -645,7 +674,9 @@ export class OneSignal extends IonicNativePlugin { @Cordova({ observable: true }) - addPermissionObserver(): Observable { return; } + addPermissionObserver(): Observable { + return; + } /** * The passed in function will be fired when a notification subscription property changes. @@ -659,6 +690,13 @@ export class OneSignal extends IonicNativePlugin { @Cordova({ observable: true }) - addSubscriptionObserver(): Observable { return; } + addSubscriptionObserver(): Observable { + return; + } + /** + * Clears all OneSignla notifications + */ + @Cordova({ sync: true }) + clearOneSignalNotifications(): void {} } diff --git a/src/@ionic-native/plugins/openalpr/index.ts b/src/@ionic-native/plugins/openalpr/index.ts new file mode 100644 index 00000000..7cdf3558 --- /dev/null +++ b/src/@ionic-native/plugins/openalpr/index.ts @@ -0,0 +1,74 @@ +import { Injectable } from '@angular/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; + +export interface OpenALPROptions { + /** Country used for scanning the license plate */ + country?: string; + + /** Amount of results returned */ + amount?: number; +} + +export interface OpenALPRResult { + /** LicensePlate */ + number: string; + /** Probability */ + confidence: number; +} + +/** + * @name OpenALPR + * @description + * This Cordova plugin adds support for the OpenALPR (Automatic License Plate Recognition) library, which provides support for retrieving the license plate from a picture. + * + * @usage + * ```typescript + * import { OpenALPR, OpenALPROptions, OpenALPRResult } from '@ionic-native/openalpr'; + * + * + * constructor(private openALPR: OpenALPR) { } + * + * const scanOptions: OpenALPROptions = { + * country: this.openALPR.Country.EU, + * amount: 3 + * } + * + * // To get imageData, you can use the @ionic-native/camera module for example. It works with DestinationType.FILE_URI and DATA_URL + * + * this.openALPR.scan(imageData, scanOptions) + * .then((res: [OpenALPRResult]) => console.log(res)) + * .catch((error: Error) => console.error(error)); + * + * ``` + */ +@Plugin({ + pluginName: 'OpenALPR', + plugin: 'cordova-plugin-openalpr', + pluginRef: 'cordova.plugins.OpenALPR', + repo: 'https://github.com/iMicknl/cordova-plugin-openalpr', + platforms: ['Android', 'iOS'] +}) +@Injectable() +export class OpenALPR extends IonicNativePlugin { + Country = { + AU: 'au', + BR: 'br', + BR2: 'br2', + EU: 'eu', + IN: 'in', + KR2: 'kr2', + US: 'us', + VN2: 'vn2' + }; + + /** + * This function does something + * @param imageData {any} Base64 encoding of the image data or the image file URI + * @param options {OpenALPROptions} Options to pass to the OpenALPR scanner + * @return {Promise} Returns a promise that resolves when something happens + */ + @Cordova() + scan(imageData: any, options?: OpenALPROptions): Promise { + return; + } +} diff --git a/src/@ionic-native/plugins/phonegap-local-notification/index.ts b/src/@ionic-native/plugins/phonegap-local-notification/index.ts index 9286c7e7..50ec8174 100644 --- a/src/@ionic-native/plugins/phonegap-local-notification/index.ts +++ b/src/@ionic-native/plugins/phonegap-local-notification/index.ts @@ -61,7 +61,7 @@ export interface LocalNotificationOptions { * import { PhonegapLocalNotification } from '@ionic-native/phonegap-local-notification'; * * - * constructor(private localNotification: PhonegapLocalNotifications) { } + * constructor(private localNotification: PhonegapLocalNotification) { } * * ... * diff --git a/src/@ionic-native/plugins/photo-library/index.ts b/src/@ionic-native/plugins/photo-library/index.ts index f5be78c5..3ca7cf3b 100644 --- a/src/@ionic-native/plugins/photo-library/index.ts +++ b/src/@ionic-native/plugins/photo-library/index.ts @@ -1,7 +1,54 @@ -import { Plugin, Cordova, CordovaFiniteObservable, IonicNativePlugin } from '@ionic-native/core'; +import { Plugin, Cordova, IonicNativePlugin, CordovaOptions, wrap } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; +import { Observer } from 'rxjs/Observer'; import { Injectable } from '@angular/core'; +/** + * @hidden + */ +export interface CordovaFiniteObservableOptions extends CordovaOptions { + /** + * Function that gets a result returned from plugin's success callback, and decides whether it is last value and observable should complete. + */ + resultFinalPredicate?: string; + /** + * Function that gets called after resultFinalPredicate, and removes service data that indicates end of stream from the result. + */ + resultTransform?: string; +} + +/** + * @hidden + * + * Wraps method that returns an observable that can be completed. Provided opts.resultFinalPredicate dictates when the observable completes. + */ +export function CordovaFiniteObservable(opts: CordovaFiniteObservableOptions = {}) { + opts.observable = true; + return (target: Object, methodName: string, descriptor: TypedPropertyDescriptor) => { + return { + value: function(...args: any[]) { + const wrappedObservable: Observable = wrap(this, methodName, opts).apply(this, args); + return new Observable((observer: Observer) => { + const wrappedSubscription = wrappedObservable.subscribe({ + next: (x: any) => { + observer.next(opts.resultTransform ? x[opts.resultTransform] : x); + if (opts.resultFinalPredicate && x[opts.resultFinalPredicate]) { + observer.complete(); + } + }, + error: (err: any) => { observer.error(err); }, + complete: () => { observer.complete(); } + }); + return () => { + wrappedSubscription.unsubscribe(); + }; + }); + }, + enumerable: true + }; + }; +} + /** * @name Photo Library * @description @@ -58,8 +105,8 @@ export class PhotoLibrary extends IonicNativePlugin { */ @CordovaFiniteObservable({ callbackOrder: 'reverse', - resultFinalPredicate: (result: { isLastChunk: boolean }) => { return result.isLastChunk; }, - resultTransform: (result: { library: LibraryItem[] }) => { return result.library; }, + resultFinalPredicate: 'isLastChunk', + resultTransform: 'library' }) getLibrary(options?: GetLibraryOptions): Observable { return; } @@ -69,7 +116,7 @@ export class PhotoLibrary extends IonicNativePlugin { * @return { Promise} Returns a promise that resolves when permissions are granted, and fails when not. */ @Cordova({ - callbackOrder: 'reverse', + callbackOrder: 'reverse' }) requestAuthorization(options?: RequestAuthorizationOptions): Promise { return; } @@ -78,7 +125,7 @@ export class PhotoLibrary extends IonicNativePlugin { * @return {Promise} Resolves to list of albums. */ @Cordova({ - callbackOrder: 'reverse', + callbackOrder: 'reverse' }) getAlbums(): Promise { return; } diff --git a/src/@ionic-native/plugins/printer/index.ts b/src/@ionic-native/plugins/printer/index.ts index 4598ce90..bffe3f47 100644 --- a/src/@ionic-native/plugins/printer/index.ts +++ b/src/@ionic-native/plugins/printer/index.ts @@ -67,7 +67,7 @@ export interface PrintOptions { */ @Plugin({ pluginName: 'Printer', - plugin: 'de.appplant.cordova.plugin.printer', + plugin: 'cordova-plugin-printer', pluginRef: 'cordova.plugins.printer', repo: 'https://github.com/katzer/cordova-plugin-printer', platforms: ['Android', 'iOS', 'Windows'] diff --git a/src/@ionic-native/plugins/pro/index.ts b/src/@ionic-native/plugins/pro/index.ts index 8a5f2f43..f1147779 100644 --- a/src/@ionic-native/plugins/pro/index.ts +++ b/src/@ionic-native/plugins/pro/index.ts @@ -1,5 +1,6 @@ import { Injectable } from '@angular/core'; -import { Plugin, Cordova, CordovaInstance, IonicNativePlugin } from '@ionic-native/core'; +import { Plugin, Cordova, CordovaCheck, CordovaInstance, IonicNativePlugin } from '@ionic-native/core'; +import { Observable } from 'rxjs/Observable'; /** * Information about the currently running app @@ -21,6 +22,15 @@ export interface DeployInfo { binary_version: string; } +/** + * Object for manually configuring deploy + */ +export interface DeployConfig { + appId?: string; + host?: string; + channel?: string; +} + /** * @hidden */ @@ -30,68 +40,61 @@ export class ProDeploy { /** * Re-initialize Deploy plugin with a new App ID and host. Not used in most cases. - * @param appId An Ionic Pro app ID - * @param host An Ionic Pro live update API + * @param config A valid Deploy config object */ @CordovaInstance() - init(appId: string, host: string): Promise { return; } - - @CordovaInstance() - debug(): Promise { return; } - - @CordovaInstance() - clearDebug(): Promise { return; } + init(config: DeployConfig): Promise { return; } /** * Check a channel for an available update - * @param appId An Ionic Pro app ID - * @param channelName An Ionic Pro channel name + * @return {Promise} Resolves with 'true' or 'false', or rejects with an error. */ @CordovaInstance() - check(appId: string, channelName: string): Promise { return; } + check(): Promise { return; } /** * Download an available version - * @param appId An Ionic Pro app ID + * @return {Observable} Updates with percent completion, or errors with a message. */ - @CordovaInstance() - download(appId: string): Promise { return; } + @CordovaInstance({ + observable: true + }) + download(): Observable { return; } /** * Unzip the latest downloaded version - * @param appId An Ionic Pro app ID + * @return {Observable} Updates with percent completion, or errors with a message. */ - @CordovaInstance() - extract(appId: string): Promise { return; } + @CordovaInstance({ + observable: true + }) + extract(): Observable { return; } /** * Reload app with the deployed version - * @param appId An Ionic Pro app ID */ @CordovaInstance() - redirect(appId: string): Promise { return; } + redirect(): Promise { return; } /** * Get info about the version running on the device - * @param appId An Ionic Pro app ID + * @return {Promise} Information about the current version running on the app. */ @CordovaInstance() - info(appId: string): Promise { return; } + info(): Promise { return; } /** * List versions stored on the device - * @param appId An Ionic Pro app ID */ @CordovaInstance() - getVersions(appId: string): Promise { return; } + getVersions(): Promise { return; } /** * Delete a version stored on the device by UUID - * @param appId An Ionic Pro app ID * @param version A version UUID */ @CordovaInstance() - deleteVersion(appId: string, version: string): Promise { return; } + deleteVersion(version: string): Promise { return; } } /** @@ -127,10 +130,20 @@ export class ProDeploy { }) @Injectable() export class Pro extends IonicNativePlugin { + _deploy: ProDeploy; + /** * Ionic Pro Deploy .js API. */ - deploy: ProDeploy = new ProDeploy(Pro.getPlugin().deploy); + @CordovaCheck({ sync: true }) + deploy(): ProDeploy { + if (this._deploy) { + return this._deploy; + } else { + this._deploy = new ProDeploy(Pro.getPlugin().deploy); + return this._deploy; + } + } /** * Not yet implemented diff --git a/src/@ionic-native/plugins/push/index.ts b/src/@ionic-native/plugins/push/index.ts index afef7c49..bf166153 100644 --- a/src/@ionic-native/plugins/push/index.ts +++ b/src/@ionic-native/plugins/push/index.ts @@ -131,6 +131,11 @@ export interface CategoryActionData { } export interface AndroidPushOptions { + /** + * Maps to the project number in the Google Developer Console. + */ + senderID?: string; + /** * The name of a drawable resource to use as the small-icon. The name should * not include the extension. @@ -208,7 +213,16 @@ export interface PushOptions { browser?: BrowserPushOptions; } -export type PushEvent = 'registration' | 'error' | 'notification'; +export type Priority = 1 | 2 | 3 | 4 | 5; + +export interface Channel { + id: string; + description: string; + importance: Priority; + sound?: string; +} + +export type PushEvent = string; /** * @name Push @@ -240,6 +254,20 @@ export type PushEvent = 'registration' | 'error' | 'notification'; * * }); * + * // Create a channel (Android O and above). You'll need to provide the id, description and importance properties. + * this.push.createChannel({ + * id: "testchannel1", + * description: "My first test channel", + * // The importance property goes from 1 = Lowest, 2 = Low, 3 = Normal, 4 = High and 5 = Highest. + * importance: 3 + * }).then(() => console.log('Channel created')); + * + * // Delete a channel (Android O and above) + * this.push.deleteChannel('testchannel1').then(() => console.log('Channel deleted')); + * + * // Return a list of currently configured channels + * this.push.listChannels().then((channels) => console.log('List of channels', channels)) + * * // to initialize push notifications * * const options: PushOptions = { @@ -257,6 +285,7 @@ export type PushEvent = 'registration' | 'error' | 'notification'; * * const pushObject: PushObject = this.push.init(options); * + * * pushObject.on('notification').subscribe((notification: any) => console.log('Received a notification', notification)); * * pushObject.on('registration').subscribe((registration: any) => console.log('Device registered', registration)); @@ -302,6 +331,31 @@ export class Push extends IonicNativePlugin { @Cordova() hasPermission(): Promise<{ isEnabled: boolean }> { return; } + /** + * Create a new notification channel for Android O and above. + * @param channel {Channel} + */ + @Cordova({ + callbackOrder: 'reverse' + }) + createChannel(channel?: Channel): Promise { return; } + + /** + * Delete a notification channel for Android O and above. + * @param id {string} + */ + @Cordova({ + callbackOrder: 'reverse' + }) + deleteChannel(id?: string): Promise { return; } + + /** + * Returns a list of currently configured channels. + * @return {Promise} + */ + @Cordova() + listChannels(): Promise { return; } + } /** @@ -365,9 +419,12 @@ export class PushObject { * iOS only * Tells the OS that you are done processing a background push notification. * successHandler gets called when background push processing is successfully completed. + * @param [id] */ - @CordovaInstance() - finish(): Promise { return; } + @CordovaInstance({ + callbackOrder: 'reverse' + }) + finish(id?: string): Promise { return; } /** * Tells the OS to clear all notifications from the Notification Center diff --git a/src/@ionic-native/plugins/screen-orientation/index.ts b/src/@ionic-native/plugins/screen-orientation/index.ts index 1dd25267..99709bec 100644 --- a/src/@ionic-native/plugins/screen-orientation/index.ts +++ b/src/@ionic-native/plugins/screen-orientation/index.ts @@ -55,7 +55,7 @@ import { Observable } from 'rxjs/Observable'; plugin: 'cordova-plugin-screen-orientation', pluginRef: 'screen.orientation', repo: 'https://github.com/apache/cordova-plugin-screen-orientation', - platforms: ['Android', 'BlackBerry 10', 'iOS', 'Windows'] + platforms: ['Android', 'iOS', 'Windows'] }) @Injectable() export class ScreenOrientation extends IonicNativePlugin { diff --git a/src/@ionic-native/plugins/sms/index.ts b/src/@ionic-native/plugins/sms/index.ts index e5cf9879..eb147542 100644 --- a/src/@ionic-native/plugins/sms/index.ts +++ b/src/@ionic-native/plugins/sms/index.ts @@ -29,7 +29,7 @@ export interface SmsOptionsAndroid { * @name SMS * @description * - * Requires Cordova plugin: cordova-plugin-sms. For more info, please see the [SMS plugin docs](https://github.com/cordova-sms/cordova-sms-plugin). + * Requires Cordova plugin: cordova-sms-plugin. For more info, please see the [SMS plugin docs](https://github.com/cordova-sms/cordova-sms-plugin). * * @usage * ```typescript diff --git a/src/@ionic-native/plugins/speechkit/index.ts b/src/@ionic-native/plugins/speechkit/index.ts new file mode 100644 index 00000000..ed49044c --- /dev/null +++ b/src/@ionic-native/plugins/speechkit/index.ts @@ -0,0 +1,53 @@ +import { Injectable } from '@angular/core'; +import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; + +/** + * @name SpeechKit + * @description + * Implementation of Nuance SpeechKit SDK on Ionic + * + * @usage + * ```typescript + * import { SpeechKit } from '@ionic-native/speechkit'; + * + * constructor(private speechkit: SpeechKit) { } + * + * + * this.speechkit.tts('Text to be read out loud', 'ENG-GBR').then( + * (msg) => { console.log(msg); }, + * (err) => { console.log(err); } + * ); + * ``` + */ +@Plugin({ + pluginName: 'SpeechKit', + plugin: 'cordova-plugin-nuance-speechkit', + pluginRef: 'plugins.speechkit', + repo: 'https://github.com/Shmarkus/cordova-plugin-nuance-speechkit', + platforms: ['Android', 'iOS'] +}) +@Injectable() +export class SpeechKit extends IonicNativePlugin { + + /** + * Speak text out loud in given language + * @returns {Promise} + */ + @Cordova() + tts( + text: string, + language: string + ): Promise { return; } + + /** + * Try to recognize what the user said + * @returns {Promise} + */ + @Cordova({ + platforms: ['Android'] + }) + asr( + language: string + ): Promise { return; } + +} diff --git a/src/@ionic-native/plugins/spinner-dialog/index.ts b/src/@ionic-native/plugins/spinner-dialog/index.ts index 25905669..7b032b0f 100644 --- a/src/@ionic-native/plugins/spinner-dialog/index.ts +++ b/src/@ionic-native/plugins/spinner-dialog/index.ts @@ -2,9 +2,24 @@ import { Injectable } from '@angular/core'; import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; export interface SpinnerDialogIOSOptions { + /** + * Opacity of the overlay, between 0 (transparent) and 1 (opaque). Default: 0.35 + */ overlayOpacity?: number; + + /** + * Red component of the text color, between 0 and 1. Default: 1 + */ textColorRed?: number; + + /** + * Green component of the text color, between 0 and 1. Default: 1 + */ textColorGreen?: number; + + /** + * Blue component of the text color, between 0 and 1. Default: 1 + */ textColorBlue?: number; } diff --git a/src/@ionic-native/plugins/splash-screen/index.ts b/src/@ionic-native/plugins/splash-screen/index.ts index 94a2d18f..eb71f91e 100644 --- a/src/@ionic-native/plugins/splash-screen/index.ts +++ b/src/@ionic-native/plugins/splash-screen/index.ts @@ -23,7 +23,7 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; plugin: 'cordova-plugin-splashscreen', pluginRef: 'navigator.splashscreen', repo: 'https://github.com/apache/cordova-plugin-splashscreen', - platforms: ['Amazon Fire OS', 'Android', 'BlackBerry 10', 'iOS', 'Tizen', 'Ubuntu', 'Windows', 'Windows Phone'] + platforms: ['Amazon Fire OS', 'Android', 'iOS', 'Windows'] }) @Injectable() export class SplashScreen extends IonicNativePlugin { diff --git a/src/@ionic-native/plugins/sqlite/index.ts b/src/@ionic-native/plugins/sqlite/index.ts index 82d814fd..36bba60a 100644 --- a/src/@ionic-native/plugins/sqlite/index.ts +++ b/src/@ionic-native/plugins/sqlite/index.ts @@ -1,5 +1,12 @@ import { Injectable } from '@angular/core'; -import { Cordova, CordovaInstance, Plugin, CordovaCheck, InstanceProperty, IonicNativePlugin } from '@ionic-native/core'; +import { + Cordova, + CordovaCheck, + CordovaInstance, + InstanceProperty, + IonicNativePlugin, + Plugin +} from '@ionic-native/core'; declare const sqlitePlugin: any; @@ -17,8 +24,8 @@ export interface SQLiteDatabaseConfig { */ iosDatabaseLocation?: string; /** - * support opening pre-filled databases with https://github.com/litehelpers/cordova-sqlite-ext - */ + * support opening pre-filled databases with https://github.com/litehelpers/cordova-sqlite-ext + */ createFromLocation?: number; /** * support encrypted databases with https://github.com/litehelpers/Cordova-sqlcipher-adapter @@ -31,8 +38,18 @@ export interface SQLiteDatabaseConfig { */ export interface SQLiteTransaction { start: () => void; - executeSql: (sql: any, values: any, success: Function, error: Function) => void; - addStatement: (sql: any, values: any, success: Function, error: Function) => void; + executeSql: ( + sql: any, + values: any, + success: Function, + error: Function + ) => void; + addStatement: ( + sql: any, + values: any, + success: Function, + error: Function + ) => void; handleStatementSuccess: (handler: Function, response: any) => void; handleStatementFailure: (handler: Function, response: any) => void; run: () => void; @@ -45,8 +62,7 @@ export interface SQLiteTransaction { * @hidden */ export class SQLiteObject { - - constructor(public _objectInstance: any) { } + constructor(public _objectInstance: any) {} @InstanceProperty databaseFeatures: { isSQLitePluginDatabase: boolean }; @@ -55,7 +71,7 @@ export class SQLiteObject { @CordovaInstance({ sync: true }) - addTransaction(transaction: (tx: SQLiteTransaction) => void): void { } + addTransaction(transaction: (tx: SQLiteTransaction) => void): void {} /** * @param fn {any} @@ -65,51 +81,62 @@ export class SQLiteObject { successIndex: 2, errorIndex: 1 }) - transaction(fn: any): Promise { return; } + transaction(fn: any): Promise { + return; + } /** * @param fn {Function} * @returns {Promise} */ @CordovaInstance() - readTransaction(fn: (tx: SQLiteTransaction) => void): Promise { return; } + readTransaction(fn: (tx: SQLiteTransaction) => void): Promise { + return; + } @CordovaInstance({ sync: true }) - startNextTransaction(): void { } + startNextTransaction(): void {} /** * @returns {Promise} */ @CordovaInstance() - open(): Promise { return; } + open(): Promise { + return; + } /** * @returns {Promise} */ @CordovaInstance() - close(): Promise { return; } + close(): Promise { + return; + } /** * Execute SQL on the opened database. Note, you must call `create` first, and * ensure it resolved and successfully opened the database. */ @CordovaInstance() - executeSql(statement: string, params: any): Promise { return; } + executeSql(statement: string, params: any): Promise { + return; + } /** * @param sqlStatements {Array} * @returns {Promise} */ @CordovaInstance() - sqlBatch(sqlStatements: Array): Promise { return; } + sqlBatch(sqlStatements: Array): Promise { + return; + } @CordovaInstance({ sync: true }) - abortallPendingTransactions(): void { } - + abortallPendingTransactions(): void {} } /** @@ -159,7 +186,6 @@ export class SQLiteObject { }) @Injectable() export class SQLite extends IonicNativePlugin { - /** * Open or create a SQLite database file. * @@ -171,7 +197,11 @@ export class SQLite extends IonicNativePlugin { @CordovaCheck() create(config: SQLiteDatabaseConfig): Promise { return new Promise((resolve, reject) => { - sqlitePlugin.openDatabase(config, (db: any) => resolve(new SQLiteObject(db)), reject); + sqlitePlugin.openDatabase( + config, + (db: any) => resolve(new SQLiteObject(db)), + reject + ); }); } @@ -180,7 +210,18 @@ export class SQLite extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - echoTest(): Promise { return; } + echoTest(): Promise { + return; + } + + /** + * Automatically verify basic database access operations including opening a database + * @returns {Promise} + */ + @Cordova() + selfTest(): Promise { + return; + } /** * Deletes a database @@ -188,6 +229,7 @@ export class SQLite extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - deleteDatabase(config: SQLiteDatabaseConfig): Promise { return; } - + deleteDatabase(config: SQLiteDatabaseConfig): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/status-bar/index.ts b/src/@ionic-native/plugins/status-bar/index.ts index 480421d2..9d56deb4 100644 --- a/src/@ionic-native/plugins/status-bar/index.ts +++ b/src/@ionic-native/plugins/status-bar/index.ts @@ -29,7 +29,7 @@ import { Cordova, CordovaProperty, Plugin, IonicNativePlugin } from '@ionic-nati plugin: 'cordova-plugin-statusbar', pluginRef: 'StatusBar', repo: 'https://github.com/apache/cordova-plugin-statusbar', - platforms: ['Android', 'iOS', 'Windows', 'Windows Phone'] + platforms: ['Android', 'iOS', 'Windows'] }) @Injectable() export class StatusBar extends IonicNativePlugin { diff --git a/src/@ionic-native/plugins/taptic-engine/index.ts b/src/@ionic-native/plugins/taptic-engine/index.ts index c07d6b14..f7476371 100644 --- a/src/@ionic-native/plugins/taptic-engine/index.ts +++ b/src/@ionic-native/plugins/taptic-engine/index.ts @@ -4,7 +4,7 @@ import { Injectable } from '@angular/core'; /** * @name Taptic Engine * @description - * An Ionic plugin to use Taptic Engine API on iPHone 7, 7 Plus or newer. + * An Ionic plugin to use Taptic Engine API on iPhone 7, 7 Plus or newer. * * @usage * ```typescript diff --git a/src/@ionic-native/plugins/three-dee-touch/index.ts b/src/@ionic-native/plugins/three-dee-touch/index.ts index 20b94c1d..6907118a 100644 --- a/src/@ionic-native/plugins/three-dee-touch/index.ts +++ b/src/@ionic-native/plugins/three-dee-touch/index.ts @@ -1,10 +1,7 @@ import { Injectable } from '@angular/core'; -import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; +import { Cordova, CordovaFunctionOverride, Plugin, IonicNativePlugin } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; - -declare var window: any; - export interface ThreeDeeTouchQuickAction { /** @@ -165,16 +162,8 @@ export class ThreeDeeTouch extends IonicNativePlugin { * When a home icon is pressed, your app launches and this JS callback is invoked. * @returns {Observable} returns an observable that notifies you when he user presses on the home screen icon */ - onHomeIconPressed(): Observable { - return new Observable(observer => { - if (window.ThreeDeeTouch) { - window.ThreeDeeTouch.onHomeIconPressed = observer.next.bind(observer); - } else { - observer.error('3dTouch plugin is not available.'); - observer.complete(); - } - }); - } + @CordovaFunctionOverride() + onHomeIconPressed(): Observable { return; } /** * Enable Link Preview. diff --git a/src/@ionic-native/plugins/uid/index.ts b/src/@ionic-native/plugins/uid/index.ts index aa417a83..a52e4dc2 100644 --- a/src/@ionic-native/plugins/uid/index.ts +++ b/src/@ionic-native/plugins/uid/index.ts @@ -38,7 +38,7 @@ import { Plugin, CordovaProperty, IonicNativePlugin } from '@ionic-native/core'; */ @Plugin({ pluginName: 'Uid', - plugin: 'https://github.com/hygieiasoft/cordova-plugin-uid', + plugin: 'cordova-plugin-uid', pluginRef: 'cordova.plugins.uid', repo: 'https://github.com/hygieiasoft/cordova-plugin-uid', platforms: ['Android'] diff --git a/src/@ionic-native/plugins/vibration/index.ts b/src/@ionic-native/plugins/vibration/index.ts index e09b678b..5d83e9da 100644 --- a/src/@ionic-native/plugins/vibration/index.ts +++ b/src/@ionic-native/plugins/vibration/index.ts @@ -33,7 +33,7 @@ import { Cordova, Plugin, IonicNativePlugin } from '@ionic-native/core'; plugin: 'cordova-plugin-vibration', pluginRef: 'navigator', repo: 'https://github.com/apache/cordova-plugin-vibration', - platforms: ['Android', 'BlackBerry 10', 'Firefox OS', 'iOS', 'Tizen', 'Ubuntu', 'Windows', 'Windows Phone'] + platforms: ['Android', 'iOS', 'Windows'] }) @Injectable() export class Vibration extends IonicNativePlugin { diff --git a/src/@ionic-native/plugins/web-intent/index.ts b/src/@ionic-native/plugins/web-intent/index.ts index 8903bbea..f435afa1 100644 --- a/src/@ionic-native/plugins/web-intent/index.ts +++ b/src/@ionic-native/plugins/web-intent/index.ts @@ -3,9 +3,9 @@ import { Cordova, CordovaProperty, Plugin, IonicNativePlugin } from '@ionic-nati import { Observable } from 'rxjs/Observable'; /** - * @beta * @name Web Intent * @description + * This Plugin provides a general purpose shim layer for the Android intent mechanism, exposing various ways to handle sending and receiving intents. * @usage * For usage information please refer to the plugin's Github repo. * @@ -29,83 +29,71 @@ import { Observable } from 'rxjs/Observable'; @Plugin({ pluginName: 'WebIntent', plugin: 'com-darryncampbell-cordova-plugin-intent', - pluginRef: 'intentShim', + pluginRef: 'plugins.intentShim', repo: 'https://github.com/darryncampbell/darryncampbell-cordova-plugin-intent', platforms: ['Android'] }) @Injectable() export class WebIntent extends IonicNativePlugin { + /** + * Convenience constant for actions + * @type {string} + */ + @CordovaProperty ACTION_SEND: string; /** * Convenience constant for actions * @type {string} */ - @CordovaProperty - ACTION_SEND: string; - - /** - * Convenience constant for actions - * @type {string} - */ - @CordovaProperty - ACTION_VIEW: string; + @CordovaProperty ACTION_VIEW: string; /** * Convenience constant for extras * @type {string} */ - @CordovaProperty - EXTRA_TEXT: string; + @CordovaProperty EXTRA_TEXT: string; /** * Convenience constant for extras * @type {string} */ - @CordovaProperty - EXTRA_SUBJECT: string; + @CordovaProperty EXTRA_SUBJECT: string; /** * Convenience constant for extras * @type {string} */ - @CordovaProperty - EXTRA_STREAM: string; + @CordovaProperty EXTRA_STREAM: string; /** * Convenience constant for extras * @type {string} */ - @CordovaProperty - EXTRA_EMAIL: string; + @CordovaProperty EXTRA_EMAIL: string; /** * Convenience constant for actions * @type {string} */ - @CordovaProperty - ACTION_CALL: string; + @CordovaProperty ACTION_CALL: string; /** * Convenience constant for actions * @type {string} */ - @CordovaProperty - ACTION_SENDTO: string; + @CordovaProperty ACTION_SENDTO: string; /** * Convenience constant for actions * @type {string} */ - @CordovaProperty - ACTION_GET_CONTENT: string; + @CordovaProperty ACTION_GET_CONTENT: string; /** * Convenience constant for actions * @type {string} */ - @CordovaProperty - ACTION_PICK: string; - + @CordovaProperty ACTION_PICK: string; /** * Launches an Android intent @@ -113,7 +101,14 @@ export class WebIntent extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - startActivity(options: { action: any, url: string, type?: string }): Promise { return; } + startActivity(options: { + action: any; + extras?: any; + url: string; + type?: string; + }): Promise { + return; + } /** * Starts a new activity and return the result to the application @@ -121,7 +116,13 @@ export class WebIntent extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - startActivityForResult(options: { action: any, url: string, type?: string }): Promise { return; } + startActivityForResult(options: { + action: any; + url: string; + type?: string; + }): Promise { + return; + } /** * Checks if this app was invoked with specified extra @@ -129,7 +130,9 @@ export class WebIntent extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - hasExtra(extra: string): Promise { return; } + hasExtra(extra: string): Promise { + return; + } /** * Gets the extra that this app was invoked with @@ -137,22 +140,29 @@ export class WebIntent extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - getExtra(extra: string): Promise { return; } + getExtra(extra: string): Promise { + return; + } /** * Gets the Uri the app was invoked with * @returns {Promise} */ @Cordova() - getUri(): Promise { return; }; + getUri(): Promise { + return; + } /** + * Returns the content of the intent used whenever the application activity is launched * @returns {Observable} */ @Cordova({ observable: true }) - onNewIntent(): Observable { return; }; + onIntent(): Observable { + return; + } /** * Sends a custom intent passing optional extras @@ -160,37 +170,44 @@ export class WebIntent extends IonicNativePlugin { * @returns {Promise} */ @Cordova() - sendBroadcast(options: { action: string, extras?: { option: boolean } }): Promise { return; } + sendBroadcast(options: { + action: string; + extras?: { option: boolean }; + }): Promise { + return; + } + + /** + * Request that a given application service be started + * @param options {Object} { action: string, extras?: { option: boolean } } + * @returns {Promise} + */ + @Cordova() + startService(options: { + action: string; + extras?: { option: boolean }; + }): Promise { + return; + } /** * Registers a broadcast receiver for the specified filters * @param filters {any} */ @Cordova({ sync: true }) - registerBroadcastReceiver(filters: any): void { } + registerBroadcastReceiver(filters: any): void {} /** * Unregisters a broadcast receiver */ @Cordova({ sync: true }) - unregisterBroadcastReceiver(): void { } - - /** - * Returns the content of the intent used whenever the application activity is launched - */ - @Cordova({ sync: true }) - onIntent(): void { } - - /** - * - */ - @Cordova({ sync: true }) - onActivityResult(): void { } + unregisterBroadcastReceiver(): void {} /** * @returns {Promise} */ @Cordova() - getIntent(): Promise { return; }; - + getIntent(): Promise { + return; + } } diff --git a/src/@ionic-native/plugins/wheel-selector/index.ts b/src/@ionic-native/plugins/wheel-selector/index.ts index b97a9d32..5f5f787f 100644 --- a/src/@ionic-native/plugins/wheel-selector/index.ts +++ b/src/@ionic-native/plugins/wheel-selector/index.ts @@ -42,7 +42,7 @@ export interface WheelSelectorOptions { * Android only - theme color, 'light' or 'dark'. * Default: light */ - theme?: string; + theme?: 'light' | 'dark'; /** * Whether to have the wheels 'wrap' (Android only) @@ -76,7 +76,7 @@ export interface WheelSelectorData { * * ... * - * let jsonData = { + * const jsonData = { * numbers: [ * { description: "1" }, * { description: "2" }, @@ -105,7 +105,7 @@ export interface WheelSelectorData { * * ... * - * //basic number selection, index is always returned in the result + * // basic number selection, index is always returned in the result * selectANumber() { * this.selector.show({ * title: "How Many?", @@ -122,7 +122,7 @@ export interface WheelSelectorData { * * ... * - * //basic selection, setting initial displayed default values: '3' 'Banana' + * // basic selection, setting initial displayed default values: '3' 'Banana' * selectFruit() { * this.selector.show({ * title: "How Much?", @@ -145,8 +145,8 @@ export interface WheelSelectorData { * * ... * - * //more complex as overrides which key to display - * //then retrieve properties from original data + * // more complex as overrides which key to display + * // then retrieve properties from original data * selectNamesUsingDisplayKey() { * this.selector.show({ * title: "Who?", diff --git a/src/@ionic-native/plugins/zeroconf/index.ts b/src/@ionic-native/plugins/zeroconf/index.ts index 67ad63b4..d91228ff 100644 --- a/src/@ionic-native/plugins/zeroconf/index.ts +++ b/src/@ionic-native/plugins/zeroconf/index.ts @@ -124,4 +124,19 @@ export class Zeroconf extends IonicNativePlugin { */ @Cordova() close(): Promise { return; } + + /** + * Re-initializes the plugin to clean service & browser state. + * @return {Promise} + */ + @Cordova() + reInit(): Promise { return; } + /** + * Family of addresses to register: ipv4, ipv6 or any. + */ + registerAddressFamily: 'ipv4' | 'ipv6' | 'any'; + /** + * Family of addresses to watch for: ipv4, ipv6 or any. + */ + watchAddressFamily: 'ipv4' | 'ipv6' | 'any'; }