@appium/base-driver 9.5.4 → 9.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/basedriver/desired-caps.js +2 -1
- package/build/lib/basedriver/desired-caps.js.map +1 -1
- package/build/lib/basedriver/helpers.d.ts +30 -26
- package/build/lib/basedriver/helpers.d.ts.map +1 -1
- package/build/lib/basedriver/helpers.js +67 -27
- package/build/lib/basedriver/helpers.js.map +1 -1
- package/build/lib/express/middleware.d.ts +46 -7
- package/build/lib/express/middleware.d.ts.map +1 -1
- package/build/lib/express/middleware.js +65 -2
- package/build/lib/express/middleware.js.map +1 -1
- package/build/lib/express/server.d.ts +2 -1
- package/build/lib/express/server.d.ts.map +1 -1
- package/build/lib/express/server.js +5 -2
- package/build/lib/express/server.js.map +1 -1
- package/build/lib/express/websocket.d.ts +0 -3
- package/build/lib/express/websocket.d.ts.map +1 -1
- package/build/lib/express/websocket.js +0 -27
- package/build/lib/express/websocket.js.map +1 -1
- package/build/lib/jsonwp-proxy/protocol-converter.d.ts.map +1 -1
- package/build/lib/jsonwp-proxy/protocol-converter.js +6 -6
- package/build/lib/jsonwp-proxy/protocol-converter.js.map +1 -1
- package/lib/basedriver/desired-caps.js +4 -1
- package/lib/basedriver/helpers.js +72 -39
- package/lib/express/middleware.js +70 -16
- package/lib/express/server.js +6 -1
- package/lib/express/websocket.js +0 -27
- package/lib/jsonwp-proxy/protocol-converter.js +10 -6
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../lib/express/server.js"],"names":[],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../lib/express/server.js"],"names":[],"mappings":";;;;;;;gBA4Tc,OAAO,MAAM,EAAE,MAAM;;;;UACrB,MAAM;;;;sBACN,MAAM;;;;;;2BAKP,OAAO,eAAe,EAAE,YAAY;iCACpC,OAAO,eAAe,EAAE,kBAAkB;wBAI1C,OAAO,eAAe,EAAE,SAAS,CAAC,OAAO,eAAe,EAAE,cAAc,CAAC;;;;;;;;gBAMxE,OAAO,MAAM,EAAE,MAAM;;;;YACrB,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI;;;;sBACrB,MAAM;;;;;;8BAMN,wBAAwB;UACxB,MAAM;;;;;;;;;;;;6CAaT,OAAO,SAAS,EAAE,OAAO,sDAEvB,IAAI;;;;;;;;;;;;SAaH,OAAO,SAAS,EAAE,OAAO;eACzB,wBAAwB;;;;;;AA3StC;;;;GAIG;AACH,6BAHW,UAAU,GACR,QAAQ,YAAY,CAAC,CAuDjC;AAED;;;GAGG;AACH,6GAFW,mBAAmB,QAgD7B;AAyGD;;;;GAIG;AACH,4CAHW,MAAM,GACJ,MAAM,CAkBlB"}
|
|
@@ -82,6 +82,7 @@ async function server(opts) {
|
|
|
82
82
|
allowCors,
|
|
83
83
|
basePath,
|
|
84
84
|
extraMethodMap,
|
|
85
|
+
webSocketsMapping: appiumServer.webSocketsMapping,
|
|
85
86
|
});
|
|
86
87
|
// allow extensions to update the app and http server objects
|
|
87
88
|
for (const updater of serverUpdaters) {
|
|
@@ -104,7 +105,7 @@ exports.server = server;
|
|
|
104
105
|
* Sets up some Express middleware and stuff
|
|
105
106
|
* @param {ConfigureServerOpts} opts
|
|
106
107
|
*/
|
|
107
|
-
function configureServer({ app, addRoutes, allowCors = true, basePath = constants_1.DEFAULT_BASE_PATH, extraMethodMap = {}, }) {
|
|
108
|
+
function configureServer({ app, addRoutes, allowCors = true, basePath = constants_1.DEFAULT_BASE_PATH, extraMethodMap = {}, webSocketsMapping = {}, }) {
|
|
108
109
|
basePath = normalizeBasePath(basePath);
|
|
109
110
|
app.use(express_logging_1.endLogFormatter);
|
|
110
111
|
// set up static assets
|
|
@@ -113,7 +114,7 @@ function configureServer({ app, addRoutes, allowCors = true, basePath = constant
|
|
|
113
114
|
// crash routes, for testing
|
|
114
115
|
app.use(`${basePath}/produce_error`, crash_1.produceError);
|
|
115
116
|
app.use(`${basePath}/crash`, crash_1.produceCrash);
|
|
116
|
-
|
|
117
|
+
app.use((0, middleware_1.handleUpgrade)(webSocketsMapping));
|
|
117
118
|
if (allowCors) {
|
|
118
119
|
app.use(middleware_1.allowCrossDomain);
|
|
119
120
|
}
|
|
@@ -153,6 +154,7 @@ function configureHttp({ httpServer, reject, keepAliveTimeout }) {
|
|
|
153
154
|
* @type {AppiumServer}
|
|
154
155
|
*/
|
|
155
156
|
const appiumServer = /** @type {any} */ (httpServer);
|
|
157
|
+
appiumServer.webSocketsMapping = {};
|
|
156
158
|
appiumServer.addWebSocketHandler = websocket_1.addWebSocketHandler;
|
|
157
159
|
appiumServer.removeWebSocketHandler = websocket_1.removeWebSocketHandler;
|
|
158
160
|
appiumServer.removeAllWebSocketHandlers = websocket_1.removeAllWebSocketHandlers;
|
|
@@ -301,5 +303,6 @@ exports.normalizeBasePath = normalizeBasePath;
|
|
|
301
303
|
* @property {boolean} [allowCors]
|
|
302
304
|
* @property {string} [basePath]
|
|
303
305
|
* @property {MethodMap} [extraMethodMap]
|
|
306
|
+
* @property {import('@appium/types').StringRecord} [webSocketsMapping={}]
|
|
304
307
|
*/
|
|
305
308
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../lib/express/server.js"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,gDAAwB;AACxB,sDAA8B;AAC9B,gDAAwB;AACxB,kEAAoC;AACpC,8DAAqC;AACrC,sEAA6C;AAC7C,sDAA2B;AAC3B,uDAAqE;AACrE,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../lib/express/server.js"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,gDAAwB;AACxB,sDAA8B;AAC9B,gDAAwB;AACxB,kEAAoC;AACpC,8DAAqC;AACrC,sEAA6C;AAC7C,sDAA2B;AAC3B,uDAAqE;AACrE,6CASsB;AACtB,qCAAiG;AACjG,mCAAmD;AACnD,2CAKqB;AACrB,wDAAyB;AACzB,4CAA+C;AAC/C,mCAAoC;AACpC,6CAAmC;AAEnC,MAAM,qBAAqB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AAE3D;;;;;GAKG;AACH,KAAK,UAAU,YAAY,CAAE,GAAG,EAAE,OAAO;IACvC,MAAM,EAAC,kBAAkB,EAAE,UAAU,EAAC,GAAG,OAAO,IAAI,EAAE,CAAC;IACvD,IAAI,CAAC,kBAAkB,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,OAAO,cAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,kBAAkB,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,gBAAC,CAAC,GAAG,CAClB,MAAM,kBAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7C,CAAC,aAAa,EAAE,KAAK,CAAC,EACtB,OAAO,CACR,CAAC;IACF,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,QAAQ,CAAC,uCAAuC,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IACD,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,kBAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5E,gBAAG,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;IAC5E,8DAA8D;IAC9D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;QAClC,IAAI;QACJ,GAAG;QACH,IAAI,EAAE;YACJ,KAAK,EAAE,KAAK;YACZ,GAAG,EAAE,IAAI;SACV;KACF,EAAE,GAAG,CAAC,CAAC;AACV,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,MAAM,CAAC,IAAI;IACxB,MAAM,EACJ,wBAAwB,EACxB,IAAI,EACJ,QAAQ,EACR,OAAO,GAAG,EAAE,EACZ,SAAS,GAAG,IAAI,EAChB,QAAQ,GAAG,6BAAiB,EAC5B,cAAc,GAAG,EAAE,EACnB,cAAc,GAAG,EAAE,EACnB,gBAAgB,GAAG,qBAAqB,GACzC,GAAG,IAAI,CAAC;IAET,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IACtB,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAEpD,OAAO,MAAM,IAAI,kBAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,+FAA+F;QAC/F,+FAA+F;QAC/F,4FAA4F;QAC5F,wFAAwF;QACxF,mDAAmD;QACnD,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,aAAa,CAAC;gBACjC,UAAU;gBACV,MAAM;gBACN,gBAAgB;aACjB,CAAC,CAAC;YACH,eAAe,CAAC;gBACd,GAAG;gBACH,SAAS,EAAE,wBAAwB;gBACnC,SAAS;gBACT,QAAQ;gBACR,cAAc;gBACd,iBAAiB,EAAE,YAAY,CAAC,iBAAiB;aAClD,CAAC,CAAC;YACH,6DAA6D;YAC7D,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;gBACrC,MAAM,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YAC5C,CAAC;YAED,yFAAyF;YACzF,0FAA0F;YAC1F,gEAAgE;YAChE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,4BAAe,CAAC,CAAC;YAE9B,MAAM,WAAW,CAAC,EAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAC,CAAC,CAAC;YAElE,OAAO,CAAC,YAAY,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAoLO,wBAAM;AAlLd;;;GAGG;AACH,SAAS,eAAe,CAAC,EACvB,GAAG,EACH,SAAS,EACT,SAAS,GAAG,IAAI,EAChB,QAAQ,GAAG,6BAAiB,EAC5B,cAAc,GAAG,EAAE,EACnB,iBAAiB,GAAG,EAAE,GACvB;IACC,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAEvC,GAAG,CAAC,GAAG,CAAC,iCAAe,CAAC,CAAC;IAEzB,uBAAuB;IACvB,GAAG,CAAC,GAAG,CAAC,IAAA,uBAAO,EAAC,cAAI,CAAC,OAAO,CAAC,mBAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC1D,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,MAAM,CAAC,mBAAU,CAAC,CAAC,CAAC;IAEpC,4BAA4B;IAC5B,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,gBAAgB,EAAE,oBAAY,CAAC,CAAC;IACnD,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,QAAQ,EAAE,oBAAY,CAAC,CAAC;IAE3C,GAAG,CAAC,GAAG,CAAC,IAAA,0BAAa,EAAC,iBAAiB,CAAC,CAAC,CAAC;IAC1C,IAAI,SAAS,EAAE,CAAC;QACd,GAAG,CAAC,GAAG,CAAC,6BAAgB,CAAC,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,GAAG,CAAC,IAAA,yCAA4B,EAAC,QAAQ,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,GAAG,CAAC,GAAG,CAAC,8BAAiB,CAAC,CAAC;IAC3B,GAAG,CAAC,GAAG,CAAC,IAAA,iCAAoB,EAAC,QAAQ,CAAC,CAAC,CAAC;IACxC,GAAG,CAAC,GAAG,CAAC,qCAAwB,CAAC,CAAC;IAClC,GAAG,CAAC,GAAG,CAAC,qBAAU,CAAC,UAAU,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;IACjD,GAAG,CAAC,GAAG,CAAC,IAAA,yBAAc,GAAE,CAAC,CAAC;IAC1B,GAAG,CAAC,GAAG,CAAC,4BAAe,CAAC,CAAC;IAEzB,mEAAmE;IACnE,GAAG,CAAC,GAAG,CAAC,qBAAU,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC;IAEzC,qEAAqE;IACrE,GAAG,CAAC,GAAG,CAAC,mCAAiB,CAAC,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE,EAAC,QAAQ,EAAE,cAAc,EAAC,CAAC,CAAC;IAE3C,mCAAmC;IACnC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,gBAAO,CAAC,CAAC;IAC7B,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,kBAAS,CAAC,CAAC;IACvC,GAAG,CAAC,GAAG,CAAC,6BAA6B,EAAE,4BAAmB,CAAC,CAAC;IAC5D,GAAG,CAAC,GAAG,CAAC,6BAA6B,EAAE,2BAAkB,CAAC,CAAC;AAC7D,CAAC;AAgIe,0CAAe;AA9H/B;;;;;GAKG;AACH,SAAS,aAAa,CAAC,EAAC,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAC;IAC3D,MAAM,WAAW,GAAG;QAClB,QAAQ,EAAE,IAAI,qBAAY,EAAE;QAC5B,MAAM,EAAE,KAAK;KACd,CAAC;IACF;;OAEG;IACH,MAAM,YAAY,GAAG,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC;IACrD,YAAY,CAAC,iBAAiB,GAAG,EAAE,CAAC;IACpC,YAAY,CAAC,mBAAmB,GAAG,+BAAmB,CAAC;IACvD,YAAY,CAAC,sBAAsB,GAAG,kCAAsB,CAAC;IAC7D,YAAY,CAAC,0BAA0B,GAAG,sCAA0B,CAAC;IACrE,YAAY,CAAC,oBAAoB,GAAG,gCAAoB,CAAC;IAEzD,4EAA4E;IAC5E,8DAA8D;IAC9D,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpD,YAAY,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAC9B,MAAM,IAAI,kBAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9B,iFAAiF;QACjF,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC;QAC1B,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtC,gBAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAC/C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC1B,gBAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACxC,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,IAAI,GAAG;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,4BAA4B;QACpD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,YAAY,CAAC,EAAE,CACb,OAAO;IACP,yCAAyC,CAAC,CAAC,GAAG,EAAE,EAAE;QAChD,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACjC,gBAAG,CAAC,KAAK,CACP,gDAAgD,GAAG,qCAAqC,CACzF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,gBAAG,CAAC,KAAK,CACP,8DAA8D;gBAC5D,2DAA2D;gBAC3D,gDAAgD,CACnD,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,CAAC;IACd,CAAC,CACF,CAAC;IAEF,YAAY,CAAC,EAAE,CACb,YAAY;IACZ,yCAAyC,CAAC,CAAC,MAAM,EAAE,EAAE;QACnD,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QACpC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE3B,SAAS,OAAO;YACd,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACrF,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC,CACF,CAAC;IAEF,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,GAAG,EAAE,GAAG;QAC3C,MAAM,MAAM,GAAG,iCAAiC,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAChF,MAAM,CAAC,aAAa,EAAE,CAAC;QACvB,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE;YACf,MAAM,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,WAAW,CAAC,MAAM,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;gBACrD,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,WAAW,CAAC,EAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAC;IACvE,qDAAqD;IACrD,gCAAgC;IAChC,kEAAkE;IAClE,MAAM,KAAK,GAAG,kBAAC,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,EAAC,OAAO,EAAE,UAAU,EAAC,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3C,UAAU,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC/C,wDAAwD;IACxD,UAAU,CAAC,cAAc,GAAG,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC;IACxD,MAAM,YAAY,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,QAAQ;IACjC,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,mEAAmE;IACnE,4BAA4B;IAC5B,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEvC,6EAA6E;IAC7E,uCAAuC;IACvC,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QAC3C,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAEgC,8CAAiB;AAElD;;;;;;;GAOG;AAEH;;;GAGG;AAEH;;GAEG;AAEH;;;;;;GAMG;AAEH;;;;;;;;;;;;GAYG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;;;;;;GASG"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
export type AppiumServer = import('@appium/types').AppiumServer;
|
|
3
3
|
export function addWebSocketHandler(this: import("@appium/types").AppiumServer, handlerPathname: string, handlerServer: import("ws").Server<typeof import("ws"), typeof import("http").IncomingMessage>): Promise<void>;
|
|
4
|
-
export class addWebSocketHandler {
|
|
5
|
-
webSocketsMapping: {};
|
|
6
|
-
}
|
|
7
4
|
export function removeWebSocketHandler(this: import("@appium/types").AppiumServer, handlerPathname: string): Promise<boolean>;
|
|
8
5
|
export function removeAllWebSocketHandlers(this: import("@appium/types").AppiumServer): Promise<boolean>;
|
|
9
6
|
export function getWebSocketHandlers(this: import("@appium/types").AppiumServer, keysFilter?: string | null | undefined): Promise<Record<string, import("ws").Server<typeof import("ws"), typeof import("http").IncomingMessage>>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../lib/express/websocket.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../lib/express/websocket.js"],"names":[],"mappings":";2BA6Ea,OAAO,eAAe,EAAE,YAAY;AA1DvB,wNAqBxB;AAAI,8HAuBsB;AAAA,yGAcpB;AAAA,mOAEoW;AA3E5W,+CAAyC"}
|
|
@@ -6,9 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.DEFAULT_WS_PATHNAME_PREFIX = exports.getWebSocketHandlers = exports.removeAllWebSocketHandlers = exports.removeWebSocketHandler = exports.addWebSocketHandler = void 0;
|
|
7
7
|
/* eslint-disable require-await */
|
|
8
8
|
const lodash_1 = __importDefault(require("lodash"));
|
|
9
|
-
const url_1 = require("url");
|
|
10
9
|
const bluebird_1 = __importDefault(require("bluebird"));
|
|
11
|
-
const path_to_regexp_1 = require("path-to-regexp");
|
|
12
10
|
const DEFAULT_WS_PATHNAME_PREFIX = '/ws';
|
|
13
11
|
exports.DEFAULT_WS_PATHNAME_PREFIX = DEFAULT_WS_PATHNAME_PREFIX;
|
|
14
12
|
/**
|
|
@@ -16,28 +14,6 @@ exports.DEFAULT_WS_PATHNAME_PREFIX = DEFAULT_WS_PATHNAME_PREFIX;
|
|
|
16
14
|
* @type {AppiumServer['addWebSocketHandler']}
|
|
17
15
|
*/
|
|
18
16
|
async function addWebSocketHandler(handlerPathname, handlerServer) {
|
|
19
|
-
if (lodash_1.default.isUndefined(this.webSocketsMapping)) {
|
|
20
|
-
this.webSocketsMapping = {};
|
|
21
|
-
// https://github.com/websockets/ws/pull/885
|
|
22
|
-
this.on('upgrade', (request, socket, head) => {
|
|
23
|
-
let currentPathname;
|
|
24
|
-
try {
|
|
25
|
-
currentPathname = new url_1.URL(request.url ?? '').pathname;
|
|
26
|
-
}
|
|
27
|
-
catch {
|
|
28
|
-
currentPathname = request.url ?? '';
|
|
29
|
-
}
|
|
30
|
-
for (const [pathname, wsServer] of lodash_1.default.toPairs(this.webSocketsMapping)) {
|
|
31
|
-
if ((0, path_to_regexp_1.pathToRegexp)(pathname).test(currentPathname)) {
|
|
32
|
-
wsServer.handleUpgrade(request, socket, head, (ws) => {
|
|
33
|
-
wsServer.emit('connection', ws, request);
|
|
34
|
-
});
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
socket.destroy();
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
17
|
this.webSocketsMapping[handlerPathname] = handlerServer;
|
|
42
18
|
}
|
|
43
19
|
exports.addWebSocketHandler = addWebSocketHandler;
|
|
@@ -46,9 +22,6 @@ exports.addWebSocketHandler = addWebSocketHandler;
|
|
|
46
22
|
* @type {AppiumServer['getWebSocketHandlers']}
|
|
47
23
|
*/
|
|
48
24
|
async function getWebSocketHandlers(keysFilter = null) {
|
|
49
|
-
if (lodash_1.default.isEmpty(this.webSocketsMapping)) {
|
|
50
|
-
return {};
|
|
51
|
-
}
|
|
52
25
|
return lodash_1.default.toPairs(this.webSocketsMapping).reduce((acc, [pathname, wsServer]) => {
|
|
53
26
|
if (!lodash_1.default.isString(keysFilter) || pathname.includes(keysFilter)) {
|
|
54
27
|
acc[pathname] = wsServer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../lib/express/websocket.js"],"names":[],"mappings":";;;;;;AAAA,kCAAkC;AAClC,oDAAuB;AACvB,
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../lib/express/websocket.js"],"names":[],"mappings":";;;;;;AAAA,kCAAkC;AAClC,oDAAuB;AACvB,wDAAyB;AAEzB,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAqEvC,gEAA0B;AAnE5B;;;GAGG;AACH,KAAK,UAAU,mBAAmB,CAAC,eAAe,EAAE,aAAa;IAC/D,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC;AAC1D,CAAC;AAyDC,kDAAmB;AAvDrB;;;GAGG;AACH,KAAK,UAAU,oBAAoB,CAAC,UAAU,GAAG,IAAI;IACnD,OAAO,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE;QAC5E,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;QAC3B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AA+CC,oDAAoB;AA7CtB;;;GAGG;AACH,KAAK,UAAU,sBAAsB,CAAC,eAAe;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,eAAe,CAAC,CAAC;IAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YAC5C,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS;IACX,CAAC;YAAS,CAAC;QACT,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAqBC,wDAAsB;AAnBxB;;;;GAIG;AACH,KAAK,UAAU,0BAA0B;IACvC,IAAI,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,gBAAC,CAAC,IAAI,CACX,MAAM,kBAAC,CAAC,GAAG,CACT,gBAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CACxF,CACF,CAAC;AACJ,CAAC;AAKC,gEAA0B;AAK5B;;GAEG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol-converter.d.ts","sourceRoot":"","sources":["../../../lib/jsonwp-proxy/protocol-converter.js"],"names":[],"mappings":"AAKA;;;;IAmCE;;AAIF;IACE,wCAIC;IAHC,eAA0B;IAC1B,yBAA+B;IAC/B,UAAe;IAGjB,eAEC;IAED,mCAEC;IAED,8BAEC;IAED;;;;;;;OAOG;IACH,2CA0BC;IAED;;;;;OAKG;IACH,yEAyBC;IAED,+
|
|
1
|
+
{"version":3,"file":"protocol-converter.d.ts","sourceRoot":"","sources":["../../../lib/jsonwp-proxy/protocol-converter.js"],"names":[],"mappings":"AAKA;;;;IAmCE;;AAIF;IACE,wCAIC;IAHC,eAA0B;IAC1B,yBAA+B;IAC/B,UAAe;IAGjB,eAEC;IAED,mCAEC;IAED,8BAEC;IAED;;;;;;;OAOG;IACH,2CA0BC;IAED;;;;;OAKG;IACH,yEAyBC;IAED,+DA4BC;IAED,8DAwBC;IAED,8DAQC;IAED,oEASC;IAED,yDAEC;IAED;;;;;;;;;OASG;IACH,6BANW,MAAM,OACN,MAAM,UACN,MAAM,SACL,MAAM,GAAC,MAAM,wBAkDxB;CACF"}
|
|
@@ -118,19 +118,19 @@ class ProtocolConverter {
|
|
|
118
118
|
const bodyObj = support_1.util.safeJsonParse(body);
|
|
119
119
|
if (lodash_1.default.isPlainObject(bodyObj)) {
|
|
120
120
|
if (this.downstreamProtocol === W3C && lodash_1.default.has(bodyObj, 'name') && !lodash_1.default.has(bodyObj, 'handle')) {
|
|
121
|
-
this.log.debug(`Copied 'name' value '${bodyObj.name}' to 'handle' as per W3C spec`);
|
|
121
|
+
this.log.debug(`Copied 'name' value '${ /** @type {import('@appium/types').StringRecord} */(bodyObj).name}' to 'handle' as per W3C spec`);
|
|
122
122
|
return await this.proxyFunc(url, method, {
|
|
123
|
-
...bodyObj,
|
|
124
|
-
handle: bodyObj.name,
|
|
123
|
+
... /** @type {import('@appium/types').StringRecord} */(bodyObj),
|
|
124
|
+
handle: /** @type {import('@appium/types').StringRecord} */ (bodyObj).name,
|
|
125
125
|
});
|
|
126
126
|
}
|
|
127
127
|
if (this.downstreamProtocol === MJSONWP &&
|
|
128
128
|
lodash_1.default.has(bodyObj, 'handle') &&
|
|
129
129
|
!lodash_1.default.has(bodyObj, 'name')) {
|
|
130
|
-
this.log.debug(`Copied 'handle' value '${bodyObj.handle}' to 'name' as per JSONWP spec`);
|
|
130
|
+
this.log.debug(`Copied 'handle' value '${ /** @type {import('@appium/types').StringRecord} */(bodyObj).handle}' to 'name' as per JSONWP spec`);
|
|
131
131
|
return await this.proxyFunc(url, method, {
|
|
132
|
-
...bodyObj,
|
|
133
|
-
name: bodyObj.handle,
|
|
132
|
+
... /** @type {import('@appium/types').StringRecord} */(bodyObj),
|
|
133
|
+
name: /** @type {import('@appium/types').StringRecord} */ (bodyObj).handle,
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol-converter.js","sourceRoot":"","sources":["../../../lib/jsonwp-proxy/protocol-converter.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"protocol-converter.js","sourceRoot":"","sources":["../../../lib/jsonwp-proxy/protocol-converter.js"],"names":[],"mappings":"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"}
|
|
@@ -76,7 +76,10 @@ validator.validators.isArray = function isArray(value) {
|
|
|
76
76
|
validator.validators.deprecated = function deprecated(value, options, key) {
|
|
77
77
|
// do not print caps that hasn't been provided.
|
|
78
78
|
if (typeof value !== 'undefined' && options) {
|
|
79
|
-
log.warn(
|
|
79
|
+
log.warn(
|
|
80
|
+
`The '${key}' capability has been deprecated and must not be used anymore. ` +
|
|
81
|
+
`Please check the driver documentation for possible alternatives.`
|
|
82
|
+
);
|
|
80
83
|
}
|
|
81
84
|
return null;
|
|
82
85
|
};
|
|
@@ -9,26 +9,26 @@ import axios from 'axios';
|
|
|
9
9
|
import B from 'bluebird';
|
|
10
10
|
|
|
11
11
|
// for compat with running tests transpiled and in-place
|
|
12
|
-
const {version: BASEDRIVER_VER} = fs.readPackageJsonFrom(__dirname);
|
|
12
|
+
export const {version: BASEDRIVER_VER} = fs.readPackageJsonFrom(__dirname);
|
|
13
13
|
const IPA_EXT = '.ipa';
|
|
14
14
|
const ZIP_EXTS = new Set(['.zip', IPA_EXT]);
|
|
15
15
|
const ZIP_MIME_TYPES = ['application/zip', 'application/x-zip-compressed', 'multipart/x-zip'];
|
|
16
|
-
const
|
|
17
|
-
const MAX_CACHED_APPS = 1024;
|
|
16
|
+
const CACHED_APPS_MAX_AGE_MS = 1000 * 60 * toNaturalNumber(60 * 24, 'APPIUM_APPS_CACHE_MAX_AGE');
|
|
17
|
+
const MAX_CACHED_APPS = toNaturalNumber(1024, 'APPIUM_APPS_CACHE_MAX_ITEMS');
|
|
18
18
|
const HTTP_STATUS_NOT_MODIFIED = 304;
|
|
19
19
|
const DEFAULT_REQ_HEADERS = Object.freeze({
|
|
20
20
|
'user-agent': `Appium (BaseDriver v${BASEDRIVER_VER})`,
|
|
21
21
|
});
|
|
22
22
|
const AVG_DOWNLOAD_SPEED_MEASUREMENT_THRESHOLD_SEC = 2;
|
|
23
|
+
/** @type {LRUCache<string, import('@appium/types').CachedAppInfo>} */
|
|
23
24
|
const APPLICATIONS_CACHE = new LRUCache({
|
|
24
25
|
max: MAX_CACHED_APPS,
|
|
25
|
-
ttl:
|
|
26
|
+
ttl: CACHED_APPS_MAX_AGE_MS, // expire after 24 hours
|
|
26
27
|
updateAgeOnGet: true,
|
|
27
|
-
// @ts-ignore The fullPath property exists
|
|
28
28
|
dispose: ({fullPath}, app) => {
|
|
29
29
|
logger.info(
|
|
30
30
|
`The application '${app}' cached at '${fullPath}' has ` +
|
|
31
|
-
`expired after ${
|
|
31
|
+
`expired after ${CACHED_APPS_MAX_AGE_MS}ms`
|
|
32
32
|
);
|
|
33
33
|
if (fullPath) {
|
|
34
34
|
fs.rimraf(fullPath);
|
|
@@ -46,16 +46,14 @@ process.on('exit', () => {
|
|
|
46
46
|
return;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
const appPaths = [...APPLICATIONS_CACHE.values()]
|
|
50
|
-
// @ts-ignore The fullPath property exists
|
|
51
|
-
.map(({fullPath}) => fullPath);
|
|
49
|
+
const appPaths = [...APPLICATIONS_CACHE.values()].map(({fullPath}) => fullPath);
|
|
52
50
|
logger.debug(
|
|
53
51
|
`Performing cleanup of ${appPaths.length} cached ` +
|
|
54
52
|
util.pluralize('application', appPaths.length)
|
|
55
53
|
);
|
|
56
54
|
for (const appPath of appPaths) {
|
|
57
55
|
try {
|
|
58
|
-
//
|
|
56
|
+
// @ts-ignore it's defined
|
|
59
57
|
fs.rimrafSync(appPath);
|
|
60
58
|
} catch (e) {
|
|
61
59
|
logger.warn(e.message);
|
|
@@ -63,6 +61,25 @@ process.on('exit', () => {
|
|
|
63
61
|
}
|
|
64
62
|
});
|
|
65
63
|
|
|
64
|
+
/**
|
|
65
|
+
*
|
|
66
|
+
* @param {string} [envVarName]
|
|
67
|
+
* @param {number} defaultValue
|
|
68
|
+
* @returns {number}
|
|
69
|
+
*/
|
|
70
|
+
function toNaturalNumber(defaultValue, envVarName) {
|
|
71
|
+
if (!envVarName || _.isUndefined(process.env[envVarName])) {
|
|
72
|
+
return defaultValue;
|
|
73
|
+
}
|
|
74
|
+
const num = parseInt(`${process.env[envVarName]}`, 10);
|
|
75
|
+
return num > 0 ? num : defaultValue;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* @param {string} app
|
|
80
|
+
* @param {string[]} supportedAppExtensions
|
|
81
|
+
* @returns {string}
|
|
82
|
+
*/
|
|
66
83
|
function verifyAppExtension(app, supportedAppExtensions) {
|
|
67
84
|
if (supportedAppExtensions.map(_.toLower).includes(_.toLower(path.extname(app)))) {
|
|
68
85
|
return app;
|
|
@@ -74,14 +91,27 @@ function verifyAppExtension(app, supportedAppExtensions) {
|
|
|
74
91
|
);
|
|
75
92
|
}
|
|
76
93
|
|
|
94
|
+
/**
|
|
95
|
+
* @param {string} folderPath
|
|
96
|
+
* @returns {Promise<number>}
|
|
97
|
+
*/
|
|
77
98
|
async function calculateFolderIntegrity(folderPath) {
|
|
78
99
|
return (await fs.glob('**/*', {cwd: folderPath})).length;
|
|
79
100
|
}
|
|
80
101
|
|
|
102
|
+
/**
|
|
103
|
+
* @param {string} filePath
|
|
104
|
+
* @returns {Promise<string>}
|
|
105
|
+
*/
|
|
81
106
|
async function calculateFileIntegrity(filePath) {
|
|
82
107
|
return await fs.hash(filePath);
|
|
83
108
|
}
|
|
84
109
|
|
|
110
|
+
/**
|
|
111
|
+
* @param {string} currentPath
|
|
112
|
+
* @param {import('@appium/types').StringRecord} expectedIntegrity
|
|
113
|
+
* @returns {Promise<boolean>}
|
|
114
|
+
*/
|
|
85
115
|
async function isAppIntegrityOk(currentPath, expectedIntegrity = {}) {
|
|
86
116
|
if (!(await fs.exists(currentPath))) {
|
|
87
117
|
return false;
|
|
@@ -104,7 +134,7 @@ async function isAppIntegrityOk(currentPath, expectedIntegrity = {}) {
|
|
|
104
134
|
* @param {string} app
|
|
105
135
|
* @param {string|string[]|import('@appium/types').ConfigureAppOptions} options
|
|
106
136
|
*/
|
|
107
|
-
async function configureApp(
|
|
137
|
+
export async function configureApp(
|
|
108
138
|
app,
|
|
109
139
|
options = /** @type {import('@appium/types').ConfigureAppOptions} */ ({})
|
|
110
140
|
) {
|
|
@@ -114,8 +144,8 @@ async function configureApp(
|
|
|
114
144
|
}
|
|
115
145
|
|
|
116
146
|
let supportedAppExtensions;
|
|
117
|
-
const onPostProcess =
|
|
118
|
-
|
|
147
|
+
const onPostProcess = !_.isString(options) && !_.isArray(options) ? options.onPostProcess : undefined;
|
|
148
|
+
const onDownload = !_.isString(options) && !_.isArray(options) ? options.onDownload : undefined;
|
|
119
149
|
|
|
120
150
|
if (_.isString(options)) {
|
|
121
151
|
supportedAppExtensions = [options];
|
|
@@ -129,6 +159,7 @@ async function configureApp(
|
|
|
129
159
|
}
|
|
130
160
|
|
|
131
161
|
let newApp = app;
|
|
162
|
+
const originalAppLink = app;
|
|
132
163
|
let shouldUnzipApp = false;
|
|
133
164
|
let packageHash = null;
|
|
134
165
|
/** @type {import('axios').AxiosResponse['headers']|undefined} */
|
|
@@ -143,8 +174,6 @@ async function configureApp(
|
|
|
143
174
|
const {protocol, pathname} = url.parse(newApp);
|
|
144
175
|
const isUrl = protocol === null ? false : ['http:', 'https:'].includes(protocol);
|
|
145
176
|
|
|
146
|
-
/** @type {import('@appium/types').CachedAppInfo|undefined} */
|
|
147
|
-
// @ts-ignore We know the returned type
|
|
148
177
|
const cachedAppInfo = APPLICATIONS_CACHE.get(app);
|
|
149
178
|
if (cachedAppInfo) {
|
|
150
179
|
logger.debug(`Cached app data: ${JSON.stringify(cachedAppInfo, null, 2)}`);
|
|
@@ -162,20 +191,22 @@ async function configureApp(
|
|
|
162
191
|
} else if (cachedAppInfo?.lastModified) {
|
|
163
192
|
reqHeaders['if-modified-since'] = cachedAppInfo.lastModified.toUTCString();
|
|
164
193
|
}
|
|
194
|
+
logger.debug(`Request headers: ${JSON.stringify(reqHeaders)}`);
|
|
165
195
|
|
|
166
196
|
let {headers, stream, status} = await queryAppLink(newApp, reqHeaders);
|
|
197
|
+
logger.debug(`Response status: ${status}`);
|
|
167
198
|
try {
|
|
168
199
|
if (!_.isEmpty(headers)) {
|
|
169
|
-
logger.debug(`Etag: ${headers.etag}`);
|
|
170
200
|
if (headers.etag) {
|
|
201
|
+
logger.debug(`Etag: ${headers.etag}`);
|
|
171
202
|
remoteAppProps.etag = headers.etag;
|
|
172
203
|
}
|
|
173
|
-
logger.debug(`Last-Modified: ${headers['last-modified']}`);
|
|
174
204
|
if (headers['last-modified']) {
|
|
205
|
+
logger.debug(`Last-Modified: ${headers['last-modified']}`);
|
|
175
206
|
remoteAppProps.lastModified = new Date(headers['last-modified']);
|
|
176
207
|
}
|
|
177
|
-
logger.debug(`Cache-Control: ${headers['cache-control']}`);
|
|
178
208
|
if (headers['cache-control']) {
|
|
209
|
+
logger.debug(`Cache-Control: ${headers['cache-control']}`);
|
|
179
210
|
remoteAppProps.immutable = /\bimmutable\b/i.test(headers['cache-control']);
|
|
180
211
|
const maxAgeMatch = /\bmax-age=(\d+)\b/i.exec(headers['cache-control']);
|
|
181
212
|
if (maxAgeMatch) {
|
|
@@ -184,9 +215,9 @@ async function configureApp(
|
|
|
184
215
|
}
|
|
185
216
|
}
|
|
186
217
|
if (cachedAppInfo && status === HTTP_STATUS_NOT_MODIFIED) {
|
|
187
|
-
if (await isAppIntegrityOk(cachedAppInfo.fullPath, cachedAppInfo.integrity)) {
|
|
218
|
+
if (await isAppIntegrityOk(/** @type {string} */ (cachedAppInfo.fullPath), cachedAppInfo.integrity)) {
|
|
188
219
|
logger.info(`Reusing previously downloaded application at '${cachedAppInfo.fullPath}'`);
|
|
189
|
-
return verifyAppExtension(cachedAppInfo.fullPath, supportedAppExtensions);
|
|
220
|
+
return verifyAppExtension(/** @type {string} */ (cachedAppInfo.fullPath), supportedAppExtensions);
|
|
190
221
|
}
|
|
191
222
|
logger.info(
|
|
192
223
|
`The application at '${cachedAppInfo.fullPath}' does not exist anymore ` +
|
|
@@ -251,11 +282,16 @@ async function configureApp(
|
|
|
251
282
|
}
|
|
252
283
|
fileName = `${resultingName}${resultingExt}`;
|
|
253
284
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
285
|
+
newApp = onDownload
|
|
286
|
+
? await onDownload({
|
|
287
|
+
url: originalAppLink,
|
|
288
|
+
headers: /** @type {import('@appium/types').HTTPHeaders} */ (_.clone(headers)),
|
|
289
|
+
stream,
|
|
290
|
+
})
|
|
291
|
+
: await fetchApp(stream, await tempDir.path({
|
|
292
|
+
prefix: fileName,
|
|
293
|
+
suffix: '',
|
|
294
|
+
}));
|
|
259
295
|
} finally {
|
|
260
296
|
if (!stream.closed) {
|
|
261
297
|
stream.destroy();
|
|
@@ -285,12 +321,12 @@ async function configureApp(
|
|
|
285
321
|
const archivePath = newApp;
|
|
286
322
|
if (packageHash === cachedAppInfo?.packageHash) {
|
|
287
323
|
const fullPath = cachedAppInfo?.fullPath;
|
|
288
|
-
if (await isAppIntegrityOk(fullPath, cachedAppInfo?.integrity)) {
|
|
324
|
+
if (await isAppIntegrityOk(/** @type {string} */ (fullPath), cachedAppInfo?.integrity)) {
|
|
289
325
|
if (archivePath !== app) {
|
|
290
326
|
await fs.rimraf(archivePath);
|
|
291
327
|
}
|
|
292
328
|
logger.info(`Will reuse previously cached application at '${fullPath}'`);
|
|
293
|
-
return verifyAppExtension(fullPath, supportedAppExtensions);
|
|
329
|
+
return verifyAppExtension(/** @type {string} */ (fullPath), supportedAppExtensions);
|
|
294
330
|
}
|
|
295
331
|
logger.info(
|
|
296
332
|
`The application at '${fullPath}' does not exist anymore ` +
|
|
@@ -342,6 +378,7 @@ async function configureApp(
|
|
|
342
378
|
/** @type {import('@appium/types').PostProcessOptions<import('axios').AxiosResponseHeaders>} */ ({
|
|
343
379
|
cachedAppInfo: _.clone(cachedAppInfo),
|
|
344
380
|
isUrl,
|
|
381
|
+
originalAppLink,
|
|
345
382
|
headers: _.clone(headers),
|
|
346
383
|
appPath: newApp,
|
|
347
384
|
})
|
|
@@ -518,7 +555,11 @@ async function unzipApp(zipPath, dstRoot, supportedAppExtensions) {
|
|
|
518
555
|
}
|
|
519
556
|
}
|
|
520
557
|
|
|
521
|
-
|
|
558
|
+
/**
|
|
559
|
+
* @param {string} app
|
|
560
|
+
* @returns {boolean}
|
|
561
|
+
*/
|
|
562
|
+
export function isPackageOrBundle(app) {
|
|
522
563
|
return /^([a-zA-Z0-9\-_]+\.[a-zA-Z0-9\-_]+)+$/.test(app);
|
|
523
564
|
}
|
|
524
565
|
|
|
@@ -532,7 +573,7 @@ function isPackageOrBundle(app) {
|
|
|
532
573
|
* @param {String} firstKey The first key to duplicate
|
|
533
574
|
* @param {String} secondKey The second key to duplicate
|
|
534
575
|
*/
|
|
535
|
-
function duplicateKeys(input, firstKey, secondKey) {
|
|
576
|
+
export function duplicateKeys(input, firstKey, secondKey) {
|
|
536
577
|
// If array provided, recursively call on all elements
|
|
537
578
|
if (_.isArray(input)) {
|
|
538
579
|
return input.map((item) => duplicateKeys(item, firstKey, secondKey));
|
|
@@ -563,7 +604,7 @@ function duplicateKeys(input, firstKey, secondKey) {
|
|
|
563
604
|
*
|
|
564
605
|
* @param {string|Array<String>} cap A desired capability
|
|
565
606
|
*/
|
|
566
|
-
function parseCapsArray(cap) {
|
|
607
|
+
export function parseCapsArray(cap) {
|
|
567
608
|
if (_.isArray(cap)) {
|
|
568
609
|
return cap;
|
|
569
610
|
}
|
|
@@ -590,7 +631,7 @@ function parseCapsArray(cap) {
|
|
|
590
631
|
* @param {string?} sessionId session identifier (if exists)
|
|
591
632
|
* @returns {string}
|
|
592
633
|
*/
|
|
593
|
-
function generateDriverLogPrefix(obj, sessionId = null) {
|
|
634
|
+
export function generateDriverLogPrefix(obj, sessionId = null) {
|
|
594
635
|
const instanceName = `${obj.constructor.name}@${node.getObjectId(obj).substring(0, 4)}`;
|
|
595
636
|
return sessionId ? `${instanceName} (${sessionId.substring(0, 8)})` : instanceName;
|
|
596
637
|
}
|
|
@@ -603,14 +644,6 @@ export default {
|
|
|
603
644
|
parseCapsArray,
|
|
604
645
|
generateDriverLogPrefix,
|
|
605
646
|
};
|
|
606
|
-
export {
|
|
607
|
-
configureApp,
|
|
608
|
-
isPackageOrBundle,
|
|
609
|
-
duplicateKeys,
|
|
610
|
-
parseCapsArray,
|
|
611
|
-
generateDriverLogPrefix,
|
|
612
|
-
BASEDRIVER_VER,
|
|
613
|
-
};
|
|
614
647
|
|
|
615
648
|
/**
|
|
616
649
|
* @typedef RemoteAppProps
|