node-simctl
Advanced tools
Comparing version 1.0.0 to 1.0.1
@@ -17,18 +17,22 @@ "use strict"; | ||
}); | ||
var $__q__, | ||
var $__rtts_45_assert__, | ||
$__q__, | ||
$__child_95_process__, | ||
$__asyncbox__, | ||
$__npmlog__; | ||
var assert = ($__rtts_45_assert__ = require("rtts-assert"), $__rtts_45_assert__ && $__rtts_45_assert__.__esModule && $__rtts_45_assert__ || {default: $__rtts_45_assert__}).assert; | ||
var Q = ($__q__ = require("q"), $__q__ && $__q__.__esModule && $__q__ || {default: $__q__}).default; | ||
var cp = ($__child_95_process__ = require("child_process"), $__child_95_process__ && $__child_95_process__.__esModule && $__child_95_process__ || {default: $__child_95_process__}).default; | ||
var $__2 = ($__asyncbox__ = require("asyncbox"), $__asyncbox__ && $__asyncbox__.__esModule && $__asyncbox__ || {default: $__asyncbox__}), | ||
sleep = $__2.sleep, | ||
retry = $__2.retry; | ||
var $__3 = ($__asyncbox__ = require("asyncbox"), $__asyncbox__ && $__asyncbox__.__esModule && $__asyncbox__ || {default: $__asyncbox__}), | ||
sleep = $__3.sleep, | ||
retry = $__3.retry; | ||
var log = ($__npmlog__ = require("npmlog"), $__npmlog__ && $__npmlog__.__esModule && $__npmlog__ || {default: $__npmlog__}).default; | ||
var exec = cp.exec; | ||
function simExec(cmd, timeout) { | ||
var args, | ||
$__8, | ||
$__9, | ||
$__10; | ||
$__10, | ||
$__11, | ||
$__12, | ||
$__13, | ||
$__14; | ||
var $arguments = arguments; | ||
@@ -40,2 +44,3 @@ return $traceurRuntime.asyncWrap(function($ctx) { | ||
args = $arguments[2] !== (void 0) ? $arguments[2] : []; | ||
assert.argumentTypes(cmd, $traceurRuntime.type.string, timeout, $traceurRuntime.type.number, args, Array); | ||
args = args.map((function(arg) { | ||
@@ -49,21 +54,27 @@ if (arg.indexOf(" ") !== -1) { | ||
log.info("Executing: " + cmd + " with timeout " + timeout); | ||
$ctx.state = 10; | ||
$ctx.state = 12; | ||
break; | ||
case 10: | ||
$__8 = Q.nfcall; | ||
$__9 = $__8.call(Q, exec, cmd, {timeout: timeout}); | ||
case 12: | ||
$__9 = assert.returnType; | ||
$__10 = Q.nfcall; | ||
$__11 = cp.exec; | ||
$__12 = $__10.call(Q, $__11, cmd, {timeout: timeout}); | ||
$ctx.state = 5; | ||
break; | ||
case 5: | ||
Promise.resolve($__9).then($ctx.createCallback(3), $ctx.errback); | ||
Promise.resolve($__12).then($ctx.createCallback(3), $ctx.errback); | ||
return; | ||
case 3: | ||
$__10 = $ctx.value; | ||
$__13 = $ctx.value; | ||
$ctx.state = 2; | ||
break; | ||
case 2: | ||
$ctx.returnValue = $__10; | ||
$__14 = $__9.call(assert, $__13, Array); | ||
$ctx.state = 7; | ||
break; | ||
case 7: | ||
$ctx.returnValue = $__14; | ||
$ctx.state = 9; | ||
break; | ||
case 9: | ||
$ctx.state = -2; | ||
@@ -76,2 +87,5 @@ break; | ||
} | ||
Object.defineProperty(simExec, "parameters", {get: function() { | ||
return [[$traceurRuntime.type.string], [$traceurRuntime.type.number], [Array]]; | ||
}}); | ||
function createDevice(name, deviceTypeId, runtimeId) { | ||
@@ -82,2 +96,6 @@ return $traceurRuntime.asyncWrap(function($ctx) { | ||
case 0: | ||
assert.argumentTypes(name, $traceurRuntime.type.string, deviceTypeId, $traceurRuntime.type.string, runtimeId, $traceurRuntime.type.string); | ||
$ctx.state = 4; | ||
break; | ||
case 4: | ||
Promise.resolve(simExec("create", 0, [name, deviceTypeId, runtimeId])).then($ctx.createCallback(-2), $ctx.errback); | ||
@@ -90,2 +108,5 @@ return; | ||
} | ||
Object.defineProperty(createDevice, "parameters", {get: function() { | ||
return [[$traceurRuntime.type.string], [$traceurRuntime.type.string], [$traceurRuntime.type.string]]; | ||
}}); | ||
function deleteDevice(udid) { | ||
@@ -96,2 +117,6 @@ return $traceurRuntime.asyncWrap(function($ctx) { | ||
case 0: | ||
assert.argumentTypes(udid, $traceurRuntime.type.string); | ||
$ctx.state = 4; | ||
break; | ||
case 4: | ||
Promise.resolve(simExec("delete", 0, [udid])).then($ctx.createCallback(-2), $ctx.errback); | ||
@@ -104,2 +129,5 @@ return; | ||
} | ||
Object.defineProperty(deleteDevice, "parameters", {get: function() { | ||
return [[$traceurRuntime.type.string]]; | ||
}}); | ||
function eraseDevice(udid) { | ||
@@ -113,4 +141,5 @@ var cmdTimeout, | ||
case 0: | ||
cmdTimeout = 2000, cmdRetry = 5; | ||
loopFn = (function() { | ||
assert.argumentTypes(udid, $traceurRuntime.type.string); | ||
cmdTimeout = assert.type(2000, $traceurRuntime.type.number), cmdRetry = assert.type(5, $traceurRuntime.type.number); | ||
loopFn = assert.type((function() { | ||
var ms, | ||
@@ -152,3 +181,3 @@ e; | ||
}, this); | ||
}); | ||
}), Function); | ||
$ctx.state = 4; | ||
@@ -164,2 +193,5 @@ break; | ||
} | ||
Object.defineProperty(eraseDevice, "parameters", {get: function() { | ||
return [[$traceurRuntime.type.string]]; | ||
}}); | ||
function getDevices() { | ||
@@ -173,11 +205,15 @@ var forSdk, | ||
match, | ||
$__6, | ||
$__7, | ||
$__8, | ||
sdk, | ||
$__4, | ||
$__5, | ||
$__6, | ||
line, | ||
lineRe, | ||
lineMatch, | ||
device; | ||
device, | ||
$__15, | ||
$__16, | ||
$__17, | ||
$__18; | ||
var $arguments = arguments; | ||
@@ -189,17 +225,28 @@ return $traceurRuntime.asyncWrap(function($ctx) { | ||
forSdk = $arguments[0] !== (void 0) ? $arguments[0] : null; | ||
$ctx.state = 14; | ||
assert.argumentTypes(forSdk, $traceurRuntime.type.string); | ||
$ctx.state = 18; | ||
break; | ||
case 14: | ||
Promise.resolve(simExec("list", 0, ["devices"])).then($ctx.createCallback(3), $ctx.errback); | ||
case 18: | ||
$__15 = assert.type; | ||
$__16 = simExec("list", 0, ["devices"]); | ||
$ctx.state = 5; | ||
break; | ||
case 5: | ||
Promise.resolve($__16).then($ctx.createCallback(3), $ctx.errback); | ||
return; | ||
case 3: | ||
res = $ctx.value; | ||
$__17 = $ctx.value; | ||
$ctx.state = 2; | ||
break; | ||
case 2: | ||
stdout = res[0]; | ||
deviceSecRe = /-- iOS (.+) --(\n .+)*/mg; | ||
matches = []; | ||
devices = {}; | ||
match = deviceSecRe.exec(stdout); | ||
$__18 = $__15.call(assert, $__17, Array); | ||
res = $__18; | ||
$ctx.state = 7; | ||
break; | ||
case 7: | ||
stdout = assert.type(res[0], $traceurRuntime.type.string); | ||
deviceSecRe = assert.type(/-- iOS (.+) --(\n .+)*/mg, RegExp); | ||
matches = assert.type([], Array); | ||
devices = assert.type({}, Object); | ||
match = assert.type(deviceSecRe.exec(stdout), Object); | ||
while (match !== null) { | ||
@@ -212,16 +259,16 @@ matches.push(match); | ||
} | ||
for ($__6 = matches[$traceurRuntime.toProperty(Symbol.iterator)](); !($__7 = $__6.next()).done; ) { | ||
match = $__7.value; | ||
for ($__7 = matches[$traceurRuntime.toProperty(Symbol.iterator)](); !($__8 = $__7.next()).done; ) { | ||
match = $__8.value; | ||
{ | ||
sdk = match[1]; | ||
sdk = assert.type(match[1], $traceurRuntime.type.string); | ||
devices[sdk] = []; | ||
for ($__4 = match[0].split("\n").slice(1)[$traceurRuntime.toProperty(Symbol.iterator)](); !($__5 = $__4.next()).done; ) { | ||
line = $__5.value; | ||
for ($__5 = match[0].split("\n").slice(1)[$traceurRuntime.toProperty(Symbol.iterator)](); !($__6 = $__5.next()).done; ) { | ||
line = $__6.value; | ||
{ | ||
lineRe = /^ ([^\(]+) \(([^\)]+)\) \(([^\)]+)\)/; | ||
lineMatch = lineRe.exec(line); | ||
lineRe = assert.type(/^ ([^\(]+) \(([^\)]+)\) \(([^\)]+)\)/, RegExp); | ||
lineMatch = assert.type(lineRe.exec(line), Object); | ||
if (lineMatch === null) { | ||
throw new Error("Couldn't match line"); | ||
} | ||
device = {}; | ||
device = assert.type({}, Object); | ||
device.name = lineMatch[1]; | ||
@@ -235,25 +282,25 @@ device.udid = lineMatch[2]; | ||
} | ||
$ctx.state = 16; | ||
$ctx.state = 20; | ||
break; | ||
case 16: | ||
$ctx.state = (forSdk) ? 7 : 6; | ||
case 20: | ||
$ctx.state = (forSdk) ? 11 : 10; | ||
break; | ||
case 7: | ||
case 11: | ||
if (!devices[forSdk]) { | ||
throw new Error("Sdk " + forSdk + " was not in list of simctl sdks"); | ||
} | ||
$ctx.state = 8; | ||
$ctx.state = 12; | ||
break; | ||
case 8: | ||
$ctx.returnValue = devices[forSdk]; | ||
$ctx.state = 5; | ||
case 12: | ||
$ctx.returnValue = assert.returnType((devices[forSdk]), Object); | ||
$ctx.state = 9; | ||
break; | ||
case 5: | ||
case 9: | ||
$ctx.state = -2; | ||
break; | ||
case 6: | ||
$ctx.returnValue = devices; | ||
$ctx.state = 11; | ||
case 10: | ||
$ctx.returnValue = assert.returnType((devices), Object); | ||
$ctx.state = 15; | ||
break; | ||
case 11: | ||
case 15: | ||
$ctx.state = -2; | ||
@@ -266,2 +313,5 @@ break; | ||
} | ||
Object.defineProperty(getDevices, "parameters", {get: function() { | ||
return [[$traceurRuntime.type.string]]; | ||
}}); | ||
; | ||
@@ -271,2 +321,2 @@ | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpbWN0bC5qcyIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci83IiwiQHRyYWNldXIvZ2VuZXJhdGVkL1RlbXBsYXRlUGFyc2VyLzUiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMiIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8zIiwiQHRyYWNldXIvZ2VuZXJhdGVkL1RlbXBsYXRlUGFyc2VyLzYiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMSIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xMyIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xNyIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xMCIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xNiIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xNCIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xMSIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xMiIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xNSIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xOCIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xOSIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8yMCIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci84IiwiQHRyYWNldXIvZ2VuZXJhdGVkL1RlbXBsYXRlUGFyc2VyLzkiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMjEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUNBQSxLQUFLLGlCQUFpQixBQUFDLENBQUMsT0FBTTtjQ0E5QixFQUFDLEdBQUUsWUNBcUI7QUFBRSx5QkFB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OztBQUFuQyxhQUFHLFlBQVksRWI4RU4sUWE5RTBCLEFiOEVwQixDYTlFb0I7Ozs7Ozs7QUNBbkMsZUFBTyxDQUFBLElBQUcsSUFBSSxBQUFDLEVBQUMsQ0FBQTs7QUpDbUIsRUFDL0IsQ0ZENkIsS0FBRyxDQUFDLENBQUM7QVI4RXRDOztBQUdBIiwiZmlsZSI6InNpbWN0bC5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvc2F1Y2VsYWJzL0NvZGUvbm9kZS1zaW1jdGwvbGliL2VzNi8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUSBmcm9tICdxJztcbmltcG9ydCBjcCBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB7IHNsZWVwLCByZXRyeSB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCBsb2cgZnJvbSAnbnBtbG9nJztcblxubGV0IGV4ZWMgPSBjcC5leGVjO1xuXG5hc3luYyBmdW5jdGlvbiBzaW1FeGVjIChjbWQsIHRpbWVvdXQsIGFyZ3MgPSBbXSkge1xuICBhcmdzID0gYXJncy5tYXAoKGFyZykgPT4ge1xuICAgIGlmIChhcmcuaW5kZXhPZihcIiBcIikgIT09IC0xKSB7XG4gICAgICByZXR1cm4gJ1wiJyArIGFyZyArICdcIic7XG4gICAgfVxuICAgIHJldHVybiBhcmc7XG4gIH0pO1xuICBjbWQgPSBcInhjcnVuIHNpbWN0bCBcIiArIGNtZCArIFwiIFwiICsgYXJncy5qb2luKCcgJyk7XG4gIGxvZy5pbmZvKFwiRXhlY3V0aW5nOiBcIiArIGNtZCArIFwiIHdpdGggdGltZW91dCBcIiArIHRpbWVvdXQpO1xuICByZXR1cm4gYXdhaXQgUS5uZmNhbGwoZXhlYywgY21kLCB7dGltZW91dH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVEZXZpY2UgKG5hbWUsIGRldmljZVR5cGVJZCwgcnVudGltZUlkKSB7XG4gIGF3YWl0IHNpbUV4ZWMoXCJjcmVhdGVcIiwgMCwgW25hbWUsIGRldmljZVR5cGVJZCwgcnVudGltZUlkXSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRlbGV0ZURldmljZSAodWRpZCkge1xuICBhd2FpdCBzaW1FeGVjKFwiZGVsZXRlXCIsIDAsIFt1ZGlkXSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGVyYXNlRGV2aWNlICh1ZGlkKSB7XG4gIGxldCBjbWRUaW1lb3V0ID0gMjAwMCwgY21kUmV0cnkgPSA1O1xuICBsZXQgbG9vcEZuID0gYXN5bmMgKCkgPT4ge1xuICAgIGxldCBtcyA9IERhdGUubm93KCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHNpbUV4ZWMoXCJlcmFzZVwiLCBjbWRUaW1lb3V0LCBbdWRpZF0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IHNsZWVwKE1hdGgubWF4KGNtZFRpbWVvdXQgLSAoRGF0ZS5ub3coKSAtIG1zKSwgMSkpO1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH07XG4gIC8vIHJldHJ5IGVyYXNlIHdpdGggYSBzbGVlcCBpbiBiZXR3ZWVuIGJlY2F1c2UgaXQncyBmbGFrZXlcbiAgYXdhaXQgcmV0cnkoY21kUmV0cnksIGxvb3BGbik7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldERldmljZXMgKGZvclNkayA9IG51bGwpIHtcbiAgbGV0IHJlcyA9IGF3YWl0IHNpbUV4ZWMoXCJsaXN0XCIsIDAsIFtcImRldmljZXNcIl0pO1xuICBsZXQgc3Rkb3V0ID0gcmVzWzBdO1xuICBsZXQgZGV2aWNlU2VjUmUgPSAvLS0gaU9TICguKykgLS0oXFxuICAgIC4rKSovbWc7XG4gIGxldCBtYXRjaGVzID0gW107XG4gIGxldCBkZXZpY2VzID0ge307XG4gIGxldCBtYXRjaCA9IGRldmljZVNlY1JlLmV4ZWMoc3Rkb3V0KTtcbiAgd2hpbGUgKG1hdGNoICE9PSBudWxsKSB7XG4gICAgbWF0Y2hlcy5wdXNoKG1hdGNoKTtcbiAgICBtYXRjaCA9IGRldmljZVNlY1JlLmV4ZWMoc3Rkb3V0KTtcbiAgfVxuICBpZiAobWF0Y2hlcy5sZW5ndGggPCAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGZpbmQgZGV2aWNlIHNlY3Rpb25cIik7XG4gIH1cbiAgZm9yIChtYXRjaCBvZiBtYXRjaGVzKSB7XG4gICAgbGV0IHNkayA9IG1hdGNoWzFdO1xuICAgIGRldmljZXNbc2RrXSA9IFtdO1xuICAgIGZvciAobGV0IGxpbmUgb2YgbWF0Y2hbMF0uc3BsaXQoXCJcXG5cIikuc2xpY2UoMSkpIHtcbiAgICAgIGxldCBsaW5lUmUgPSAvXiAgICAoW15cXChdKykgXFwoKFteXFwpXSspXFwpIFxcKChbXlxcKV0rKVxcKS87XG4gICAgICBsZXQgbGluZU1hdGNoID0gbGluZVJlLmV4ZWMobGluZSk7XG4gICAgICBpZiAobGluZU1hdGNoID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IG1hdGNoIGxpbmVcIik7XG4gICAgICB9XG4gICAgICBsZXQgZGV2aWNlID0ge307XG4gICAgICBkZXZpY2UubmFtZSA9IGxpbmVNYXRjaFsxXTtcbiAgICAgIGRldmljZS51ZGlkID0gbGluZU1hdGNoWzJdO1xuICAgICAgZGV2aWNlLnN0YXRlID0gbGluZU1hdGNoWzNdO1xuICAgICAgZGV2aWNlc1tzZGtdLnB1c2goZGV2aWNlKTtcbiAgICB9XG4gIH1cbiAgaWYgKGZvclNkaykge1xuICAgIGlmICghZGV2aWNlc1tmb3JTZGtdKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJTZGsgXCIgKyBmb3JTZGsgKyBcIiB3YXMgbm90IGluIGxpc3Qgb2Ygc2ltY3RsIHNka3NcIik7XG4gICAgfVxuICAgIHJldHVybiBkZXZpY2VzW2ZvclNka107XG4gIH1cbiAgcmV0dXJuIGRldmljZXM7XG59XG5cbmV4cG9ydCB7IGNyZWF0ZURldmljZSwgZGVsZXRlRGV2aWNlLCBlcmFzZURldmljZSwgZ2V0RGV2aWNlcyB9O1xuIiwiT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZXhwb3J0cywgJF9fcGxhY2Vob2xkZXJfXzApOyIsIntnZXQ6ICRfX3BsYWNlaG9sZGVyX18wfSIsImdldCAkX19wbGFjZWhvbGRlcl9fMCgpIHsgcmV0dXJuICRfX3BsYWNlaG9sZGVyX18xOyB9IiwiX19lc01vZHVsZTogdHJ1ZSIsInt2YWx1ZTogJF9fcGxhY2Vob2xkZXJfXzB9IiwiKCRfX3BsYWNlaG9sZGVyX18wID0gcmVxdWlyZSgkX19wbGFjZWhvbGRlcl9fMSksXG4gICAgICAgICRfX3BsYWNlaG9sZGVyX18yICYmICRfX3BsYWNlaG9sZGVyX18zLl9fZXNNb2R1bGUgJiYgJF9fcGxhY2Vob2xkZXJfXzQgfHwge2RlZmF1bHQ6ICRfX3BsYWNlaG9sZGVyX181fSkiLCJ2YXIgJGFyZ3VtZW50cyA9IGFyZ3VtZW50czsiLCJyZXR1cm4gJF9fcGxhY2Vob2xkZXJfXzAoXG4gICAgICAgICAgICAgICRfX3BsYWNlaG9sZGVyX18xLCB0aGlzKTsiLCIkdHJhY2V1clJ1bnRpbWUuYXN5bmNXcmFwIiwiZnVuY3Rpb24oJGN0eCkge1xuICAgICAgd2hpbGUgKHRydWUpICRfX3BsYWNlaG9sZGVyX18wXG4gICAgfSIsIlByb21pc2UucmVzb2x2ZSgkX19wbGFjZWhvbGRlcl9fMCkudGhlbihcbiAgICAgICAgICAkY3R4LmNyZWF0ZUNhbGxiYWNrKCRfX3BsYWNlaG9sZGVyX18xKSwgJGN0eC5lcnJiYWNrKTtcbiAgICAgICAgICByZXR1cm47IiwiJGN0eC52YWx1ZSIsIiRjdHgucmV0dXJuVmFsdWUgPSAkX19wbGFjZWhvbGRlcl9fMCIsInJldHVybiAkY3R4LmVuZCgpIiwiJGN0eC5wdXNoVHJ5KFxuICAgICAgICAgICAgJF9fcGxhY2Vob2xkZXJfXzAsXG4gICAgICAgICAgICAkX19wbGFjZWhvbGRlcl9fMSk7IiwiJGN0eC5wb3BUcnkoKTsiLCJcbiAgICAgICAgICAgICAgJGN0eC5wb3BUcnkoKTtcbiAgICAgICAgICAgICAgJF9fcGxhY2Vob2xkZXJfXzAgPSAkY3R4LnN0b3JlZEV4Y2VwdGlvbjsiLCJcbiAgICAgICAgZm9yICh2YXIgJF9fcGxhY2Vob2xkZXJfXzAgPVxuICAgICAgICAgICAgICAgICAkX19wbGFjZWhvbGRlcl9fMVtcbiAgICAgICAgICAgICAgICAgICAgICR0cmFjZXVyUnVudGltZS50b1Byb3BlcnR5KFN5bWJvbC5pdGVyYXRvcildKCksXG4gICAgICAgICAgICAgICAgICRfX3BsYWNlaG9sZGVyX18yO1xuICAgICAgICAgICAgICEoJF9fcGxhY2Vob2xkZXJfXzMgPSAkX19wbGFjZWhvbGRlcl9fNC5uZXh0KCkpLmRvbmU7ICkge1xuICAgICAgICAgICRfX3BsYWNlaG9sZGVyX181O1xuICAgICAgICAgICRfX3BsYWNlaG9sZGVyX182O1xuICAgICAgICB9IiwiJF9fcGxhY2Vob2xkZXJfXzAgPSAkX19wbGFjZWhvbGRlcl9fMS52YWx1ZTsiLCIkY3R4LnN0YXRlID0gKCRfX3BsYWNlaG9sZGVyX18wKSA/ICRfX3BsYWNlaG9sZGVyX18xIDogJF9fcGxhY2Vob2xkZXJfXzI7XG4gICAgICAgIGJyZWFrIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpbWN0bC5qcyIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xMiIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xMCIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci83IiwiQHRyYWNldXIvZ2VuZXJhdGVkL1RlbXBsYXRlUGFyc2VyLzgiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMTEiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvNiIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xOCIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8yMiIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xNSIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8yMSIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8yIiwiQHRyYWNldXIvZ2VuZXJhdGVkL1RlbXBsYXRlUGFyc2VyLzAiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvNCIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xOSIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xNiIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xNyIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8yMCIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xIiwiQHRyYWNldXIvZ2VuZXJhdGVkL1RlbXBsYXRlUGFyc2VyLzUiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMjMiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMjQiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMjUiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMTMiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMTQiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMjYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUNBQSxLQUFLLGlCQUFpQixBQUFDLENBQUMsT0FBTTtjQ0E5QixFQUFDLEdBQUUsWUNBcUI7QUFBRSx5QkFBd0I7SURBNUIsQUNBOEIsQ0RBN0I7Y0FBdkIsRUFBQyxHQUFFLFlDQXFCO0FBQUUseUJBQXdCO0lEQTVCLEFDQThCLENEQTdCO2FBQXZCLEVBQUMsR0FBRSxZQ0FxQjtBQUFFLHdCQUF3QjtJREE1QixBQ0E4QixDREE3QjtZQUF2QixFQUFDLEdBQUUsWUNBcUI7QUFBRSx1QkFBd0I7SURBNUIsQUNBOEIsQ0RBN0I7QUVBdkIsV0FBUyxDQ0FULEVBQUMsS0FBSSxDREFPLEtDQVksQURBVCxDQ0FVO0NKQXlCLENBQUM7Ozs7OztXS0FuRCxFQUFDLHFCQUFvQixDQUFBLE9BQU0sQUFBQyxlQUFrQixDQUN0QyxDQUFBLHNCQUFxQiwrQkFBMkIsQ0FBQSxzQkFBcUIsR0FBSyxFQUFDLE9BQU0scUJBQW1CLENBRDlELEFBQytELENBQUM7RU5EdkcsRUFBQSxFTUFQLEVBQUMsUUFBb0IsQ0FBQSxPQUFNLEFBQUMsS0FBa0IsQ0FDdEMsQ0FBQSxTQUFxQixrQkFBMkIsQ0FBQSxTQUFxQixHQUFLLEVBQUMsT0FBTSxRQUFtQixDQUQ5RCxBQUMrRCxDQUFDO0VOQXZHLEdBQUMsRU1EUixFQUFDLHVCQUFvQixDQUFBLE9BQU0sQUFBQyxpQkFBa0IsQ0FDdEMsQ0FBQSx3QkFBcUIsaUNBQTJCLENBQUEsd0JBQXFCLEdBQUssRUFBQyxPQUFNLHVCQUFtQixDQUQ5RCxBQUMrRCxDQUFDO1NBRDlHLEVBQUMsZUFBb0IsQ0FBQSxPQUFNLEFBQUMsWUFBa0IsQ0FDdEMsQ0FBQSxnQkFBcUIseUJBQTJCLENBQUEsZ0JBQXFCLEdBQUssRUFBQyxPQUFNLGVBQW1CLENBRDlELEFB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Z0IxRUosYUFBRyxZQUFZLEVIQVIsQ0FBQSxNQUFLLFdBQVcsQUFBQyxDQUFDLENiMkVkLE9BQU0sQ0FBRSxNQUFLLENBQUMsQ2EzRWtCLENieUNNLE9BQUssQ2dCekNuQixBSEE0QixDR0E1Qjs7Ozs7OztBQUFuQyxhQUFHLFlBQVksRUhBUixDQUFBLE1BQUssV0FBVyxBQUFDLENBQUMsQ2I2RWhCLE9BQU0sQ2E3RTRCLENieUNNLE9BQUssQ2dCekNuQixBSEE0QixDR0E1Qjs7Ozs7OztBQ0FuQyxlQUFPLENBQUEsSUFBRyxJQUFJLEFBQUMsRUFBQyxDQUFBOztBUENtQixFQUMvQixDRkQ2QixLQUFHLENBQUMsQ0FBQztBUjZFdEM7QWtCOUVBLEtBQUssZUFBZSxBQUFDLDBCQUNiLEVBQUMsR0FBRSxDQUFHLFVBQVEsQUFBQyxDQUFFO0FBQUMsWU5EMUIsZUFBYyxLQUFLLFVNQzhCO0VBQUMsQ0FBQyxDQUFDLENBQUM7O0FsQmdGckQiLCJmaWxlIjoic2ltY3RsLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9zYXVjZWxhYnMvQ29kZS9ub2RlLXNpbWN0bC9saWIvZXM2LyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBRIGZyb20gJ3EnO1xuaW1wb3J0IGNwIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHsgc2xlZXAsIHJldHJ5IH0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0IGxvZyBmcm9tICducG1sb2cnO1xuXG5hc3luYyBmdW5jdGlvbiBzaW1FeGVjIChjbWQ6c3RyaW5nLCB0aW1lb3V0Om51bWJlciwgYXJnczpBcnJheSA9IFtdKTpBcnJheSB7XG4gIGFyZ3MgPSBhcmdzLm1hcCgoYXJnKSA9PiB7XG4gICAgaWYgKGFyZy5pbmRleE9mKFwiIFwiKSAhPT0gLTEpIHtcbiAgICAgIHJldHVybiAnXCInICsgYXJnICsgJ1wiJztcbiAgICB9XG4gICAgcmV0dXJuIGFyZztcbiAgfSk7XG4gIGNtZCA9IFwieGNydW4gc2ltY3RsIFwiICsgY21kICsgXCIgXCIgKyBhcmdzLmpvaW4oJyAnKTtcbiAgbG9nLmluZm8oXCJFeGVjdXRpbmc6IFwiICsgY21kICsgXCIgd2l0aCB0aW1lb3V0IFwiICsgdGltZW91dCk7XG4gIHJldHVybiBhd2FpdCBRLm5mY2FsbChjcC5leGVjLCBjbWQsIHt0aW1lb3V0fSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZURldmljZSAobmFtZTpzdHJpbmcsIGRldmljZVR5cGVJZDpzdHJpbmcsXG4gICAgcnVudGltZUlkOnN0cmluZyk6dm9pZCB7XG4gIGF3YWl0IHNpbUV4ZWMoXCJjcmVhdGVcIiwgMCwgW25hbWUsIGRldmljZVR5cGVJZCwgcnVudGltZUlkXSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRlbGV0ZURldmljZSAodWRpZDpzdHJpbmcpOnZvaWQge1xuICBhd2FpdCBzaW1FeGVjKFwiZGVsZXRlXCIsIDAsIFt1ZGlkXSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGVyYXNlRGV2aWNlICh1ZGlkOnN0cmluZyk6dm9pZCB7XG4gIGxldCBjbWRUaW1lb3V0Om51bWJlciA9IDIwMDAsIGNtZFJldHJ5Om51bWJlciA9IDU7XG4gIGxldCBsb29wRm46RnVuY3Rpb24gPSBhc3luYyAoKSA9PiB7XG4gICAgbGV0IG1zID0gRGF0ZS5ub3coKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgc2ltRXhlYyhcImVyYXNlXCIsIGNtZFRpbWVvdXQsIFt1ZGlkXSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYXdhaXQgc2xlZXAoTWF0aC5tYXgoY21kVGltZW91dCAtIChEYXRlLm5vdygpIC0gbXMpLCAxKSk7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfTtcbiAgLy8gcmV0cnkgZXJhc2Ugd2l0aCBhIHNsZWVwIGluIGJldHdlZW4gYmVjYXVzZSBpdCdzIGZsYWtleVxuICBhd2FpdCByZXRyeShjbWRSZXRyeSwgbG9vcEZuKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0RGV2aWNlcyAoZm9yU2RrOnN0cmluZyA9IG51bGwpOk9iamVjdCB7XG4gIGxldCByZXM6QXJyYXkgPSBhd2FpdCBzaW1FeGVjKFwibGlzdFwiLCAwLCBbXCJkZXZpY2VzXCJdKTtcbiAgbGV0IHN0ZG91dDpzdHJpbmcgPSByZXNbMF07XG4gIGxldCBkZXZpY2VTZWNSZTpSZWdFeHAgPSAvLS0gaU9TICguKykgLS0oXFxuICAgIC4rKSovbWc7XG4gIGxldCBtYXRjaGVzOkFycmF5ID0gW107XG4gIGxldCBkZXZpY2VzOk9iamVjdCA9IHt9O1xuICBsZXQgbWF0Y2g6T2JqZWN0ID0gZGV2aWNlU2VjUmUuZXhlYyhzdGRvdXQpO1xuICB3aGlsZSAobWF0Y2ggIT09IG51bGwpIHtcbiAgICBtYXRjaGVzLnB1c2gobWF0Y2gpO1xuICAgIG1hdGNoID0gZGV2aWNlU2VjUmUuZXhlYyhzdGRvdXQpO1xuICB9XG4gIGlmIChtYXRjaGVzLmxlbmd0aCA8IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZCBub3QgZmluZCBkZXZpY2Ugc2VjdGlvblwiKTtcbiAgfVxuICBmb3IgKG1hdGNoIG9mIG1hdGNoZXMpIHtcbiAgICBsZXQgc2RrOnN0cmluZyA9IG1hdGNoWzFdO1xuICAgIGRldmljZXNbc2RrXSA9IFtdO1xuICAgIGZvciAobGV0IGxpbmU6c3RyaW5nIG9mIG1hdGNoWzBdLnNwbGl0KFwiXFxuXCIpLnNsaWNlKDEpKSB7XG4gICAgICBsZXQgbGluZVJlOlJlZ0V4cCA9IC9eICAgIChbXlxcKF0rKSBcXCgoW15cXCldKylcXCkgXFwoKFteXFwpXSspXFwpLztcbiAgICAgIGxldCBsaW5lTWF0Y2g6T2JqZWN0ID0gbGluZVJlLmV4ZWMobGluZSk7XG4gICAgICBpZiAobGluZU1hdGNoID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IG1hdGNoIGxpbmVcIik7XG4gICAgICB9XG4gICAgICBsZXQgZGV2aWNlOk9iamVjdCA9IHt9O1xuICAgICAgZGV2aWNlLm5hbWUgPSBsaW5lTWF0Y2hbMV07XG4gICAgICBkZXZpY2UudWRpZCA9IGxpbmVNYXRjaFsyXTtcbiAgICAgIGRldmljZS5zdGF0ZSA9IGxpbmVNYXRjaFszXTtcbiAgICAgIGRldmljZXNbc2RrXS5wdXNoKGRldmljZSk7XG4gICAgfVxuICB9XG4gIGlmIChmb3JTZGspIHtcbiAgICBpZiAoIWRldmljZXNbZm9yU2RrXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiU2RrIFwiICsgZm9yU2RrICsgXCIgd2FzIG5vdCBpbiBsaXN0IG9mIHNpbWN0bCBzZGtzXCIpO1xuICAgIH1cbiAgICByZXR1cm4gZGV2aWNlc1tmb3JTZGtdO1xuICB9XG4gIHJldHVybiBkZXZpY2VzO1xufVxuXG5leHBvcnQgeyBjcmVhdGVEZXZpY2UsIGRlbGV0ZURldmljZSwgZXJhc2VEZXZpY2UsIGdldERldmljZXMgfTtcbiIsIk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGV4cG9ydHMsICRfX3BsYWNlaG9sZGVyX18wKTsiLCJ7Z2V0OiAkX19wbGFjZWhvbGRlcl9fMH0iLCJnZXQgJF9fcGxhY2Vob2xkZXJfXzAoKSB7IHJldHVybiAkX19wbGFjZWhvbGRlcl9fMTsgfSIsIl9fZXNNb2R1bGU6IHRydWUiLCJ7dmFsdWU6ICRfX3BsYWNlaG9sZGVyX18wfSIsIigkX19wbGFjZWhvbGRlcl9fMCA9IHJlcXVpcmUoJF9fcGxhY2Vob2xkZXJfXzEpLFxuICAgICAgICAkX19wbGFjZWhvbGRlcl9fMiAmJiAkX19wbGFjZWhvbGRlcl9fMy5fX2VzTW9kdWxlICYmICRfX3BsYWNlaG9sZGVyX180IHx8IHtkZWZhdWx0OiAkX19wbGFjZWhvbGRlcl9fNX0pIiwidmFyICRhcmd1bWVudHMgPSBhcmd1bWVudHM7IiwicmV0dXJuICRfX3BsYWNlaG9sZGVyX18wKFxuICAgICAgICAgICAgICAkX19wbGFjZWhvbGRlcl9fMSwgdGhpcyk7IiwiJHRyYWNldXJSdW50aW1lLmFzeW5jV3JhcCIsImZ1bmN0aW9uKCRjdHgpIHtcbiAgICAgIHdoaWxlICh0cnVlKSAkX19wbGFjZWhvbGRlcl9fMFxuICAgIH0iLCJhc3NlcnQuYXJndW1lbnRUeXBlcygkX19wbGFjZWhvbGRlcl9fMCkiLCIkdHJhY2V1clJ1bnRpbWUudHlwZS4kX19wbGFjZWhvbGRlcl9fMCkiLCJyZXR1cm4gYXNzZXJ0LnJldHVyblR5cGUoKCRfX3BsYWNlaG9sZGVyX18wKSwgJF9fcGxhY2Vob2xkZXJfXzEpIiwiUHJvbWlzZS5yZXNvbHZlKCRfX3BsYWNlaG9sZGVyX18wKS50aGVuKFxuICAgICAgICAgICRjdHguY3JlYXRlQ2FsbGJhY2soJF9fcGxhY2Vob2xkZXJfXzEpLCAkY3R4LmVycmJhY2spO1xuICAgICAgICAgIHJldHVybjsiLCIkY3R4LnZhbHVlIiwiJGN0eC5yZXR1cm5WYWx1ZSA9ICRfX3BsYWNlaG9sZGVyX18wIiwicmV0dXJuICRjdHguZW5kKCkiLCJPYmplY3QuZGVmaW5lUHJvcGVydHkoJF9fcGxhY2Vob2xkZXJfXzAsICRfX3BsYWNlaG9sZGVyX18xLFxuICAgICAgICB7Z2V0OiBmdW5jdGlvbigpIHtyZXR1cm4gJF9fcGxhY2Vob2xkZXJfXzJ9fSk7IiwiYXNzZXJ0LnR5cGUoJF9fcGxhY2Vob2xkZXJfXzAsICRfX3BsYWNlaG9sZGVyX18xKSIsIiRjdHgucHVzaFRyeShcbiAgICAgICAgICAgICRfX3BsYWNlaG9sZGVyX18wLFxuICAgICAgICAgICAgJF9fcGxhY2Vob2xkZXJfXzEpOyIsIiRjdHgucG9wVHJ5KCk7IiwiXG4gICAgICAgICAgICAgICRjdHgucG9wVHJ5KCk7XG4gICAgICAgICAgICAgICRfX3BsYWNlaG9sZGVyX18wID0gJGN0eC5zdG9yZWRFeGNlcHRpb247IiwiXG4gICAgICAgIGZvciAodmFyICRfX3BsYWNlaG9sZGVyX18wID1cbiAgICAgICAgICAgICAgICAgJF9fcGxhY2Vob2xkZXJfXzFbXG4gICAgICAgICAgICAgICAgICAgICAkdHJhY2V1clJ1bnRpbWUudG9Qcm9wZXJ0eShTeW1ib2wuaXRlcmF0b3IpXSgpLFxuICAgICAgICAgICAgICAgICAkX19wbGFjZWhvbGRlcl9fMjtcbiAgICAgICAgICAgICAhKCRfX3BsYWNlaG9sZGVyX18zID0gJF9fcGxhY2Vob2xkZXJfXzQubmV4dCgpKS5kb25lOyApIHtcbiAgICAgICAgICAkX19wbGFjZWhvbGRlcl9fNTtcbiAgICAgICAgICAkX19wbGFjZWhvbGRlcl9fNjtcbiAgICAgICAgfSIsIiRfX3BsYWNlaG9sZGVyX18wID0gJF9fcGxhY2Vob2xkZXJfXzEudmFsdWU7IiwiJGN0eC5zdGF0ZSA9ICgkX19wbGFjZWhvbGRlcl9fMCkgPyAkX19wbGFjZWhvbGRlcl9fMSA6ICRfX3BsYWNlaG9sZGVyX18yO1xuICAgICAgICBicmVhayJdfQ== |
@@ -6,5 +6,3 @@ import Q from 'q'; | ||
let exec = cp.exec; | ||
async function simExec (cmd, timeout, args = []) { | ||
async function simExec (cmd:string, timeout:number, args:Array = []):Array { | ||
args = args.map((arg) => { | ||
@@ -18,16 +16,17 @@ if (arg.indexOf(" ") !== -1) { | ||
log.info("Executing: " + cmd + " with timeout " + timeout); | ||
return await Q.nfcall(exec, cmd, {timeout}); | ||
return await Q.nfcall(cp.exec, cmd, {timeout}); | ||
} | ||
async function createDevice (name, deviceTypeId, runtimeId) { | ||
async function createDevice (name:string, deviceTypeId:string, | ||
runtimeId:string):void { | ||
await simExec("create", 0, [name, deviceTypeId, runtimeId]); | ||
} | ||
async function deleteDevice (udid) { | ||
async function deleteDevice (udid:string):void { | ||
await simExec("delete", 0, [udid]); | ||
} | ||
async function eraseDevice (udid) { | ||
let cmdTimeout = 2000, cmdRetry = 5; | ||
let loopFn = async () => { | ||
async function eraseDevice (udid:string):void { | ||
let cmdTimeout:number = 2000, cmdRetry:number = 5; | ||
let loopFn:Function = async () => { | ||
let ms = Date.now(); | ||
@@ -45,9 +44,9 @@ try { | ||
async function getDevices (forSdk = null) { | ||
let res = await simExec("list", 0, ["devices"]); | ||
let stdout = res[0]; | ||
let deviceSecRe = /-- iOS (.+) --(\n .+)*/mg; | ||
let matches = []; | ||
let devices = {}; | ||
let match = deviceSecRe.exec(stdout); | ||
async function getDevices (forSdk:string = null):Object { | ||
let res:Array = await simExec("list", 0, ["devices"]); | ||
let stdout:string = res[0]; | ||
let deviceSecRe:RegExp = /-- iOS (.+) --(\n .+)*/mg; | ||
let matches:Array = []; | ||
let devices:Object = {}; | ||
let match:Object = deviceSecRe.exec(stdout); | ||
while (match !== null) { | ||
@@ -61,11 +60,11 @@ matches.push(match); | ||
for (match of matches) { | ||
let sdk = match[1]; | ||
let sdk:string = match[1]; | ||
devices[sdk] = []; | ||
for (let line of match[0].split("\n").slice(1)) { | ||
let lineRe = /^ ([^\(]+) \(([^\)]+)\) \(([^\)]+)\)/; | ||
let lineMatch = lineRe.exec(line); | ||
for (let line:string of match[0].split("\n").slice(1)) { | ||
let lineRe:RegExp = /^ ([^\(]+) \(([^\)]+)\) \(([^\)]+)\)/; | ||
let lineMatch:Object = lineRe.exec(line); | ||
if (lineMatch === null) { | ||
throw new Error("Couldn't match line"); | ||
} | ||
let device = {}; | ||
let device:Object = {}; | ||
device.name = lineMatch[1]; | ||
@@ -72,0 +71,0 @@ device.udid = lineMatch[2]; |
@@ -9,3 +9,3 @@ { | ||
], | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"author": "https://github.com/appium", | ||
@@ -12,0 +12,0 @@ "licenses": [ |
@@ -168,2 +168,2 @@ "use strict"; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNwZWNzLmpzIiwiQHRyYWNldXIvZ2VuZXJhdGVkL1RlbXBsYXRlUGFyc2VyLzEiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMTciLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMTAiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMTYiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMTQiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMTEiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvOCIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xNSIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xOCIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8xOSIsIkB0cmFjZXVyL2dlbmVyYXRlZC9UZW1wbGF0ZVBhcnNlci8yMCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTs7Ozs7Ozs7RUFBTyxJQUFFLEVDRFQsRUFBQywrQkFBb0IsQ0FBQSxPQUFNLEFBQUMsc0JBQWtCLENBQ3RDLENBQUEsZ0NBQXFCLHlDQUEyQixDQUFBLGdDQUFxQixHQUFLLEVBQUMsT0FBTSwrQkFBbUIsQ0FEOUQsQUFDK0QsQ0FBQztBREM5RyxFQUFFLFFBQVEsQUFBQyxFQUFDLENBQUM7QUNGYixBQUFDLDJEQUFvQixDQUFBLE9BQU0sQUFBQywrQkFBa0IsQ0FDdEMsQ0FBQSw0REFBcUIscUVBQTJCLENBQUEsNERBQXFCLEdBQUssRUFBQyxPQUFNLDJEQUFtQixDQUQ5RCxBQUMrRCxDQUFDO0FBRDlHLEFBQUMsZ0JBQW9CLENBQUEsT0FBTSxBQUFDLGFBQWtCLENBQ3RDLENBQUEsaUJBQXFCLDBCQUEyQixDQUFBLGlCQUFxQixHQUFLLEVBQUMsT0FBTSxnQkFBbUIsQ0FEOUQsQUFDK0QsQ0FBQztFREl2RyxPQUFLLEVDTFos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QUFDLEtBQUksQ0FBRyxNQUFJLENBQUcsTUFBSSxDQUFDLENLbERYLEtBQUssQUFBQyxDQUM3QixJQUFHLGVBQWUsQUFBQyxHQUFrQixDQUFHLENBQUEsSUFBRyxRQUFRLENBQUMsQ0FBQztBQUNyRCxrQkFBTTs7QUtGaEIsZUFBRyxPQUFPLEFBQUMsRUFBQyxDQUFDOzs7O0FDQ0MsZUFBRyxPQUFPLEFBQUMsRUFBQyxDQUFDO0FBQ2IsY0FBb0IsQ0FBQSxJQUFHLGdCQUFnQixDQUFDOzs7O0FYa0RoRCxjQUFFLEVBQUksRUFBQSxDQUFDOzs7O0FBRVQsaUJBQUssTUFBTSxBQUFDLENBQUMsR0FBRSxDQUFDLENBQUM7QUFDakIsY0FBRSxRQUFRLE9BQU8sV0FBVyxBQUFDLENBQUMsMEJBQXlCLENBQUMsQ0FBQzs7OztBUXZEN0QsaUJBQU8sQ0FBQSxJQUFHLElBQUksQUFBQyxFQUFDLENBQUE7O0FKQ21CLElBQy9CLENGRDZCLEtBQUcsQ0FBQyxDQUFDO0VGdURwQyxFQUFDLENBQUM7QUFFSixFQUFDLENBQUM7QUFDRiIsImZpbGUiOiJzcGVjcy5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvc2F1Y2VsYWJzL0NvZGUvbm9kZS1zaW1jdGwvdGVzdC9lczYvIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGl0OnRydWUsIGRlc2NyaWJlOnRydWUqL1xuaW1wb3J0IHNtcyBmcm9tICdzb3VyY2UtbWFwLXN1cHBvcnQnO1xuc21zLmluc3RhbGwoKTtcbmltcG9ydCAndHJhY2V1ci9iaW4vdHJhY2V1ci1ydW50aW1lJztcbmltcG9ydCAnbW9jaGF3YWl0JztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IG1hcGlmeSB9IGZyb20gJ2VzNi1tYXBpZnknO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGNyZWF0ZURldmljZSwgZGVsZXRlRGV2aWNlLCBlcmFzZURldmljZSwgZ2V0RGV2aWNlcyB9IGZyb20gJy4uLy4uL2xpYi9lczUvc2ltY3RsLmpzJztcblxuZGVzY3JpYmUoJ3NpbWN0bCcsICgpID0+IHtcbiAgbGV0IHJhbmROdW0gPSBwYXJzZUludChNYXRoLnJhbmRvbSgpICogMTAwLCAxMCk7XG4gIGxldCByYW5kTmFtZSA9IGBkZXZpY2Uke3JhbmROdW19YDtcbiAgbGV0IHJhbmREZXZpY2VVZGlkID0gbnVsbDtcbiAgbGV0IHZhbGlkU2RrcyA9IFtdO1xuXG4gIGl0KCdzaG91bGQgY3JlYXRlIGEgZGV2aWNlJywgYXN5bmMgKCkgPT4ge1xuICAgIGxldCBkZXZpY2VzID0gYXdhaXQgZ2V0RGV2aWNlcygpO1xuICAgIHZhbGlkU2RrcyA9IF8ua2V5cyhkZXZpY2VzKTtcbiAgICBpZiAoIXZhbGlkU2Rrcy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIHZhbGlkIFNES3NcIik7XG4gICAgfVxuICAgIGZvciAobGV0IGxpc3Qgb2YgbWFwaWZ5KGRldmljZXMpLnZhbHVlcygpKSB7XG4gICAgICBpZiAoXy5jb250YWlucyhfLnBsdWNrKGxpc3QsICduYW1lJyksIHJhbmROYW1lKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkbid0IHJ1biB0ZXN0IGJlY2F1c2UgZGV2aWNlICR7cmFuZE5hbWV9IGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgYGFscmVhZHkgZXhpc3RzYCk7XG4gICAgICB9XG4gICAgfVxuICAgIGF3YWl0IGNyZWF0ZURldmljZShyYW5kTmFtZSwgJ2lQYWQgQWlyJywgdmFsaWRTZGtzWzBdKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBnZXQgZGV2aWNlcycsIGFzeW5jICgpID0+IHtcbiAgICBsZXQgc2RrRGV2aWNlcyA9IGF3YWl0IGdldERldmljZXModmFsaWRTZGtzWzBdKTtcbiAgICBfLnBsdWNrKHNka0RldmljZXMsICduYW1lJykuc2hvdWxkLmNvbnRhaW5FcWwocmFuZE5hbWUpO1xuICAgIHJhbmREZXZpY2VVZGlkID0gc2RrRGV2aWNlcy5maWx0ZXIoKGQpID0+IGQubmFtZSA9PT0gcmFuZE5hbWUpWzBdLnVkaWQ7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZXJhc2UgZGV2aWNlcycsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBlcmFzZURldmljZShyYW5kRGV2aWNlVWRpZCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZGVsZXRlIGRldmljZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgZGVsZXRlRGV2aWNlKHJhbmREZXZpY2VVZGlkKTtcbiAgICBsZXQgc2RrRGV2aWNlcyA9IGF3YWl0IGdldERldmljZXModmFsaWRTZGtzWzBdKTtcbiAgICBfLnBsdWNrKHNka0RldmljZXMsICduYW1lJykuc2hvdWxkLm5vdC5jb250YWluRXFsKHJhbmROYW1lKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gYSBuaWNlIGVycm9yIGZvciBpbnZhbGlkIHVzYWdlJywgYXN5bmMgKCkgPT4ge1xuICAgIGxldCBlcnIgPSBudWxsO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBjcmVhdGVEZXZpY2UoJ2ZvbycsICdiYXInLCAnYmF6Jyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgZXJyID0gZTtcbiAgICB9XG4gICAgc2hvdWxkLmV4aXN0KGVycik7XG4gICAgZXJyLm1lc3NhZ2Uuc2hvdWxkLmNvbnRhaW5FcWwoJ0ludmFsaWQgZGV2aWNlIHR5cGU6IGJhcicpO1xuICB9KTtcblxufSk7XG4iLCIoJF9fcGxhY2Vob2xkZXJfXzAgPSByZXF1aXJlKCRfX3BsYWNlaG9sZGVyX18xKSxcbiAgICAgICAgJF9fcGxhY2Vob2xkZXJfXzIgJiYgJF9fcGxhY2Vob2xkZXJfXzMuX19lc01vZHVsZSAmJiAkX19wbGFjZWhvbGRlcl9fNCB8fCB7ZGVmYXVsdDogJF9fcGxhY2Vob2xkZXJfXzV9KSIsInJldHVybiAkX19wbGFjZWhvbGRlcl9fMChcbiAgICAgICAgICAgICAgJF9fcGxhY2Vob2xkZXJfXzEsIHRoaXMpOyIsIiR0cmFjZXVyUnVudGltZS5hc3luY1dyYXAiLCJmdW5jdGlvbigkY3R4KSB7XG4gICAgICB3aGlsZSAodHJ1ZSkgJF9fcGxhY2Vob2xkZXJfXzBcbiAgICB9IiwiUHJvbWlzZS5yZXNvbHZlKCRfX3BsYWNlaG9sZGVyX18wKS50aGVuKFxuICAgICAgICAgICRjdHguY3JlYXRlQ2FsbGJhY2soJF9fcGxhY2Vob2xkZXJfXzEpLCAkY3R4LmVycmJhY2spO1xuICAgICAgICAgIHJldHVybjsiLCIkY3R4LnZhbHVlIiwiXG4gICAgICAgIGZvciAodmFyICRfX3BsYWNlaG9sZGVyX18wID1cbiAgICAgICAgICAgICAgICAgJF9fcGxhY2Vob2xkZXJfXzFbXG4gICAgICAgICAgICAgICAgICAgICAkdHJhY2V1clJ1bnRpbWUudG9Qcm9wZXJ0eShTeW1ib2wuaXRlcmF0b3IpXSgpLFxuICAgICAgICAgICAgICAgICAkX19wbGFjZWhvbGRlcl9fMjtcbiAgICAgICAgICAgICAhKCRfX3BsYWNlaG9sZGVyX18zID0gJF9fcGxhY2Vob2xkZXJfXzQubmV4dCgpKS5kb25lOyApIHtcbiAgICAgICAgICAkX19wbGFjZWhvbGRlcl9fNTtcbiAgICAgICAgICAkX19wbGFjZWhvbGRlcl9fNjtcbiAgICAgICAgfSIsInJldHVybiAkY3R4LmVuZCgpIiwiJGN0eC5wdXNoVHJ5KFxuICAgICAgICAgICAgJF9fcGxhY2Vob2xkZXJfXzAsXG4gICAgICAgICAgICAkX19wbGFjZWhvbGRlcl9fMSk7IiwiJGN0eC5wb3BUcnkoKTsiLCJcbiAgICAgICAgICAgICAgJGN0eC5wb3BUcnkoKTtcbiAgICAgICAgICAgICAgJF9fcGxhY2Vob2xkZXJfXzAgPSAkY3R4LnN0b3JlZEV4Y2VwdGlvbjsiXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNwZWNzLmpzIiwiQHRyYWNldXIvZ2VuZXJhdGVkL1RlbXBsYXRlUGFyc2VyLzYiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMjIiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMTUiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMjEiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMTkiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMTYiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMTMiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMjAiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMjMiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMjQiLCJAdHJhY2V1ci9nZW5lcmF0ZWQvVGVtcGxhdGVQYXJzZXIvMjUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7Ozs7Ozs7O0VBQU8sSUFBRSxFQ0RULEVBQUMsK0JBQW9CLENBQUEsT0FBTSxBQUFDLHNCQUFrQixDQUN0QyxDQUFBLGdDQUFxQix5Q0FBMkIsQ0FBQSxnQ0FBcUIsR0FBSyxFQUFDLE9BQU0sK0JBQW1CLENBRDlELEFBQytELENBQUM7QURDOUcsRUFBRSxRQUFRLEFBQUMsRUFBQyxDQUFDO0FDRmIsQUFBQywyREFBb0IsQ0FBQSxPQUFNLEFBQUMsK0JBQWtCLENBQ3RDLENBQUEsNERBQXFCLHFFQUEyQixDQUFBLDREQUFxQixHQUFLLEVBQUMsT0FBTSwyREFBbUIsQ0FEOUQsQUFDK0QsQ0FBQztBQUQ5RyxBQUFDLGdCQUFvQixDQUFBLE9BQU0sQUFBQyxhQUFrQixDQUN0QyxDQUFBLGlCQUFxQiwwQkFBMkIsQ0FBQSxpQkFBcUIsR0FBSyxFQUFDLE9BQU0sZ0JBQW1CLENBRDlELEFBQytELENBQUM7RURJdkcsT0FBSyxFQ0xa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Q0FBQyxLQUFJLENBQUcsTUFBSSxDQUFHLE1BQUksQ0FBQyxDS2xEWCxLQUFLLEFBQUMsQ0FDN0IsSUFBRyxlQUFlLEFBQUMsR0FBa0IsQ0FBRyxDQUFBLElBQUcsUUFBUSxDQUFDLENBQUM7QUFDckQsa0JBQU07O0FLRmhCLGVBQUcsT0FBTyxBQUFDLEVBQUMsQ0FBQzs7OztBQ0NDLGVBQUcsT0FBTyxBQUFDLEVBQUMsQ0FBQztBQUNiLGNBQW9CLENBQUEsSUFBRyxnQkFBZ0IsQ0FBQzs7OztBWGtEaEQsY0FBRSxFQUFJLEVBQUEsQ0FBQzs7OztBQUVULGlCQUFLLE1BQU0sQUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDO0FBQ2pCLGNBQUUsUUFBUSxPQUFPLFdBQVcsQUFBQyxDQUFDLDBCQUF5QixDQUFDLENBQUM7Ozs7QVF2RDdELGlCQUFPLENBQUEsSUFBRyxJQUFJLEFBQUMsRUFBQyxDQUFBOztBSkNtQixJQUMvQixDRkQ2QixLQUFHLENBQUMsQ0FBQztFRnVEcEMsRUFBQyxDQUFDO0FBRUosRUFBQyxDQUFDO0FBQ0YiLCJmaWxlIjoic3BlY3MuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL3NhdWNlbGFicy9Db2RlL25vZGUtc2ltY3RsL3Rlc3QvZXM2LyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCBpdDp0cnVlLCBkZXNjcmliZTp0cnVlKi9cbmltcG9ydCBzbXMgZnJvbSAnc291cmNlLW1hcC1zdXBwb3J0JztcbnNtcy5pbnN0YWxsKCk7XG5pbXBvcnQgJ3RyYWNldXIvYmluL3RyYWNldXItcnVudGltZSc7XG5pbXBvcnQgJ21vY2hhd2FpdCc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBtYXBpZnkgfSBmcm9tICdlczYtbWFwaWZ5JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBjcmVhdGVEZXZpY2UsIGRlbGV0ZURldmljZSwgZXJhc2VEZXZpY2UsIGdldERldmljZXMgfSBmcm9tICcuLi8uLi9saWIvZXM1L3NpbWN0bC5qcyc7XG5cbmRlc2NyaWJlKCdzaW1jdGwnLCAoKSA9PiB7XG4gIGxldCByYW5kTnVtID0gcGFyc2VJbnQoTWF0aC5yYW5kb20oKSAqIDEwMCwgMTApO1xuICBsZXQgcmFuZE5hbWUgPSBgZGV2aWNlJHtyYW5kTnVtfWA7XG4gIGxldCByYW5kRGV2aWNlVWRpZCA9IG51bGw7XG4gIGxldCB2YWxpZFNka3MgPSBbXTtcblxuICBpdCgnc2hvdWxkIGNyZWF0ZSBhIGRldmljZScsIGFzeW5jICgpID0+IHtcbiAgICBsZXQgZGV2aWNlcyA9IGF3YWl0IGdldERldmljZXMoKTtcbiAgICB2YWxpZFNka3MgPSBfLmtleXMoZGV2aWNlcyk7XG4gICAgaWYgKCF2YWxpZFNka3MubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyB2YWxpZCBTREtzXCIpO1xuICAgIH1cbiAgICBmb3IgKGxldCBsaXN0IG9mIG1hcGlmeShkZXZpY2VzKS52YWx1ZXMoKSkge1xuICAgICAgaWYgKF8uY29udGFpbnMoXy5wbHVjayhsaXN0LCAnbmFtZScpLCByYW5kTmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZG4ndCBydW4gdGVzdCBiZWNhdXNlIGRldmljZSAke3JhbmROYW1lfSBgICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGBhbHJlYWR5IGV4aXN0c2ApO1xuICAgICAgfVxuICAgIH1cbiAgICBhd2FpdCBjcmVhdGVEZXZpY2UocmFuZE5hbWUsICdpUGFkIEFpcicsIHZhbGlkU2Rrc1swXSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZ2V0IGRldmljZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgbGV0IHNka0RldmljZXMgPSBhd2FpdCBnZXREZXZpY2VzKHZhbGlkU2Rrc1swXSk7XG4gICAgXy5wbHVjayhzZGtEZXZpY2VzLCAnbmFtZScpLnNob3VsZC5jb250YWluRXFsKHJhbmROYW1lKTtcbiAgICByYW5kRGV2aWNlVWRpZCA9IHNka0RldmljZXMuZmlsdGVyKChkKSA9PiBkLm5hbWUgPT09IHJhbmROYW1lKVswXS51ZGlkO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGVyYXNlIGRldmljZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgZXJhc2VEZXZpY2UocmFuZERldmljZVVkaWQpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGRlbGV0ZSBkZXZpY2VzJywgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGRlbGV0ZURldmljZShyYW5kRGV2aWNlVWRpZCk7XG4gICAgbGV0IHNka0RldmljZXMgPSBhd2FpdCBnZXREZXZpY2VzKHZhbGlkU2Rrc1swXSk7XG4gICAgXy5wbHVjayhzZGtEZXZpY2VzLCAnbmFtZScpLnNob3VsZC5ub3QuY29udGFpbkVxbChyYW5kTmFtZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmV0dXJuIGEgbmljZSBlcnJvciBmb3IgaW52YWxpZCB1c2FnZScsIGFzeW5jICgpID0+IHtcbiAgICBsZXQgZXJyID0gbnVsbDtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgY3JlYXRlRGV2aWNlKCdmb28nLCAnYmFyJywgJ2JheicpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGVyciA9IGU7XG4gICAgfVxuICAgIHNob3VsZC5leGlzdChlcnIpO1xuICAgIGVyci5tZXNzYWdlLnNob3VsZC5jb250YWluRXFsKCdJbnZhbGlkIGRldmljZSB0eXBlOiBiYXInKTtcbiAgfSk7XG5cbn0pO1xuIiwiKCRfX3BsYWNlaG9sZGVyX18wID0gcmVxdWlyZSgkX19wbGFjZWhvbGRlcl9fMSksXG4gICAgICAgICRfX3BsYWNlaG9sZGVyX18yICYmICRfX3BsYWNlaG9sZGVyX18zLl9fZXNNb2R1bGUgJiYgJF9fcGxhY2Vob2xkZXJfXzQgfHwge2RlZmF1bHQ6ICRfX3BsYWNlaG9sZGVyX181fSkiLCJyZXR1cm4gJF9fcGxhY2Vob2xkZXJfXzAoXG4gICAgICAgICAgICAgICRfX3BsYWNlaG9sZGVyX18xLCB0aGlzKTsiLCIkdHJhY2V1clJ1bnRpbWUuYXN5bmNXcmFwIiwiZnVuY3Rpb24oJGN0eCkge1xuICAgICAgd2hpbGUgKHRydWUpICRfX3BsYWNlaG9sZGVyX18wXG4gICAgfSIsIlByb21pc2UucmVzb2x2ZSgkX19wbGFjZWhvbGRlcl9fMCkudGhlbihcbiAgICAgICAgICAkY3R4LmNyZWF0ZUNhbGxiYWNrKCRfX3BsYWNlaG9sZGVyX18xKSwgJGN0eC5lcnJiYWNrKTtcbiAgICAgICAgICByZXR1cm47IiwiJGN0eC52YWx1ZSIsIlxuICAgICAgICBmb3IgKHZhciAkX19wbGFjZWhvbGRlcl9fMCA9XG4gICAgICAgICAgICAgICAgICRfX3BsYWNlaG9sZGVyX18xW1xuICAgICAgICAgICAgICAgICAgICAgJHRyYWNldXJSdW50aW1lLnRvUHJvcGVydHkoU3ltYm9sLml0ZXJhdG9yKV0oKSxcbiAgICAgICAgICAgICAgICAgJF9fcGxhY2Vob2xkZXJfXzI7XG4gICAgICAgICAgICAgISgkX19wbGFjZWhvbGRlcl9fMyA9ICRfX3BsYWNlaG9sZGVyX180Lm5leHQoKSkuZG9uZTsgKSB7XG4gICAgICAgICAgJF9fcGxhY2Vob2xkZXJfXzU7XG4gICAgICAgICAgJF9fcGxhY2Vob2xkZXJfXzY7XG4gICAgICAgIH0iLCJyZXR1cm4gJGN0eC5lbmQoKSIsIiRjdHgucHVzaFRyeShcbiAgICAgICAgICAgICRfX3BsYWNlaG9sZGVyX18wLFxuICAgICAgICAgICAgJF9fcGxhY2Vob2xkZXJfXzEpOyIsIiRjdHgucG9wVHJ5KCk7IiwiXG4gICAgICAgICAgICAgICRjdHgucG9wVHJ5KCk7XG4gICAgICAgICAgICAgICRfX3BsYWNlaG9sZGVyX18wID0gJGN0eC5zdG9yZWRFeGNlcHRpb247Il19 |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
164346
630