From 3d3d1f67b409b788cb9c6f77e2631a0c17822d1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20Wr=C3=B3tniak?= Date: Wed, 26 Dec 2018 02:58:43 +0100 Subject: [PATCH 01/12] Add market name to device properties. --- lib/db/api.js | 1 + lib/units/device/plugins/solo.js | 1 + lib/util/devutil.js | 10 ++++++++++ lib/wire/wire.proto | 1 + package.json | 1 + res/app/device-list/column/device-column-service.js | 6 ++++++ res/app/device-list/device-list-controller.js | 4 ++++ 7 files changed, 24 insertions(+) diff --git a/lib/db/api.js b/lib/db/api.js index 8cfe9881..58cf635d 100644 --- a/lib/db/api.js +++ b/lib/db/api.js @@ -324,6 +324,7 @@ dbapi.saveDeviceIdentity = function(serial, identity) { , product: identity.product , cpuPlatform: identity.cpuPlatform , openGLESVersion: identity.openGLESVersion + , marketName: identity.marketName })) } diff --git a/lib/units/device/plugins/solo.js b/lib/units/device/plugins/solo.js index ae78a2d0..e3ba1f40 100644 --- a/lib/units/device/plugins/solo.js +++ b/lib/units/device/plugins/solo.js @@ -44,6 +44,7 @@ module.exports = syrup.serial() , identity.product , identity.cpuPlatform , identity.openGLESVersion + , identity.marketName )) ]) }) diff --git a/lib/util/devutil.js b/lib/util/devutil.js index da61b0c3..0772cfd7 100644 --- a/lib/util/devutil.js +++ b/lib/util/devutil.js @@ -2,6 +2,7 @@ var util = require('util') var split = require('split') var Promise = require('bluebird') +var androidDeviceList = require('android-device-list') var devutil = module.exports = Object.create(null) @@ -135,6 +136,7 @@ devutil.makeIdentity = function(serial, properties) { var product = properties['ro.product.name'] var cpuPlatform = properties['ro.board.platform'] var openGLESVersion = properties['ro.opengles.version'] + var marketName = properties['ro.product.device'] openGLESVersion = parseInt(openGLESVersion, 10) if (isNaN(openGLESVersion)) { @@ -157,6 +159,13 @@ devutil.makeIdentity = function(serial, properties) { model = model.substr(manufacturer.length) } + if (marketName) { + var devices = androidDeviceList.getDevicesByDeviceId(marketName) + if (devices.length > 0) { + marketName = devices[0].name + } + } + // Clean up remaining model name // model = model.replace(/[_ ]/g, '') return { @@ -171,5 +180,6 @@ devutil.makeIdentity = function(serial, properties) { , product: product , cpuPlatform: cpuPlatform , openGLESVersion: openGLESVersion + , marketName: marketName } } diff --git a/lib/wire/wire.proto b/lib/wire/wire.proto index 2b2c60ca..255cfb0b 100644 --- a/lib/wire/wire.proto +++ b/lib/wire/wire.proto @@ -230,6 +230,7 @@ message DeviceIdentityMessage { optional string product = 12; optional string cpuPlatform = 13; optional string openGLESVersion = 14; + optional string marketName = 15; } message DeviceProperty { diff --git a/package.json b/package.json index 7d63ecf6..910f59ac 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "adbkit": "^2.11.1", "adbkit-apkreader": "^3.1.1", "adbkit-monkey": "^1.0.1", + "android-device-list": "^1.1.85", "aws-sdk": "^2.4.13", "basic-auth": "^1.0.3", "bluebird": "^2.10.1", diff --git a/res/app/device-list/column/device-column-service.js b/res/app/device-list/column/device-column-service.js index 96dafd30..b131b2fa 100644 --- a/res/app/device-list/column/device-column-service.js +++ b/res/app/device-list/column/device-column-service.js @@ -179,6 +179,12 @@ module.exports = function DeviceColumnService($filter, gettext) { return device.manufacturer || '' } }) + , marketName: TextCell({ + title: gettext('Market name') + , value: function(device) { + return device.marketName || '' + } + }) , sdk: NumberCell({ title: gettext('SDK') , defaultOrder: 'desc' diff --git a/res/app/device-list/device-list-controller.js b/res/app/device-list/device-list-controller.js index f14109e4..2ed5fdcf 100644 --- a/res/app/device-list/device-list-controller.js +++ b/res/app/device-list/device-list-controller.js @@ -55,6 +55,10 @@ module.exports = function DeviceListCtrl( name: 'manufacturer' , selected: false } + , { + name: 'marketName' + , selected: false + } , { name: 'sdk' , selected: false From c7cd8f4c63fc200881c47d9de4b6f10b0ba76962 Mon Sep 17 00:00:00 2001 From: gebitang Date: Wed, 28 Aug 2019 10:38:00 +0800 Subject: [PATCH 02/12] Change api status code from 500 to 200 in order to display error info in page. --- lib/units/storage/plugins/apk/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/units/storage/plugins/apk/index.js b/lib/units/storage/plugins/apk/index.js index 3d1f93ba..9ed22bca 100644 --- a/lib/units/storage/plugins/apk/index.js +++ b/lib/units/storage/plugins/apk/index.js @@ -37,7 +37,7 @@ module.exports = function(options) { }) .catch(function(err) { log.error('Unable to read manifest of "%s"', req.params.id, err.stack) - res.status(500) + res.status(200) .json({ success: false }) From 887e2fe57344224188db34b36db1e343dc5d269f Mon Sep 17 00:00:00 2001 From: Simo Kinnunen Date: Sun, 1 Sep 2019 02:49:56 +0900 Subject: [PATCH 03/12] Force Node 8 until newer versions can be supported again. --- .nvmrc | 1 + .tool-versions | 1 + README.md | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 .nvmrc create mode 100644 .tool-versions diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..559d6961 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +8.16.1 diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 00000000..f09ebaed --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +nodejs 8.16.1 diff --git a/README.md b/README.md index 19a52bb4..db1e0ebf 100644 --- a/README.md +++ b/README.md @@ -114,7 +114,7 @@ As the product has evolved from an internal tool running in our internal network ## Requirements -* [Node.js](https://nodejs.org/) >= 6.9 (latest stable version preferred) +* [Node.js](https://nodejs.org/) 8.x **required** (some dependencies don't support newer versions) * [ADB](http://developer.android.com/tools/help/adb.html) properly set up * [RethinkDB](http://rethinkdb.com/) >= 2.2 * [GraphicsMagick](http://www.graphicsmagick.org/) (for resizing screenshots) From e61196f23604cfccb18b07cd0d8552349d7b94bd Mon Sep 17 00:00:00 2001 From: Simo Kinnunen Date: Sun, 1 Sep 2019 02:50:42 +0900 Subject: [PATCH 04/12] Update bower to make installation work again. --- package.json | 2 +- yarn.lock | 647 ++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 642 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index e25c2831..925777e5 100644 --- a/package.json +++ b/package.json @@ -99,7 +99,7 @@ }, "devDependencies": { "async": "^2.0.1", - "bower": "^1.7.2", + "bower": "^1.8.8", "chai": "^3.4.1", "css-loader": "^0.23.1", "del": "^2.0.1", diff --git a/yarn.lock b/yarn.lock index 996851b6..3dfc04cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -213,6 +213,11 @@ append-field@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/append-field/-/append-field-0.1.0.tgz#6ddc58fa083c7bc545d3c5995b2830cc2366d44a" +append-field@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" + integrity sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY= + aproba@^1.0.3: version "1.1.2" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" @@ -373,6 +378,13 @@ async@^2.0.1: dependencies: lodash "^4.14.0" +async@^2.5.0: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + async@~0.2.6, async@~0.2.7, async@~0.2.9: version "0.2.10" resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" @@ -564,6 +576,22 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.6" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" +body-parser@1.18.2: + version "1.18.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" + integrity sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ= + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.1" + http-errors "~1.6.2" + iconv-lite "0.4.19" + on-finished "~2.3.0" + qs "6.5.1" + raw-body "2.3.2" + type-is "~1.6.15" + body-parser@^1.13.3, body-parser@^1.14.1, body-parser@^1.16.1: version "1.17.2" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.17.2.tgz#f8892abc8f9e627d42aedafbca66bf5ab99104ee" @@ -589,9 +617,10 @@ boom@2.x.x: dependencies: hoek "2.x.x" -bower@^1.7.2: - version "1.8.0" - resolved "https://registry.yarnpkg.com/bower/-/bower-1.8.0.tgz#55dbebef0ad9155382d9e9d3e497c1372345b44a" +bower@^1.8.8: + version "1.8.8" + resolved "https://registry.yarnpkg.com/bower/-/bower-1.8.8.tgz#82544be34a33aeae7efb8bdf9905247b2cffa985" + integrity sha512-1SrJnXnkP9soITHptSO+ahx3QKp3cVzn8poI6ujqc5SeOkg5iqM1pK9H+DSc2OQ8SnO0jC/NG4Ur/UIwy7574A== brace-expansion@^1.0.0, brace-expansion@^1.1.7: version "1.1.8" @@ -769,6 +798,11 @@ bytes@2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" @@ -1043,6 +1077,13 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" +combined-stream@^1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + commander@2.8.x: version "2.8.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" @@ -1055,6 +1096,16 @@ commander@2.9.x, commander@^2.3.0, commander@^2.5.0, commander@^2.7.1, commander dependencies: graceful-readlink ">= 1.0.0" +commander@~2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" + integrity sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ== + +commander@~2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + commander@~2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.6.0.tgz#9df7e52fb2a0cb0fb89058ee80c3104225f37e1d" @@ -1189,6 +1240,11 @@ content-type@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + convert-to-ecmascript-compatible-varname@^0.1.0: version "0.1.5" resolved "https://registry.yarnpkg.com/convert-to-ecmascript-compatible-varname/-/convert-to-ecmascript-compatible-varname-0.1.5.tgz#f67a4938c5233443564250479c67014bac878499" @@ -1214,6 +1270,11 @@ cookiejar@^2.0.6: version "2.1.1" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.1.tgz#41ad57b1b555951ec171412a81942b1e8200d34a" +cookiejar@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" + integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== + cookies@0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.7.0.tgz#0bc961d910c35254980fc7c9eff5da12011bbf00" @@ -1225,6 +1286,11 @@ core-js@^2.2.0: version "2.4.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" +core-js@^2.5.7: + version "2.6.9" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" + integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== + core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -1514,6 +1580,20 @@ debug@2.6.7: dependencies: ms "2.0.0" +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.1.0: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -1581,6 +1661,16 @@ depd@1.1.0, depd@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" +depd@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + integrity sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k= + +depd@~1.1.1, depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + deprecated@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" @@ -1759,6 +1849,11 @@ encodeurl@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + end-of-stream@~0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" @@ -2043,6 +2138,11 @@ esprima@^3.1.1, esprima@~3.1.0: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + "esprima@~ 2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.0.0.tgz#609ac5c2667eae5433b41eb9ecece2331b41498f" @@ -2076,6 +2176,11 @@ etag@~1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051" +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + event-emitter@~0.3.5: version "0.3.5" resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" @@ -2423,6 +2528,15 @@ form-data@^2.1.1, form-data@~2.1.1: combined-stream "^1.0.5" mime-types "^2.1.12" +form-data@^2.3.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + formatio@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/formatio/-/formatio-1.1.1.tgz#5ed3ccd636551097383465d996199100e86161e9" @@ -2445,6 +2559,11 @@ fresh@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + from@~0: version "0.1.7" resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" @@ -2732,6 +2851,13 @@ graphlib@^2.1.1: dependencies: lodash "^4.11.1" +graphlib@^2.1.7: + version "2.1.7" + resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.7.tgz#b6a69f9f44bd9de3963ce6804a2fc9e73d86aecc" + integrity sha512-TyI9jIy2J4j0qgPmOOrHTCtpPqJGN/aurBwc6ZT+bRii+di1I+Wv3obRhVrmBEXet+qkMaEX67dXrwsd3QQM6w== + dependencies: + lodash "^4.17.5" + gulp-angular-gettext@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/gulp-angular-gettext/-/gulp-angular-gettext-2.2.0.tgz#90b5f38e89b4be491e8bb5cabaf69b0a71ddf95f" @@ -3030,6 +3156,16 @@ htmlparser2@~3.8.1: entities "1.0" readable-stream "1.1" +http-errors@1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + integrity sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY= + dependencies: + depd "1.1.1" + inherits "2.0.3" + setprototypeof "1.0.3" + statuses ">= 1.3.1 < 2" + http-errors@~1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750" @@ -3047,6 +3183,27 @@ http-errors@~1.6.1: setprototypeof "1.0.3" statuses ">= 1.3.1 < 2" +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + http-proxy-middleware@~0.17.1: version "0.17.4" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" @@ -3087,6 +3244,11 @@ iconv-lite@0.4.15, iconv-lite@^0.4.4, iconv-lite@^0.4.5: version "0.4.15" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" +iconv-lite@0.4.19: + version "0.4.19" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + integrity sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ== + icss-replace-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" @@ -3151,6 +3313,11 @@ inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" +inherits@2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + ini@^1.3.4, ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" @@ -3491,6 +3658,14 @@ js-tokens@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" +js-yaml@^3.13.0, js-yaml@^3.3.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + js-yaml@^3.3.0, js-yaml@^3.5.1, js-yaml@^3.5.2, js-yaml@^3.8.3: version "3.8.4" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6" @@ -3536,6 +3711,20 @@ json-refs@^2.1.5: slash "^1.0.0" uri-js "^3.0.2" +json-refs@^3.0.2: + version "3.0.13" + resolved "https://registry.yarnpkg.com/json-refs/-/json-refs-3.0.13.tgz#ae8c6afcde2b2576795780699920c34089ae7675" + integrity sha512-/FJ+BJ6BASjmNsBJHE8qMVj46HTS2Pfq5gI5BQRhyUsdrw9HaHRWSOsOh87deTOyWMtGas5Qr8H6ikrcWHdZbw== + dependencies: + commander "~2.19.0" + graphlib "^2.1.7" + js-yaml "^3.13.0" + lodash "^4.17.11" + native-promise-only "^0.8.1" + path-loader "^1.0.10" + slash "^2.0.0" + uri-js "^4.2.2" + json-schema-faker@^0.2.8: version "0.2.16" resolved "https://registry.yarnpkg.com/json-schema-faker/-/json-schema-faker-0.2.16.tgz#51d3ca48955d8fe734f591d747b72453be5a78f2" @@ -3862,10 +4051,68 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" +lodash._arraypool@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._arraypool/-/lodash._arraypool-2.4.1.tgz#e88eecb92e2bb84c9065612fd958a0719cd47f94" + integrity sha1-6I7suS4ruEyQZWEv2VigcZzUf5Q= + +lodash._basebind@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._basebind/-/lodash._basebind-2.4.1.tgz#e940b9ebdd27c327e0a8dab1b55916c5341e9575" + integrity sha1-6UC5690nwyfgqNqxtVkWxTQelXU= + dependencies: + lodash._basecreate "~2.4.1" + lodash._setbinddata "~2.4.1" + lodash._slice "~2.4.1" + lodash.isobject "~2.4.1" + +lodash._baseclone@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._baseclone/-/lodash._baseclone-2.4.1.tgz#30f823e57e17e3735d383bd62b60b387543b4186" + integrity sha1-MPgj5X4X43NdODvWK2Czh1Q7QYY= + dependencies: + lodash._getarray "~2.4.1" + lodash._releasearray "~2.4.1" + lodash._slice "~2.4.1" + lodash.assign "~2.4.1" + lodash.foreach "~2.4.1" + lodash.forown "~2.4.1" + lodash.isarray "~2.4.1" + lodash.isobject "~2.4.1" + lodash._basecopy@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" +lodash._basecreate@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-2.4.1.tgz#f8e6f5b578a9e34e541179b56b8eeebf4a287e08" + integrity sha1-+Ob1tXip405UEXm1a47uv0oofgg= + dependencies: + lodash._isnative "~2.4.1" + lodash.isobject "~2.4.1" + lodash.noop "~2.4.1" + +lodash._basecreatecallback@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._basecreatecallback/-/lodash._basecreatecallback-2.4.1.tgz#7d0b267649cb29e7a139d0103b7c11fae84e4851" + integrity sha1-fQsmdknLKeehOdAQO3wR+uhOSFE= + dependencies: + lodash._setbinddata "~2.4.1" + lodash.bind "~2.4.1" + lodash.identity "~2.4.1" + lodash.support "~2.4.1" + +lodash._basecreatewrapper@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._basecreatewrapper/-/lodash._basecreatewrapper-2.4.1.tgz#4d31f2e7de7e134fbf2803762b8150b32519666f" + integrity sha1-TTHy595+E0+/KAN2K4FQsyUZZm8= + dependencies: + lodash._basecreate "~2.4.1" + lodash._setbinddata "~2.4.1" + lodash._slice "~2.4.1" + lodash.isobject "~2.4.1" + lodash._basetostring@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" @@ -3881,6 +4128,23 @@ lodash._createcompounder@^3.0.0: lodash.deburr "^3.0.0" lodash.words "^3.0.0" +lodash._createwrapper@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._createwrapper/-/lodash._createwrapper-2.4.1.tgz#51d6957973da4ed556e37290d8c1a18c53de1607" + integrity sha1-UdaVeXPaTtVW43KQ2MGhjFPeFgc= + dependencies: + lodash._basebind "~2.4.1" + lodash._basecreatewrapper "~2.4.1" + lodash._slice "~2.4.1" + lodash.isfunction "~2.4.1" + +lodash._getarray@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._getarray/-/lodash._getarray-2.4.1.tgz#faf1f7f810fa985a251c2187404481094839e5ee" + integrity sha1-+vH3+BD6mFolHCGHQESBCUg55e4= + dependencies: + lodash._arraypool "~2.4.1" + lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" @@ -3889,6 +4153,21 @@ lodash._isiterateecall@^3.0.0: version "3.0.9" resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" +lodash._isnative@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._isnative/-/lodash._isnative-2.4.1.tgz#3ea6404b784a7be836c7b57580e1cdf79b14832c" + integrity sha1-PqZAS3hKe+g2x7V1gOHN95sUgyw= + +lodash._maxpoolsize@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._maxpoolsize/-/lodash._maxpoolsize-2.4.1.tgz#9d482f463b8e66afbe59c2c14edb117060172334" + integrity sha1-nUgvRjuOZq++WcLBTtsRcGAXIzQ= + +lodash._objecttypes@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz#7c0b7f69d98a1f76529f890b0cdb1b4dfec11c11" + integrity sha1-fAt/admKH3ZSn4kLDNsbTf7BHBE= + lodash._reescape@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" @@ -3901,24 +4180,77 @@ lodash._reinterpolate@^3.0.0, lodash._reinterpolate@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" +lodash._releasearray@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._releasearray/-/lodash._releasearray-2.4.1.tgz#a6139630d76d1536b07ddc80962889b082f6a641" + integrity sha1-phOWMNdtFTawfdyAliiJsIL2pkE= + dependencies: + lodash._arraypool "~2.4.1" + lodash._maxpoolsize "~2.4.1" + lodash._root@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" +lodash._setbinddata@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._setbinddata/-/lodash._setbinddata-2.4.1.tgz#f7c200cd1b92ef236b399eecf73c648d17aa94d2" + integrity sha1-98IAzRuS7yNrOZ7s9zxkjReqlNI= + dependencies: + lodash._isnative "~2.4.1" + lodash.noop "~2.4.1" + +lodash._shimkeys@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz#6e9cc9666ff081f0b5a6c978b83e242e6949d203" + integrity sha1-bpzJZm/wgfC1psl4uD4kLmlJ0gM= + dependencies: + lodash._objecttypes "~2.4.1" + +lodash._slice@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._slice/-/lodash._slice-2.4.1.tgz#745cf41a53597b18f688898544405efa2b06d90f" + integrity sha1-dFz0GlNZexj2iImFREBe+isG2Q8= + lodash.assign@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" +lodash.assign@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-2.4.1.tgz#84c39596dd71181a97b0652913a7c9675e49b1aa" + integrity sha1-hMOVlt1xGBqXsGUpE6fJZ15Jsao= + dependencies: + lodash._basecreatecallback "~2.4.1" + lodash._objecttypes "~2.4.1" + lodash.keys "~2.4.1" + lodash.assignwith@^4.0.7: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz#127a97f02adc41751a954d24b0de17e100e038eb" +lodash.bind@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-2.4.1.tgz#5d19fa005c8c4d236faf4742c7b7a1fcabe29267" + integrity sha1-XRn6AFyMTSNvr0dCx7eh/Kvikmc= + dependencies: + lodash._createwrapper "~2.4.1" + lodash._slice "~2.4.1" + lodash.camelcase@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz#932c8b87f8a4377897c67197533282f97aeac298" dependencies: lodash._createcompounder "^3.0.0" +lodash.clonedeep@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-2.4.1.tgz#f29203b40b12fee0a45d3631648259bebabc7868" + integrity sha1-8pIDtAsS/uCkXTYxZIJZvrq8eGg= + dependencies: + lodash._baseclone "~2.4.1" + lodash._basecreatecallback "~2.4.1" + lodash.clonedeep@^4.3.2: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" @@ -3939,10 +4271,32 @@ lodash.escape@^3.0.0: dependencies: lodash._root "^3.0.0" -lodash.get@^4.1.2: +lodash.foreach@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-2.4.1.tgz#fe3fc3a34c86c94cab6f9522560282741e016309" + integrity sha1-/j/Do0yGyUyrb5UiVgKCdB4BYwk= + dependencies: + lodash._basecreatecallback "~2.4.1" + lodash.forown "~2.4.1" + +lodash.forown@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.forown/-/lodash.forown-2.4.1.tgz#78b41eafe1405fa966459ea4193fd502d084524b" + integrity sha1-eLQer+FAX6lmRZ6kGT/VAtCEUks= + dependencies: + lodash._basecreatecallback "~2.4.1" + lodash._objecttypes "~2.4.1" + lodash.keys "~2.4.1" + +lodash.get@^4.0.0, lodash.get@^4.1.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" +lodash.identity@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.identity/-/lodash.identity-2.4.1.tgz#6694cffa65fef931f7c31ce86c74597cf560f4f1" + integrity sha1-ZpTP+mX++TH3wxzobHRZfPVg9PE= + lodash.isarguments@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" @@ -3951,14 +4305,33 @@ lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" +lodash.isarray@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-2.4.1.tgz#b52a326c1f62f6d7da73a31d5401df6ef44f0fa1" + integrity sha1-tSoybB9i9tfac6MdVAHfbvRPD6E= + dependencies: + lodash._isnative "~2.4.1" + lodash.isempty@^4.2.1: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" -lodash.isequal@^4.4.0: +lodash.isequal@^4.0.0, lodash.isequal@^4.4.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" +lodash.isfunction@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-2.4.1.tgz#2cfd575c73e498ab57e319b77fa02adef13a94d1" + integrity sha1-LP1XXHPkmKtX4xm3f6Aq3vE6lNE= + +lodash.isobject@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-2.4.1.tgz#5a2e47fe69953f1ee631a7eba1fe64d2d06558f5" + integrity sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU= + dependencies: + lodash._objecttypes "~2.4.1" + lodash.isplainobject@^4.0.4: version "4.0.6" resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" @@ -3975,6 +4348,15 @@ lodash.keys@^3.0.0: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" +lodash.keys@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-2.4.1.tgz#48dea46df8ff7632b10d706b8acb26591e2b3727" + integrity sha1-SN6kbfj/djKxDXBrissmWR4rNyc= + dependencies: + lodash._isnative "~2.4.1" + lodash._shimkeys "~2.4.1" + lodash.isobject "~2.4.1" + lodash.mapvalues@^4.4.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" @@ -3983,6 +4365,11 @@ lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" +lodash.noop@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-2.4.1.tgz#4fb54f816652e5ae10e8f72f717a388c7326538a" + integrity sha1-T7VPgWZS5a4Q6PcvcXo4jHMmU4o= + lodash.pick@^4.2.1: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" @@ -3991,6 +4378,13 @@ lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" +lodash.support@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.support/-/lodash.support-2.4.1.tgz#320e0b67031673c28d7a2bb5d9e0331a45240515" + integrity sha1-Mg4LZwMWc8KNeiu12eAzGkUkBRU= + dependencies: + lodash._isnative "~2.4.1" + lodash.template@^3.0.0: version "3.6.2" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" @@ -4057,6 +4451,11 @@ lodash@^4.0.0, lodash@^4.0.1, lodash@^4.11.1, lodash@^4.13.1, lodash@^4.14.0, lo version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.17.5: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + lodash@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" @@ -4280,6 +4679,11 @@ mime@1.3.x, mime@^1.2.11, mime@^1.3.4: version "1.3.6" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" +mime@1.6.0, mime@^1.4.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + mimic-fn@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" @@ -4366,6 +4770,16 @@ ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + multer@^1.0.6: version "1.3.0" resolved "https://registry.yarnpkg.com/multer/-/multer-1.3.0.tgz#092b2670f6846fa4914965efc8cf94c20fec6cd2" @@ -4379,6 +4793,20 @@ multer@^1.0.6: type-is "^1.6.4" xtend "^4.0.0" +multer@^1.1.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.2.tgz#2f1f4d12dbaeeba74cb37e623f234bf4d3d2057a" + integrity sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg== + dependencies: + append-field "^1.0.0" + busboy "^0.2.11" + concat-stream "^1.5.2" + mkdirp "^0.5.1" + object-assign "^4.1.1" + on-finished "^2.3.0" + type-is "^1.6.4" + xtend "^4.0.0" + multipipe@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" @@ -4666,7 +5094,7 @@ object-assign@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" -object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@~4.1.1: +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1, object-assign@~4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -4905,6 +5333,11 @@ parseurl@^1.3.0, parseurl@~1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + passport-oauth2@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/passport-oauth2/-/passport-oauth2-1.4.0.tgz#f62f81583cbe12609be7ce6f160b9395a27b86ad" @@ -4963,6 +5396,14 @@ path-key@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" +path-loader@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/path-loader/-/path-loader-1.0.10.tgz#dd3d1bd54cb6f2e6423af2ad334a41cc0bce4cf6" + integrity sha512-CMP0v6S6z8PHeJ6NFVyVJm6WyJjIwFvyz2b0n2/4bKdS/0uZa/9sKUlYZzubrn3zuDRU0zIuEDX9DZYQ2ZI8TA== + dependencies: + native-promise-only "^0.8.1" + superagent "^3.8.3" + path-loader@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-loader/-/path-loader-1.0.2.tgz#cd5c73e7e39a91011be148d6bfdd8a85bb931ef9" @@ -4994,6 +5435,11 @@ path-to-regexp@^1.2.1: dependencies: isarray "0.0.1" +path-to-regexp@^2.0.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.4.0.tgz#35ce7f333d5616f1c1e1bfe266c3aba2e5b2e704" + integrity sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w== + path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -5365,6 +5811,11 @@ process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + process@^0.11.0, process@~0.11.0: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" @@ -5577,6 +6028,16 @@ qs@6.4.0, qs@^6.1.0, qs@^6.4.0, qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" +qs@6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + integrity sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A== + +qs@^6.0.3, qs@^6.5.1: + version "6.8.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.8.0.tgz#87b763f0d37ca54200334cd57bb2ef8f68a1d081" + integrity sha512-tPSkj8y92PfZVbinY1n84i1Qdx75lZjMQYx9WZhnkofyxzw2r7Ho39G3/aEvSUdebxpnnM4LZJCtvE/Aq3+s9w== + qs@~6.3.0: version "6.3.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" @@ -5632,6 +6093,21 @@ range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" + integrity sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k= + dependencies: + bytes "3.0.0" + http-errors "1.6.2" + iconv-lite "0.4.19" + unpipe "1.0.0" + raw-body@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.2.0.tgz#994976cf6a5096a41162840492f0bdc5d6e7fb96" @@ -5713,6 +6189,19 @@ readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable string_decoder "~1.0.0" util-deprecate "~1.0.1" +readable-stream@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + readable-stream@~2.0.0: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" @@ -6043,6 +6532,11 @@ safe-buffer@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.0.tgz#fe4c8460397f9eaaaa58e73be46273408a45e223" +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + safe-json-stringify@~1: version "1.0.4" resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.0.4.tgz#81a098f447e4bbc3ff3312a243521bc060ef5911" @@ -6135,6 +6629,25 @@ send@0.15.3: range-parser "~1.2.0" statuses "~1.3.1" +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + sequencify@~0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" @@ -6170,6 +6683,16 @@ serve-static@1.12.3, serve-static@^1.9.2: parseurl "~1.3.1" send "0.15.3" +serve-static@^1.10.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -6190,6 +6713,16 @@ setprototypeof@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + sha.js@2.2.6: version "2.2.6" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" @@ -6241,6 +6774,11 @@ slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" @@ -6415,6 +6953,11 @@ source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, sourc version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" +spark-md5@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.0.tgz#3722227c54e2faf24b1dc6d933cc144e6f71bfef" + integrity sha1-NyIifFTi+vJLHcbZM8wUTm9xv+8= + sparkles@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" @@ -6475,6 +7018,11 @@ stack-trace@0.0.x: version "1.3.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + stf-appstore-db@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stf-appstore-db/-/stf-appstore-db-1.0.0.tgz#3ddaf62d509d6c3125db17813cba34b54435b7e4" @@ -6562,6 +7110,13 @@ string_decoder@~1.0.0: dependencies: safe-buffer "~5.0.1" +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + stringmap@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/stringmap/-/stringmap-0.2.2.tgz#556c137b258f942b8776f5b2ef582aa069d7d1b1" @@ -6636,6 +7191,22 @@ superagent@^3.5.2: qs "^6.1.0" readable-stream "^2.0.5" +superagent@^3.8.3: + version "3.8.3" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.8.3.tgz#460ea0dbdb7d5b11bc4f78deba565f86a178e128" + integrity sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA== + dependencies: + component-emitter "^1.2.0" + cookiejar "^2.1.0" + debug "^3.1.0" + extend "^3.0.0" + form-data "^2.3.1" + formidable "^1.2.0" + methods "^1.1.1" + mime "^1.4.1" + qs "^6.5.1" + readable-stream "^2.3.5" + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -6658,6 +7229,13 @@ svgo@^0.7.0: sax "~1.2.1" whet.extend "~0.9.9" +swagger-converter@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/swagger-converter/-/swagger-converter-0.1.7.tgz#a097519c6f1ee4dd67e308d9b53ddc9c2b257f97" + integrity sha1-oJdRnG8e5N1n4wjZtT3cnCslf5c= + dependencies: + lodash.clonedeep "^2.4.1" + swagger-express-mw@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/swagger-express-mw/-/swagger-express-mw-0.7.0.tgz#49f5db72d1d4b3827336ee6cc7b369caed5bf4c8" @@ -6690,6 +7268,29 @@ swagger-schema-official@2.0.0-bab6bed: version "2.0.0-bab6bed" resolved "https://registry.yarnpkg.com/swagger-schema-official/-/swagger-schema-official-2.0.0-bab6bed.tgz#70070468d6d2977ca5237b2e519ca7d06a2ea3fd" +swagger-tools@^0.10.3: + version "0.10.4" + resolved "https://registry.yarnpkg.com/swagger-tools/-/swagger-tools-0.10.4.tgz#2949b00ca17da0d4f91ad74c44027de250c4d849" + integrity sha512-VQpijIi8cpB/frUZOZlVpS7U3CrdSAZBfiHu448R1njiNXUnE7heF3Svz3qFBr5SYtaPvaqWpHMbvboirCXVzA== + dependencies: + async "^2.5.0" + body-parser "1.18.2" + commander "~2.11.0" + debug "^3.1.0" + js-yaml "^3.3.1" + json-refs "^3.0.2" + lodash "^4.17.4" + multer "^1.1.0" + parseurl "^1.3.0" + path-to-regexp "^2.0.0" + qs "^6.0.3" + serve-static "^1.10.0" + spark-md5 "^3.0.0" + superagent "^3.5.2" + swagger-converter "^0.1.7" + traverse "^0.6.6" + z-schema "^3.15.4" + sway@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/sway/-/sway-1.0.0.tgz#368ffc0e96bd84226ed1b9b33d66be57da04f09a" @@ -6850,6 +7451,11 @@ to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + token-stream@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-0.0.1.tgz#ceeefc717a76c4316f126d0b9dbaa55d7e7df01a" @@ -6874,6 +7480,11 @@ transliteration@^1.1.6: dependencies: yargs "^8.0.1" +traverse@^0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -7042,6 +7653,13 @@ uri-js@^3.0.2: dependencies: punycode "^2.1.0" +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + url-join@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/url-join/-/url-join-0.0.1.tgz#1db48ad422d3402469a87f7d97bdebfe4fb1e3c8" @@ -7156,6 +7774,11 @@ validator@5.7.x: version "5.7.0" resolved "https://registry.yarnpkg.com/validator/-/validator-5.7.0.tgz#7a87a58146b695ac486071141c0c49d67da05e5c" +validator@^10.0.0: + version "10.11.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-10.11.0.tgz#003108ea6e9a9874d31ccc9e5006856ccd76b228" + integrity sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw== + validator@^6.0.0: version "6.3.0" resolved "https://registry.yarnpkg.com/validator/-/validator-6.3.0.tgz#47ce23ed8d4eaddfa9d4b8ef0071b6cf1078d7c8" @@ -7647,6 +8270,18 @@ yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" +z-schema@^3.15.4: + version "3.25.1" + resolved "https://registry.yarnpkg.com/z-schema/-/z-schema-3.25.1.tgz#7e14663be2b96003d938a56f644fb8561643fb7e" + integrity sha512-7tDlwhrBG+oYFdXNOjILSurpfQyuVgkRe3hB2q8TEssamDHB7BbLWYkYO98nTn0FibfdFroFKDjndbgufAgS/Q== + dependencies: + core-js "^2.5.7" + lodash.get "^4.0.0" + lodash.isequal "^4.0.0" + validator "^10.0.0" + optionalDependencies: + commander "^2.7.1" + z-schema@^3.16.1: version "3.18.2" resolved "https://registry.yarnpkg.com/z-schema/-/z-schema-3.18.2.tgz#e422196b5efe60b46adef3c3f2aef2deaa911161" From 38a0ddfece54cc481afb9b1abeeb8acd3d0b322c Mon Sep 17 00:00:00 2001 From: Simo Kinnunen Date: Sun, 1 Sep 2019 02:56:03 +0900 Subject: [PATCH 05/12] Force Travis to also use Node 8.16.1. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1d3f969d..fa66a990 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ addons: - yasm env: matrix: - - NODE_VERSION=6 + - NODE_VERSION=8.16.1 matrix: allow_failures: - os: osx From d1911f689d60313ef178dd972da3872be019785f Mon Sep 17 00:00:00 2001 From: Simo Kinnunen Date: Mon, 2 Sep 2019 21:34:20 +0900 Subject: [PATCH 06/12] Remove nvmrc when building on Travis. Makes it easier to potentially build against multiple versions in the future. --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index fa66a990..6ecc3ae1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,6 +22,7 @@ matrix: fast_finish: true before_install: - rm -rf ~/.nvm && git clone --depth 1 https://github.com/creationix/nvm.git ~/.nvm +- rm .nvmrc - source ~/.nvm/nvm.sh - nvm install $NODE_VERSION - node --version From 345ba4d8a885799ab9544bc4ded2a67963a5915a Mon Sep 17 00:00:00 2001 From: Simo Kinnunen Date: Mon, 2 Sep 2019 21:37:30 +0900 Subject: [PATCH 07/12] Update link as requested. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index db1e0ebf..d6b21008 100644 --- a/README.md +++ b/README.md @@ -23,9 +23,9 @@ Thank you to all our sponsors! (please ask your company to also support this ope #### Gold Sponsor -[HeadSpin](https://headspin.io/) +[HeadSpin](https://ui.headspin.io/register?referral=start-testing-hs) -> [HeadSpin](https://headspin.io/) provides secure and scalable STF for iOS integrated with Appium/XCTest/Selenium/Espresso, High speed interaction Audio/Video/Game testing and AI based Root cause analysis for Performance Management. It's free to start using HeadSpin in 150+ locations worldwide! [Try it out for free.](https://ui-dev.headspin.io/signup/23feaa95fec34c49a1da309380807795) +> [HeadSpin](https://headspin.io/) provides secure and scalable STF for iOS integrated with Appium/XCTest/Selenium/Espresso, High speed interaction Audio/Video/Game testing and AI based Root cause analysis for Performance Management. It's free to start using HeadSpin in 150+ locations worldwide! [Try it out for free.](https://ui.headspin.io/register?referral=start-testing-hs) HeadSpin offers a generous monthly contribution towards STF development. From 89f2f7d39b827ea1fbf5435d03d07d9ff1aa5a8d Mon Sep 17 00:00:00 2001 From: Simo Kinnunen Date: Wed, 11 Sep 2019 23:30:30 +0900 Subject: [PATCH 08/12] Make sure we try to read as soon as possible. Otherwise we may miss a chunk if timing is off. --- lib/util/streamutil.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/util/streamutil.js b/lib/util/streamutil.js index 4c6fb284..118071ac 100644 --- a/lib/util/streamutil.js +++ b/lib/util/streamutil.js @@ -36,6 +36,8 @@ module.exports.readAll = function(stream) { stream.on('readable', readableListener) stream.on('end', endListener) + readableListener() + return resolver.promise.finally(function() { stream.removeListener('error', errorListener) stream.removeListener('readable', readableListener) From f01dd4374adc13d3180032508f8867eb1bb3bda5 Mon Sep 17 00:00:00 2001 From: Simo Kinnunen Date: Wed, 11 Sep 2019 23:31:08 +0900 Subject: [PATCH 09/12] Later Android versions seem to be asking for verification when removing files. --- lib/units/device/resources/minicap.js | 2 +- lib/units/device/resources/minirev.js | 2 +- lib/units/device/resources/minitouch.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/units/device/resources/minicap.js b/lib/units/device/resources/minicap.js index fb8c47c6..509e700e 100644 --- a/lib/units/device/resources/minicap.js +++ b/lib/units/device/resources/minicap.js @@ -62,7 +62,7 @@ module.exports = syrup.serial() } function removeResource(res) { - return adb.shell(options.serial, ['rm', res.dest]) + return adb.shell(options.serial, ['rm', '-f', res.dest]) .timeout(10000) .then(function(out) { return streamutil.readAll(out) diff --git a/lib/units/device/resources/minirev.js b/lib/units/device/resources/minirev.js index 37b28401..802998c3 100644 --- a/lib/units/device/resources/minirev.js +++ b/lib/units/device/resources/minirev.js @@ -36,7 +36,7 @@ module.exports = syrup.serial() } function removeResource(res) { - return adb.shell(options.serial, ['rm', res.dest]) + return adb.shell(options.serial, ['rm', '-f', res.dest]) .timeout(10000) .then(function(out) { return streamutil.readAll(out) diff --git a/lib/units/device/resources/minitouch.js b/lib/units/device/resources/minitouch.js index ba1327fc..c06404fb 100644 --- a/lib/units/device/resources/minitouch.js +++ b/lib/units/device/resources/minitouch.js @@ -35,7 +35,7 @@ module.exports = syrup.serial() } function removeResource(res) { - return adb.shell(options.serial, ['rm', res.dest]) + return adb.shell(options.serial, ['rm', '-f', res.dest]) .timeout(10000) .then(function(out) { return streamutil.readAll(out) From 2c811e07a592175ada4d65ee70947a4d8960121e Mon Sep 17 00:00:00 2001 From: "Lukasz.Zeglinski" Date: Tue, 17 Sep 2019 21:58:49 +0200 Subject: [PATCH 10/12] Update protractor jasmine tests --- TESTING.md | 43 +++++++++++++++++---- package.json | 13 ++++--- res/test/e2e/control/control-spec.js | 13 ++++--- res/test/e2e/devices/devices-spec.js | 4 +- res/test/e2e/devices/index.js | 2 +- res/test/e2e/helpers/browser-logs.js | 2 +- res/test/e2e/login/index.js | 10 ++++- res/test/e2e/login/login-spec.js | 10 ++++- res/test/protractor-multi.conf.js | 1 - res/test/protractor.conf.js | 58 +++++++++++++++++++++++++--- 10 files changed, 124 insertions(+), 32 deletions(-) diff --git a/TESTING.md b/TESTING.md index 3b0fcac5..51b70871 100644 --- a/TESTING.md +++ b/TESTING.md @@ -5,20 +5,49 @@ ## E2E Frontend -### On first run +## On first run - `gulp webdriver-update` -### Chrome Local STF -- Connect a device -- Run stf -- `gulp protractor` -### Multiple Browsers Local STF with a specific suite + +## Protractor&Jasmine - Local STF tests + + +--- +#### Preconditions +Test configuration point to Google Chrome browser. Test works on Google Chrome v.77.0.3865.75 together with chromedriver with ver. 77.0.3865.40. + +--- + +- Connect a device or start android emulator +- Run RethinkDb + ``` + rethinkdb + ``` +- Run stf + ``` + ./bin/stf local + ``` + Wait till STF will be fully functional and devices will be discovered +- Run tests + ``` + gulp protractor + ``` + +--- +#### Info +Test results can be found in: + test-results/reports-protractor/dashboardReport-protractor/index.html + +--- + +=== +## Multiple Browsers Local STF with a specific suite - Connect a device - Run stf - `gulp protractor --multi --suite devices` -### Chrome Remote STF +## Chrome Remote STF - `export STF_URL='http://stf-url/#!/'` - `export STF_USERNAME='user'` - `export STF_PASSWORD='pass'` diff --git a/package.json b/package.json index 925777e5..b5fff89c 100644 --- a/package.json +++ b/package.json @@ -108,6 +108,7 @@ "exports-loader": "^0.6.2", "extract-text-webpack-plugin": "^1.0.1", "file-loader": "^0.9.0", + "fs-extra": "^8.1.0", "gulp": "^3.8.11", "gulp-angular-gettext": "^2.1.0", "gulp-eslint": "^3.0.1", @@ -119,13 +120,13 @@ "html-loader": "^0.4.0", "imports-loader": "^0.6.5", "jasmine-core": "^2.4.1", - "jasmine-reporters": "^2.1.1", + "jasmine-reporters": "^2.3.2", "json-loader": "^0.5.4", - "karma": "^1.1.2", - "karma-chrome-launcher": "^1.0.1", + "karma": "^1.7.1", + "karma-chrome-launcher": "^2.2.0", "karma-firefox-launcher": "^1.0.0", "karma-ie-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", + "karma-jasmine": "^2.0.1", "karma-junit-reporter": "^1.1.0", "karma-opera-launcher": "^1.0.0", "karma-phantomjs-launcher": "^1.0.0", @@ -137,8 +138,8 @@ "node-libs-browser": "^1.0.0", "node-sass": "^3.4.2", "phantomjs-prebuilt": "^2.1.11", - "protractor": "^4.0.3", - "protractor-html-screenshot-reporter": "0.0.21", + "protractor": "^5.4.1", + "protractor-html-reporter-2": "1.0.4", "raw-loader": "^0.5.1", "sass-loader": "^4.0.0", "script-loader": "^0.7.0", diff --git a/res/test/e2e/control/control-spec.js b/res/test/e2e/control/control-spec.js index 460cbede..5256df5e 100644 --- a/res/test/e2e/control/control-spec.js +++ b/res/test/e2e/control/control-spec.js @@ -1,10 +1,11 @@ describe('Control Page', function() { var DeviceListPage = require('../devices') var deviceListPage = new DeviceListPage() + var localhost = browser.baseUrl var ControlPage = function() { this.get = function() { - browser.get(protractor.getInstance().baseUrl + 'control') + browser.get(localhost + 'control') } this.kickDeviceButton = element.all(by.css('.kick-device')).first() this.kickDevice = function() { @@ -26,8 +27,8 @@ describe('Control Page', function() { browser.sleep(500) - browser.getLocationAbsUrl().then(function(newUrl) { - expect(newUrl).toMatch(protractor.getInstance().baseUrl + 'control') + browser.getCurrentUrl().then(function(newUrl) { + expect(newUrl).toContain(localhost + 'control/') }) }) @@ -135,10 +136,10 @@ describe('Control Page', function() { it('should stop controlling an usable device', function() { controlPage.kickDevice() - waitUrl(/devices/) + browser.wait(waitUrl(/devices/), 5000) - browser.getLocationAbsUrl().then(function(newUrl) { - expect(newUrl).toBe(protractor.getInstance().baseUrl + 'devices') + browser.getCurrentUrl().then(function(newUrl) { + expect(newUrl).toBe(localhost + 'devices') }) }) diff --git a/res/test/e2e/devices/devices-spec.js b/res/test/e2e/devices/devices-spec.js index 30ce7966..76aac841 100644 --- a/res/test/e2e/devices/devices-spec.js +++ b/res/test/e2e/devices/devices-spec.js @@ -6,8 +6,8 @@ describe('Device Page', function() { it('should go to Devices List page', function() { deviceListPage.get() - browser.getLocationAbsUrl().then(function(newUrl) { - expect(newUrl).toBe(protractor.getInstance().baseUrl + 'devices') + browser.getCurrentUrl().then(function(newUrl) { + expect(newUrl).toBe(browser.baseUrl + 'devices') }) }) diff --git a/res/test/e2e/devices/index.js b/res/test/e2e/devices/index.js index 92529a95..dd37d65e 100644 --- a/res/test/e2e/devices/index.js +++ b/res/test/e2e/devices/index.js @@ -1,7 +1,7 @@ module.exports = function DeviceListPage() { this.get = function() { // TODO: Let's get rid off the login first - browser.get(protractor.getInstance().baseUrl + 'devices') + browser.get(browser.baseUrl + 'devices') } this.devices = element(by.model('tracker.devices')) this.devicesByCss = element.all(by.css('ul.devices-icon-view > li')) diff --git a/res/test/e2e/helpers/browser-logs.js b/res/test/e2e/helpers/browser-logs.js index 989e8b60..6765a8fa 100644 --- a/res/test/e2e/helpers/browser-logs.js +++ b/res/test/e2e/helpers/browser-logs.js @@ -15,7 +15,7 @@ module.exports = function BrowserLogs(opts) { } browser.getCapabilities().then(function(cap) { - var browserName = ' ' + cap.caps_.browserName + ' log ' + var browserName = ' ' + cap.browserName + ' log ' var browserStyled = chalk.bgBlue.white.bold(browserName) + ' ' browser.manage().logs().get('browser').then(function(browserLogs) { diff --git a/res/test/e2e/login/index.js b/res/test/e2e/login/index.js index cb6389cb..b9d520d9 100644 --- a/res/test/e2e/login/index.js +++ b/res/test/e2e/login/index.js @@ -1,5 +1,5 @@ module.exports = function LoginPage() { - this.login = protractor.getInstance().params.login + this.login = browser.params.login this.get = function() { return browser.get(this.login.url) @@ -17,17 +17,24 @@ module.exports = function LoginPage() { this.setName = function(username) { return this.username.sendKeys(username) } + this.setEmail = function(email) { return this.email.sendKeys(email) } + this.setPassword = function(password) { return this.password.sendKeys(password) } + this.submit = function() { return this.username.submit() } + this.doLogin = function() { + var EC = protractor.ExpectedConditions + var timeout = 15000 this.get() + browser.wait(EC.presenceOf(element(by.css('[value="Log In"]'))), timeout) this.setName(this.login.username) if (this.login.method === 'ldap') { this.setPassword(this.login.password) @@ -43,6 +50,7 @@ module.exports = function LoginPage() { }) }) } + this.cleanUp = function() { this.username = null this.password = null diff --git a/res/test/e2e/login/login-spec.js b/res/test/e2e/login/login-spec.js index 1a89644c..d1ec56b4 100644 --- a/res/test/e2e/login/login-spec.js +++ b/res/test/e2e/login/login-spec.js @@ -2,14 +2,20 @@ describe('Login Page', function() { var LoginPage = require('./') var loginPage = new LoginPage() + beforeEach(function() { + browser.executeScript('window.localStorage.clear();') + browser.executeScript('window.sessionStorage.clear();') + browser.driver.manage().deleteAllCookies() + }) + it('should have an url to login', function() { expect(loginPage.login.url).toMatch('http') }) it('should login with method: "' + loginPage.login.method + '"', function() { loginPage.doLogin().then(function() { - browser.getLocationAbsUrl().then(function(newUrl) { - expect(newUrl).toBe(protractor.getInstance().baseUrl + 'devices') + browser.getCurrentUrl().then(function(newUrl) { + expect(newUrl).toBe(browser.baseUrl + 'devices') }) }) }) diff --git a/res/test/protractor-multi.conf.js b/res/test/protractor-multi.conf.js index fbe7ea24..2826f90d 100644 --- a/res/test/protractor-multi.conf.js +++ b/res/test/protractor-multi.conf.js @@ -1,6 +1,5 @@ var config = require('./protractor.conf').config //var LoginPage = require('./e2e/login') -//var HtmlReporter = require('protractor-html-screenshot-reporter') //var WaitUrl = require('./e2e/helpers/wait-url') config.chromeOnly = false diff --git a/res/test/protractor.conf.js b/res/test/protractor.conf.js index 9c2610cb..14d581df 100644 --- a/res/test/protractor.conf.js +++ b/res/test/protractor.conf.js @@ -2,8 +2,12 @@ var LoginPage = require('./e2e/login') var BrowserLogs = require('./e2e/helpers/browser-logs') //var FailFast = require('./e2e/helpers/fail-fast') -var HtmlReporter = require('protractor-html-screenshot-reporter') +var jasmineReporters = require('jasmine-reporters') var WaitUrl = require('./e2e/helpers/wait-url') +var HTMLReport = require('protractor-html-reporter-2') + +var reportsDirectory = './test-results/reports-protractor' +var dashboardReportDirectory = reportsDirectory + '/dashboardReport' module.exports.config = { baseUrl: process.env.STF_URL || 'http://localhost:7100/#!/', @@ -17,7 +21,7 @@ module.exports.config = { params: { login: { url: process.env.STF_LOGINURL || process.env.STF_URL || - 'http://localhost:7120', + 'http://localhost:7100', username: process.env.STF_USERNAME || 'test_user', email: process.env.STF_EMAIL || 'test_user@login.local', password: process.env.STF_PASSWORD, @@ -34,7 +38,7 @@ module.exports.config = { capabilities: { browserName: 'chrome', chromeOptions: { - args: ['--test-type'] // Prevent security warning bug in ChromeDriver + args: ['--test-type --no-sandbox'] // Prevent security warning bug in ChromeDriver } }, chromeOnly: true, @@ -45,16 +49,60 @@ module.exports.config = { this.waitUrl = WaitUrl - jasmine.getEnv().addReporter(new HtmlReporter({ - baseDirectory: './res/test/test_out/screenshots' + jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({ + consolidateAll: true, + savePath: reportsDirectory + '/xml', + filePrefix: 'xmlOutput' })) + var fs = require('fs-extra') + if (!fs.existsSync(dashboardReportDirectory)) { + fs.mkdirs(dashboardReportDirectory) + } + + jasmine.getEnv().addReporter({ + specDone: function(result) { + if (result.status === 'failed') { + browser.getCapabilities().then(function(caps) { + var browserName = caps.get('browserName') + + browser.takeScreenshot().then(function(png) { + var stream = fs.createWriteStream(dashboardReportDirectory + '/' + + browserName + '-' + result.fullName + '.png') + stream.write(new Buffer(png, 'base64')) + stream.end() + }) + }) + } + } + }) + afterEach(function() { BrowserLogs({expectNoLogs: true}) //FailFast() }) }, onComplete: function() { + var browserName, browserVersion, platform, testConfig + var capsPromise = browser.getCapabilities() + capsPromise.then(function(caps) { + browserName = caps.get('browserName') + browserVersion = caps.get('version') + platform = caps.get('platform') + + testConfig = { + reportTitle: 'Protractor Test Execution Report', + outputPath: dashboardReportDirectory, + outputFilename: 'index', + screenshotPath: './', + testBrowser: browserName, + browserVersion: browserVersion, + modifiedSuiteName: false, + screenshotsOnlyOnFailure: true, + testPlatform: platform + } + new HTMLReport().from(reportsDirectory + '/xml/xmlOutput.xml', testConfig) + }) } } From c300ee646aa3a04298246f06bda9d004bc769d4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20Wr=C3=B3tniak?= Date: Thu, 19 Sep 2019 23:47:48 +0200 Subject: [PATCH 11/12] Update android-device-list to 1.2.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 32ebe36c..99f82ccb 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "adbkit": "^2.11.1", "adbkit-apkreader": "^3.1.1", "adbkit-monkey": "^1.0.1", - "android-device-list": "^1.1.85", + "android-device-list": "^1.2.0", "aws-sdk": "^2.4.13", "basic-auth": "^1.0.3", "bluebird": "^2.10.1", From a725d1a732e5863f378444571b2bff5309a30b3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20Wr=C3=B3tniak?= Date: Fri, 17 Jan 2020 00:50:02 +0100 Subject: [PATCH 12/12] Update android-device-list to 1.2.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 99f82ccb..d80b4dca 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "adbkit": "^2.11.1", "adbkit-apkreader": "^3.1.1", "adbkit-monkey": "^1.0.1", - "android-device-list": "^1.2.0", + "android-device-list": "^1.2.1", "aws-sdk": "^2.4.13", "basic-auth": "^1.0.3", "bluebird": "^2.10.1",