Compare commits
10 commits
Author | SHA1 | Date | |
---|---|---|---|
|
930552a681 | ||
|
59d2e3ed43 | ||
|
241cb26e14 | ||
|
fb56ad8a81 | ||
|
d6492c54dd | ||
|
d73d8d5a6d | ||
|
66f81fa15c | ||
|
ea6f4e83f8 | ||
|
be9f43a061 | ||
|
fd9924bf95 |
25 changed files with 522 additions and 323 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -33,5 +33,5 @@ UserInterfaceState.xcuserstate
|
|||
|
||||
# other bits
|
||||
pnut-oauth.ts
|
||||
src/pages/login/pnutauth.ts
|
||||
platforms/
|
||||
platforms
|
||||
config.xml
|
18
CHANGELOG.md
18
CHANGELOG.md
|
@ -4,19 +4,14 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
|
||||
|
||||
## [Unreleased]
|
||||
### Added
|
||||
- iOS icons
|
||||
|
||||
## [0.7.1] - 2020-02-01
|
||||
### Fixed
|
||||
- Paste from clipboard into login fields
|
||||
- Updated longpost URL (issue #92)
|
||||
- Fixed broken image on oembed (issue #89)
|
||||
- Fixed ERR_CLEARTEXT_NOT_PERMITTED with new min android target (issue #90)
|
||||
|
||||
### Changed
|
||||
- Replaced login page and workflow
|
||||
|
||||
### Removed
|
||||
- Cordova platform build
|
||||
|
||||
## [0.7.0]
|
||||
## [0.7.0] - 2018-11-21
|
||||
### Fixed
|
||||
- Sharing post preserves links
|
||||
- Native android build tree
|
||||
|
@ -33,7 +28,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
|
|||
- Icons added to main menu
|
||||
- Updated to Android cordova 7.1.2
|
||||
|
||||
## [0.6.3]
|
||||
## [0.6.3] - 2018-09-03
|
||||
### Added
|
||||
- Open post in browser window
|
||||
|
||||
|
@ -127,6 +122,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
|
|||
- Intial pre-release for Android
|
||||
|
||||
[Unreleased]: https://gitlab.dreamfall.space/thrrgilag/Goober/compare/0.7.0...HEAD
|
||||
[0.7.1]: https://gitlab.dreamfall.space/thrrgilag/Goober/tags/0.7.1
|
||||
[0.7.0]: https://gitlab.dreamfall.space/thrrgilag/Goober/tags/0.7.0
|
||||
[0.6.3]: https://gitlab.dreamfall.space/thrrgilag/Goober/tags/0.6.3
|
||||
[0.6.2]: https://gitlab.dreamfall.space/thrrgilag/Goober/tags/Goober_0_6_2
|
||||
|
|
33
Makefile
33
Makefile
|
@ -12,7 +12,35 @@ KEYSTORE = ~/android-keystore.jks
|
|||
lab:
|
||||
ionic serve -lc
|
||||
|
||||
clean: wwwclean
|
||||
prepare:
|
||||
ionic cordova prepare android --prod
|
||||
|
||||
device:
|
||||
ionic cordova run android -lc --address 0.0.0.0 --device
|
||||
|
||||
emulator:
|
||||
cp config.xml-testing config.xml
|
||||
ionic cordova run android -lc --address 0.0.0.0 --emulator
|
||||
|
||||
$(UNALIGNED):
|
||||
cp config.xml-release config.xml
|
||||
ionic cordova build android --release --prod
|
||||
|
||||
$(ALIGNED): $(UNALIGNED)
|
||||
cd $(OUT_DIR)
|
||||
$(ANDROID_HOME)/build-tools/*/zipalign -v -p 4 $< $@
|
||||
|
||||
$(APK): $(ALIGNED)
|
||||
cd $(OUT_DIR)
|
||||
$(ANDROID_HOME)/build-tools/*/apksigner sign --ks $(KEYSTORE) --out $@ $<
|
||||
ls $@
|
||||
|
||||
release: $(APK)
|
||||
|
||||
clean: androidclean wwwclean
|
||||
|
||||
androidclean:
|
||||
cd platforms/android && ./gradlew clean
|
||||
|
||||
wwwclean:
|
||||
rm -r www
|
||||
|
@ -22,7 +50,7 @@ distclean:
|
|||
|
||||
init:
|
||||
npm install
|
||||
ionic cordova platform add browser
|
||||
ionic cordova platform add android
|
||||
|
||||
ut:
|
||||
npm run ionic:build
|
||||
|
@ -31,5 +59,4 @@ ut:
|
|||
|
||||
pwa:
|
||||
ionic build --prod
|
||||
cp resources/*.png www/assets/icon
|
||||
cp -r www ~/opt/Goober
|
||||
|
|
17
README.md
17
README.md
|
@ -1,12 +1,9 @@
|
|||
# Goober, a mobile app for pnut.io
|
||||
|
||||
Copyright 2017 - 2018 Morgan McMillian
|
||||
Copyright 2017 - 2020 Morgan McMillian
|
||||
|
||||
Goober is a cross platform mobile client for pnut.io built using the Ionic framework (http://ionicframework.com/).
|
||||
|
||||
## Contributing
|
||||
|
||||
**This project is no longer under active development or support. If you decide to fork and continue development let me know. I might transfer this project or link to the new effort whichever is appropriate.**
|
||||
|
||||
## LICENSE
|
||||
|
||||
|
@ -22,14 +19,22 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
|
||||
|
||||
_**Specific details about my build environment can be found on the following Wiki page.**_
|
||||
https://gitlab.dreamfall.space/thrrgilag/Goober/wikis/build-notes
|
||||
|
||||
|
||||
|
||||
## Core build dependencies
|
||||
|
||||
Goober was developed using v3 of the Ionic framework. Since Goober's initial development Ionic has made major breaking changes starting with v4 and as a result this app no longer builds with the latest version of those tools.
|
||||
|
||||
* Install Node.js (https://nodejs.org)
|
||||
* Install the latest Ionic and Cordova tools
|
||||
* Install Ionic v3 and Cordova
|
||||
|
||||
```bash
|
||||
npm install -g ionic cordova
|
||||
npm install -g ionic@3 cordova
|
||||
```
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<widget id="com.monkeystew.goober_m" version="0.8.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
||||
<widget id="com.monkeystew.goober_m" version="0.7.1" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
||||
<name>Goober</name>
|
||||
<description>Goober, a mobile app for pnut.io</description>
|
||||
<author email="gilag@monkeystew.com" href="https://monkeystew.org">Morgan McMillian</author>
|
||||
|
@ -16,6 +16,7 @@
|
|||
<preference name="UIWebViewBounce" value="false" />
|
||||
<preference name="DisallowOverscroll" value="true" />
|
||||
<preference name="android-minSdkVersion" value="19" />
|
||||
<preference name="android-targetSdkVersion" value="28" />
|
||||
<preference name="BackupWebStorage" value="none" />
|
||||
<preference name="SplashMaintainAspectRatio" value="true" />
|
||||
<preference name="FadeSplashScreenDuration" value="300" />
|
||||
|
@ -84,19 +85,4 @@
|
|||
<icon height="110" src="resources/icon-110.png" width="110" />
|
||||
<icon height="144" src="resources/icon-144.png" width="144" />
|
||||
</platform>
|
||||
<plugin name="cordova-plugin-filechooser" spec="^1.0.1" />
|
||||
<plugin name="cordova-plugin-share-content" spec="^1.0.0" />
|
||||
<plugin name="cordova-plugin-file" spec="^6.0.1" />
|
||||
<plugin name="cordova-plugin-file-transfer" spec="^1.7.1" />
|
||||
<plugin name="com-darryncampbell-cordova-plugin-intent" spec="0.0.19" />
|
||||
<plugin name="cordova-plugin-inappbrowser" spec="^2.0.2" />
|
||||
<plugin name="cordova-plugin-whitelist" spec="^1.3.3" />
|
||||
<plugin name="cordova-plugin-splashscreen" spec="^5.0.2" />
|
||||
<plugin name="cordova-plugin-device" spec="^2.0.1" />
|
||||
<plugin name="cordova-android-support-gradle-release" spec="^1.4.2">
|
||||
<variable name="ANDROID_SUPPORT_VERSION" value="27.+" />
|
||||
</plugin>
|
||||
<plugin name="cordova-plugin-filepath" spec="^1.3.0" />
|
||||
<plugin name="cordova-sqlite-storage" spec="2.5.1" />
|
||||
<allow-navigation href="http://192.168.1.72:8100" />
|
||||
</widget>
|
91
config.xml-testing
Normal file
91
config.xml-testing
Normal file
|
@ -0,0 +1,91 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<widget id="com.monkeystew.goober_m" version="0.7.1" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
||||
<name>Goober</name>
|
||||
<description>Goober, a mobile app for pnut.io</description>
|
||||
<author email="gilag@monkeystew.com" href="https://monkeystew.org">Morgan McMillian</author>
|
||||
<content src="index.html" />
|
||||
<access origin="*" />
|
||||
<allow-navigation href="http://ionic.local/*" />
|
||||
<allow-intent href="http://*/*" />
|
||||
<allow-intent href="https://*/*" />
|
||||
<allow-intent href="tel:*" />
|
||||
<allow-intent href="sms:*" />
|
||||
<allow-intent href="mailto:*" />
|
||||
<allow-intent href="geo:*" />
|
||||
<preference name="webviewbounce" value="false" />
|
||||
<preference name="UIWebViewBounce" value="false" />
|
||||
<preference name="DisallowOverscroll" value="true" />
|
||||
<preference name="android-minSdkVersion" value="19" />
|
||||
<preference name="android-targetSdkVersion" value="28" />
|
||||
<preference name="BackupWebStorage" value="none" />
|
||||
<preference name="SplashMaintainAspectRatio" value="true" />
|
||||
<preference name="FadeSplashScreenDuration" value="300" />
|
||||
<preference name="SplashShowOnlyFirstTime" value="false" />
|
||||
<preference name="SplashScreen" value="screen" />
|
||||
<preference name="SplashScreenDelay" value="3000" />
|
||||
<platform name="android">
|
||||
<allow-intent href="market:*" />
|
||||
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
|
||||
<application android:usesCleartextTraffic="true" />
|
||||
</edit-config>
|
||||
<icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />
|
||||
<icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
|
||||
<icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />
|
||||
<icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" />
|
||||
<icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" />
|
||||
<icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" />
|
||||
<splash density="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" />
|
||||
<splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" />
|
||||
<splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" />
|
||||
<splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" />
|
||||
<splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" />
|
||||
<splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" />
|
||||
<splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" />
|
||||
<splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" />
|
||||
<splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" />
|
||||
<splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" />
|
||||
<splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" />
|
||||
<splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" />
|
||||
</platform>
|
||||
<platform name="ios">
|
||||
<allow-intent href="itms:*" />
|
||||
<allow-intent href="itms-apps:*" />
|
||||
<icon height="57" src="resources/ios/icon/icon.png" width="57" />
|
||||
<icon height="114" src="resources/ios/icon/icon@2x.png" width="114" />
|
||||
<icon height="40" src="resources/ios/icon/icon-40.png" width="40" />
|
||||
<icon height="80" src="resources/ios/icon/icon-40@2x.png" width="80" />
|
||||
<icon height="120" src="resources/ios/icon/icon-40@3x.png" width="120" />
|
||||
<icon height="50" src="resources/ios/icon/icon-50.png" width="50" />
|
||||
<icon height="100" src="resources/ios/icon/icon-50@2x.png" width="100" />
|
||||
<icon height="60" src="resources/ios/icon/icon-60.png" width="60" />
|
||||
<icon height="120" src="resources/ios/icon/icon-60@2x.png" width="120" />
|
||||
<icon height="180" src="resources/ios/icon/icon-60@3x.png" width="180" />
|
||||
<icon height="72" src="resources/ios/icon/icon-72.png" width="72" />
|
||||
<icon height="144" src="resources/ios/icon/icon-72@2x.png" width="144" />
|
||||
<icon height="76" src="resources/ios/icon/icon-76.png" width="76" />
|
||||
<icon height="152" src="resources/ios/icon/icon-76@2x.png" width="152" />
|
||||
<icon height="167" src="resources/ios/icon/icon-83.5@2x.png" width="167" />
|
||||
<icon height="29" src="resources/ios/icon/icon-small.png" width="29" />
|
||||
<icon height="58" src="resources/ios/icon/icon-small@2x.png" width="58" />
|
||||
<icon height="87" src="resources/ios/icon/icon-small@3x.png" width="87" />
|
||||
<splash height="1136" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640" />
|
||||
<splash height="1334" src="resources/ios/splash/Default-667h.png" width="750" />
|
||||
<splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242" />
|
||||
<splash height="1242" src="resources/ios/splash/Default-Landscape-736h.png" width="2208" />
|
||||
<splash height="1536" src="resources/ios/splash/Default-Landscape@2x~ipad.png" width="2048" />
|
||||
<splash height="2048" src="resources/ios/splash/Default-Landscape@~ipadpro.png" width="2732" />
|
||||
<splash height="768" src="resources/ios/splash/Default-Landscape~ipad.png" width="1024" />
|
||||
<splash height="2048" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536" />
|
||||
<splash height="2732" src="resources/ios/splash/Default-Portrait@~ipadpro.png" width="2048" />
|
||||
<splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" />
|
||||
<splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640" />
|
||||
<splash height="480" src="resources/ios/splash/Default~iphone.png" width="320" />
|
||||
</platform>
|
||||
<platform name="blackberry10">
|
||||
<preference name="WebSecurity" value="disable" />
|
||||
<icon height="90" src="resources/icon-90.png" width="90" />
|
||||
<icon height="96" src="resources/icon-96.png" width="96" />
|
||||
<icon height="110" src="resources/icon-110.png" width="110" />
|
||||
<icon height="144" src="resources/icon-144.png" width="144" />
|
||||
</platform>
|
||||
</widget>
|
456
package-lock.json
generated
456
package-lock.json
generated
|
@ -503,6 +503,7 @@
|
|||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
|
||||
"integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mime-types": "~2.1.18",
|
||||
"negotiator": "0.6.1"
|
||||
|
@ -571,6 +572,14 @@
|
|||
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
|
||||
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
|
||||
},
|
||||
"android-versions": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/android-versions/-/android-versions-1.5.0.tgz",
|
||||
"integrity": "sha512-/GWUAqa2OJNlDF5VGSe3SR1QMHEPXxx54Ur56r0qQC0H9FlBr7kyBF2SgVEhzFCPbrW4UcYgVuWrq/2Ty3QvXg==",
|
||||
"requires": {
|
||||
"semver": "^5.4.1"
|
||||
}
|
||||
},
|
||||
"ansi": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
|
||||
|
@ -711,7 +720,13 @@
|
|||
"array-flatten": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
|
||||
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
|
||||
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
|
||||
"dev": true
|
||||
},
|
||||
"array-ify": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
|
||||
"integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4="
|
||||
},
|
||||
"array-unique": {
|
||||
"version": "0.2.1",
|
||||
|
@ -1447,9 +1462,9 @@
|
|||
}
|
||||
},
|
||||
"big-integer": {
|
||||
"version": "1.6.43",
|
||||
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.43.tgz",
|
||||
"integrity": "sha512-9dULc9jsKmXl0Aeunug8wbF+58n+hQoFjqClN7WeZwGLh0XJUWyJJ9Ee+Ep+Ql/J9fRsTVaeThp8MhiCCrY0Jg=="
|
||||
"version": "1.6.47",
|
||||
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.47.tgz",
|
||||
"integrity": "sha512-9t9f7X3as2XGX8b52GqG6ox0GvIdM86LyIXASJnDCFhYNgt+A+MByQZ3W2PyMRZjEvG5f8TEbSPfEotVuMJnQg=="
|
||||
},
|
||||
"big.js": {
|
||||
"version": "3.2.0",
|
||||
|
@ -1527,6 +1542,7 @@
|
|||
"version": "1.18.2",
|
||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
|
||||
"integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"bytes": "3.0.0",
|
||||
"content-type": "~1.0.4",
|
||||
|
@ -1543,7 +1559,8 @@
|
|||
"iconv-lite": {
|
||||
"version": "0.4.19",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
|
||||
"integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
|
||||
"integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -2031,9 +2048,9 @@
|
|||
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
|
||||
},
|
||||
"com-darryncampbell-cordova-plugin-intent": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/com-darryncampbell-cordova-plugin-intent/-/com-darryncampbell-cordova-plugin-intent-1.1.1.tgz",
|
||||
"integrity": "sha512-h+V54+qCFY1h5csX8lAKTxBn5DdbP/8/sm7vS6X0WZPI+OTKycxeoJC+oGtPHhlvTh4gSEVW5/MkDqANRcmaug=="
|
||||
"version": "1.1.8",
|
||||
"resolved": "https://registry.npmjs.org/com-darryncampbell-cordova-plugin-intent/-/com-darryncampbell-cordova-plugin-intent-1.1.8.tgz",
|
||||
"integrity": "sha512-gEEBCjiycuoK28DofmaNkxYtOre6czLnNvMYFssH2ycHeY5ickm0SBfVTB+GPtXCeUkxAmxANnJn2p4SX8QcWw=="
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.6",
|
||||
|
@ -2048,6 +2065,25 @@
|
|||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
|
||||
"integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag=="
|
||||
},
|
||||
"compare-func": {
|
||||
"version": "1.3.2",
|
||||
"resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz",
|
||||
"integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=",
|
||||
"requires": {
|
||||
"array-ify": "^1.0.0",
|
||||
"dot-prop": "^3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"dot-prop": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz",
|
||||
"integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=",
|
||||
"requires": {
|
||||
"is-obj": "^1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"component-emitter": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
|
||||
|
@ -2066,35 +2102,6 @@
|
|||
"readable-stream": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"compressible": {
|
||||
"version": "2.0.17",
|
||||
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz",
|
||||
"integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==",
|
||||
"requires": {
|
||||
"mime-db": ">= 1.40.0 < 2"
|
||||
},
|
||||
"dependencies": {
|
||||
"mime-db": {
|
||||
"version": "1.40.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
|
||||
"integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"compression": {
|
||||
"version": "1.7.4",
|
||||
"resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
|
||||
"integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
|
||||
"requires": {
|
||||
"accepts": "~1.3.5",
|
||||
"bytes": "3.0.0",
|
||||
"compressible": "~2.0.16",
|
||||
"debug": "2.6.9",
|
||||
"on-headers": "~1.0.2",
|
||||
"safe-buffer": "5.1.2",
|
||||
"vary": "~1.1.2"
|
||||
}
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
|
@ -2137,12 +2144,14 @@
|
|||
"content-disposition": {
|
||||
"version": "0.5.2",
|
||||
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
|
||||
"integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
|
||||
"integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=",
|
||||
"dev": true
|
||||
},
|
||||
"content-type": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
|
||||
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
|
||||
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
|
||||
"dev": true
|
||||
},
|
||||
"continuable-cache": {
|
||||
"version": "0.3.1",
|
||||
|
@ -2158,12 +2167,14 @@
|
|||
"cookie": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
|
||||
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
|
||||
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
|
||||
"dev": true
|
||||
},
|
||||
"cookie-signature": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
||||
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
|
||||
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
|
||||
"dev": true
|
||||
},
|
||||
"cookiejar": {
|
||||
"version": "2.1.1",
|
||||
|
@ -2177,30 +2188,17 @@
|
|||
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
|
||||
"dev": true
|
||||
},
|
||||
"cordova-android-support-gradle-release": {
|
||||
"version": "1.4.7",
|
||||
"resolved": "https://registry.npmjs.org/cordova-android-support-gradle-release/-/cordova-android-support-gradle-release-1.4.7.tgz",
|
||||
"integrity": "sha512-3hDS3mBjSAEzKM4gZBze8G02/aNQgcww1CyUneuYPOYvleTPk3Q4OYkjmHHuE4FEgr4v9EY6j6bJqoX9pMZHgg==",
|
||||
"cordova-android": {
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-8.1.0.tgz",
|
||||
"integrity": "sha512-eAY6g9q3raJ4P03wNdSWC5MOW1EfxoomWNXsPhi7T6Q9yAqmxqn0sLEUjLL1Ib0LCH3nKQWBXdxapQ5LgbHu+g==",
|
||||
"requires": {
|
||||
"semver": "5.1.0",
|
||||
"xml2js": "~0.4.19"
|
||||
},
|
||||
"dependencies": {
|
||||
"semver": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "http://registry.npmjs.org/semver/-/semver-5.1.0.tgz",
|
||||
"integrity": "sha1-hfLPhVBGXE3wAM99hvawVBBqueU="
|
||||
}
|
||||
}
|
||||
},
|
||||
"cordova-browser": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cordova-browser/-/cordova-browser-6.0.0.tgz",
|
||||
"integrity": "sha512-G61S7fhnVVJC98lvkGeKCVpfFtoW0a1P1Sg9TK+n03g3yupDMIM7XuecWuJ3KEMRhED4+CEc2hauruAff7oXrw==",
|
||||
"requires": {
|
||||
"cordova-common": "^3.1.0",
|
||||
"cordova-serve": "^3.0.0",
|
||||
"android-versions": "^1.4.0",
|
||||
"compare-func": "^1.3.2",
|
||||
"cordova-common": "^3.2.0",
|
||||
"nopt": "^4.0.1",
|
||||
"properties-parser": "^0.3.1",
|
||||
"q": "^1.5.1",
|
||||
"shelljs": "^0.5.3"
|
||||
},
|
||||
"dependencies": {
|
||||
|
@ -2215,17 +2213,33 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"cordova-android-support-gradle-release": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/cordova-android-support-gradle-release/-/cordova-android-support-gradle-release-3.0.1.tgz",
|
||||
"integrity": "sha512-RSW55DkSckmqhX/kjj+a1YeVdy7s/AtlZn6Qa5XMQmmA4Iogq+IF2jvInZqzCF19DbI5YE95AP7VDbRk+DdDRw==",
|
||||
"requires": {
|
||||
"q": "^1.4.1",
|
||||
"semver": "5.6.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"semver": {
|
||||
"version": "5.6.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
|
||||
"integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"cordova-common": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-3.1.0.tgz",
|
||||
"integrity": "sha512-J2MM1ioyLlBYdwdXH40OZL4hN7XEBOfurddKYifF4aTkb2PkbeM+KVORt53eyU+8ScA0QmRLuTG0EM55eLms0A==",
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-3.2.1.tgz",
|
||||
"integrity": "sha512-xg0EnjnA6EipxXG8cupdlYQYeDA6+ghbN+Pjq88xN1LInwP6Bo7IyGBdSV5QnfjOvzShF9BBwSxBAv0FOO0C2Q==",
|
||||
"requires": {
|
||||
"ansi": "^0.3.1",
|
||||
"bplist-parser": "^0.1.0",
|
||||
"cross-spawn": "^6.0.5",
|
||||
"elementtree": "0.1.7",
|
||||
"endent": "^1.1.1",
|
||||
"fs-extra": "^7.0.0",
|
||||
"fs-extra": "^8.0.0",
|
||||
"glob": "^7.1.2",
|
||||
"minimatch": "^3.0.0",
|
||||
"plist": "^3.0.1",
|
||||
|
@ -2248,15 +2262,20 @@
|
|||
}
|
||||
},
|
||||
"fs-extra": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
|
||||
"integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
|
||||
"integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"graceful-fs": "^4.2.0",
|
||||
"jsonfile": "^4.0.0",
|
||||
"universalify": "^0.1.0"
|
||||
}
|
||||
},
|
||||
"graceful-fs": {
|
||||
"version": "4.2.3",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
|
||||
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
|
||||
},
|
||||
"strip-bom": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
|
||||
|
@ -2265,14 +2284,14 @@
|
|||
}
|
||||
},
|
||||
"cordova-plugin-device": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-device/-/cordova-plugin-device-2.0.2.tgz",
|
||||
"integrity": "sha1-/Ajzci5n7ve2xnv8mag99q3Quro="
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-device/-/cordova-plugin-device-2.0.3.tgz",
|
||||
"integrity": "sha512-Jb3V72btxf3XHpkPQsGdyc8N6tVBYn1vsxSFj43fIz9vonJDUThYPCJJHqk6PX6N4dJw6I4FjxkpfCR4LDYMlw=="
|
||||
},
|
||||
"cordova-plugin-file": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-file/-/cordova-plugin-file-6.0.1.tgz",
|
||||
"integrity": "sha1-SWBrjBWlaI1HKPkuSnMloGHeB/U="
|
||||
"version": "6.0.2",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-file/-/cordova-plugin-file-6.0.2.tgz",
|
||||
"integrity": "sha512-m7cughw327CjONN/qjzsTpSesLaeybksQh420/gRuSXJX5Zt9NfgsSbqqKDon6jnQ9Mm7h7imgyO2uJ34XMBtA=="
|
||||
},
|
||||
"cordova-plugin-file-transfer": {
|
||||
"version": "1.7.1",
|
||||
|
@ -2280,19 +2299,19 @@
|
|||
"integrity": "sha1-p12L4uvDu5sjxbG70ZkhTsJnWGs="
|
||||
},
|
||||
"cordova-plugin-filechooser": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-filechooser/-/cordova-plugin-filechooser-1.0.1.tgz",
|
||||
"integrity": "sha1-+lnpe4zdkSYL4L7EYNuOxd6TSI8="
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-filechooser/-/cordova-plugin-filechooser-1.2.0.tgz",
|
||||
"integrity": "sha512-ycL9ML3wlRQ8wfK7vCG8gobv1f3VIdO52m0LA9mPSzLblbu0AXJs89yCRxZB87+08/V96qBxrmkxMsMmVYu5wA=="
|
||||
},
|
||||
"cordova-plugin-filepath": {
|
||||
"version": "1.4.2",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-filepath/-/cordova-plugin-filepath-1.4.2.tgz",
|
||||
"integrity": "sha512-6AKL6dIUkY+iOYesP+3/9LC1cxIilDIo0Hdu4tdDNM/ELIxrmxKywTqGy4x76Fv/LIl6l7g8R2tgCbBXTaBvMw=="
|
||||
"version": "1.5.6",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-filepath/-/cordova-plugin-filepath-1.5.6.tgz",
|
||||
"integrity": "sha512-YvrnXfoq4hzruVXnKo2qAiWlJ6xqo9RWLycEOI13WAIb69pzVvvFHXLREv7otSXkTn2tugpHQWcopxnPPOvFtA=="
|
||||
},
|
||||
"cordova-plugin-inappbrowser": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-inappbrowser/-/cordova-plugin-inappbrowser-3.0.0.tgz",
|
||||
"integrity": "sha1-1K4A02Z2IQdRBXrSWK5K1KkWGto="
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-inappbrowser/-/cordova-plugin-inappbrowser-3.1.0.tgz",
|
||||
"integrity": "sha512-YqrZfYgbGTS20SFID0mrRxud312VH072QVlFonCAkPgtGg1Svy7lELOCNFd+KU7t4mVtZeTEjZPEeefvjaetwQ=="
|
||||
},
|
||||
"cordova-plugin-share-content": {
|
||||
"version": "1.0.0",
|
||||
|
@ -2300,9 +2319,9 @@
|
|||
"integrity": "sha1-PME2UYnKuCW8JTmOY4NcQtO5M7Q="
|
||||
},
|
||||
"cordova-plugin-splashscreen": {
|
||||
"version": "5.0.2",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-splashscreen/-/cordova-plugin-splashscreen-5.0.2.tgz",
|
||||
"integrity": "sha1-dH509W4gHNWFvGLRS8oZ9oZ/8e0="
|
||||
"version": "5.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-splashscreen/-/cordova-plugin-splashscreen-5.0.3.tgz",
|
||||
"integrity": "sha512-rnoDXMDfzoeHDBvsnu6JmzDE/pV5YJCAfc5hYX/Mb2BIXGgSjFJheByt0tU6kp3Wl40tSyFX4pYfBwFblBGyRg=="
|
||||
},
|
||||
"cordova-plugin-telerik-imagepicker": {
|
||||
"version": "2.1.10",
|
||||
|
@ -2310,62 +2329,22 @@
|
|||
"integrity": "sha1-ilVc/RwyCbbbBDgSSdTMxfw+cTE="
|
||||
},
|
||||
"cordova-plugin-whitelist": {
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-whitelist/-/cordova-plugin-whitelist-1.3.3.tgz",
|
||||
"integrity": "sha1-tehezbv+Wu3tQKG/TuI3LmfZb7Q="
|
||||
},
|
||||
"cordova-serve": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cordova-serve/-/cordova-serve-3.0.0.tgz",
|
||||
"integrity": "sha512-h479g/5a0PXn//yiFuMrD5MDEbB+mtihNkWcE6uD/aCh/6z0FRZ9sWH3NfZbHDB+Bp1yGLYsjbH8LZBL8KOQ0w==",
|
||||
"requires": {
|
||||
"chalk": "^2.4.1",
|
||||
"compression": "^1.6.0",
|
||||
"express": "^4.13.3",
|
||||
"opn": "^5.3.0",
|
||||
"which": "^1.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
||||
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
||||
"requires": {
|
||||
"color-convert": "^1.9.0"
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||
"requires": {
|
||||
"has-flag": "^3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
"version": "1.3.4",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-whitelist/-/cordova-plugin-whitelist-1.3.4.tgz",
|
||||
"integrity": "sha512-EYC5eQFVkoYXq39l7tYKE6lEjHJ04mvTmKXxGL7quHLdFPfJMNzru/UYpn92AOfpl3PQaZmou78C7EgmFOwFQQ=="
|
||||
},
|
||||
"cordova-sqlite-storage": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/cordova-sqlite-storage/-/cordova-sqlite-storage-2.5.1.tgz",
|
||||
"integrity": "sha512-RMZcheSs9ihxcXUEmcAg8inG0UHZ5rQKQZqLY40jFES8rpiH5/sYeqaTmnuATx5w2apGB7fFLQHWMG2qaxAVtw==",
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/cordova-sqlite-storage/-/cordova-sqlite-storage-3.4.0.tgz",
|
||||
"integrity": "sha512-Uavq3HulVIYXxTFCp5aafiQhYrZF0/cGlyN76RYhIftcD5IRhza9+ghhV5abJYvuGlzY+p9dM5hPcjnYxfAH+g==",
|
||||
"requires": {
|
||||
"cordova-sqlite-storage-dependencies": "1.2.0"
|
||||
"cordova-sqlite-storage-dependencies": "2.1.0"
|
||||
}
|
||||
},
|
||||
"cordova-sqlite-storage-dependencies": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/cordova-sqlite-storage-dependencies/-/cordova-sqlite-storage-dependencies-1.2.0.tgz",
|
||||
"integrity": "sha512-lJl5uJFrCWrCYYGhpSEXe6sepjgOOzbeh8fFur3LqaSRvx+xFNYtfMYumE0+xqZwSmPODzex+y6I7ixwcBn73Q=="
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cordova-sqlite-storage-dependencies/-/cordova-sqlite-storage-dependencies-2.1.0.tgz",
|
||||
"integrity": "sha512-m0cPOWPzckAqS0/e7v+xtcM+FrHrw63qgh5T91JdkXMKCK8sN9bDoqVNJHZ5E9y7sRO7liMUIDm6Dz439RYqGA=="
|
||||
},
|
||||
"core-js": {
|
||||
"version": "2.5.5",
|
||||
|
@ -2682,7 +2661,8 @@
|
|||
"destroy": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
|
||||
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
|
||||
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
|
||||
"dev": true
|
||||
},
|
||||
"detect-indent": {
|
||||
"version": "4.0.0",
|
||||
|
@ -2764,7 +2744,8 @@
|
|||
"ee-first": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
||||
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
|
||||
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
|
||||
"dev": true
|
||||
},
|
||||
"electron-to-chromium": {
|
||||
"version": "1.3.45",
|
||||
|
@ -2816,7 +2797,8 @@
|
|||
"encodeurl": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
||||
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
|
||||
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
|
||||
"dev": true
|
||||
},
|
||||
"encoding": {
|
||||
"version": "0.1.12",
|
||||
|
@ -2886,16 +2868,20 @@
|
|||
}
|
||||
},
|
||||
"es-abstract": {
|
||||
"version": "1.13.0",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
|
||||
"integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
|
||||
"version": "1.16.0",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz",
|
||||
"integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==",
|
||||
"requires": {
|
||||
"es-to-primitive": "^1.2.0",
|
||||
"function-bind": "^1.1.1",
|
||||
"has": "^1.0.3",
|
||||
"has-symbols": "^1.0.0",
|
||||
"is-callable": "^1.1.4",
|
||||
"is-regex": "^1.0.4",
|
||||
"object-keys": "^1.0.12"
|
||||
"object-inspect": "^1.6.0",
|
||||
"object-keys": "^1.1.1",
|
||||
"string.prototype.trimleft": "^2.1.0",
|
||||
"string.prototype.trimright": "^2.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"object-keys": {
|
||||
|
@ -3012,7 +2998,8 @@
|
|||
"escape-html": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
|
||||
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
|
||||
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
|
||||
"dev": true
|
||||
},
|
||||
"escape-string-regexp": {
|
||||
"version": "1.0.5",
|
||||
|
@ -3094,7 +3081,8 @@
|
|||
"etag": {
|
||||
"version": "1.8.1",
|
||||
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
|
||||
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
|
||||
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
|
||||
"dev": true
|
||||
},
|
||||
"event-emitter": {
|
||||
"version": "0.3.5",
|
||||
|
@ -3163,6 +3151,7 @@
|
|||
"version": "4.16.3",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz",
|
||||
"integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"accepts": "~1.3.5",
|
||||
"array-flatten": "1.1.1",
|
||||
|
@ -3199,27 +3188,32 @@
|
|||
"depd": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
|
||||
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
|
||||
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
|
||||
"dev": true
|
||||
},
|
||||
"path-to-regexp": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
||||
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
|
||||
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
|
||||
"dev": true
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
|
||||
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
|
||||
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
|
||||
"dev": true
|
||||
},
|
||||
"setprototypeof": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
|
||||
"integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
|
||||
"integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
|
||||
"dev": true
|
||||
},
|
||||
"statuses": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
|
||||
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
|
||||
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -3352,6 +3346,7 @@
|
|||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
|
||||
"integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "2.6.9",
|
||||
"encodeurl": "~1.0.2",
|
||||
|
@ -3365,7 +3360,8 @@
|
|||
"statuses": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
|
||||
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
|
||||
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -3449,7 +3445,8 @@
|
|||
"forwarded": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
|
||||
"integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
|
||||
"integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
|
||||
"dev": true
|
||||
},
|
||||
"fragment-cache": {
|
||||
"version": "0.2.1",
|
||||
|
@ -3463,7 +3460,8 @@
|
|||
"fresh": {
|
||||
"version": "0.5.2",
|
||||
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
|
||||
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
|
||||
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
|
||||
"dev": true
|
||||
},
|
||||
"fs-constants": {
|
||||
"version": "1.0.0",
|
||||
|
@ -3518,7 +3516,8 @@
|
|||
},
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
"aproba": {
|
||||
"version": "1.2.0",
|
||||
|
@ -3536,11 +3535,13 @@
|
|||
},
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"bundled": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"balanced-match": "^1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
|
@ -3558,11 +3559,13 @@
|
|||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
"console-control-strings": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
|
@ -3665,7 +3668,8 @@
|
|||
},
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
"ini": {
|
||||
"version": "1.3.5",
|
||||
|
@ -3688,17 +3692,20 @@
|
|||
"minimatch": {
|
||||
"version": "3.0.4",
|
||||
"bundled": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
}
|
||||
},
|
||||
"minimist": {
|
||||
"version": "0.0.8",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
"minipass": {
|
||||
"version": "2.2.4",
|
||||
"bundled": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"safe-buffer": "^5.1.1",
|
||||
"yallist": "^3.0.0"
|
||||
|
@ -3715,6 +3722,7 @@
|
|||
"mkdirp": {
|
||||
"version": "0.5.1",
|
||||
"bundled": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"minimist": "0.0.8"
|
||||
}
|
||||
|
@ -3798,6 +3806,7 @@
|
|||
"once": {
|
||||
"version": "1.4.0",
|
||||
"bundled": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
|
@ -3873,7 +3882,8 @@
|
|||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.1.1",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
"safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
|
@ -3903,6 +3913,7 @@
|
|||
"string-width": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"code-point-at": "^1.0.0",
|
||||
"is-fullwidth-code-point": "^1.0.0",
|
||||
|
@ -3920,6 +3931,7 @@
|
|||
"strip-ansi": {
|
||||
"version": "3.0.1",
|
||||
"bundled": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^2.0.0"
|
||||
}
|
||||
|
@ -3958,11 +3970,13 @@
|
|||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
"yallist": {
|
||||
"version": "3.0.2",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -4703,7 +4717,8 @@
|
|||
"ipaddr.js": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz",
|
||||
"integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs="
|
||||
"integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=",
|
||||
"dev": true
|
||||
},
|
||||
"is-accessor-descriptor": {
|
||||
"version": "0.1.6",
|
||||
|
@ -5468,7 +5483,8 @@
|
|||
"media-typer": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
||||
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
|
||||
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
|
||||
"dev": true
|
||||
},
|
||||
"mem": {
|
||||
"version": "1.1.0",
|
||||
|
@ -5510,12 +5526,14 @@
|
|||
"merge-descriptors": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
|
||||
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
|
||||
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
|
||||
"dev": true
|
||||
},
|
||||
"methods": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
|
||||
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
|
||||
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
|
||||
"dev": true
|
||||
},
|
||||
"micromatch": {
|
||||
"version": "2.3.11",
|
||||
|
@ -5550,7 +5568,8 @@
|
|||
"mime": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
|
||||
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
|
||||
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
|
||||
"dev": true
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.33.0",
|
||||
|
@ -5764,7 +5783,8 @@
|
|||
"negotiator": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
|
||||
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
|
||||
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
|
||||
"dev": true
|
||||
},
|
||||
"neo-async": {
|
||||
"version": "2.5.1",
|
||||
|
@ -6051,15 +6071,11 @@
|
|||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
||||
"integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ee-first": "1.1.1"
|
||||
}
|
||||
},
|
||||
"on-headers": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
|
||||
"integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
|
@ -6258,7 +6274,8 @@
|
|||
"parseurl": {
|
||||
"version": "1.3.2",
|
||||
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
|
||||
"integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
|
||||
"integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
|
||||
"dev": true
|
||||
},
|
||||
"pascalcase": {
|
||||
"version": "0.1.1",
|
||||
|
@ -6400,9 +6417,9 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"base64-js": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
|
||||
"integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw=="
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
|
||||
"integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -6647,10 +6664,19 @@
|
|||
"asap": "~2.0.3"
|
||||
}
|
||||
},
|
||||
"properties-parser": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/properties-parser/-/properties-parser-0.3.1.tgz",
|
||||
"integrity": "sha1-ExbpU5/7/ZOEXjabIRAiq9R4dxo=",
|
||||
"requires": {
|
||||
"string.prototype.codepointat": "^0.2.0"
|
||||
}
|
||||
},
|
||||
"proxy-addr": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz",
|
||||
"integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"forwarded": "~0.1.2",
|
||||
"ipaddr.js": "1.6.0"
|
||||
|
@ -6802,7 +6828,8 @@
|
|||
"range-parser": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
|
||||
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
|
||||
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
|
||||
"dev": true
|
||||
},
|
||||
"raw-body": {
|
||||
"version": "2.3.2",
|
||||
|
@ -7363,6 +7390,7 @@
|
|||
"version": "0.16.2",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
|
||||
"integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "2.6.9",
|
||||
"depd": "~1.1.2",
|
||||
|
@ -7382,12 +7410,14 @@
|
|||
"depd": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
|
||||
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
|
||||
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
|
||||
"dev": true
|
||||
},
|
||||
"statuses": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
|
||||
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
|
||||
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -7395,6 +7425,7 @@
|
|||
"version": "1.13.2",
|
||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
|
||||
"integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"encodeurl": "~1.0.2",
|
||||
"escape-html": "~1.0.3",
|
||||
|
@ -8138,6 +8169,11 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"string.prototype.codepointat": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz",
|
||||
"integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg=="
|
||||
},
|
||||
"string.prototype.trim": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz",
|
||||
|
@ -8148,6 +8184,24 @@
|
|||
"function-bind": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"string.prototype.trimleft": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
|
||||
"integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
|
||||
"requires": {
|
||||
"define-properties": "^1.1.3",
|
||||
"function-bind": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"string.prototype.trimright": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
|
||||
"integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
|
||||
"requires": {
|
||||
"define-properties": "^1.1.3",
|
||||
"function-bind": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
|
@ -8255,29 +8309,29 @@
|
|||
"dev": true
|
||||
},
|
||||
"tape": {
|
||||
"version": "4.10.1",
|
||||
"resolved": "https://registry.npmjs.org/tape/-/tape-4.10.1.tgz",
|
||||
"integrity": "sha512-G0DywYV1jQeY3axeYnXUOt6ktnxS9OPJh97FGR3nrua8lhWi1zPflLxcAHavZ7Jf3qUfY7cxcVIVFa4mY2IY1w==",
|
||||
"version": "4.11.0",
|
||||
"resolved": "https://registry.npmjs.org/tape/-/tape-4.11.0.tgz",
|
||||
"integrity": "sha512-yixvDMX7q7JIs/omJSzSZrqulOV51EC9dK8dM0TzImTIkHWfe2/kFyL5v+d9C+SrCMaICk59ujsqFAVidDqDaA==",
|
||||
"requires": {
|
||||
"deep-equal": "~1.0.1",
|
||||
"defined": "~1.0.0",
|
||||
"for-each": "~0.3.3",
|
||||
"function-bind": "~1.1.1",
|
||||
"glob": "~7.1.3",
|
||||
"glob": "~7.1.4",
|
||||
"has": "~1.0.3",
|
||||
"inherits": "~2.0.3",
|
||||
"inherits": "~2.0.4",
|
||||
"minimist": "~1.2.0",
|
||||
"object-inspect": "~1.6.0",
|
||||
"resolve": "~1.10.0",
|
||||
"resolve": "~1.11.1",
|
||||
"resumer": "~0.0.0",
|
||||
"string.prototype.trim": "~1.1.2",
|
||||
"through": "~2.3.8"
|
||||
},
|
||||
"dependencies": {
|
||||
"glob": {
|
||||
"version": "7.1.4",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
|
||||
"integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
|
||||
"version": "7.1.6",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
||||
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
|
@ -8287,15 +8341,20 @@
|
|||
"path-is-absolute": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||
},
|
||||
"path-parse": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
|
||||
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
|
||||
},
|
||||
"resolve": {
|
||||
"version": "1.10.1",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz",
|
||||
"integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==",
|
||||
"version": "1.11.1",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz",
|
||||
"integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==",
|
||||
"requires": {
|
||||
"path-parse": "^1.0.6"
|
||||
}
|
||||
|
@ -8669,6 +8728,7 @@
|
|||
"version": "1.6.16",
|
||||
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
|
||||
"integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"media-typer": "0.3.0",
|
||||
"mime-types": "~2.1.18"
|
||||
|
@ -8988,7 +9048,8 @@
|
|||
"utils-merge": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
|
||||
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
|
||||
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
|
||||
"dev": true
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.2.1",
|
||||
|
@ -9023,7 +9084,8 @@
|
|||
"vary": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
||||
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
|
||||
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
|
||||
"dev": true
|
||||
},
|
||||
"verror": {
|
||||
"version": "1.10.0",
|
||||
|
|
40
package.json
40
package.json
|
@ -29,20 +29,20 @@
|
|||
"@ionic-native/splash-screen": "4.9.0",
|
||||
"@ionic-native/status-bar": "4.9.0",
|
||||
"@ionic/storage": "2.1.3",
|
||||
"com-darryncampbell-cordova-plugin-intent": "^1.1.1",
|
||||
"cordova-android-support-gradle-release": "^1.4.7",
|
||||
"cordova-browser": "6.0.0",
|
||||
"cordova-plugin-device": "^2.0.2",
|
||||
"cordova-plugin-file": "^6.0.1",
|
||||
"com-darryncampbell-cordova-plugin-intent": "^1.1.8",
|
||||
"cordova-android": "^8.1.0",
|
||||
"cordova-android-support-gradle-release": "^3.0.1",
|
||||
"cordova-plugin-device": "^2.0.3",
|
||||
"cordova-plugin-file": "^6.0.2",
|
||||
"cordova-plugin-file-transfer": "^1.7.1",
|
||||
"cordova-plugin-filechooser": "^1.0.1",
|
||||
"cordova-plugin-filepath": "^1.4.2",
|
||||
"cordova-plugin-inappbrowser": "^3.0.0",
|
||||
"cordova-plugin-filechooser": "^1.2.0",
|
||||
"cordova-plugin-filepath": "^1.5.6",
|
||||
"cordova-plugin-inappbrowser": "^3.1.0",
|
||||
"cordova-plugin-share-content": "^1.0.0",
|
||||
"cordova-plugin-splashscreen": "^5.0.2",
|
||||
"cordova-plugin-splashscreen": "^5.0.3",
|
||||
"cordova-plugin-telerik-imagepicker": "^2.1.8",
|
||||
"cordova-plugin-whitelist": "^1.3.3",
|
||||
"cordova-sqlite-storage": "^2.5.1",
|
||||
"cordova-plugin-whitelist": "^1.3.4",
|
||||
"cordova-sqlite-storage": "^3.4.0",
|
||||
"ionic-angular": "3.9.2",
|
||||
"ionicons": "4.2.4",
|
||||
"moment": "^2.18.1",
|
||||
|
@ -62,23 +62,23 @@
|
|||
"description": "An Ionic project",
|
||||
"cordova": {
|
||||
"plugins": {
|
||||
"cordova-plugin-share-content": {},
|
||||
"cordova-plugin-filechooser": {},
|
||||
"cordova-plugin-device": {},
|
||||
"cordova-plugin-file": {},
|
||||
"cordova-plugin-file-transfer": {},
|
||||
"com-darryncampbell-cordova-plugin-intent": {},
|
||||
"cordova-plugin-filechooser": {},
|
||||
"cordova-plugin-filepath": {},
|
||||
"cordova-plugin-inappbrowser": {},
|
||||
"cordova-plugin-whitelist": {},
|
||||
"cordova-plugin-share-content": {},
|
||||
"cordova-plugin-splashscreen": {},
|
||||
"cordova-plugin-device": {},
|
||||
"cordova-plugin-whitelist": {},
|
||||
"cordova-sqlite-storage": {},
|
||||
"com-darryncampbell-cordova-plugin-intent": {},
|
||||
"cordova-android-support-gradle-release": {
|
||||
"ANDROID_SUPPORT_VERSION": "27.+"
|
||||
},
|
||||
"cordova-plugin-filepath": {},
|
||||
"cordova-sqlite-storage": {}
|
||||
}
|
||||
},
|
||||
"platforms": [
|
||||
"browser"
|
||||
"android"
|
||||
]
|
||||
}
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 17 KiB |
Binary file not shown.
Before Width: | Height: | Size: 16 KiB |
Binary file not shown.
Before Width: | Height: | Size: 18 KiB |
Binary file not shown.
Before Width: | Height: | Size: 16 KiB |
|
@ -9,7 +9,6 @@ import { StreamPage } from '../pages/stream/stream';
|
|||
import { SettingsPage } from '../pages/settings/settings';
|
||||
import { AboutPage } from '../pages/about/about';
|
||||
import { ProfilePage } from '../pages/profile/profile';
|
||||
import { pnutauth } from '../pages/login/pnutauth';
|
||||
|
||||
import { IUser } from '../models/IUser';
|
||||
|
||||
|
@ -23,6 +22,7 @@ export class MyApp {
|
|||
|
||||
rootPage: any = StreamPage;
|
||||
pages: Array<{title: string, icon: string, component: any, params: Object}>;
|
||||
scope: Array<string> = ['basic','stream','write_post','files'];
|
||||
profile: IUser;
|
||||
|
||||
constructor(public platform: Platform, public splashScreen: SplashScreen,
|
||||
|
@ -73,20 +73,20 @@ export class MyApp {
|
|||
pnut.token = val;
|
||||
|
||||
this.storage.get('scope').then((sval) => {
|
||||
if (JSON.stringify(sval) !== JSON.stringify(pnutauth.scope)) {
|
||||
this.nav.setRoot(LoginPage, {});
|
||||
if (JSON.stringify(sval) !== JSON.stringify(this.scope)) {
|
||||
this.nav.setRoot(LoginPage, {'scope': this.scope});
|
||||
} else {
|
||||
this.nav.setRoot(StreamPage, {stream: timeline});
|
||||
}
|
||||
// this.nav.setRoot(StreamPage, {stream: timeline});
|
||||
}).catch(err => {
|
||||
this.nav.setRoot(LoginPage, {});
|
||||
this.nav.setRoot(LoginPage, {'scope': this.scope});
|
||||
});
|
||||
// this.nav.setRoot(StreamPage, {stream: timeline});
|
||||
}
|
||||
}).catch(err => {
|
||||
console.log('ERROR: ' + err);
|
||||
this.nav.setRoot(LoginPage, {});
|
||||
this.nav.setRoot(LoginPage, {'scope': this.scope});
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -96,7 +96,7 @@ export class MyApp {
|
|||
if (page.title === 'Logout') {
|
||||
// this.storage.remove('token');
|
||||
this.storage.clear();
|
||||
this.nav.setRoot(LoginPage, {});
|
||||
this.nav.setRoot(LoginPage, {'scope': this.scope});
|
||||
} else if (page.title === 'Settings' || page.title === 'About') {
|
||||
this.nav.push(page.component, page.params);
|
||||
} else if (page.title === 'Profile') {
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import { BrowserModule } from '@angular/platform-browser';
|
||||
import { ErrorHandler, NgModule } from '@angular/core';
|
||||
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
|
||||
import { HttpClientModule } from '@angular/common/http';
|
||||
|
||||
import { MyApp } from './app.component';
|
||||
import { LoginPage } from '../pages/login/login';
|
||||
|
@ -45,7 +44,6 @@ import { ClipboardModule } from 'ngx-clipboard';
|
|||
],
|
||||
imports: [
|
||||
BrowserModule,
|
||||
HttpClientModule,
|
||||
IonicModule.forRoot(MyApp),
|
||||
IonicStorageModule.forRoot(),
|
||||
ClipboardModule,
|
||||
|
|
|
@ -34,9 +34,11 @@
|
|||
<div *ngIf="hideImg; then hidebtn else thumbbtn"></div>
|
||||
<ng-template #thumbbtn>
|
||||
<ion-item>
|
||||
<ion-thumbnail item-start>
|
||||
<img src="{{ r.value.thumbnail_url || r.value.url }}" (click)="showImage(r.value.url)">
|
||||
</ion-thumbnail>
|
||||
<div *ngIf="r.value.type == 'photo'">
|
||||
<ion-thumbnail item-start>
|
||||
<img src="{{ r.value.thumbnail_url || r.value.url }}" (click)="showImage(r.value.url)">
|
||||
</ion-thumbnail>
|
||||
</div>
|
||||
<h2>{{ r.value.title }}</h2>
|
||||
<p>{{ r.value.description }}</p>
|
||||
</ion-item>
|
||||
|
|
|
@ -8,12 +8,6 @@
|
|||
<meta name="msapplication-tap-highlight" content="no">
|
||||
|
||||
<link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico">
|
||||
|
||||
<link rel="apple-touch-icon" href="assets/icon/icon-iphone.png">
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="assets/icon/icon-ipad.png">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="assets/icon/icon-iphone-retina.png">
|
||||
<link rel="apple-touch-icon" sizes="167x167" href="assets/icon/icon-ipad-retina.png">
|
||||
|
||||
<link rel="manifest" href="manifest.json">
|
||||
<meta name="theme-color" content="#4e8ef7">
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ import { NavController, NavParams } from 'ionic-angular';
|
|||
})
|
||||
export class AboutPage {
|
||||
|
||||
private version: string = '0.8.0';
|
||||
private version: string = '0.7.1';
|
||||
|
||||
constructor(public navCtrl: NavController, public navParams: NavParams) {
|
||||
}
|
||||
|
|
|
@ -20,12 +20,17 @@
|
|||
<h2>Goober</h2>
|
||||
<p block>A mobile client for pnut.io</p>
|
||||
</div><p> </p>
|
||||
|
||||
<ion-label stacked>Username</ion-label>
|
||||
<ion-input [(ngModel)]="username" type="text"></ion-input>
|
||||
<ion-label stacked>Password</ion-label>
|
||||
<ion-input [(ngModel)]="password" type="password"></ion-input>
|
||||
|
||||
<button ion-button block (click)="login()">Log In</button>
|
||||
<div *ngIf="!showToken">
|
||||
<p>Tap the Log In button to open browser window and enter your pnut.io creditionals and authorize Goober.</p>
|
||||
<div *ngIf="oob">
|
||||
<p>Afterwards, copy the token provided, close the pop up window, and paste the token into the input field shown and tap Save Token.</p>
|
||||
</div>
|
||||
<button ion-button block (click)="login()">Log In</button><p>
|
||||
</div>
|
||||
<div *ngIf="showToken">
|
||||
<p>Paste the token provided into this field and then tap Save Token.</p>
|
||||
<ion-input [(ngModel)]="token" type="text" placeholder="Token"></ion-input>
|
||||
<p><button ion-button block (click)="saveToken()">Save Token</button></p>
|
||||
</div>
|
||||
|
||||
</ion-content>
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
page-login {
|
||||
user-select: auto !important;
|
||||
|
||||
}
|
||||
|
|
|
@ -1,54 +1,81 @@
|
|||
import { Component } from '@angular/core';
|
||||
import { NavController, NavParams } from 'ionic-angular';
|
||||
import { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';
|
||||
import { Storage } from '@ionic/storage';
|
||||
import { Device } from '@ionic-native/device';
|
||||
import { StreamPage } from '../stream/stream';
|
||||
import { pnutauth } from './pnutauth';
|
||||
|
||||
import { OauthCordova } from 'ng2-cordova-oauth/platform/cordova';
|
||||
import { OauthBrowser } from 'ng2-cordova-oauth/platform/browser';
|
||||
import { PnutAuth } from '../../providers/pnut-oauth';
|
||||
import * as pnut from 'pnut-butter';
|
||||
|
||||
|
||||
/**
|
||||
* Generated class for the LoginPage page.
|
||||
*
|
||||
* See http://ionicframework.com/docs/components/#navigation for more info
|
||||
* on Ionic pages and navigation.
|
||||
*/
|
||||
@Component({
|
||||
selector: 'page-login',
|
||||
templateUrl: 'login.html',
|
||||
})
|
||||
export class LoginPage {
|
||||
|
||||
private username: string;
|
||||
private password: string;
|
||||
private oauth: any;
|
||||
private pnutProvider: any;
|
||||
private oob: boolean = false;
|
||||
public showToken: boolean = false;
|
||||
private token: string;
|
||||
private scope: Array<string> = [];
|
||||
|
||||
constructor(public navCtrl: NavController, public navParams: NavParams,
|
||||
private storage: Storage, private http: HttpClient) {
|
||||
constructor(public navCtrl: NavController, public navParams: NavParams, private storage: Storage,
|
||||
private device: Device) {
|
||||
|
||||
this.scope = navParams.data.scope;
|
||||
|
||||
if (this.device.platform === "Android" || this.device.platform === "amazon-fireos") {
|
||||
this.oauth = new OauthCordova();
|
||||
this.pnutProvider = new PnutAuth({
|
||||
appScope: this.scope,
|
||||
redirectUri: 'http://localhost/callback'
|
||||
});
|
||||
} else if (this.device.platform === "blackberry10") {
|
||||
this.oauth = new OauthBrowser();
|
||||
this.pnutProvider = new PnutAuth({
|
||||
appScope: this.scope,
|
||||
redirectUri: 'https://zoidberg.monkeystew.net/'
|
||||
});
|
||||
} else {
|
||||
this.oauth = new OauthBrowser();
|
||||
this.pnutProvider = new PnutAuth({
|
||||
appScope: this.scope,
|
||||
redirectUri: 'urn:ietf:wg:oauth:2.0:oob'
|
||||
});
|
||||
this.oob = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
login() {
|
||||
|
||||
interface LoginResponse {
|
||||
access_token: string;
|
||||
}
|
||||
|
||||
let headers = new HttpHeaders()
|
||||
.set('Content-Type', 'application/x-www-form-urlencoded');
|
||||
|
||||
let params = new HttpParams()
|
||||
.set('client_id', pnutauth.clientId)
|
||||
.set('password_grant_secret', pnutauth.clientSecret)
|
||||
.set('username', this.username)
|
||||
.set('password', this.password)
|
||||
.set('grant_type', 'password')
|
||||
.set('scope', pnutauth.scope);
|
||||
|
||||
this.http.post<LoginResponse>(pnutauth.url, params, {headers: headers}).subscribe(res => {
|
||||
console.log('authorized');
|
||||
this.storage.set('scope', pnutauth.scope);
|
||||
this.storage.set('token', res.access_token);
|
||||
pnut.token = res.access_token;
|
||||
this.navCtrl.setRoot(StreamPage, {stream: "personal"});
|
||||
}, err => {
|
||||
console.log("error: " + JSON.stringify(err));
|
||||
this.oauth.logInVia(this.pnutProvider).then(success => {
|
||||
// console.log('OAUTH SUCCESS: ' + JSON.stringify(success));
|
||||
this.storage.set('token', success['access_token']);
|
||||
this.storage.set('scope', this.scope);
|
||||
pnut.token = success['access_token'];
|
||||
this.navCtrl.setRoot(StreamPage, {stream: 'personal'});
|
||||
}, error => {
|
||||
// console.log('OAUTH ERROR: ' + JSON.stringify(error));
|
||||
if (this.oob) {
|
||||
this.showToken = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
saveToken() {
|
||||
this.storage.set('scope', this.scope);
|
||||
this.storage.set('token', this.token);
|
||||
pnut.token = this.token;
|
||||
this.navCtrl.setRoot(StreamPage, {stream: 'personal'});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
export const pnutauth = {
|
||||
url: "https://api.pnut.io/v0/oauth/access_token",
|
||||
scope: "basic,stream,write_post,files",
|
||||
clientId: "",
|
||||
clientSecret: ""
|
||||
}
|
|
@ -21,9 +21,9 @@
|
|||
</ion-card-content>
|
||||
<ion-row justify-content-end>
|
||||
<ion-col offset-0>
|
||||
<!-- <button ion-button (click)="attachImage()">
|
||||
<button ion-button (click)="attachImage()">
|
||||
<ion-icon name="attach"></ion-icon>
|
||||
</button> -->
|
||||
</button>
|
||||
</ion-col>
|
||||
<ion-col col-2><div text-center>{{textCount()}}</div></ion-col>
|
||||
<ion-col col-2>
|
||||
|
|
|
@ -67,8 +67,8 @@ export class NewPostModal {
|
|||
'body': this.ptext,
|
||||
'tstamp': new Date().valueOf()
|
||||
}
|
||||
this.ptext = this.ptext.substr(0, 40) + "... - http://chimpnut.nl/u/";
|
||||
this.ptext = this.ptext + this.navParams.data.me + "/lp/{object_id} - #longpost";
|
||||
this.ptext = this.ptext.substr(0, 100) + "... - https://longpo.st/p/{object_id} - #longpost";
|
||||
// this.ptext = this.ptext + this.navParams.data.me + "/lp/{object_id} - #longpost";
|
||||
this.raw.push({
|
||||
type: "nl.chimpnut.blog.post",
|
||||
value: this.longpost
|
||||
|
|
12
src/providers/pnut-oauth.ts.sample
Normal file
12
src/providers/pnut-oauth.ts.sample
Normal file
|
@ -0,0 +1,12 @@
|
|||
import { OAuthProvider } from 'ng2-cordova-oauth/provider';
|
||||
|
||||
export class PnutAuth extends OAuthProvider {
|
||||
|
||||
protected authUrl: string = 'https://pnut.io/oauth/authenticate';
|
||||
protected defaults: Object = {
|
||||
responseType: 'token',
|
||||
clientId: '' // Insert your client ID and rename this file to pnut-oauth.ts
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -9,7 +9,7 @@
|
|||
"desktop": "goober.desktop"
|
||||
}
|
||||
},
|
||||
"version": "0.8.0",
|
||||
"version": "0.7.0",
|
||||
"maintainer": "Morgan McMillian <gilag@monkeystew.com>",
|
||||
"framework" : "ubuntu-sdk-16.04"
|
||||
}
|
||||
|
|
Reference in a new issue