diff --git a/.appveyor.yml b/.appveyor.yml index a7b2426..6a3c939 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -12,12 +12,16 @@ image: - Visual Studio 2017 environment: - nodejs_version: "4" matrix: - - PLATFORM: windows-10-store - JUST_BUILD: --justBuild + - nodejs_version: "10" + - nodejs_version: "12" + +platform: + - x86 + - x64 + install: - - npm cache clean -f + - ps: Install-Product node $env:nodejs_version - node --version - npm install -g cordova-paramedic@https://github.com/apache/cordova-paramedic.git - npm install -g cordova @@ -25,4 +29,4 @@ install: build: off test_script: - - cordova-paramedic --config pr\%PLATFORM% --plugin . %JUST_BUILD% + - cordova-paramedic --config pr\windows-10-store --plugin . --justBuild diff --git a/.asf.yaml b/.asf.yaml new file mode 100644 index 0000000..29a6c7c --- /dev/null +++ b/.asf.yaml @@ -0,0 +1,22 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, 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. + +notifications: + commits: commits@cordova.apache.org + issues: issues@cordova.apache.org + pullrequests_status: issues@cordova.apache.org + pullrequests_comment: issues@cordova.apache.org diff --git a/.eslintrc.yml b/.eslintrc.yml new file mode 100644 index 0000000..e651750 --- /dev/null +++ b/.eslintrc.yml @@ -0,0 +1,23 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, 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. + +root: true +extends: '@cordova/eslint-config/browser' + +overrides: + - files: [tests/**/*.js] + extends: '@cordova/eslint-config/node-tests' diff --git a/.gitignore b/.gitignore index 7d3b1ce..5099a0b 100644 --- a/.gitignore +++ b/.gitignore @@ -12,17 +12,4 @@ Thumbs.db *.swp *.user - - - - - - - - - node_modules - -/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/xcuserdata/ - -/tests/ios/CDVSplashScreenTest.xcworkspace/xcuserdata/ diff --git a/.jshintignore b/.jshintignore deleted file mode 100644 index 09bc22e..0000000 --- a/.jshintignore +++ /dev/null @@ -1 +0,0 @@ -tests/ios diff --git a/.jshintrc b/.jshintrc deleted file mode 100644 index cf48aac..0000000 --- a/.jshintrc +++ /dev/null @@ -1,16 +0,0 @@ -{ - "browser": true - , "devel": true - , "bitwise": true - , "undef": true - , "trailing": true - , "quotmark": false - , "indent": 4 - , "unused": "vars" - , "latedef": "nofunc" - , "globals": { - "module": false, - "exports": false, - "require": false - } -} diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..45e3c38 --- /dev/null +++ b/.npmignore @@ -0,0 +1,3 @@ +.* +appveyor.yml +tests diff --git a/.travis.yml b/.travis.yml index 82f49b1..c41d67b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,4 @@ -# This Travis configuration file is built after a Cordova Paramedic +# This Travis configuration file is built after a Cordova Paramedic # specific template with minimal modifications and adaptations: # https://github.com/apache/cordova-paramedic/blob/master/.travis.yml @@ -12,19 +12,15 @@ addons: env: global: - SAUCE_USERNAME=snay - - TRAVIS_NODE_VERSION=8 - - ANDROID_API_LEVEL=28 - - ANDROID_BUILD_TOOLS_VERSION=28.0.3 + - TRAVIS_NODE_VERSION=12 + - ANDROID_API_LEVEL=29 + - ANDROID_BUILD_TOOLS_VERSION=29.0.2 language: node_js -node_js: 8 +node_js: 12 # yaml anchor/alias: https://medium.com/@tommyvn/travis-yml-dry-with-anchors-8b6a3ac1b027 -_ios: &_ios - os: osx - osx_image: xcode10.2 - _android: &_android language: android os: linux @@ -35,21 +31,15 @@ _android: &_android - build-tools-$ANDROID_BUILD_TOOLS_VERSION - android-$ANDROID_API_LEVEL licenses: - - 'android-sdk-preview-license-.+' - - 'android-sdk-license-.+' - - 'google-gdk-license-.+' + - "android-sdk-preview-license-.+" + - "android-sdk-license-.+" + - "google-gdk-license-.+" matrix: include: - # additional `npm test` in directory - - env: ADDITIONAL_TESTS_DIR=./tests/ios - <<: *_ios - # one local test, without saucelabs - env: PLATFORM=local/browser - <<: *_ios - - env: PLATFORM=local/ios-10.0 - <<: *_ios + os: osx # many tests with saucelabs - env: PLATFORM=browser-chrome @@ -57,13 +47,6 @@ matrix: - env: PLATFORM=browser-safari - env: PLATFORM=browser-edge - - env: PLATFORM=ios-11.3 - <<: *_ios - - env: PLATFORM=ios-12.0 - <<: *_ios - - env: PLATFORM=ios-12.2 - <<: *_ios - - env: PLATFORM=android-5.1 <<: *_android - env: PLATFORM=android-6.0 @@ -81,13 +64,12 @@ matrix: before_install: # manually install Node for `language: android` - - if [[ "$PLATFORM" =~ android ]]; then nvm install $TRAVIS_NODE_VERSION; fi + - if [[ "$PLATFORM" =~ android ]]; then nvm install $TRAVIS_NODE_VERSION; fi - node --version - if [[ "$PLATFORM" =~ android ]]; then gradle --version; fi - - if [[ "$PLATFORM" =~ ios ]]; then npm install -g ios-deploy; fi - npm install -g cordova # install paramedic if not running on paramedic repo - - if ! [[ "$TRAVIS_REPO_SLUG" =~ cordova-paramedic ]]; then npm install -g github:apache/cordova-paramedic; fi + - if ! [[ "$TRAVIS_REPO_SLUG" =~ cordova-paramedic ]]; then npm install -g github:apache/cordova-paramedic; fi install: - npm install @@ -116,7 +98,8 @@ before_script: echo "PARAMEDIC_BUILDNAME=$PARAMEDIC_BUILDNAME" script: - $TEST_COMMAND - - if [[ "$ADDITIONAL_TESTS_DIR" != "" ]]; then + - | + if [[ "$ADDITIONAL_TESTS_DIR" != "" ]]; then cd $ADDITIONAL_TESTS_DIR && npm install && npm test; else $PARAMEDIC_COMMAND --config ./pr/$PLATFORM --plugin $PARAMEDIC_PLUGIN_TO_TEST --buildName $PARAMEDIC_BUILDNAME; diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4c8e6a5..21a93d7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,13 +25,13 @@ Anyone can contribute to Cordova. And we need your contributions. There are multiple ways to contribute: report bugs, improve the docs, and contribute code. - -For instructions on this, start with the + +For instructions on this, start with the [contribution overview](http://cordova.apache.org/contribute/). The details are explained there, but the important items are: - - Sign and submit an Apache ICLA (Contributor License Agreement). - - Have a Jira issue open that corresponds to your contribution. + - Check for Github issues that corresponds to your contribution and link or create them if necessary. - Run the tests so your patch doesn't break existing functionality. We look forward to your contributions! + diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 73b2a1e..d4877dc 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -20,6 +20,33 @@ --> # Release Notes +### 6.0.0 (Jul 07, 2020) + +* [GH-282](https://github.com/apache/cordova-plugin-splashscreen/pull/282) fix: js `clobber` only on supported platforms +* [GH-281](https://github.com/apache/cordova-plugin-splashscreen/pull/281) chore: adds `package-lock` file +* [GH-280](https://github.com/apache/cordova-plugin-splashscreen/pull/280) doc(android): various improvements including size specs +* [GH-200](https://github.com/apache/cordova-plugin-splashscreen/pull/200) fix(windows): implementation structure +* [GH-279](https://github.com/apache/cordova-plugin-splashscreen/pull/279) chore: add missing supported platform **Browser** to `npm` keywords +* [GH-278](https://github.com/apache/cordova-plugin-splashscreen/pull/278) chore: update `engine` checks to cover newer versions +* [GH-277](https://github.com/apache/cordova-plugin-splashscreen/pull/277) breaking: replace `jshint` with `eslint` +* [GH-276](https://github.com/apache/cordova-plugin-splashscreen/pull/276) breaking: drop `node` `engine` requirement +* [GH-275](https://github.com/apache/cordova-plugin-splashscreen/pull/275) chore: cleanup repo +* [GH-274](https://github.com/apache/cordova-plugin-splashscreen/pull/274) breaking: bump `engine` restriction for cordova dependencies +* [GH-263](https://github.com/apache/cordova-plugin-splashscreen/pull/263) breaking: remove **iOS** platform code from plugin repo +* [GH-267](https://github.com/apache/cordova-plugin-splashscreen/pull/267) test: force `cordova-ios`@^5.1.1 + +### 5.0.4 (Jun 03, 2020) +* [GH-261](https://github.com/apache/cordova-plugin-splashscreen/pull/261) chore: add `cordova-ios` requirement <6.0.0 +* chore(asf): update git notification settings +* update CONTRIBUTING.md +* [GH-251](https://github.com/apache/cordova-plugin-splashscreen/pull/251) chore(npm): adds ignore list +* [GH-252](https://github.com/apache/cordova-plugin-splashscreen/pull/252) ci: updates Node.js versions +* [GH-236](https://github.com/apache/cordova-plugin-splashscreen/pull/236) update homepage to github `README` page +* [GH-239](https://github.com/apache/cordova-plugin-splashscreen/pull/239) update `README`.md by adding missing info +* ci(travis): Upgrade node from 6 to 8 +* ci(travis): Remove **Android 4.4**, Add **Android** 9.0 +* [GH-212](https://github.com/apache/cordova-plugin-splashscreen/pull/212) ci(travis): Add ADDITIONAL_TESTS_DIR=./tests/ios + ### 5.0.3 (May 09, 2019) * Update CI configuration and README ([#210](https://github.com/apache/cordova-plugin-splashscreen/pull/210), [#208](https://github.com/apache/cordova-plugin-splashscreen/pull/208), [#198](https://github.com/apache/cordova-plugin-splashscreen/pull/198), [#194](https://github.com/apache/cordova-plugin-splashscreen/pull/194)) * Add or update GitHub pull request and issue template diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c3e78c8 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1724 @@ +{ + "name": "cordova-plugin-splashscreen", + "version": "6.0.1-dev", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@cordova/eslint-config": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cordova/eslint-config/-/eslint-config-3.0.0.tgz", + "integrity": "sha512-YOZn/G5foKFzZc8R/oBM+BLG6vHufOmZiJtiZHNxifsrqzORwyjq1EiUSvQ6s0bm6Ydh3zwwyuGVbYyDBil67w==", + "dev": true, + "requires": { + "eslint": "^6.8.0", + "eslint-config-standard": "^14.1.1", + "eslint-plugin-import": "^2.20.1", + "eslint-plugin-node": "^11.0.0", + "eslint-plugin-promise": "^4.2.1", + "eslint-plugin-standard": "^4.0.1" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "acorn": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", + "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", + "dev": true + }, + "acorn-jsx": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "dev": true + }, + "ajv": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" + } + }, + "array.prototype.flat": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "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 + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-is": { + "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 + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + } + }, + "eslint-config-standard": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz", + "integrity": "sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg==", + "dev": true + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "dev": true, + "requires": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz", + "integrity": "sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==", + "dev": true, + "requires": { + "array-includes": "^3.1.1", + "array.prototype.flat": "^1.2.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.3", + "eslint-module-utils": "^2.6.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.1", + "read-pkg-up": "^2.0.0", + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-plugin-node": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", + "dev": true, + "requires": { + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + } + } + }, + "eslint-plugin-promise": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", + "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", + "dev": true + }, + "eslint-plugin-standard": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz", + "integrity": "sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ==", + "dev": true + }, + "eslint-scope": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", + "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", + "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "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 + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "inquirer": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.0.tgz", + "integrity": "sha512-K+LZp6L/6eE5swqIcVXrxl21aGDU4S50gKH0/d96OMQnSBCyGyZl/oZhbkVmdp5sBoINHd4xZvFSARh2dk6DWA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "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": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "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 + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "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 + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "rxjs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz", + "integrity": "sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } + } + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + } + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", + "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true + }, + "type-check": { + "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": "~1.1.2" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "v8-compile-cache": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "word-wrap": { + "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 + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + } + } +} diff --git a/package.json b/package.json index bf0d9e0..29847be 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,12 @@ { "name": "cordova-plugin-splashscreen", - "version": "5.0.4-dev", + "version": "6.0.1-dev", "description": "Cordova Splashscreen Plugin", "types": "./types/index.d.ts", "cordova": { "id": "cordova-plugin-splashscreen", "platforms": [ "android", - "ubuntu", - "ios", "windows", "browser" ] @@ -20,32 +18,31 @@ "splashscreen", "ecosystem:cordova", "cordova-android", - "cordova-ios", - "cordova-windows" + "cordova-windows", + "cordova-browser" ], "scripts": { - "test": "npm run jshint", - "jshint": "node node_modules/jshint/bin/jshint www && node node_modules/jshint/bin/jshint src && node node_modules/jshint/bin/jshint tests" + "test": "npm run lint", + "lint": "eslint ." }, "engines": { "cordovaDependencies": { "2.0.0": { "cordova-android": ">=3.6.0" }, - "4.0.0": { + ">=4.0.0": { "cordova-android": ">=3.6.0", "cordova-windows": ">=4.4.0" }, - "6.0.0": { + "7.0.0": { "cordova": ">100" } - }, - "node": ">=6.0.0" + } }, "author": "Apache Software Foundation", "license": "Apache-2.0", "devDependencies": { - "jshint": "^2.6.0" + "@cordova/eslint-config": "^3.0.0" }, - "homepage": "https://cordova.apache.org/" + "homepage": "https://github.com/apache/cordova-plugin-splashscreen#readme" } diff --git a/plugin.xml b/plugin.xml index 83dad73..bad4b35 100644 --- a/plugin.xml +++ b/plugin.xml @@ -19,24 +19,20 @@ --> + id="cordova-plugin-splashscreen" + version="6.0.1-dev"> Splashscreen Cordova Splashscreen Plugin Apache 2.0 cordova,splashscreen - https://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen.git - https://issues.apache.org/jira/browse/CB/component/12320653 + https://github.com/apache/cordova-plugin-splashscreen.git + https://github.com/apache/cordova-plugin-splashscreen/issues - - - - @@ -51,30 +47,20 @@ - - - - - - - - - - - - - - - - - + + + - + + + + + @@ -82,5 +68,9 @@ + + + + diff --git a/src/browser/SplashScreenProxy.js b/src/browser/SplashScreenProxy.js index 1a5cd30..9df6e54 100644 --- a/src/browser/SplashScreenProxy.js +++ b/src/browser/SplashScreenProxy.js @@ -22,10 +22,10 @@ // Default parameter values including image size can be changed in `config.xml` var splashImageWidth = 170; var splashImageHeight = 200; -var position = { x: 0, y: 0, width: splashImageWidth, height: splashImageHeight }; +var position = { x: 0, y: 0, width: splashImageWidth, height: splashImageHeight }; var localSplash; // the image to display var localSplashImage; -var bgColor = "#464646"; +var bgColor = '#464646'; var imageSrc = '/img/logo.png'; var splashScreenDelay = 3000; // in milliseconds var showSplashScreen = true; // show splashcreen by default @@ -33,24 +33,24 @@ var cordova = require('cordova'); var configHelper = cordova.require('cordova/confighelper'); var autoHideSplashScreen = true; -function updateImageLocation() { +function updateImageLocation () { position.width = Math.min(splashImageWidth, window.innerWidth); position.height = position.width * (splashImageHeight / splashImageWidth); - localSplash.style.width = window.innerWidth + "px"; - localSplash.style.height = window.innerHeight + "px"; - localSplash.style.top = "0px"; - localSplash.style.left = "0px"; + localSplash.style.width = window.innerWidth + 'px'; + localSplash.style.height = window.innerHeight + 'px'; + localSplash.style.top = '0px'; + localSplash.style.left = '0px'; - localSplashImage.style.top = "50%"; - localSplashImage.style.left = "50%"; - localSplashImage.style.height = position.height + "px"; - localSplashImage.style.width = position.width + "px"; - localSplashImage.style.marginTop = (-position.height / 2) + "px"; - localSplashImage.style.marginLeft = (-position.width / 2) + "px"; + localSplashImage.style.top = '50%'; + localSplashImage.style.left = '50%'; + localSplashImage.style.height = position.height + 'px'; + localSplashImage.style.width = position.width + 'px'; + localSplashImage.style.marginTop = (-position.height / 2) + 'px'; + localSplashImage.style.marginLeft = (-position.width / 2) + 'px'; } -function onResize() { +function onResize () { updateImageLocation(); } @@ -62,16 +62,16 @@ var SplashScreen = { } }, show: function () { - if(!localSplash) { - window.addEventListener("resize", onResize, false); - localSplash = document.createElement("div"); + if (!localSplash) { + window.addEventListener('resize', onResize, false); + localSplash = document.createElement('div'); localSplash.style.backgroundColor = bgColor; - localSplash.style.position = "absolute"; - localSplash.style["z-index"] = "99999"; + localSplash.style.position = 'absolute'; + localSplash.style['z-index'] = '99999'; - localSplashImage = document.createElement("img"); + localSplashImage = document.createElement('img'); localSplashImage.src = imageSrc; - localSplashImage.style.position = "absolute"; + localSplashImage.style.position = 'absolute'; updateImageLocation(); @@ -88,16 +88,16 @@ var SplashScreen = { } }, hide: function () { - if(localSplash) { + if (localSplash) { var innerLocalSplash = localSplash; localSplash = null; - window.removeEventListener("resize", onResize, false); + window.removeEventListener('resize', onResize, false); innerLocalSplash.style.opacity = '0'; - innerLocalSplash.style["-webkit-transition"] = "opacity 1s ease-in-out"; - innerLocalSplash.style["-moz-transition"] = "opacity 1s ease-in-out"; - innerLocalSplash.style["-ms-transition"] = "opacity 1s ease-in-out"; - innerLocalSplash.style["-o-transition"] = "opacity 1s ease-in-out"; + innerLocalSplash.style['-webkit-transition'] = 'opacity 1s ease-in-out'; + innerLocalSplash.style['-moz-transition'] = 'opacity 1s ease-in-out'; + innerLocalSplash.style['-ms-transition'] = 'opacity 1s ease-in-out'; + innerLocalSplash.style['-o-transition'] = 'opacity 1s ease-in-out'; window.setTimeout(function () { document.body.removeChild(innerLocalSplash); @@ -112,10 +112,10 @@ var SplashScreen = { /** * Reads preferences via ConfigHelper and substitutes default parameters. */ -function readPreferencesFromCfg(cfg) { +function readPreferencesFromCfg (cfg) { try { var value = cfg.getPreferenceValue('ShowSplashScreen'); - if(typeof value != 'undefined') { + if (typeof value !== 'undefined') { showSplashScreen = value === 'true'; } @@ -128,7 +128,7 @@ function readPreferencesFromCfg(cfg) { splashImageHeight = cfg.getPreferenceValue('SplashScreenHeight') || splashImageHeight; autoHideSplashScreen = cfg.getPreferenceValue('AutoHideSplashScreen') || autoHideSplashScreen; autoHideSplashScreen = (autoHideSplashScreen === true || autoHideSplashScreen.toLowerCase() === 'true'); - } catch(e) { + } catch (e) { var msg = '[Browser][SplashScreen] Error occurred on loading preferences from config.xml: ' + JSON.stringify(e); console.error(msg); } @@ -137,11 +137,11 @@ function readPreferencesFromCfg(cfg) { /** * Shows and hides splashscreen if it is enabled, with a delay according the current preferences. */ -function showAndHide() { - if(showSplashScreen) { +function showAndHide () { + if (showSplashScreen) { SplashScreen.show(); - window.setTimeout(function() { + window.setTimeout(function () { SplashScreen.hide(); }, splashScreenDelay); } @@ -150,21 +150,19 @@ function showAndHide() { /** * Tries to read config.xml and override default properties and then shows and hides splashscreen if it is enabled. */ -(function initAndShow() { - configHelper.readConfig(function(config) { +(function initAndShow () { + configHelper.readConfig(function (config) { readPreferencesFromCfg(config); if (autoHideSplashScreen) { showAndHide(); } else { SplashScreen.show(); } - - }, function(err) { + }, function (err) { console.error(err); }); })(); module.exports = SplashScreen; -require("cordova/exec/proxy").add("SplashScreen", SplashScreen); - +require('cordova/exec/proxy').add('SplashScreen', SplashScreen); diff --git a/src/ios/CDVSplashScreen.h b/src/ios/CDVSplashScreen.h deleted file mode 100644 index dcc0d77..0000000 --- a/src/ios/CDVSplashScreen.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, 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. - */ - -#import -#import - -typedef struct { - BOOL iPhone; - BOOL iPad; - BOOL iPhone4; - BOOL iPhone5; - BOOL iPhone6; - BOOL iPhone6Plus; - BOOL retina; - BOOL iPhoneX; - -} CDV_iOSDevice; - -@interface CDVSplashScreen : CDVPlugin { - UIActivityIndicatorView* _activityView; - UIImageView* _imageView; - NSString* _curImageName; - BOOL _visible; - BOOL _destroyed; -} - -- (void)show:(CDVInvokedUrlCommand*)command; -- (void)hide:(CDVInvokedUrlCommand*)command; - -@end diff --git a/src/ios/CDVSplashScreen.m b/src/ios/CDVSplashScreen.m deleted file mode 100644 index 9b04582..0000000 --- a/src/ios/CDVSplashScreen.m +++ /dev/null @@ -1,514 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, 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. - */ - -#import "CDVSplashScreen.h" -#import -#import -#import "CDVViewController+SplashScreen.h" - -#define kSplashScreenDurationDefault 3000.0f -#define kFadeDurationDefault 500.0f - - -@implementation CDVSplashScreen - -- (void)pluginInitialize -{ - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pageDidLoad) name:CDVPageDidLoadNotification object:nil]; - - [self setVisible:YES]; -} - -- (void)show:(CDVInvokedUrlCommand*)command -{ - [self setVisible:YES]; -} - -- (void)hide:(CDVInvokedUrlCommand*)command -{ - [self setVisible:NO andForce:YES]; -} - -- (void)pageDidLoad -{ - id autoHideSplashScreenValue = [self.commandDelegate.settings objectForKey:[@"AutoHideSplashScreen" lowercaseString]]; - - // if value is missing, default to yes - if ((autoHideSplashScreenValue == nil) || [autoHideSplashScreenValue boolValue]) { - [self setVisible:NO]; - } -} - -- (void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void*)context -{ - [self updateImage]; -} - -- (void)createViews -{ - /* - * The Activity View is the top spinning throbber in the status/battery bar. We init it with the default Grey Style. - * - * whiteLarge = UIActivityIndicatorViewStyleWhiteLarge - * white = UIActivityIndicatorViewStyleWhite - * gray = UIActivityIndicatorViewStyleGray - * - */ - - // Determine whether rotation should be enabled for this device - // Per iOS HIG, landscape is only supported on iPad and iPhone 6+ - CDV_iOSDevice device = [self getCurrentDevice]; - BOOL autorotateValue = (device.iPad || device.iPhone6Plus || device.iPhoneX) ? - [(CDVViewController *)self.viewController shouldAutorotateDefaultValue] : - NO; - - [(CDVViewController *)self.viewController setEnabledAutorotation:autorotateValue]; - - NSString* topActivityIndicator = [self.commandDelegate.settings objectForKey:[@"TopActivityIndicator" lowercaseString]]; - UIActivityIndicatorViewStyle topActivityIndicatorStyle = UIActivityIndicatorViewStyleGray; - - if ([topActivityIndicator isEqualToString:@"whiteLarge"]) - { - topActivityIndicatorStyle = UIActivityIndicatorViewStyleWhiteLarge; - } - else if ([topActivityIndicator isEqualToString:@"white"]) - { - topActivityIndicatorStyle = UIActivityIndicatorViewStyleWhite; - } - else if ([topActivityIndicator isEqualToString:@"gray"]) - { - topActivityIndicatorStyle = UIActivityIndicatorViewStyleGray; - } - - UIView* parentView = self.viewController.view; - parentView.userInteractionEnabled = NO; // disable user interaction while splashscreen is shown - _activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:topActivityIndicatorStyle]; - _activityView.center = CGPointMake(parentView.bounds.size.width / 2, parentView.bounds.size.height / 2); - _activityView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin - | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleRightMargin; - [_activityView startAnimating]; - - // Set the frame & image later. - _imageView = [[UIImageView alloc] init]; - [parentView addSubview:_imageView]; - - id showSplashScreenSpinnerValue = [self.commandDelegate.settings objectForKey:[@"ShowSplashScreenSpinner" lowercaseString]]; - // backwards compatibility - if key is missing, default to true - if ((showSplashScreenSpinnerValue == nil) || [showSplashScreenSpinnerValue boolValue]) - { - [parentView addSubview:_activityView]; - } - - // Frame is required when launching in portrait mode. - // Bounds for landscape since it captures the rotation. - [parentView addObserver:self forKeyPath:@"frame" options:0 context:nil]; - [parentView addObserver:self forKeyPath:@"bounds" options:0 context:nil]; - - [self updateImage]; - _destroyed = NO; -} - -- (void)hideViews -{ - [_imageView setAlpha:0]; - [_activityView setAlpha:0]; -} - -- (void)destroyViews -{ - _destroyed = YES; - [(CDVViewController *)self.viewController setEnabledAutorotation:[(CDVViewController *)self.viewController shouldAutorotateDefaultValue]]; - - [_imageView removeFromSuperview]; - [_activityView removeFromSuperview]; - _imageView = nil; - _activityView = nil; - _curImageName = nil; - - self.viewController.view.userInteractionEnabled = YES; // re-enable user interaction upon completion - @try { - [self.viewController.view removeObserver:self forKeyPath:@"frame"]; - [self.viewController.view removeObserver:self forKeyPath:@"bounds"]; - } - @catch (NSException *exception) { - // When reloading the page from a remotely connected Safari, there - // are no observers, so the removeObserver method throws an exception, - // that we can safely ignore. - // Alternatively we can check whether there are observers before calling removeObserver - } -} - -- (CDV_iOSDevice) getCurrentDevice -{ - CDV_iOSDevice device; - - UIScreen* mainScreen = [UIScreen mainScreen]; - CGFloat mainScreenHeight = mainScreen.bounds.size.height; - CGFloat mainScreenWidth = mainScreen.bounds.size.width; - - int limit = MAX(mainScreenHeight,mainScreenWidth); - - device.iPad = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad); - device.iPhone = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone); - device.retina = ([mainScreen scale] == 2.0); - device.iPhone4 = (device.iPhone && limit == 480.0); - device.iPhone5 = (device.iPhone && limit == 568.0); - // note these below is not a true device detect, for example if you are on an - // iPhone 6/6+ but the app is scaled it will prob set iPhone5 as true, but - // this is appropriate for detecting the runtime screen environment - device.iPhone6 = (device.iPhone && limit == 667.0); - device.iPhone6Plus = (device.iPhone && limit == 736.0); - device.iPhoneX = (device.iPhone && limit == 812.0); - - return device; -} - -- (BOOL) isUsingCDVLaunchScreen { - NSString* launchStoryboardName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UILaunchStoryboardName"]; - if (launchStoryboardName) { - return ([launchStoryboardName isEqualToString:@"CDVLaunchScreen"]); - } else { - return NO; - } -} - -- (NSString*)getImageName:(UIInterfaceOrientation)currentOrientation delegate:(id)orientationDelegate device:(CDV_iOSDevice)device -{ - // Use UILaunchImageFile if specified in plist. Otherwise, use Default. - NSString* imageName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UILaunchImageFile"]; - - // detect if we are using CB-9762 Launch Storyboard; if so, return the associated image instead - if ([self isUsingCDVLaunchScreen]) { - imageName = @"LaunchStoryboard"; - return imageName; - } - - NSUInteger supportedOrientations = [orientationDelegate supportedInterfaceOrientations]; - - // Checks to see if the developer has locked the orientation to use only one of Portrait or Landscape - BOOL supportsLandscape = (supportedOrientations & UIInterfaceOrientationMaskLandscape); - BOOL supportsPortrait = (supportedOrientations & UIInterfaceOrientationMaskPortrait || supportedOrientations & UIInterfaceOrientationMaskPortraitUpsideDown); - // this means there are no mixed orientations in there - BOOL isOrientationLocked = !(supportsPortrait && supportsLandscape); - - if (imageName) - { - imageName = [imageName stringByDeletingPathExtension]; - } - else - { - imageName = @"Default"; - } - - // Add Asset Catalog specific prefixes - if ([imageName isEqualToString:@"LaunchImage"]) - { - if (device.iPhone4 || device.iPhone5 || device.iPad) { - imageName = [imageName stringByAppendingString:@"-700"]; - } else if(device.iPhone6) { - imageName = [imageName stringByAppendingString:@"-800"]; - } else if(device.iPhone6Plus || device.iPhoneX ) { - if(device.iPhone6Plus) { - imageName = [imageName stringByAppendingString:@"-800"]; - } else { - imageName = [imageName stringByAppendingString:@"-1100"]; - } - if (currentOrientation == UIInterfaceOrientationPortrait || currentOrientation == UIInterfaceOrientationPortraitUpsideDown) - { - imageName = [imageName stringByAppendingString:@"-Portrait"]; - } - } - } - - if (device.iPhone5) - { // does not support landscape - imageName = [imageName stringByAppendingString:@"-568h"]; - } - else if (device.iPhone6) - { // does not support landscape - imageName = [imageName stringByAppendingString:@"-667h"]; - } - else if (device.iPhone6Plus || device.iPhoneX) - { // supports landscape - if (isOrientationLocked) - { - imageName = [imageName stringByAppendingString:(supportsLandscape ? @"-Landscape" : @"")]; - } - else - { - switch (currentOrientation) - { - case UIInterfaceOrientationLandscapeLeft: - case UIInterfaceOrientationLandscapeRight: - imageName = [imageName stringByAppendingString:@"-Landscape"]; - break; - default: - break; - } - } - if (device.iPhoneX) { - imageName = [imageName stringByAppendingString:@"-2436h"]; - } else { - imageName = [imageName stringByAppendingString:@"-736h"]; - } - } - else if (device.iPad) - { // supports landscape - if (isOrientationLocked) - { - imageName = [imageName stringByAppendingString:(supportsLandscape ? @"-Landscape" : @"-Portrait")]; - } - else - { - switch (currentOrientation) - { - case UIInterfaceOrientationLandscapeLeft: - case UIInterfaceOrientationLandscapeRight: - imageName = [imageName stringByAppendingString:@"-Landscape"]; - break; - - case UIInterfaceOrientationPortrait: - case UIInterfaceOrientationPortraitUpsideDown: - default: - imageName = [imageName stringByAppendingString:@"-Portrait"]; - break; - } - } - } - - return imageName; -} - -- (UIInterfaceOrientation)getCurrentOrientation -{ - UIInterfaceOrientation iOrientation = [UIApplication sharedApplication].statusBarOrientation; - UIDeviceOrientation dOrientation = [UIDevice currentDevice].orientation; - - bool landscape; - - if (dOrientation == UIDeviceOrientationUnknown || dOrientation == UIDeviceOrientationFaceUp || dOrientation == UIDeviceOrientationFaceDown) { - // If the device is laying down, use the UIInterfaceOrientation based on the status bar. - landscape = UIInterfaceOrientationIsLandscape(iOrientation); - } else { - // If the device is not laying down, use UIDeviceOrientation. - landscape = UIDeviceOrientationIsLandscape(dOrientation); - - // There's a bug in iOS!!!! http://openradar.appspot.com/7216046 - // So values needs to be reversed for landscape! - if (dOrientation == UIDeviceOrientationLandscapeLeft) - { - iOrientation = UIInterfaceOrientationLandscapeRight; - } - else if (dOrientation == UIDeviceOrientationLandscapeRight) - { - iOrientation = UIInterfaceOrientationLandscapeLeft; - } - else if (dOrientation == UIDeviceOrientationPortrait) - { - iOrientation = UIInterfaceOrientationPortrait; - } - else if (dOrientation == UIDeviceOrientationPortraitUpsideDown) - { - iOrientation = UIInterfaceOrientationPortraitUpsideDown; - } - } - - return iOrientation; -} - -// Sets the view's frame and image. -- (void)updateImage -{ - NSString* imageName = [self getImageName:[self getCurrentOrientation] delegate:(id)self.viewController device:[self getCurrentDevice]]; - - if (![imageName isEqualToString:_curImageName]) - { - UIImage* img = [UIImage imageNamed:imageName]; - _imageView.image = img; - _curImageName = imageName; - } - - // Check that splash screen's image exists before updating bounds - if (_imageView.image) - { - [self updateBounds]; - } - else - { - NSLog(@"WARNING: The splashscreen image named %@ was not found", imageName); - } -} - -- (void)updateBounds -{ - if ([self isUsingCDVLaunchScreen]) { - // CB-9762's launch screen expects the image to fill the screen and be scaled using AspectFill. - CGSize viewportSize = [UIApplication sharedApplication].delegate.window.bounds.size; - _imageView.frame = CGRectMake(0, 0, viewportSize.width, viewportSize.height); - _imageView.contentMode = UIViewContentModeScaleAspectFill; - return; - } - - UIImage* img = _imageView.image; - CGRect imgBounds = (img) ? CGRectMake(0, 0, img.size.width, img.size.height) : CGRectZero; - - CGSize screenSize = [self.viewController.view convertRect:[UIScreen mainScreen].bounds fromView:nil].size; - UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation; - CGAffineTransform imgTransform = CGAffineTransformIdentity; - - /* If and only if an iPhone application is landscape-only as per - * UISupportedInterfaceOrientations, the view controller's orientation is - * landscape. In this case the image must be rotated in order to appear - * correctly. - */ - CDV_iOSDevice device = [self getCurrentDevice]; - if (UIInterfaceOrientationIsLandscape(orientation) && !device.iPhone6Plus && !device.iPad && !device.iPhoneX) - { - imgTransform = CGAffineTransformMakeRotation(M_PI / 2); - imgBounds.size = CGSizeMake(imgBounds.size.height, imgBounds.size.width); - } - - // There's a special case when the image is the size of the screen. - if (CGSizeEqualToSize(screenSize, imgBounds.size)) - { - CGRect statusFrame = [self.viewController.view convertRect:[UIApplication sharedApplication].statusBarFrame fromView:nil]; - if (!(IsAtLeastiOSVersion(@"7.0"))) - { - imgBounds.origin.y -= statusFrame.size.height; - } - } - else if (imgBounds.size.width > 0) - { - CGRect viewBounds = self.viewController.view.bounds; - CGFloat imgAspect = imgBounds.size.width / imgBounds.size.height; - CGFloat viewAspect = viewBounds.size.width / viewBounds.size.height; - // This matches the behaviour of the native splash screen. - CGFloat ratio; - if (viewAspect > imgAspect) - { - ratio = viewBounds.size.width / imgBounds.size.width; - } - else - { - ratio = viewBounds.size.height / imgBounds.size.height; - } - imgBounds.size.height *= ratio; - imgBounds.size.width *= ratio; - } - - _imageView.transform = imgTransform; - _imageView.frame = imgBounds; -} - -- (void)setVisible:(BOOL)visible -{ - [self setVisible:visible andForce:NO]; -} - -- (void)setVisible:(BOOL)visible andForce:(BOOL)force -{ - if (visible != _visible || force) - { - _visible = visible; - - id fadeSplashScreenValue = [self.commandDelegate.settings objectForKey:[@"FadeSplashScreen" lowercaseString]]; - id fadeSplashScreenDuration = [self.commandDelegate.settings objectForKey:[@"FadeSplashScreenDuration" lowercaseString]]; - - float fadeDuration = fadeSplashScreenDuration == nil ? kFadeDurationDefault : [fadeSplashScreenDuration floatValue]; - - id splashDurationString = [self.commandDelegate.settings objectForKey: [@"SplashScreenDelay" lowercaseString]]; - float splashDuration = splashDurationString == nil ? kSplashScreenDurationDefault : [splashDurationString floatValue]; - - id autoHideSplashScreenValue = [self.commandDelegate.settings objectForKey:[@"AutoHideSplashScreen" lowercaseString]]; - BOOL autoHideSplashScreen = true; - - if (autoHideSplashScreenValue != nil) { - autoHideSplashScreen = [autoHideSplashScreenValue boolValue]; - } - - if (!autoHideSplashScreen) { - // CB-10412 SplashScreenDelay does not make sense if the splashscreen is hidden manually - splashDuration = 0; - } - - - if (fadeSplashScreenValue == nil) - { - fadeSplashScreenValue = @"true"; - } - - if (![fadeSplashScreenValue boolValue]) - { - fadeDuration = 0; - } - else if (fadeDuration < 30) - { - // [CB-9750] This value used to be in decimal seconds, so we will assume that if someone specifies 10 - // they mean 10 seconds, and not the meaningless 10ms - fadeDuration *= 1000; - } - - if (_visible) - { - if (_imageView == nil) - { - [self createViews]; - } - } - else if (fadeDuration == 0 && splashDuration == 0) - { - [self destroyViews]; - } - else - { - __weak __typeof(self) weakSelf = self; - float effectiveSplashDuration; - - // [CB-10562] AutoHideSplashScreen may be "true" but we should still be able to hide the splashscreen manually. - if (!autoHideSplashScreen || force) { - effectiveSplashDuration = (fadeDuration) / 1000; - } else { - effectiveSplashDuration = (splashDuration - fadeDuration) / 1000; - } - - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (uint64_t) effectiveSplashDuration * NSEC_PER_SEC), dispatch_get_main_queue(), CFBridgingRelease(CFBridgingRetain(^(void) { - if (!_destroyed) { - [UIView transitionWithView:self.viewController.view - duration:(fadeDuration / 1000) - options:UIViewAnimationOptionTransitionNone - animations:^(void) { - [weakSelf hideViews]; - } - completion:^(BOOL finished) { - // Always destroy views, otherwise you could have an - // invisible splashscreen that is overlayed over your active views - // which causes that no touch events are passed - if (!_destroyed) { - [weakSelf destroyViews]; - // TODO: It might also be nice to have a js event happen here -jm - } - } - ]; - } - }))); - } - } -} - -@end diff --git a/src/ios/CDVViewController+SplashScreen.h b/src/ios/CDVViewController+SplashScreen.h deleted file mode 100644 index a948ea3..0000000 --- a/src/ios/CDVViewController+SplashScreen.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, 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. - */ - -#import - -@interface CDVViewController (SplashScreen) - -@property (nonatomic, assign) BOOL enabledAutorotation; -@property (nonatomic, readonly) BOOL shouldAutorotateDefaultValue; - - -@end diff --git a/src/ios/CDVViewController+SplashScreen.m b/src/ios/CDVViewController+SplashScreen.m deleted file mode 100644 index e483def..0000000 --- a/src/ios/CDVViewController+SplashScreen.m +++ /dev/null @@ -1,89 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, 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. - */ - -#import "CDVViewController+SplashScreen.h" -#import - -@implementation CDVViewController (SplashScreen) - -@dynamic enabledAutorotation; - -- (void)setEnabledAutorotation:(BOOL)value -{ - objc_setAssociatedObject(self, - @selector(enabledAutorotation), - [NSNumber numberWithBool:value], - OBJC_ASSOCIATION_RETAIN_NONATOMIC); -} - -- (BOOL)enabledAutorotation -{ - NSNumber *number = (NSNumber *)objc_getAssociatedObject(self, @selector(enabledAutorotation)); - - // Defaulting to YES to correspond parent CDVViewController behavior - if (number == nil) - { - return YES; - } - - return [number boolValue]; -} - -+ (void)load -{ - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - Class class = [self class]; - - SEL originalSelector = @selector(shouldAutorotate); - SEL swizzledSelector = @selector(splash_shouldAutorotate); - - Method originalMethod = class_getInstanceMethod(class, originalSelector); - Method swizzledMethod = class_getInstanceMethod(class, swizzledSelector); - - BOOL didAddMethod = class_addMethod(class, - originalSelector, - method_getImplementation(swizzledMethod), - method_getTypeEncoding(swizzledMethod)); - - if (didAddMethod) { - class_replaceMethod(class, - swizzledSelector, - method_getImplementation(originalMethod), - method_getTypeEncoding(originalMethod)); - } else { - method_exchangeImplementations(originalMethod, swizzledMethod); - } - }); -} - -#pragma mark - Method Swizzling - -- (BOOL)splash_shouldAutorotate -{ - return self.enabledAutorotation; -} - - -- (BOOL)shouldAutorotateDefaultValue -{ - return [self splash_shouldAutorotate]; -} - -@end diff --git a/www/windows/SplashScreenProxy.js b/src/windows/SplashScreenProxy.js similarity index 91% rename from www/windows/SplashScreenProxy.js rename to src/windows/SplashScreenProxy.js index 1003f06..b359df6 100644 --- a/www/windows/SplashScreenProxy.js +++ b/src/windows/SplashScreenProxy.js @@ -1,4 +1,4 @@ -/* +/* * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -19,8 +19,6 @@ * */ -/*jslint sloppy:true */ - var splash = require('cordova/splashscreen'); var SplashScreen = { @@ -34,4 +32,4 @@ var SplashScreen = { module.exports = SplashScreen; -require("cordova/exec/proxy").add("SplashScreen", SplashScreen); +require('cordova/exec/proxy').add('SplashScreen', SplashScreen); diff --git a/src/wp/ResolutionHelper.cs b/src/wp/ResolutionHelper.cs deleted file mode 100644 index 050c392..0000000 --- a/src/wp/ResolutionHelper.cs +++ /dev/null @@ -1,39 +0,0 @@ -/* - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - 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. -*/ - -using Microsoft.Phone.Info; -using System; -using System.Windows; - -namespace WPCordovaClassLib.Cordova.Commands -{ - public enum Resolutions { WVGA, WXGA, HD }; - - public static class ResolutionHelper - { - public static Resolutions CurrentResolution - { - get - { - switch (Application.Current.Host.Content.ScaleFactor) - { - case 100: return Resolutions.WVGA; - case 160: return Resolutions.WXGA; - case 150: return Resolutions.HD; - } - throw new InvalidOperationException("Unknown resolution"); - } - } - } -} \ No newline at end of file diff --git a/src/wp/SplashScreen.cs b/src/wp/SplashScreen.cs deleted file mode 100644 index c56d4ad..0000000 --- a/src/wp/SplashScreen.cs +++ /dev/null @@ -1,255 +0,0 @@ -/* - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - 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. -*/ - -using System; -using System.Net; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Documents; -using System.Windows.Ink; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Animation; -using System.Windows.Shapes; -using Microsoft.Phone.Info; -using System.Windows.Controls.Primitives; -using System.Diagnostics; -using System.Windows.Media.Imaging; -using System.Windows.Resources; -using System.IO; -using System.Xml.Linq; -using System.Linq; -using System.Windows.Threading; - -namespace WPCordovaClassLib.Cordova.Commands -{ - /// - /// Listens for changes to the state of the battery on the device. - /// Currently only the "isPlugged" parameter available via native APIs. - /// - public class SplashScreen : BaseCommand - { - private Popup popup; - - // Time until we dismiss the splashscreen - private int prefDelay = 3000; - - // Whether we hide it by default - private bool prefAutoHide = true; - - // Path to image to use - private string prefImagePath = "SplashScreenImage.jpg"; - - // static because autodismiss is only ever applied once, at app launch - // subsequent page loads should not cause the SplashScreen to be shown. - private static bool WasShown = false; - - public SplashScreen() - { - LoadConfigPrefs(); - - Image SplashScreen = new Image() - { - Height = Application.Current.Host.Content.ActualHeight, - Width = Application.Current.Host.Content.ActualWidth, - Stretch = Stretch.Fill - }; - - var imageResource = GetSplashScreenImageResource(); - if (imageResource != null) - { - BitmapImage splash_image = new BitmapImage(); - splash_image.SetSource(imageResource.Stream); - SplashScreen.Source = splash_image; - } - - // Instansiate the popup and set the Child property of Popup to SplashScreen - popup = new Popup() { IsOpen = false, - Child = SplashScreen, - HorizontalAlignment = HorizontalAlignment.Stretch, - VerticalAlignment = VerticalAlignment.Center - - }; - } - - public override void OnInit() - { - // we only want to autoload on the first page load. - // but OnInit is called for every page load. - if (!SplashScreen.WasShown) - { - SplashScreen.WasShown = true; - show(); - } - } - - private void LoadConfigPrefs() - { - StreamResourceInfo streamInfo = Application.GetResourceStream(new Uri("config.xml", UriKind.Relative)); - if (streamInfo != null) - { - using (StreamReader sr = new StreamReader(streamInfo.Stream)) - { - //This will Read Keys Collection for the xml file - XDocument configFile = XDocument.Parse(sr.ReadToEnd()); - - string configAutoHide = configFile.Descendants() - .Where(x => x.Name.LocalName == "preference") - .Where(x => (string)x.Attribute("name") == "AutoHideSplashScreen") - .Select(x => (string)x.Attribute("value")) - .FirstOrDefault(); - - bool bVal; - prefAutoHide = bool.TryParse(configAutoHide, out bVal) ? bVal : prefAutoHide; - - string configDelay = configFile.Descendants() - .Where(x => x.Name.LocalName == "preference") - .Where(x => (string)x.Attribute("name") == "SplashScreenDelay") - .Select(x => (string)x.Attribute("value")) - .FirstOrDefault(); - int nVal; - prefDelay = int.TryParse(configDelay, out nVal) ? nVal : prefDelay; - - string configImage = configFile.Descendants() - .Where(x => x.Name.LocalName == "preference") - .Where(x => (string)x.Attribute("name") == "SplashScreen") - .Select(x => (string)x.Attribute("value")) - .FirstOrDefault(); - - if (!String.IsNullOrEmpty(configImage)) - { - prefImagePath = configImage; - } - } - } - } - - private StreamResourceInfo GetSplashScreenImageResource() - { - // Get the base filename for the splash screen images - string imageName = System.IO.Path.GetFileNameWithoutExtension(prefImagePath); - Uri imageUri = null; - StreamResourceInfo imageResource = null; - - // First, try to get a resolution-specific splashscreen - try - { - // Determine the device's resolution - switch (ResolutionHelper.CurrentResolution) - { - case Resolutions.HD: - imageUri = new Uri(imageName + ".screen-720p.jpg", UriKind.Relative); - break; - - case Resolutions.WVGA: - imageUri = new Uri(imageName + ".screen-WVGA.jpg", UriKind.Relative); - break; - - case Resolutions.WXGA: - default: - imageUri = new Uri(imageName + ".screen-WXGA.jpg", UriKind.Relative); - break; - } - - imageResource = Application.GetResourceStream(imageUri); - } - catch (Exception) - { - // It's OK if we didn't get a resolution-specific image - } - - // Fallback to the default image name without decoration - if (imageResource == null) - { - imageUri = new Uri(prefImagePath, UriKind.Relative); - imageResource = Application.GetResourceStream(imageUri); - } - - if (imageUri != null) Debug.WriteLine("INFO :: SplashScreen: using image {0}", imageUri.OriginalString); - - return imageResource; - } - - public void show(string options = null) - { - Deployment.Current.Dispatcher.BeginInvoke(() => - { - if (!popup.IsOpen) - { - popup.Child.Opacity = 0; - - Storyboard story = new Storyboard(); - DoubleAnimation animation = new DoubleAnimation() - { - From = 0.0, - To = 1.0, - Duration = new Duration(TimeSpan.FromSeconds(0.2)) - }; - - Storyboard.SetTarget(animation, popup.Child); - Storyboard.SetTargetProperty(animation, new PropertyPath("Opacity")); - story.Children.Add(animation); - - story.Begin(); - - popup.IsOpen = true; - - if (prefAutoHide) - { - StartAutoHideTimer(); - } - } - }); - } - - public void hide(string options = null) - { - Deployment.Current.Dispatcher.BeginInvoke(() => - { - if (popup.IsOpen) - { - popup.Child.Opacity = 1.0; - - Storyboard story = new Storyboard(); - DoubleAnimation animation = new DoubleAnimation() - { - From = 1.0, - To = 0.0, - Duration = new Duration(TimeSpan.FromSeconds(0.4)) - }; - - Storyboard.SetTarget(animation, popup.Child); - Storyboard.SetTargetProperty(animation, new PropertyPath("Opacity")); - story.Children.Add(animation); - story.Completed += (object sender, EventArgs e) => - { - popup.IsOpen = false; - }; - story.Begin(); - } - }); - } - - private void StartAutoHideTimer() - { - var timer = new DispatcherTimer() { Interval = TimeSpan.FromMilliseconds(prefDelay) }; - timer.Tick += (object sender, EventArgs e) => - { - hide(); - timer.Stop(); - }; - timer.Start(); - } - } -} diff --git a/tests/ios/CDVSplashScreenTest.xcworkspace/contents.xcworkspacedata b/tests/ios/CDVSplashScreenTest.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 2dd325a..0000000 --- a/tests/ios/CDVSplashScreenTest.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/tests/ios/CDVSplashScreenTest.xcworkspace/xcshareddata/CDVSplashScreenTest.xccheckout b/tests/ios/CDVSplashScreenTest.xcworkspace/xcshareddata/CDVSplashScreenTest.xccheckout deleted file mode 100644 index 7e4cdb9..0000000 --- a/tests/ios/CDVSplashScreenTest.xcworkspace/xcshareddata/CDVSplashScreenTest.xccheckout +++ /dev/null @@ -1,41 +0,0 @@ - - - - - IDESourceControlProjectFavoriteDictionaryKey - - IDESourceControlProjectIdentifier - 6BE9AD73-1B9F-4362-98D7-DC631BEC6185 - IDESourceControlProjectName - CDVSplashScreenTest - IDESourceControlProjectOriginsDictionary - - BEF5A5D0FF64801E558286389440357A9233D7DB - https://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen.git - - IDESourceControlProjectPath - tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj - IDESourceControlProjectRelativeInstallPathDictionary - - BEF5A5D0FF64801E558286389440357A9233D7DB - ../../../../.. - - IDESourceControlProjectURL - https://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen.git - IDESourceControlProjectVersion - 111 - IDESourceControlProjectWCCIdentifier - BEF5A5D0FF64801E558286389440357A9233D7DB - IDESourceControlProjectWCConfigurations - - - IDESourceControlRepositoryExtensionIdentifierKey - public.vcs.git - IDESourceControlWCCIdentifierKey - BEF5A5D0FF64801E558286389440357A9233D7DB - IDESourceControlWCCName - cordova-plugin-splashscreen - - - - diff --git a/tests/ios/CDVSplashScreenTest.xcworkspace/xcshareddata/xcschemes/CordovaLib.xcscheme b/tests/ios/CDVSplashScreenTest.xcworkspace/xcshareddata/xcschemes/CordovaLib.xcscheme deleted file mode 100644 index 13f9a15..0000000 --- a/tests/ios/CDVSplashScreenTest.xcworkspace/xcshareddata/xcschemes/CordovaLib.xcscheme +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/ios/CDVSplashScreenTest/.gitignore b/tests/ios/CDVSplashScreenTest/.gitignore deleted file mode 100644 index c795b05..0000000 --- a/tests/ios/CDVSplashScreenTest/.gitignore +++ /dev/null @@ -1 +0,0 @@ -build \ No newline at end of file diff --git a/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/ImageNameTest.m b/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/ImageNameTest.m deleted file mode 100644 index 1637d24..0000000 --- a/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/ImageNameTest.m +++ /dev/null @@ -1,702 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, 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. - */ - -#import -#import -#import -#import "CDVSplashScreen.h" -#import "ImageNameTestDelegates.h" - -const CDV_iOSDevice CDV_iOSDeviceZero = { 0, 0, 0, 0, 0, 0 }; - -@interface ImageNameTest : XCTestCase - -@property (nonatomic, strong) CDVSplashScreen* plugin; - -@end - -@interface CDVSplashScreen () - -// expose private interface -- (NSString*)getImageName:(UIInterfaceOrientation)currentOrientation delegate:(id)orientationDelegate device:(CDV_iOSDevice)device; - -@end - -@implementation ImageNameTest - -- (void)setUp { - [super setUp]; - // Put setup code here. This method is called before the invocation of each test method in the class. - - self.plugin = [[CDVSplashScreen alloc] init]; -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. - [super tearDown]; -} - -- (void) orientationHelper:(id)delegate expectedImageNameDictionary:(NSDictionary*)expectedImageNameDictionary device:(CDV_iOSDevice)device{ - - NSString* name = nil; - NSString* expectedImageName = nil; - UIInterfaceOrientation currentOrientation; - NSString* deviceName = device.iPad? @"iPad" : device.iPhone6Plus? @"iPhone6Plus": device.iPhone6? @"iPhone6": device.iPhone5? @"iPhone5" : @"iPhone"; - - // LandscapeLeft, should always return expectedImageName - currentOrientation = UIInterfaceOrientationLandscapeLeft; - name = [self.plugin getImageName:currentOrientation delegate:delegate device:device]; - expectedImageName = [expectedImageNameDictionary objectForKey:@"landscapeLeft"]; - XCTAssertTrue([expectedImageName isEqualToString:name], @"%@ - %@ failed (%@)", @"Landscape", deviceName, name); - - // LandscapeRight - should always return expectedImageName - currentOrientation = UIInterfaceOrientationLandscapeRight; - name = [self.plugin getImageName:currentOrientation delegate:delegate device:device]; - expectedImageName = [expectedImageNameDictionary objectForKey:@"landscapeRight"]; - XCTAssertTrue([expectedImageName isEqualToString:name], @"%@ - %@ failed (%@)", @"Landscape", deviceName, name); - - // Portrait - should always return expectedImageName - currentOrientation = UIInterfaceOrientationPortrait; - name = [self.plugin getImageName:currentOrientation delegate:delegate device:device]; - expectedImageName = [expectedImageNameDictionary objectForKey:@"portrait"]; - XCTAssertTrue([expectedImageName isEqualToString:name], @"%@ - %@ failed (%@)", @"Portrait", deviceName, name); - - // PortraitUpsideDown - should always return expectedImageName - currentOrientation = UIInterfaceOrientationPortraitUpsideDown; - name = [self.plugin getImageName:currentOrientation delegate:delegate device:device]; - expectedImageName = [expectedImageNameDictionary objectForKey:@"portraitUpsideDown"]; - XCTAssertTrue([expectedImageName isEqualToString:name], @"%@ - %@ failed (%@)", @"Portrait", deviceName, name); -} - -- (void)testiPadOrientation { - - CDV_iOSDevice device = CDV_iOSDeviceZero; - device.iPad = YES; - - // One orientation - - PortraitOnly* delegate = [[PortraitOnly alloc] init]; - [self orientationHelper:delegate expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Portrait", - @"landscapeRight" : @"Default-Portrait", - @"portrait" : @"Default-Portrait", - @"portraitUpsideDown" : @"Default-Portrait" - } - device:device]; - - PortraitUpsideDownOnly* delegate2 = [[PortraitUpsideDownOnly alloc] init]; - [self orientationHelper:delegate2 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Portrait", - @"landscapeRight" : @"Default-Portrait", - @"portrait" : @"Default-Portrait", - @"portraitUpsideDown" : @"Default-Portrait" - } - device:device]; - - LandscapeLeftOnly* delegate3 = [[LandscapeLeftOnly alloc] init]; - [self orientationHelper:delegate3 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Landscape", - @"landscapeRight" : @"Default-Landscape", - @"portrait" : @"Default-Landscape", - @"portraitUpsideDown" : @"Default-Landscape" - } - device:device]; - - LandscapeRightOnly* delegate4 = [[LandscapeRightOnly alloc] init]; - [self orientationHelper:delegate4 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Landscape", - @"landscapeRight" : @"Default-Landscape", - @"portrait" : @"Default-Landscape", - @"portraitUpsideDown" : @"Default-Landscape" - } - device:device]; - - // All Portrait - - AllPortraitOnly* delegate5 = [[AllPortraitOnly alloc] init]; - [self orientationHelper:delegate5 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Portrait", - @"landscapeRight" : @"Default-Portrait", - @"portrait" : @"Default-Portrait", - @"portraitUpsideDown" : @"Default-Portrait" - } - device:device]; - - // All Landscape - - AllLandscapeOnly* delegate6 = [[AllLandscapeOnly alloc] init]; - [self orientationHelper:delegate6 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Landscape", - @"landscapeRight" : @"Default-Landscape", - @"portrait" : @"Default-Landscape", - @"portraitUpsideDown" : @"Default-Landscape" - } - device:device]; - - - // All orientations - - AllOrientations* delegate7 = [[AllOrientations alloc] init]; - [self orientationHelper:delegate7 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Landscape", - @"landscapeRight" : @"Default-Landscape", - @"portrait" : @"Default-Portrait", - @"portraitUpsideDown" : @"Default-Portrait" - } - device:device]; - - // Portrait and Landscape Left - - PortraitAndLandscapeLeftOnly* delegate8 = [[PortraitAndLandscapeLeftOnly alloc] init]; - [self orientationHelper:delegate8 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Landscape", - @"landscapeRight" : @"Default-Landscape", - @"portrait" : @"Default-Portrait", - @"portraitUpsideDown" : @"Default-Portrait" - } - device:device]; - - // Portrait and Landscape Right - - PortraitAndLandscapeRightOnly* delegate9 = [[PortraitAndLandscapeRightOnly alloc] init]; - [self orientationHelper:delegate9 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Landscape", - @"landscapeRight" : @"Default-Landscape", - @"portrait" : @"Default-Portrait", - @"portraitUpsideDown" : @"Default-Portrait" - } - device:device]; - - // PortraitUpsideDown and Landscape Left - - PortraitUpsideDownAndLandscapeLeftOnly* delegate10 = [[PortraitUpsideDownAndLandscapeLeftOnly alloc] init]; - [self orientationHelper:delegate10 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Landscape", - @"landscapeRight" : @"Default-Landscape", - @"portrait" : @"Default-Portrait", - @"portraitUpsideDown" : @"Default-Portrait" - } - device:device]; - - // PortraitUpsideDown and Landscape Right - - PortraitUpsideDownAndLandscapeRightOnly* delegate11 = [[PortraitUpsideDownAndLandscapeRightOnly alloc] init]; - [self orientationHelper:delegate11 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Landscape", - @"landscapeRight" : @"Default-Landscape", - @"portrait" : @"Default-Portrait", - @"portraitUpsideDown" : @"Default-Portrait" - } - device:device]; -} - -- (void)testiPhoneOrientation { - - CDV_iOSDevice device = CDV_iOSDeviceZero; - device.iPhone = YES; - - // One orientation - - PortraitOnly* delegate = [[PortraitOnly alloc] init]; - [self orientationHelper:delegate expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default", - @"landscapeRight" : @"Default", - @"portrait" : @"Default", - @"portraitUpsideDown" : @"Default" - } - device:device]; - - PortraitUpsideDownOnly* delegate2 = [[PortraitUpsideDownOnly alloc] init]; - [self orientationHelper:delegate2 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default", - @"landscapeRight" : @"Default", - @"portrait" : @"Default", - @"portraitUpsideDown" : @"Default" - } - device:device]; - - LandscapeLeftOnly* delegate3 = [[LandscapeLeftOnly alloc] init]; - [self orientationHelper:delegate3 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default", - @"landscapeRight" : @"Default", - @"portrait" : @"Default", - @"portraitUpsideDown" : @"Default" - } - device:device]; - - LandscapeRightOnly* delegate4 = [[LandscapeRightOnly alloc] init]; - [self orientationHelper:delegate4 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default", - @"landscapeRight" : @"Default", - @"portrait" : @"Default", - @"portraitUpsideDown" : @"Default" - } - device:device]; - - // All Portrait - - AllPortraitOnly* delegate5 = [[AllPortraitOnly alloc] init]; - [self orientationHelper:delegate5 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default", - @"landscapeRight" : @"Default", - @"portrait" : @"Default", - @"portraitUpsideDown" : @"Default" - } - device:device]; - - // All Landscape - - AllLandscapeOnly* delegate6 = [[AllLandscapeOnly alloc] init]; - [self orientationHelper:delegate6 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default", - @"landscapeRight" : @"Default", - @"portrait" : @"Default", - @"portraitUpsideDown" : @"Default" - } - device:device]; - - - // All orientations - - AllOrientations* delegate7 = [[AllOrientations alloc] init]; - [self orientationHelper:delegate7 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default", - @"landscapeRight" : @"Default", - @"portrait" : @"Default", - @"portraitUpsideDown" : @"Default" - } - device:device]; - - // Portrait and Landscape Left - - PortraitAndLandscapeLeftOnly* delegate8 = [[PortraitAndLandscapeLeftOnly alloc] init]; - [self orientationHelper:delegate8 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default", - @"landscapeRight" : @"Default", - @"portrait" : @"Default", - @"portraitUpsideDown" : @"Default" - } - device:device]; - - // Portrait and Landscape Right - - PortraitAndLandscapeRightOnly* delegate9 = [[PortraitAndLandscapeRightOnly alloc] init]; - [self orientationHelper:delegate9 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default", - @"landscapeRight" : @"Default", - @"portrait" : @"Default", - @"portraitUpsideDown" : @"Default" - } - device:device]; - - // PortraitUpsideDown and Landscape Left - - PortraitUpsideDownAndLandscapeLeftOnly* delegate10 = [[PortraitUpsideDownAndLandscapeLeftOnly alloc] init]; - [self orientationHelper:delegate10 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default", - @"landscapeRight" : @"Default", - @"portrait" : @"Default", - @"portraitUpsideDown" : @"Default" - } - device:device]; - - // PortraitUpsideDown and Landscape Right - - PortraitUpsideDownAndLandscapeRightOnly* delegate11 = [[PortraitUpsideDownAndLandscapeRightOnly alloc] init]; - [self orientationHelper:delegate11 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default", - @"landscapeRight" : @"Default", - @"portrait" : @"Default", - @"portraitUpsideDown" : @"Default" - } - device:device]; -} - -- (void)testiPhone5Orientation { - - CDV_iOSDevice device = CDV_iOSDeviceZero; - device.iPhone = YES; - device.iPhone5 = YES; - - // One orientation - - PortraitOnly* delegate = [[PortraitOnly alloc] init]; - [self orientationHelper:delegate expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-568h", - @"landscapeRight" : @"Default-568h", - @"portrait" : @"Default-568h", - @"portraitUpsideDown" : @"Default-568h" - } - device:device]; - - PortraitUpsideDownOnly* delegate2 = [[PortraitUpsideDownOnly alloc] init]; - [self orientationHelper:delegate2 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-568h", - @"landscapeRight" : @"Default-568h", - @"portrait" : @"Default-568h", - @"portraitUpsideDown" : @"Default-568h" - } - device:device]; - - LandscapeLeftOnly* delegate3 = [[LandscapeLeftOnly alloc] init]; - [self orientationHelper:delegate3 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-568h", - @"landscapeRight" : @"Default-568h", - @"portrait" : @"Default-568h", - @"portraitUpsideDown" : @"Default-568h" - } - device:device]; - - LandscapeRightOnly* delegate4 = [[LandscapeRightOnly alloc] init]; - [self orientationHelper:delegate4 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-568h", - @"landscapeRight" : @"Default-568h", - @"portrait" : @"Default-568h", - @"portraitUpsideDown" : @"Default-568h" - } - device:device]; - - // All Portrait - - AllPortraitOnly* delegate5 = [[AllPortraitOnly alloc] init]; - [self orientationHelper:delegate5 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-568h", - @"landscapeRight" : @"Default-568h", - @"portrait" : @"Default-568h", - @"portraitUpsideDown" : @"Default-568h" - } - device:device]; - - // All Landscape - - AllLandscapeOnly* delegate6 = [[AllLandscapeOnly alloc] init]; - [self orientationHelper:delegate6 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-568h", - @"landscapeRight" : @"Default-568h", - @"portrait" : @"Default-568h", - @"portraitUpsideDown" : @"Default-568h" - } - device:device]; - - - // All orientations - - AllOrientations* delegate7 = [[AllOrientations alloc] init]; - [self orientationHelper:delegate7 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-568h", - @"landscapeRight" : @"Default-568h", - @"portrait" : @"Default-568h", - @"portraitUpsideDown" : @"Default-568h" - } - device:device]; - - // Portrait and Landscape Left - - PortraitAndLandscapeLeftOnly* delegate8 = [[PortraitAndLandscapeLeftOnly alloc] init]; - [self orientationHelper:delegate8 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-568h", - @"landscapeRight" : @"Default-568h", - @"portrait" : @"Default-568h", - @"portraitUpsideDown" : @"Default-568h" - } - device:device]; - - // Portrait and Landscape Right - - PortraitAndLandscapeRightOnly* delegate9 = [[PortraitAndLandscapeRightOnly alloc] init]; - [self orientationHelper:delegate9 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-568h", - @"landscapeRight" : @"Default-568h", - @"portrait" : @"Default-568h", - @"portraitUpsideDown" : @"Default-568h" - } - device:device]; - - // PortraitUpsideDown and Landscape Left - - PortraitUpsideDownAndLandscapeLeftOnly* delegate10 = [[PortraitUpsideDownAndLandscapeLeftOnly alloc] init]; - [self orientationHelper:delegate10 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-568h", - @"landscapeRight" : @"Default-568h", - @"portrait" : @"Default-568h", - @"portraitUpsideDown" : @"Default-568h" - } - device:device]; - - // PortraitUpsideDown and Landscape Right - - PortraitUpsideDownAndLandscapeRightOnly* delegate11 = [[PortraitUpsideDownAndLandscapeRightOnly alloc] init]; - [self orientationHelper:delegate11 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-568h", - @"landscapeRight" : @"Default-568h", - @"portrait" : @"Default-568h", - @"portraitUpsideDown" : @"Default-568h" - } - device:device]; -} - -- (void)testiPhone6Orientation { - - CDV_iOSDevice device = CDV_iOSDeviceZero; - device.iPhone = YES; - device.iPhone6 = YES; - - // One orientation - - PortraitOnly* delegate = [[PortraitOnly alloc] init]; - [self orientationHelper:delegate expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-667h", - @"landscapeRight" : @"Default-667h", - @"portrait" : @"Default-667h", - @"portraitUpsideDown" : @"Default-667h" - } - device:device]; - - PortraitUpsideDownOnly* delegate2 = [[PortraitUpsideDownOnly alloc] init]; - [self orientationHelper:delegate2 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-667h", - @"landscapeRight" : @"Default-667h", - @"portrait" : @"Default-667h", - @"portraitUpsideDown" : @"Default-667h" - } - device:device]; - - LandscapeLeftOnly* delegate3 = [[LandscapeLeftOnly alloc] init]; - [self orientationHelper:delegate3 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-667h", - @"landscapeRight" : @"Default-667h", - @"portrait" : @"Default-667h", - @"portraitUpsideDown" : @"Default-667h" - } - device:device]; - - LandscapeRightOnly* delegate4 = [[LandscapeRightOnly alloc] init]; - [self orientationHelper:delegate4 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-667h", - @"landscapeRight" : @"Default-667h", - @"portrait" : @"Default-667h", - @"portraitUpsideDown" : @"Default-667h" - } - device:device]; - - // All Portrait - - AllPortraitOnly* delegate5 = [[AllPortraitOnly alloc] init]; - [self orientationHelper:delegate5 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-667h", - @"landscapeRight" : @"Default-667h", - @"portrait" : @"Default-667h", - @"portraitUpsideDown" : @"Default-667h" - } - device:device]; - - // All Landscape - - AllLandscapeOnly* delegate6 = [[AllLandscapeOnly alloc] init]; - [self orientationHelper:delegate6 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-667h", - @"landscapeRight" : @"Default-667h", - @"portrait" : @"Default-667h", - @"portraitUpsideDown" : @"Default-667h" - } - device:device]; - - - // All orientations - - AllOrientations* delegate7 = [[AllOrientations alloc] init]; - [self orientationHelper:delegate7 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-667h", - @"landscapeRight" : @"Default-667h", - @"portrait" : @"Default-667h", - @"portraitUpsideDown" : @"Default-667h" - } - device:device]; - - // Portrait and Landscape Left - - PortraitAndLandscapeLeftOnly* delegate8 = [[PortraitAndLandscapeLeftOnly alloc] init]; - [self orientationHelper:delegate8 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-667h", - @"landscapeRight" : @"Default-667h", - @"portrait" : @"Default-667h", - @"portraitUpsideDown" : @"Default-667h" - } - device:device]; - - // Portrait and Landscape Right - - PortraitAndLandscapeRightOnly* delegate9 = [[PortraitAndLandscapeRightOnly alloc] init]; - [self orientationHelper:delegate9 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-667h", - @"landscapeRight" : @"Default-667h", - @"portrait" : @"Default-667h", - @"portraitUpsideDown" : @"Default-667h" - } - device:device]; - - // PortraitUpsideDown and Landscape Left - - PortraitUpsideDownAndLandscapeLeftOnly* delegate10 = [[PortraitUpsideDownAndLandscapeLeftOnly alloc] init]; - [self orientationHelper:delegate10 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-667h", - @"landscapeRight" : @"Default-667h", - @"portrait" : @"Default-667h", - @"portraitUpsideDown" : @"Default-667h" - } - device:device]; - - // PortraitUpsideDown and Landscape Right - - PortraitUpsideDownAndLandscapeRightOnly* delegate11 = [[PortraitUpsideDownAndLandscapeRightOnly alloc] init]; - [self orientationHelper:delegate11 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-667h", - @"landscapeRight" : @"Default-667h", - @"portrait" : @"Default-667h", - @"portraitUpsideDown" : @"Default-667h" - } - device:device]; -} - -- (void)testiPhone6PlusOrientation { - - CDV_iOSDevice device = CDV_iOSDeviceZero; - device.iPhone = YES; - device.iPhone6Plus = YES; - - // One orientation - - PortraitOnly* delegate = [[PortraitOnly alloc] init]; - [self orientationHelper:delegate expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-736h", - @"landscapeRight" : @"Default-736h", - @"portrait" : @"Default-736h", - @"portraitUpsideDown" : @"Default-736h" - } - device:device]; - - PortraitUpsideDownOnly* delegate2 = [[PortraitUpsideDownOnly alloc] init]; - [self orientationHelper:delegate2 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-736h", - @"landscapeRight" : @"Default-736h", - @"portrait" : @"Default-736h", - @"portraitUpsideDown" : @"Default-736h" - } - device:device]; - - LandscapeLeftOnly* delegate3 = [[LandscapeLeftOnly alloc] init]; - [self orientationHelper:delegate3 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Landscape-736h", - @"landscapeRight" : @"Default-Landscape-736h", - @"portrait" : @"Default-Landscape-736h", - @"portraitUpsideDown" : @"Default-Landscape-736h" - } - device:device]; - - LandscapeRightOnly* delegate4 = [[LandscapeRightOnly alloc] init]; - [self orientationHelper:delegate4 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Landscape-736h", - @"landscapeRight" : @"Default-Landscape-736h", - @"portrait" : @"Default-Landscape-736h", - @"portraitUpsideDown" : @"Default-Landscape-736h" - } - device:device]; - - // All Portrait - - AllPortraitOnly* delegate5 = [[AllPortraitOnly alloc] init]; - [self orientationHelper:delegate5 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-736h", - @"landscapeRight" : @"Default-736h", - @"portrait" : @"Default-736h", - @"portraitUpsideDown" : @"Default-736h" - } - device:device]; - - // All Landscape - - AllLandscapeOnly* delegate6 = [[AllLandscapeOnly alloc] init]; - [self orientationHelper:delegate6 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Landscape-736h", - @"landscapeRight" : @"Default-Landscape-736h", - @"portrait" : @"Default-Landscape-736h", - @"portraitUpsideDown" : @"Default-Landscape-736h" - } - device:device]; - - - // All orientations - - AllOrientations* delegate7 = [[AllOrientations alloc] init]; - [self orientationHelper:delegate7 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Landscape-736h", - @"landscapeRight" : @"Default-Landscape-736h", - @"portrait" : @"Default-736h", - @"portraitUpsideDown" : @"Default-736h" - } - device:device]; - - // Portrait and Landscape Left - - PortraitAndLandscapeLeftOnly* delegate8 = [[PortraitAndLandscapeLeftOnly alloc] init]; - [self orientationHelper:delegate8 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Landscape-736h", - @"landscapeRight" : @"Default-Landscape-736h", - @"portrait" : @"Default-736h", - @"portraitUpsideDown" : @"Default-736h" - } - device:device]; - - // Portrait and Landscape Right - - PortraitAndLandscapeRightOnly* delegate9 = [[PortraitAndLandscapeRightOnly alloc] init]; - [self orientationHelper:delegate9 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Landscape-736h", - @"landscapeRight" : @"Default-Landscape-736h", - @"portrait" : @"Default-736h", - @"portraitUpsideDown" : @"Default-736h" - } - device:device]; - - // PortraitUpsideDown and Landscape Left - - PortraitUpsideDownAndLandscapeLeftOnly* delegate10 = [[PortraitUpsideDownAndLandscapeLeftOnly alloc] init]; - [self orientationHelper:delegate10 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Landscape-736h", - @"landscapeRight" : @"Default-Landscape-736h", - @"portrait" : @"Default-736h", - @"portraitUpsideDown" : @"Default-736h" - } - device:device]; - - // PortraitUpsideDown and Landscape Right - - PortraitUpsideDownAndLandscapeRightOnly* delegate11 = [[PortraitUpsideDownAndLandscapeRightOnly alloc] init]; - [self orientationHelper:delegate11 expectedImageNameDictionary:@{ - @"landscapeLeft" : @"Default-Landscape-736h", - @"landscapeRight" : @"Default-Landscape-736h", - @"portrait" : @"Default-736h", - @"portraitUpsideDown" : @"Default-736h" - } - device:device]; -} - - - -@end diff --git a/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/ImageNameTestDelegates.h b/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/ImageNameTestDelegates.h deleted file mode 100644 index be4a788..0000000 --- a/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/ImageNameTestDelegates.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, 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. - */ - -#import -#import - -@interface PortraitOnly : NSObject -@end - -@interface PortraitUpsideDownOnly : NSObject -@end - -@interface AllPortraitOnly : NSObject -@end - - -@interface LandscapeLeftOnly : NSObject -@end - -@interface LandscapeRightOnly : NSObject -@end - -@interface AllLandscapeOnly : NSObject -@end - - -@interface AllOrientations : NSObject -@end - -@interface PortraitAndLandscapeLeftOnly : NSObject -@end - -@interface PortraitAndLandscapeRightOnly : NSObject -@end - -@interface PortraitUpsideDownAndLandscapeLeftOnly : NSObject -@end - -@interface PortraitUpsideDownAndLandscapeRightOnly : NSObject -@end - diff --git a/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/ImageNameTestDelegates.m b/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/ImageNameTestDelegates.m deleted file mode 100644 index b5a1b23..0000000 --- a/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/ImageNameTestDelegates.m +++ /dev/null @@ -1,200 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, 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. - */ - -#import -#import "ImageNameTestDelegates.h" - -@implementation PortraitOnly - -- (NSUInteger)supportedInterfaceOrientations { - return UIInterfaceOrientationMaskPortrait; -} - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { - return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ; -} - -- (BOOL)shouldAutorotate { - return YES; -} - -@end - -@implementation PortraitUpsideDownOnly - -- (NSUInteger)supportedInterfaceOrientations { - return UIInterfaceOrientationMaskPortraitUpsideDown; -} - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { - return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ; -} - -- (BOOL)shouldAutorotate { - return YES; -} - -@end - -@implementation AllPortraitOnly - -- (NSUInteger)supportedInterfaceOrientations { - return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown; -} - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { - return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ; -} - -- (BOOL)shouldAutorotate { - return YES; -} - -@end - - -@implementation LandscapeLeftOnly - -- (NSUInteger)supportedInterfaceOrientations { - return UIInterfaceOrientationMaskLandscapeLeft; -} - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { - return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ; -} - -- (BOOL)shouldAutorotate { - return YES; -} - -@end - -@implementation LandscapeRightOnly - -- (NSUInteger)supportedInterfaceOrientations { - return UIInterfaceOrientationMaskLandscapeRight; -} - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { - return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ; -} - -- (BOOL)shouldAutorotate { - return YES; -} - -@end - -@implementation AllLandscapeOnly - -- (NSUInteger)supportedInterfaceOrientations { - return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight; -} - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { - return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ; -} - -- (BOOL)shouldAutorotate { - return YES; -} - -@end - - -@implementation AllOrientations - -- (NSUInteger)supportedInterfaceOrientations { - return UIInterfaceOrientationMaskAll; -} - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { - return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ; -} - -- (BOOL)shouldAutorotate { - return YES; -} - -@end - -@implementation PortraitAndLandscapeLeftOnly - -- (NSUInteger)supportedInterfaceOrientations { - return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft; -} - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { - return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ; -} - -- (BOOL)shouldAutorotate { - return YES; -} - -@end - -@implementation PortraitAndLandscapeRightOnly - -- (NSUInteger)supportedInterfaceOrientations { - return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeRight; -} - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { - return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ; -} - -- (BOOL)shouldAutorotate { - return YES; -} - -@end - -@implementation PortraitUpsideDownAndLandscapeLeftOnly - -- (NSUInteger)supportedInterfaceOrientations { - return UIInterfaceOrientationMaskPortraitUpsideDown | UIInterfaceOrientationMaskLandscapeLeft; -} - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { - return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ; -} - -- (BOOL)shouldAutorotate { - return YES; -} - -@end - -@implementation PortraitUpsideDownAndLandscapeRightOnly - -- (NSUInteger)supportedInterfaceOrientations { - return UIInterfaceOrientationMaskPortraitUpsideDown | UIInterfaceOrientationMaskLandscapeRight; -} - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { - return [self supportedInterfaceOrientations] & (1 << interfaceOrientation) ; -} - -- (BOOL)shouldAutorotate { - return YES; -} - -@end - diff --git a/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/Info.plist b/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/Info.plist deleted file mode 100644 index 95c8add..0000000 --- a/tests/ios/CDVSplashScreenTest/CDVSplashScreenLibTests/Info.plist +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - org.apache.cordova.$(PRODUCT_NAME:rfc1034identifier) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/project.pbxproj b/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/project.pbxproj deleted file mode 100644 index ce820d8..0000000 --- a/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/project.pbxproj +++ /dev/null @@ -1,505 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 7E9F51AB19DA10AE00DA31AC /* CDVSplashScreen.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E9F51A919DA10AE00DA31AC /* CDVSplashScreen.m */; }; - 7E9F51B119DA114400DA31AC /* ImageNameTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E9F51B019DA114400DA31AC /* ImageNameTest.m */; }; - 7E9F51B319DA116500DA31AC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E9F51B219DA116500DA31AC /* Foundation.framework */; }; - 7E9F51B519DA127E00DA31AC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E9F51B419DA127E00DA31AC /* UIKit.framework */; }; - 7E9F51B819DA14FD00DA31AC /* ImageNameTestDelegates.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E9F51B719DA14FD00DA31AC /* ImageNameTestDelegates.m */; }; - 7E9F51B919DA1B1600DA31AC /* libCDVSplashScreenLib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E9F519519DA102000DA31AC /* libCDVSplashScreenLib.a */; }; - 7E9F51BA19DA1B2000DA31AC /* libCordova.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E9F519019DA0F8300DA31AC /* libCordova.a */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 7E9F518F19DA0F8300DA31AC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 7E9F518B19DA0F8300DA31AC /* CordovaLib.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 68A32D7114102E1C006B237C; - remoteInfo = CordovaLib; - }; - 7E9F51AC19DA10DE00DA31AC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 7E9F517219DA09CE00DA31AC /* Project object */; - proxyType = 1; - remoteGlobalIDString = 7E9F519419DA102000DA31AC; - remoteInfo = CDVSplashScreenLib; - }; - 7E9F51AE19DA10E100DA31AC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 7E9F518B19DA0F8300DA31AC /* CordovaLib.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = D2AAC07D0554694100DB518D; - remoteInfo = CordovaLib; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 7E9F519319DA102000DA31AC /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 7E9F518B19DA0F8300DA31AC /* CordovaLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CordovaLib.xcodeproj; path = "../node_modules/cordova-ios/CordovaLib/CordovaLib.xcodeproj"; sourceTree = ""; }; - 7E9F519519DA102000DA31AC /* libCDVSplashScreenLib.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libCDVSplashScreenLib.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 7E9F519F19DA102000DA31AC /* CDVSplashScreenLibTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CDVSplashScreenLibTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 7E9F51A219DA102000DA31AC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 7E9F51A919DA10AE00DA31AC /* CDVSplashScreen.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CDVSplashScreen.m; path = ../../../src/ios/CDVSplashScreen.m; sourceTree = SOURCE_ROOT; }; - 7E9F51AA19DA10AE00DA31AC /* CDVSplashScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CDVSplashScreen.h; path = ../../../src/ios/CDVSplashScreen.h; sourceTree = SOURCE_ROOT; }; - 7E9F51B019DA114400DA31AC /* ImageNameTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ImageNameTest.m; sourceTree = ""; }; - 7E9F51B219DA116500DA31AC /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 7E9F51B419DA127E00DA31AC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; - 7E9F51B619DA12C600DA31AC /* ImageNameTestDelegates.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageNameTestDelegates.h; sourceTree = ""; }; - 7E9F51B719DA14FD00DA31AC /* ImageNameTestDelegates.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ImageNameTestDelegates.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 7E9F519219DA102000DA31AC /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7E9F519C19DA102000DA31AC /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7E9F51BA19DA1B2000DA31AC /* libCordova.a in Frameworks */, - 7E9F51B919DA1B1600DA31AC /* libCDVSplashScreenLib.a in Frameworks */, - 7E9F51B519DA127E00DA31AC /* UIKit.framework in Frameworks */, - 7E9F51B319DA116500DA31AC /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 7E9F517119DA09CE00DA31AC = { - isa = PBXGroup; - children = ( - 7E9F51B419DA127E00DA31AC /* UIKit.framework */, - 7E9F51B219DA116500DA31AC /* Foundation.framework */, - 7E9F518B19DA0F8300DA31AC /* CordovaLib.xcodeproj */, - 7E9F519619DA102000DA31AC /* CDVSplashScreenLib */, - 7E9F51A019DA102000DA31AC /* CDVSplashScreenLibTests */, - 7E9F517D19DA0A0A00DA31AC /* Products */, - ); - sourceTree = ""; - }; - 7E9F517D19DA0A0A00DA31AC /* Products */ = { - isa = PBXGroup; - children = ( - 7E9F519519DA102000DA31AC /* libCDVSplashScreenLib.a */, - 7E9F519F19DA102000DA31AC /* CDVSplashScreenLibTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 7E9F518C19DA0F8300DA31AC /* Products */ = { - isa = PBXGroup; - children = ( - 7E9F519019DA0F8300DA31AC /* libCordova.a */, - ); - name = Products; - sourceTree = ""; - }; - 7E9F519619DA102000DA31AC /* CDVSplashScreenLib */ = { - isa = PBXGroup; - children = ( - 7E9F51A919DA10AE00DA31AC /* CDVSplashScreen.m */, - 7E9F51AA19DA10AE00DA31AC /* CDVSplashScreen.h */, - ); - path = CDVSplashScreenLib; - sourceTree = SOURCE_ROOT; - }; - 7E9F51A019DA102000DA31AC /* CDVSplashScreenLibTests */ = { - isa = PBXGroup; - children = ( - 7E9F51A119DA102000DA31AC /* Supporting Files */, - 7E9F51B019DA114400DA31AC /* ImageNameTest.m */, - 7E9F51B619DA12C600DA31AC /* ImageNameTestDelegates.h */, - 7E9F51B719DA14FD00DA31AC /* ImageNameTestDelegates.m */, - ); - path = CDVSplashScreenLibTests; - sourceTree = ""; - }; - 7E9F51A119DA102000DA31AC /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 7E9F51A219DA102000DA31AC /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7E9F519419DA102000DA31AC /* CDVSplashScreenLib */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7E9F51A319DA102000DA31AC /* Build configuration list for PBXNativeTarget "CDVSplashScreenLib" */; - buildPhases = ( - 7E9F519119DA102000DA31AC /* Sources */, - 7E9F519219DA102000DA31AC /* Frameworks */, - 7E9F519319DA102000DA31AC /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = CDVSplashScreenLib; - productName = CDVSplashScreenLib; - productReference = 7E9F519519DA102000DA31AC /* libCDVSplashScreenLib.a */; - productType = "com.apple.product-type.library.static"; - }; - 7E9F519E19DA102000DA31AC /* CDVSplashScreenLibTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7E9F51A619DA102000DA31AC /* Build configuration list for PBXNativeTarget "CDVSplashScreenLibTests" */; - buildPhases = ( - 7E9F519B19DA102000DA31AC /* Sources */, - 7E9F519C19DA102000DA31AC /* Frameworks */, - 7E9F519D19DA102000DA31AC /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 7E9F51AF19DA10E100DA31AC /* PBXTargetDependency */, - 7E9F51AD19DA10DE00DA31AC /* PBXTargetDependency */, - ); - name = CDVSplashScreenLibTests; - productName = CDVSplashScreenLibTests; - productReference = 7E9F519F19DA102000DA31AC /* CDVSplashScreenLibTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7E9F517219DA09CE00DA31AC /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0600; - TargetAttributes = { - 7E9F519419DA102000DA31AC = { - CreatedOnToolsVersion = 6.0; - }; - 7E9F519E19DA102000DA31AC = { - CreatedOnToolsVersion = 6.0; - }; - }; - }; - buildConfigurationList = 7E9F517519DA09CE00DA31AC /* Build configuration list for PBXProject "CDVSplashScreenTest" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 7E9F517119DA09CE00DA31AC; - productRefGroup = 7E9F517D19DA0A0A00DA31AC /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = 7E9F518C19DA0F8300DA31AC /* Products */; - ProjectRef = 7E9F518B19DA0F8300DA31AC /* CordovaLib.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 7E9F519419DA102000DA31AC /* CDVSplashScreenLib */, - 7E9F519E19DA102000DA31AC /* CDVSplashScreenLibTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - 7E9F519019DA0F8300DA31AC /* libCordova.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libCordova.a; - remoteRef = 7E9F518F19DA0F8300DA31AC /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 7E9F519D19DA102000DA31AC /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 7E9F519119DA102000DA31AC /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7E9F51AB19DA10AE00DA31AC /* CDVSplashScreen.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7E9F519B19DA102000DA31AC /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7E9F51B119DA114400DA31AC /* ImageNameTest.m in Sources */, - 7E9F51B819DA14FD00DA31AC /* ImageNameTestDelegates.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 7E9F51AD19DA10DE00DA31AC /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 7E9F519419DA102000DA31AC /* CDVSplashScreenLib */; - targetProxy = 7E9F51AC19DA10DE00DA31AC /* PBXContainerItemProxy */; - }; - 7E9F51AF19DA10E100DA31AC /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = CordovaLib; - targetProxy = 7E9F51AE19DA10E100DA31AC /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 7E9F517619DA09CE00DA31AC /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Debug; - }; - 7E9F517719DA09CE00DA31AC /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Release; - }; - 7E9F51A419DA102000DA31AC /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "\"$(TARGET_BUILD_DIR)/usr/local/lib/include\"", - "\"$(OBJROOT)/UninstalledProducts/include\"", - "\"$(BUILT_PRODUCTS_DIR)\"", - ); - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 7E9F51A519DA102000DA31AC /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "\"$(TARGET_BUILD_DIR)/usr/local/lib/include\"", - "\n\"$(OBJROOT)/UninstalledProducts/include\"\n\"$(BUILT_PRODUCTS_DIR)\"", - ); - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7E9F51A719DA102000DA31AC /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = CDVSplashScreenLibTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 7E9F51A819DA102000DA31AC /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = CDVSplashScreenLibTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7E9F517519DA09CE00DA31AC /* Build configuration list for PBXProject "CDVSplashScreenTest" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7E9F517619DA09CE00DA31AC /* Debug */, - 7E9F517719DA09CE00DA31AC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7E9F51A319DA102000DA31AC /* Build configuration list for PBXNativeTarget "CDVSplashScreenLib" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7E9F51A419DA102000DA31AC /* Debug */, - 7E9F51A519DA102000DA31AC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7E9F51A619DA102000DA31AC /* Build configuration list for PBXNativeTarget "CDVSplashScreenLibTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7E9F51A719DA102000DA31AC /* Debug */, - 7E9F51A819DA102000DA31AC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7E9F517219DA09CE00DA31AC /* Project object */; -} diff --git a/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 8f91278..0000000 --- a/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/project.xcworkspace/xcshareddata/CDVSplashScreenTest.xccheckout b/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/project.xcworkspace/xcshareddata/CDVSplashScreenTest.xccheckout deleted file mode 100644 index 7e4cdb9..0000000 --- a/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/project.xcworkspace/xcshareddata/CDVSplashScreenTest.xccheckout +++ /dev/null @@ -1,41 +0,0 @@ - - - - - IDESourceControlProjectFavoriteDictionaryKey - - IDESourceControlProjectIdentifier - 6BE9AD73-1B9F-4362-98D7-DC631BEC6185 - IDESourceControlProjectName - CDVSplashScreenTest - IDESourceControlProjectOriginsDictionary - - BEF5A5D0FF64801E558286389440357A9233D7DB - https://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen.git - - IDESourceControlProjectPath - tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj - IDESourceControlProjectRelativeInstallPathDictionary - - BEF5A5D0FF64801E558286389440357A9233D7DB - ../../../../.. - - IDESourceControlProjectURL - https://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen.git - IDESourceControlProjectVersion - 111 - IDESourceControlProjectWCCIdentifier - BEF5A5D0FF64801E558286389440357A9233D7DB - IDESourceControlProjectWCConfigurations - - - IDESourceControlRepositoryExtensionIdentifierKey - public.vcs.git - IDESourceControlWCCIdentifierKey - BEF5A5D0FF64801E558286389440357A9233D7DB - IDESourceControlWCCName - cordova-plugin-splashscreen - - - - diff --git a/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/xcshareddata/xcschemes/CDVSplashScreenLib.xcscheme b/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/xcshareddata/xcschemes/CDVSplashScreenLib.xcscheme deleted file mode 100644 index b97b863..0000000 --- a/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/xcshareddata/xcschemes/CDVSplashScreenLib.xcscheme +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/xcshareddata/xcschemes/CDVSplashScreenLibTests.xcscheme b/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/xcshareddata/xcschemes/CDVSplashScreenLibTests.xcscheme deleted file mode 100644 index 6a2a526..0000000 --- a/tests/ios/CDVSplashScreenTest/CDVSplashScreenTest.xcodeproj/xcshareddata/xcschemes/CDVSplashScreenLibTests.xcscheme +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/ios/README.md b/tests/ios/README.md deleted file mode 100644 index 97ee9df..0000000 --- a/tests/ios/README.md +++ /dev/null @@ -1,40 +0,0 @@ - - -# iOS Tests for CDVSplashScreen - -You need to install `node.js` to pull in `cordova-ios`. - -First install cordova-ios: - - npm install - -... in the current folder. - - -# Testing from Xcode - -1. Launch the `CDVSplashScreenTest.xcworkspace` file. -2. Choose "CDVSplashScreenLibTests" from the scheme drop-down menu -3. Click and hold on the `Play` button, and choose the `Wrench` icon to run the tests - - -# Testing from the command line - - npm test diff --git a/tests/ios/package.json b/tests/ios/package.json deleted file mode 100644 index 67f0edc..0000000 --- a/tests/ios/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "cordova-plugin-splashscreen-test-ios", - "version": "1.0.0", - "description": "iOS Unit Tests for Splashscreen Plugin", - "author": "Apache Software Foundation", - "license": "Apache Version 2.0", - "dependencies": { - "cordova-ios": "*" - }, - "scripts": { - "test": "xcodebuild test -workspace CDVSplashScreenTest.xcworkspace -scheme CDVSplashScreenLibTests -destination 'platform=iOS Simulator,name=iPhone 5' CONFIGURATION_BUILD_DIR='/tmp' HEADER_SEARCH_PATHS='$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include'" - } -} diff --git a/tests/package.json b/tests/package.json index b1f011c..1dd0686 100644 --- a/tests/package.json +++ b/tests/package.json @@ -1,6 +1,6 @@ { "name": "cordova-plugin-splashscreen-tests", - "version": "5.0.4-dev", + "version": "6.0.1-dev", "description": "", "cordova": { "id": "cordova-plugin-splashscreen-tests", diff --git a/tests/plugin.xml b/tests/plugin.xml index 7057144..7388fc8 100644 --- a/tests/plugin.xml +++ b/tests/plugin.xml @@ -20,7 +20,7 @@ + version="6.0.1-dev"> Cordova Splashscreen Plugin Tests Apache 2.0 diff --git a/tests/tests.js b/tests/tests.js index 7b55a81..ecf4889 100644 --- a/tests/tests.js +++ b/tests/tests.js @@ -19,20 +19,18 @@ * */ -/* jshint jasmine: true */ - exports.defineAutoTests = function () { describe('Splashscreen (cordova)', function () { - it("splashscreen.spec.1 should exist", function () { + it('splashscreen.spec.1 should exist', function () { expect(navigator.splashscreen).toBeDefined(); }); - it("splashscreen.spec.2 show method should exist", function () { + it('splashscreen.spec.2 show method should exist', function () { expect(navigator.splashscreen.show).toBeDefined(); expect(typeof navigator.splashscreen.show).toBe('function'); }); - it("splashscreen.spec.3 hide method should exist", function () { + it('splashscreen.spec.3 hide method should exist', function () { expect(navigator.splashscreen.hide).toBeDefined(); expect(typeof navigator.splashscreen.hide).toBe('function'); }); @@ -40,7 +38,7 @@ exports.defineAutoTests = function () { }; exports.defineManualTests = function (contentEl, createActionButton) { - function showFor(duration) { + function showFor (duration) { navigator.splashscreen.show(); window.setTimeout(function () { navigator.splashscreen.hide(); @@ -48,7 +46,6 @@ exports.defineManualTests = function (contentEl, createActionButton) { } contentEl.innerHTML = '

Splashscreen Tests

' + - '

Note for WP: AutoHideSplashScreen must be set to false in config.xml

' + '
' + 'Expected result: Will show the Cordova splashscreen for 1 second' + '

' + diff --git a/www/splashscreen.js b/www/splashscreen.js index 7cb48bd..8235e8e 100644 --- a/www/splashscreen.js +++ b/www/splashscreen.js @@ -22,11 +22,11 @@ var exec = require('cordova/exec'); var splashscreen = { - show:function() { - exec(null, null, "SplashScreen", "show", []); + show: function () { + exec(null, null, 'SplashScreen', 'show', []); }, - hide:function() { - exec(null, null, "SplashScreen", "hide", []); + hide: function () { + exec(null, null, 'SplashScreen', 'hide', []); } };