diff --git a/package-lock.json b/package-lock.json index bc85ec3d2..c19ebedbf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1663,9 +1663,9 @@ } }, "@semantic-release/npm": { - "version": "5.1.15", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-5.1.15.tgz", - "integrity": "sha512-MUUKOOtqsX/aJZJIjiAdw7SkCH+D3De060l1HhTlqrwTB7PzMtXcUMen6Prd1Hv8+gknUFkSWhVmi8tIaGDVnA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-5.2.0.tgz", + "integrity": "sha512-+WUoFNTVn4saPLbIBd+fCXL9nP6c49iOyvjLqWNq4lh2/sLZg993MMTBVvTxHRaojxb42R2RjePsO5AaFM3Lzw==", "dev": true, "requires": { "@semantic-release/error": "^2.2.0", @@ -1681,13 +1681,24 @@ "registry-auth-token": "^4.0.0" }, "dependencies": { + "cross-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", + "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, "execa": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/execa/-/execa-2.0.4.tgz", - "integrity": "sha512-VcQfhuGD51vQUQtKIq2fjGDLDbL6N1DTQVpYzxZ7LPIXw3HqTuIz6uxRmpV1qf8i31LHf2kjiaGI+GdHwRgbnQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", + "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==", "dev": true, "requires": { - "cross-spawn": "^6.0.5", + "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", @@ -1789,6 +1800,30 @@ "parse-json": "^5.0.0", "type-fest": "^0.6.0" } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.1.tgz", + "integrity": "sha512-N7GBZOTswtB9lkQBZA4+zAXrjEIWAUOB93AvzUiudRzRxhUdLURQ7D/gAIMY1gatT/LTbmbcv8SiYazy3eYB7w==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, @@ -1810,6 +1845,16 @@ "read-pkg-up": "^6.0.0" }, "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, "get-stream": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", @@ -1818,6 +1863,79 @@ "requires": { "pump": "^3.0.0" } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-6.0.0.tgz", + "integrity": "sha512-odtTvLl+EXo1eTsMnoUHRmg/XmXdTkwXVxy4VFE9Kp6cCq7b3l7QMdBndND3eAFzrbSAXC/WCUOQQ9rLjifKZw==", + "dev": true, + "requires": { + "find-up": "^4.0.0", + "read-pkg": "^5.1.1", + "type-fest": "^0.5.0" + } + }, + "type-fest": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz", + "integrity": "sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==", + "dev": true } } }, @@ -1921,9 +2039,9 @@ "dev": true }, "@types/react": { - "version": "16.9.5", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.5.tgz", - "integrity": "sha512-jQ12VMiFOWYlp+j66dghOWcmDDwhca0bnlcTxS4Qz/fh5gi6wpaZDthPEu/Gc/YlAuO87vbiUXL8qKstFvuOaA==", + "version": "16.9.9", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.9.tgz", + "integrity": "sha512-L+AudFJkDukk+ukInYvpoAPyJK5q1GanFOINOJnM0w6tUgITuWvJ4jyoBPFL7z4/L8hGLd+K/6xR5uUjXu0vVg==", "dev": true, "requires": { "@types/prop-types": "*", @@ -1931,9 +2049,9 @@ } }, "@types/react-native": { - "version": "0.60.19", - "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.60.19.tgz", - "integrity": "sha512-1Qq1EQn/bi7dnsdrZJu0f9MK18KZrEmLGMfw3V9Im5As4uwFUTCIkD4LnFJkfQtRvtJQN1cOQri6MTqT7d9fkg==", + "version": "0.60.21", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.60.21.tgz", + "integrity": "sha512-E7F+P/UG4Utu+kh8Hy544i0m4CzpHw1awNX6hVfkhlu4mXSlAn6KLZzKEkPBbHm7g1kspmZTiuP23HAKZpASPw==", "dev": true, "requires": { "@types/prop-types": "*", @@ -4292,9 +4410,9 @@ "dev": true }, "conventional-changelog-angular": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.3.tgz", - "integrity": "sha512-YD1xzH7r9yXQte/HF9JBuEDfvjxxwDGGwZU1+ndanbY0oFgA+Po1T9JDSpPLdP0pZT6MhCAsdvFKC4TJ4MTJTA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.5.tgz", + "integrity": "sha512-RrkdWnL/TVyWV1ayWmSsrWorsTDqjL/VwG5ZSEneBQrd65ONcfeA1cW7FLtNweQyMiKOyriCMTKRSlk18DjTrw==", "dev": true, "requires": { "compare-func": "^1.3.1", @@ -4302,15 +4420,15 @@ } }, "conventional-changelog-writer": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.7.tgz", - "integrity": "sha512-p/wzs9eYaxhFbrmX/mCJNwJuvvHR+j4Fd0SQa2xyAhYed6KBiZ780LvoqUUvsayP4R1DtC27czalGUhKV2oabw==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.9.tgz", + "integrity": "sha512-2Y3QfiAM37WvDMjkVNaRtZgxVzWKj73HE61YQ/95T53yle+CRwTVSl6Gbv/lWVKXeZcM5af9n9TDVf0k7Xh+cw==", "dev": true, "requires": { "compare-func": "^1.3.1", "conventional-commits-filter": "^2.0.2", "dateformat": "^3.0.0", - "handlebars": "^4.1.2", + "handlebars": "^4.4.0", "json-stringify-safe": "^5.0.1", "lodash": "^4.2.1", "meow": "^4.0.0", @@ -4319,16 +4437,6 @@ "through2": "^3.0.0" }, "dependencies": { - "conventional-commits-filter": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz", - "integrity": "sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ==", - "dev": true, - "requires": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" - } - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -4347,28 +4455,39 @@ } }, "conventional-commits-filter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.1.tgz", - "integrity": "sha512-92OU8pz/977udhBjgPEbg3sbYzIxMDFTlQT97w7KdhR9igNqdJvy8smmedAAgn4tPiqseFloKkrVfbXCVd+E7A==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz", + "integrity": "sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ==", "dev": true, "requires": { - "is-subset": "^0.1.1", + "lodash.ismatch": "^4.4.0", "modify-values": "^1.0.0" } }, "conventional-commits-parser": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.1.tgz", - "integrity": "sha512-P6U5UOvDeidUJ8ebHVDIoXzI7gMlQ1OF/id6oUvp8cnZvOXMt1n8nYl74Ey9YMn0uVQtxmCtjPQawpsssBWtGg==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.5.tgz", + "integrity": "sha512-qVz9+5JwdJzsbt7JbJ6P7NOXBGt8CyLFJYSjKAuPSgO+5UGfcsbk9EMR+lI8Unlvx6qwIc2YDJlrGIfay2ehNA==", "dev": true, "requires": { "JSONStream": "^1.0.4", - "is-text-path": "^1.0.0", + "is-text-path": "^2.0.0", "lodash": "^4.2.1", "meow": "^4.0.0", "split2": "^2.0.0", - "through2": "^2.0.0", + "through2": "^3.0.0", "trim-off-newlines": "^1.0.0" + }, + "dependencies": { + "through2": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "dev": true, + "requires": { + "readable-stream": "2 || 3" + } + } } }, "convert-source-map": { @@ -4929,9 +5048,9 @@ "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" }, "env-ci": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-4.1.1.tgz", - "integrity": "sha512-eTgpkALDeYRGNhYM2fO9LKsWDifoUgKL7hxpPZqFMP2IU7f+r89DtKqCmk3yQB/jxS8CmZTfKnWO5TiIDFs9Hw==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-4.5.0.tgz", + "integrity": "sha512-0b5ihp/O/tsxWvzEY/Ags+3SL+F9eFci9ZF2Mqx/NHYCaV3cfpoPZW8qx1fcQAHOjWD9wSWsByewzimvGar/4Q==", "dev": true, "requires": { "execa": "^1.0.0", @@ -6996,9 +7115,9 @@ "dev": true }, "handlebars": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.3.3.tgz", - "integrity": "sha512-VupOxR91xcGojfINrzMqrvlyYbBs39sXIrWa7YdaQWeBudOlvKEGvCczMfJPgnuwHE/zyH1M6J+IUP6cgDVyxg==", + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.4.5.tgz", + "integrity": "sha512-0Ce31oWVB7YidkaTq33ZxEbN+UDxMMgThvCe8ptgQViymL5DPis9uLdTA13MiRPhgvqyxIegugrP97iK3JeBHg==", "dev": true, "requires": { "neo-async": "^2.6.0", @@ -7179,9 +7298,9 @@ "dev": true }, "hosted-git-info": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.0.tgz", - "integrity": "sha512-zYSx1cP4MLsvKtTg8DF/PI6e6FHZ3wcawcTGsrLU2TM+UfD4jmSrn2wdQT16TFbH3lO4PIdjLG0E+cuYDgFD9g==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.2.tgz", + "integrity": "sha512-ezZMWtHXm7Eb7Rq4Mwnx2vs79WUx2QmRg3+ZqeGroKzfDO+EprOcgRPYghsOP9JuYBfK18VojmRTGCg8Ma+ktw==", "dev": true, "requires": { "lru-cache": "^5.1.1" @@ -7197,9 +7316,9 @@ } }, "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true } } @@ -7419,13 +7538,21 @@ "dev": true }, "into-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-5.1.0.tgz", - "integrity": "sha512-cbDhb8qlxKMxPBk/QxTtYg1DQ4CwXmadu7quG3B7nrJsgSncEreF2kwWKZFdnjc/lSNNIkFPsjI7SM0Cx/QXPw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-5.1.1.tgz", + "integrity": "sha512-krrAJ7McQxGGmvaYbB7Q1mcA+cRwg9Ij2RfWIeVesNBgVDZmzY/Fa4IpZUT3bmdRzMzdf/mzltCG2Dq99IZGBA==", "dev": true, "requires": { "from2": "^2.3.0", - "p-is-promise": "^2.0.0" + "p-is-promise": "^3.0.0" + }, + "dependencies": { + "p-is-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", + "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "dev": true + } } }, "invariant": { @@ -7742,12 +7869,6 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, - "is-subset": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", - "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", - "dev": true - }, "is-symbol": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", @@ -7758,12 +7879,12 @@ } }, "is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", + "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", "dev": true, "requires": { - "text-extensions": "^1.0.0" + "text-extensions": "^2.0.0" } }, "is-typedarray": { @@ -15130,14 +15251,14 @@ } }, "read-pkg-up": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-6.0.0.tgz", - "integrity": "sha512-odtTvLl+EXo1eTsMnoUHRmg/XmXdTkwXVxy4VFE9Kp6cCq7b3l7QMdBndND3eAFzrbSAXC/WCUOQQ9rLjifKZw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.0.tgz", + "integrity": "sha512-t2ODkS/vTTcRlKwZiZsaLGb5iwfx9Urp924aGzVyboU6+7Z2i6eGr/G1Z4mjvwLLQV3uFOBKobNRGM3ux2PD/w==", "dev": true, "requires": { - "find-up": "^4.0.0", - "read-pkg": "^5.1.1", - "type-fest": "^0.5.0" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "dependencies": { "find-up": { @@ -15207,9 +15328,9 @@ } }, "type-fest": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz", - "integrity": "sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true } } @@ -15781,9 +15902,9 @@ } }, "semantic-release": { - "version": "15.13.24", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-15.13.24.tgz", - "integrity": "sha512-OPshm6HSp+KmZP9dUv1o3MRILDgOeHYWPI+XSpQRERMri7QkaEiIPkZzoNm2d6KDeFDnp03GphQQS4+Zfo+x/Q==", + "version": "15.13.27", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-15.13.27.tgz", + "integrity": "sha512-Os9tGsOMCrWqW8cEo0zczoJnZcZzwHAWODmziff+8zU1gwPmLplAicJ5a3L43ubWtAsp2hVPf9WhWj2lMXoIGQ==", "dev": true, "requires": { "@semantic-release/commit-analyzer": "^6.1.0", @@ -15807,7 +15928,7 @@ "marked-terminal": "^3.2.0", "p-locate": "^4.0.0", "p-reduce": "^2.0.0", - "read-pkg-up": "^6.0.0", + "read-pkg-up": "^7.0.0", "resolve-from": "^5.0.0", "semver": "^6.0.0", "signale": "^1.2.1", @@ -15897,9 +16018,9 @@ } }, "yargs": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.0.0.tgz", - "integrity": "sha512-ssa5JuRjMeZEUjg7bEL99AwpitxU/zWGAGpdj0di41pOEmJti8NR6kyUIJBkR78DTYNPZOU08luUo0GTHuB+ow==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.0.tgz", + "integrity": "sha512-/is78VKbKs70bVZH7w4YaZea6xcJWOAwkhbR0CFuZBmYtfTYF0xjGJF43AYd8g2Uii1yJwmS5GR2vBmrc32sbg==", "dev": true, "requires": { "cliui": "^5.0.0", @@ -15912,7 +16033,17 @@ "string-width": "^3.0.0", "which-module": "^2.0.0", "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" + "yargs-parser": "^15.0.0" + } + }, + "yargs-parser": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } @@ -16911,9 +17042,9 @@ } }, "text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.0.0.tgz", + "integrity": "sha512-F91ZqLgvi1E0PdvmxMgp+gcf6q8fMH7mhdwWfzXnl1k+GbpQDmi8l7DzLC5JTASKbwpY3TfxajAUzAXcv2NmsQ==", "dev": true }, "text-table": { @@ -17144,9 +17275,9 @@ "dev": true }, "typescript": { - "version": "3.7.0-beta", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.0-beta.tgz", - "integrity": "sha512-4jyCX+IQamrPJxgkABPq9xf+hUN+GWHVxoj+oey1TadCPa4snQl1RKwUba+1dyzYCamwlCxKvZQ3TjyWLhMGBA==", + "version": "3.7.0-dev.20191018", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.0-dev.20191018.tgz", + "integrity": "sha512-Z8KpsytbY5lBMp5cc08VFoO8CgHC6IcbgyiA5vjh7fitkoG0qcem9C354YuiWV4O2+i2gdC7vF8tNUYqO/vUkQ==", "dev": true }, "typescript-compiler": { @@ -17162,16 +17293,23 @@ "dev": true }, "uglify-js": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz", - "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==", + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.3.tgz", + "integrity": "sha512-KfQUgOqTkLp2aZxrMbCuKCDGW9slFYu2A23A36Gs7sGzTLcRBDORdOi5E21KWHFIfkY8kzgi/Pr1cXCh0yIp5g==", "dev": true, "optional": true, "requires": { - "commander": "~2.20.0", + "commander": "~2.20.3", "source-map": "~0.6.1" }, "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "optional": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", diff --git a/package.json b/package.json index a58441f48..b41859207 100644 --- a/package.json +++ b/package.json @@ -59,8 +59,8 @@ "@semantic-release/changelog": "^3.0.4", "@semantic-release/git": "^7.0.16", "@types/css-tree": "^1.0.1", - "@types/react": "^16.9.5", - "@types/react-native": "^0.60.19", + "@types/react": "^16.9.9", + "@types/react-native": "^0.60.21", "babel-eslint": "^10.0.3", "eslint": "^6.5.1", "eslint-plugin-flowtype": "^4.3.0", @@ -73,9 +73,9 @@ "prettier": "^1.18.2", "react": "^16.10.2", "react-native": "^0.61.2", - "semantic-release": "^15.13.24", + "semantic-release": "^15.13.27", "semantic-release-cli": "^5.2.1", - "typescript": "^3.7.0-beta" + "typescript": "^3.7.0-dev.20191018" }, "release": { "plugins": [ diff --git a/src/css.tsx b/src/css.tsx index 2def8e1dd..29f901d5a 100644 --- a/src/css.tsx +++ b/src/css.tsx @@ -1,13 +1,14 @@ import React, { useEffect, useMemo, useState } from 'react'; import { - AST, camelCase, err, fetchText, + JsxAST, parse, Styles, SvgAst, UriProps, + XmlAST, XmlProps, } from './xml'; import csstree, { @@ -34,48 +35,46 @@ import stable from 'stable'; */ // is the node a tag? // isTag: ( node:Node ) => isTag:Boolean -function isTag(node: AST | string): node is AST { +function isTag(node: XmlAST | string): node is XmlAST { return typeof node === 'object'; } // get the parent of the node // getParent: ( node:Node ) => parentNode:Node // returns null when no parent exists -function getParent(node: AST | string): AST | string { - return ((typeof node === 'object' && node.parent) || null) as AST | string; +function getParent(node: XmlAST | string): XmlAST { + return ((typeof node === 'object' && node.parent) || null) as XmlAST; } // get the node's children // getChildren: ( node:Node ) => children:[Node] -function getChildren(node: AST | string): Array { - return ( - (typeof node === 'object' && (node.children as (AST | string)[])) || [] - ); +function getChildren(node: XmlAST | string): Array { + return (typeof node === 'object' && node.children) || []; } -// get the name of the tag +// get the name of the tag' // getName: ( elem:ElementNode ) => tagName:String -function getName(elem: AST): string { +function getName(elem: XmlAST): string { return elem.tag; } // get the text content of the node, and its children if it has any // getText: ( node:Node ) => text:String // returns empty string when there is no text -function getText(_node: AST | string): string { +function getText(_node: XmlAST | string): string { return ''; } // get the attribute value // getAttributeValue: ( elem:ElementNode, name:String ) => value:String // returns null when attribute doesn't exist -function getAttributeValue(elem: AST, name: string): string { - return elem.props[name] as string; +function getAttributeValue(elem: XmlAST, name: string): string { + return (elem.props[name] || null) as string; } // takes an array of nodes, and removes any duplicates, as well as any nodes // whose ancestors are also in the array -function removeSubsets(nodes: Array): Array { +function removeSubsets(nodes: Array): Array { let idx = nodes.length, node, ancestor, @@ -96,7 +95,7 @@ function removeSubsets(nodes: Array): Array { nodes.splice(idx, 1); break; } - ancestor = getParent(ancestor); + ancestor = (typeof ancestor === 'object' && ancestor.parent) || null; } // If the node has been found to be unique, re-insert it. @@ -109,10 +108,15 @@ function removeSubsets(nodes: Array): Array { } // does at least one of passed element nodes pass the test predicate? -function existsOne(test: Predicate, elems: Array): boolean { +function existsOne( + test: Predicate, + elems: Array, +): boolean { return elems.some( - // eslint-disable-next-line jest/no-disabled-tests - elem => isTag(elem) && (test(elem) || existsOne(test, getChildren(elem))), + elem => + typeof elem === 'object' && + // eslint-disable-next-line jest/no-disabled-tests + (test(elem) || existsOne(test, elem.children)), ); } @@ -120,34 +124,34 @@ function existsOne(test: Predicate, elems: Array): boolean { get the siblings of the node. Note that unlike jQuery's `siblings` method, this is expected to include the current node as well */ -function getSiblings(node: AST | string): Array { - const parent = getParent(node); - return (typeof parent === 'object' && getChildren(parent)) || []; +function getSiblings(node: XmlAST | string): Array { + const parent = typeof node === 'object' && node.parent; + return (parent && parent.children) || []; } // does the element have the named attribute? -function hasAttrib(elem: AST, name: string): boolean { +function hasAttrib(elem: XmlAST, name: string): boolean { return elem.props.hasOwnProperty(name); } // finds the first node in the array that matches the test predicate, or one // of its children function findOne( - test: Predicate, - elems: Array, -): AST | undefined { - let elem: AST | undefined; + test: Predicate, + elems: Array, +): XmlAST | undefined { + let elem: XmlAST | undefined; for (let i = 0, l = elems.length; i < l && !elem; i++) { - const e = elems[i]; - if (typeof e === 'string') { + const node = elems[i]; + if (typeof node === 'string') { // eslint-disable-next-line jest/no-disabled-tests - } else if (test(e)) { - elem = e; + } else if (test(node)) { + elem = node; } else { - const childs = getChildren(e); - if (childs.length !== 0) { - elem = findOne(test, childs); + const { children } = node; + if (children.length !== 0) { + elem = findOne(test, children); } } } @@ -158,29 +162,29 @@ function findOne( // finds all of the element nodes in the array that match the test predicate, // as well as any of their children that match it function findAll( - test: Predicate, - nodes: Array, - result: Array = [], -): Array { + test: Predicate, + nodes: Array, + result: Array = [], +): Array { for (let i = 0, j = nodes.length; i < j; i++) { const node = nodes[i]; - if (!isTag(node)) { + if (typeof node !== 'object') { continue; } // eslint-disable-next-line jest/no-disabled-tests if (test(node)) { result.push(node); } - const childs = getChildren(node); - if (childs.length !== 0) { - findAll(test, childs, result); + const { children } = node; + if (children.length !== 0) { + findAll(test, children, result); } } return result; } -const adapter: Adapter = { +const adapter: Adapter = { removeSubsets, existsOne, getSiblings, @@ -195,7 +199,7 @@ const adapter: Adapter = { getAttributeValue, }; -const cssSelectOpts: Options = { +const cssSelectOpts: Options = { xmlMode: true, adapter, }; @@ -204,10 +208,10 @@ const cssSelectOpts: Options = { * Evaluate a string of CSS selectors against the element and returns matched elements. * * @param {Query} query can be either a CSS selector string or a compiled query function. - * @param {Array | AST} elems Elements to query. If it is an element, its children will be queried. - * @return {Array} All matching elements. + * @param {Array | XmlAST} elems Elements to query. If it is an element, its children will be queried. + * @return {Array} All matching elements. */ -function querySelectorAll(query: Query, elems: AST | AST[]): AST[] { +function querySelectorAll(query: Query, elems: XmlAST | XmlAST[]): XmlAST[] { return cssSelect(query, elems, cssSelectOpts); } @@ -433,7 +437,7 @@ const declarationParseProps = { context: 'declarationList', parseValue: false, }; -function CSSStyleDeclaration(ast: AST) { +function CSSStyleDeclaration(ast: XmlAST) { const { props, styles } = ast; if (!props.style) { props.style = {}; @@ -473,11 +477,11 @@ function CSSStyleDeclaration(ast: AST) { } } -interface StyledAST extends AST { +interface StyledAST extends XmlAST { style: Styles; priority: Map; } -function initStyle(selectedEl: AST): StyledAST { +function initStyle(selectedEl: XmlAST): StyledAST { if (!selectedEl.style) { CSSStyleDeclaration(selectedEl); } @@ -490,8 +494,8 @@ function initStyle(selectedEl: AST): StyledAST { * @param elemName * @return {?Object} */ -function closestElem(node: AST, elemName: string) { - let elem: AST | null = node; +function closestElem(node: XmlAST, elemName: string) { + let elem: XmlAST | null = node; while ((elem = elem.parent) && elem.tag !== elemName) {} return elem; } @@ -518,7 +522,7 @@ const parseProps = { * @author strarsis * @author modified by: msand */ -export function inlineStyles(document: AST) { +export function inlineStyles(document: XmlAST) { // collect