From ade89f1a3ab934cfd3b52b0461aec3bc29bf0fe1 Mon Sep 17 00:00:00 2001 From: neilwu Date: Wed, 15 Jul 2020 22:17:46 +0800 Subject: [PATCH] init --- LICENSE | 22 + README.md | 24 + doc/demo.png | Bin 0 -> 259290 bytes frida-agent/.gitignore | 2 + frida-agent/README.md | 19 + frida-agent/agent/HookAFServerTrust.ts | 32 + frida-agent/agent/HookAFSessionDelegate.ts | 57 + frida-agent/agent/HookDataTaskWithRequest.ts | 52 + frida-agent/agent/HookURL.ts | 64 + frida-agent/agent/SDNetDump.ts | 42 + frida-agent/agent/SDSwiftDataStorage.ts | 34 + frida-agent/agent/SDSwiftString.ts | 87 + frida-agent/agent/SwiftRuntime.ts | 42 + frida-agent/agent/Util.ts | 124 + frida-agent/agent/index.ts | 31 + frida-agent/agent/logger.ts | 23 + frida-agent/package-lock.json | 3523 ++++++++++++++++++ frida-agent/package.json | 17 + frida-agent/tsconfig.json | 10 + run.sh | 3 + 20 files changed, 4208 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 doc/demo.png create mode 100644 frida-agent/.gitignore create mode 100644 frida-agent/README.md create mode 100644 frida-agent/agent/HookAFServerTrust.ts create mode 100644 frida-agent/agent/HookAFSessionDelegate.ts create mode 100644 frida-agent/agent/HookDataTaskWithRequest.ts create mode 100644 frida-agent/agent/HookURL.ts create mode 100644 frida-agent/agent/SDNetDump.ts create mode 100644 frida-agent/agent/SDSwiftDataStorage.ts create mode 100644 frida-agent/agent/SDSwiftString.ts create mode 100644 frida-agent/agent/SwiftRuntime.ts create mode 100644 frida-agent/agent/Util.ts create mode 100644 frida-agent/agent/index.ts create mode 100644 frida-agent/agent/logger.ts create mode 100644 frida-agent/package-lock.json create mode 100644 frida-agent/package.json create mode 100644 frida-agent/tsconfig.json create mode 100755 run.sh diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..1158640 --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2020 neilwu (https://github.com/neil-wu) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..9194289 --- /dev/null +++ b/README.md @@ -0,0 +1,24 @@ +### FridaHookSwiftAlamofire + +A frida tool that capture GET/POST HTTP requests of iOS Swift library 'Alamofire' and disable SSL Pinning. + +### Features + +* Capture and print GET/POST HTTP requests in Alamofire +* Kill SSL Pinning in Alamofire +* Swift runtime interop in Frida (Support Swift Foundation URL/Data/String) +* Support Swift 5.* +* Demo code for calling swift runtime function `Foundation.Data._bridgeToObjectiveC()` + +![demo](./doc/demo.png) + + +#### Usage + +1. build frida-agent (npm install && npm run watch) +2. ./run.sh or frida -UF -l ./frida-agent/_agent.js + +#### License + +MIT + diff --git a/doc/demo.png b/doc/demo.png new file mode 100644 index 0000000000000000000000000000000000000000..ce4b14d142da4258739dd75c2bafe4d2280667a2 GIT binary patch literal 259290 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ÖRMW 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 ?)H7w7_44i#@R4C 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%0AO|132J7;Si;jv-S? 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 z%0A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

A#~TW)bL%Jn*hoN7+u&`#eo%u! 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 literal 0 HcmV?d00001 diff --git a/frida-agent/.gitignore b/frida-agent/.gitignore new file mode 100644 index 0000000..ac9e96c --- /dev/null +++ b/frida-agent/.gitignore @@ -0,0 +1,2 @@ +/_agent.js +/node_modules diff --git a/frida-agent/README.md b/frida-agent/README.md new file mode 100644 index 0000000..342cfd8 --- /dev/null +++ b/frida-agent/README.md @@ -0,0 +1,19 @@ +### How to compile & load + +```sh +$ git clone git://github.com/oleavr/frida-agent-example.git +$ cd frida-agent-example/ +$ npm install +$ frida -U -f com.example.android --no-pause -l _agent.js +``` + +### Development workflow + +To continuously recompile on change, keep this running in a terminal: + +```sh +$ npm run watch +``` + +And use an editor like Visual Studio Code for code completion and instant +type-checking feedback. diff --git a/frida-agent/agent/HookAFServerTrust.ts b/frida-agent/agent/HookAFServerTrust.ts new file mode 100644 index 0000000..5bf7230 --- /dev/null +++ b/frida-agent/agent/HookAFServerTrust.ts @@ -0,0 +1,32 @@ +import { log } from "./logger"; + +function attach() { + try { + // Disable Alamofire ServerTrust policy + // SessionDelegate func attemptServerTrustAuthentication(with challenge: URLAuthenticationChallenge) -> ChallengeEvaluation + // Alamofire.SessionDelegate.attemptServerTrustAuthentication(with: __C.NSURLAuthenticationChallenge) -> (disposition: __C.NSURLSessionAuthChallengeDisposition, credential: __C.NSURLCredential?, error: Alamofire.AFError?) + let func_attemptServerTrust = Module.getExportByName(null, '$s9Alamofire15SessionDelegateC32attemptServerTrustAuthentication4withSo36NSURLSessionAuthChallengeDispositionV11disposition_So15NSURLCredentialCSg10credentialAA7AFErrorOSg5errortSo019NSURLAuthenticationK0C_tF'); // remove prefix _ + log(`[HookAFServerTrust] hook func_attemptServerTrust ${func_attemptServerTrust}`); + Interceptor.attach(func_attemptServerTrust, { + onLeave(retval:InvocationReturnValue) { + // force set retval to 0x1 to enable .performDefaultHandling + + let val = retval.toInt32(); + if (val != 0x1) { + log(`[HookAFServerTrust] attemptServerTrustAuthentication retval ${retval}, reset to 0x1`); + let fakeret = new NativePointer(0x1) + retval.replace(fakeret) + } + } + }); + + } catch (e) { + log(`[HookAFServerTrust] fail to hook attemptServerTrustAuthentication !, ${e}`); + } +} + +export { + attach, +} + + diff --git a/frida-agent/agent/HookAFSessionDelegate.ts b/frida-agent/agent/HookAFSessionDelegate.ts new file mode 100644 index 0000000..ea17fde --- /dev/null +++ b/frida-agent/agent/HookAFSessionDelegate.ts @@ -0,0 +1,57 @@ +import { log } from "./logger"; +import { SDSwiftDataStorage } from "./SDSwiftDataStorage"; +import * as SDNetDump from "./SDNetDump"; +import * as SwiftRuntime from "./SwiftRuntime"; + +function enterFuncUrlSessionDidReceive(this: InvocationContext, args: InvocationArguments) { + // String is parsed by value + let ptr1 = args[0]; //NSURLSession + let ptr2 = args[1]; //NSURLSessionDataTask + let rangePtr = args[2]; + let dataStoragePtr = args[3]; // Foundation.__DataStorage <-> Swift.Data + + + const session = new ObjC.Object(ptr1); //NSURLSession + const sessionDataTask = new ObjC.Object(ptr2); //NSURLSessionDataTask + + const request = sessionDataTask.currentRequest(); //NSURLRequest + const dataLen = sessionDataTask.response().expectedContentLength() + //log(`1112-> ${request} > ${request.URL().absoluteString()}`) + + let output:string = SDNetDump.dumpRequest(request); + + + //log(`rangePtr = ${ rangePtr }, dataStoragePtr=${dataStoragePtr}`); + //log(`dataLen=${dataLen}`); + + let sdata = new SDSwiftDataStorage(dataStoragePtr); + //log(` ${ sdata.bytesPtr.readCString() }`); + + let sdataStr = sdata.bytesPtr.readCString(dataLen); // parse the response data, default as string + + output += "\n"; + output += SDNetDump.intent + `>>> ${sdataStr}`; + log(`${output}`) + + //---- + // you can also use the following function to print Data. + //SwiftRuntime.swiftDataBridgeToObjectiveCByPtr(rangePtr, dataStoragePtr); + +} + +function attach() { + try { + //Alamofire.SessionDelegate.urlSession(_: __C.NSURLSession, dataTask: __C.NSURLSessionDataTask, didReceive: Foundation.Data) -> () + const func_urlSessionDidReceive = Module.getExportByName(null, '$s9Alamofire15SessionDelegateC03urlB0_8dataTask10didReceiveySo12NSURLSessionC_So0i4DataF0C10Foundation0J0VtF'); + log(`[HookAFSessionDelegate] func_urlSession ${func_urlSessionDidReceive}`); + Interceptor.attach(func_urlSessionDidReceive, { onEnter: enterFuncUrlSessionDidReceive}); + } catch (e) { + log(`[HookAFSessionDelegate] fail to hook Alamofire.SessionDelegate !, ${e}`); + } + +} + +export { + attach, +} + diff --git a/frida-agent/agent/HookDataTaskWithRequest.ts b/frida-agent/agent/HookDataTaskWithRequest.ts new file mode 100644 index 0000000..83a45a0 --- /dev/null +++ b/frida-agent/agent/HookDataTaskWithRequest.ts @@ -0,0 +1,52 @@ +import { log } from "./logger"; +import * as Util from "./Util"; +import * as SDNetDump from "./SDNetDump"; + + + +function enterFuncDataTaskWithRequest(this: InvocationContext, args: InvocationArguments) { + //const ptr = args[0]; + const ptr2 = args[2]; + const rqst = new ObjC.Object(ptr2); // rqst=NSMutableURLRequest + let rqstDesc = SDNetDump.dumpRequest(rqst); + // https://github.com/theart42/hack.lu/blob/master/IOS/Notes/02-HTTPS/00-https-hooks.md + + let ptr3 = args[3]; + if (ptr3.toInt32() <= 0) { + var str:string = rqstDesc; + str += "\n"; + str += SDNetDump.intent + "(completionHandler empty)"; + log(`${str}`) + return; + } + + var completionHandler = new ObjC.Block(args[3]); + var origCompletionHandlerBlock = completionHandler.implementation; + + completionHandler.implementation = function(data, response, error){ + var str:string = rqstDesc; + str += "\n"; + str += SDNetDump.dumpRspWith(data, response, error); + log(`${rqstDesc}`); + return origCompletionHandlerBlock(data, response, error); + } +} + + +function attach() { + const hookDataTask = Util.getOCMethodName('NSURLSession', '- dataTaskWithRequest:completionHandler:'); + log(`hook NSURLSession ${hookDataTask.implementation}`); + + Interceptor.attach(hookDataTask.implementation, { + onEnter : enterFuncDataTaskWithRequest, + }); + +} + + + +export { + attach, +} + + diff --git a/frida-agent/agent/HookURL.ts b/frida-agent/agent/HookURL.ts new file mode 100644 index 0000000..143573f --- /dev/null +++ b/frida-agent/agent/HookURL.ts @@ -0,0 +1,64 @@ +import { log } from "./logger"; +import * as Util from "./Util"; +import {SDSwiftLargeString, SDSwiftSmallString} from "./SDSwiftString"; + +function isSmallString(abcdeeee: UInt64):boolean { + let abcd = abcdeeee.shr(4).and(0xF); + let isSmall = abcd.and(0x2).valueOf() > 0; + return isSmall; +} + +function enterFuncDataTaskWithRequest(this: InvocationContext, args: InvocationArguments) { + // String is parsed by value + let ptr1 = args[0]; + let ptr2 = args[1]; + + //log(`ptr ${ptr1}, ${ptr1.toString()}, ${ptr2.toString()} `); + + let ptr1hex = '0x' + ptr1.toString(16); + let ptr2hex = '0x' + ptr2.toString(16); + + let ptr1value = new UInt64(ptr1hex); + let ptr2value = new UInt64(ptr2hex); + let smallObject = ptr2value.and(0xFF); // the last byte + + // first, try parse smallstring + if (isSmallString(smallObject)) { + let smallStr = new SDSwiftSmallString(ptr1hex, ptr2hex); + log(`[Foundation.URL.init] a=${smallStr.desc()}`) + if (Util.isPrintableString(smallStr.strValue)) { //TODO: filter special char + log(`[Foundation.URL.init] ${smallStr.desc()}`) + return; + } + + } + + // Large String + const countAndFlagsBitsPtr = args[0]; // 8 bytes(_countAndFlagsBits) + const objectPtr = args[1]; // 8 bytes(_object) + + let countAndFlagsBits = new UInt64('0x' + countAndFlagsBitsPtr.toString(16)) + let object = new UInt64('0x' + objectPtr.toString(16)); + //log(`[Foundation.URL.init] arg ptr=${countAndFlagsBitsPtr} ,${objectPtr} -> ${objectPtr.toString(16)}`); + //log(`countAndFlagsBits=0x${countAndFlagsBits.toString(16) } , object=0x${object.toString(16) }`); + + let largeStr = new SDSwiftLargeString(countAndFlagsBits, object); + log(`[Foundation.URL.init] ${largeStr.desc()}`) +} + + +function attach() { + try { + // s10Foundation3URLV6stringACSgSSh_tcfC ---> Foundation.URL.init(string: __shared Swift.String) -> Foundation.URL? + let func_Foundation_URL_init = Module.getExportByName(null, '$s10Foundation3URLV6stringACSgSSh_tcfC'); // remove prefix _ + console.log('func_Foundation_URL_init', func_Foundation_URL_init) + Interceptor.attach(func_Foundation_URL_init, { onEnter: enterFuncDataTaskWithRequest }); + } catch (e) { + log(`[HookURL] fail to hook swift Foundation.URL.init !, ${e}`); + } +} + +export { + attach, +} + diff --git a/frida-agent/agent/SDNetDump.ts b/frida-agent/agent/SDNetDump.ts new file mode 100644 index 0000000..321189a --- /dev/null +++ b/frida-agent/agent/SDNetDump.ts @@ -0,0 +1,42 @@ +import {colorfulStr, LogColor} from "./logger" + +export const intent:string = " "; +export const newline:string = "\n"; + +function dumpRequest(rqst:ObjC.Object):string { + // rqst=NSMutableURLRequest + // https://developer.apple.com/documentation/foundation/nsmutableurlrequest?language=objc + let urlstr = rqst.URL().absoluteString(); + let method = rqst.HTTPMethod().toString(); // NSString + let bodyData = rqst.HTTPBody(); + let allHTTPHeaderFields = rqst.allHTTPHeaderFields().toString() as string; + + var str:string = ""; + let redMethod = colorfulStr(`[${method}]`, LogColor.Red); + str += `${redMethod} ${urlstr}`; + if (allHTTPHeaderFields && allHTTPHeaderFields.length > 0) { + str += newline; + str += intent + `[Header] ${allHTTPHeaderFields.replace(newline, "")}`; + } + // NSData to NSString + if (bodyData) { + var bodydataStr = ObjC.classes.NSString.alloc().initWithData_encoding_(bodyData, 4); + str += newline; + str += intent + "[Body] " + bodydataStr; + } + return str; +} + +function dumpRspWith(data:any, response:any, error:any):string { + let rsp = new ObjC.Object(response); + var dataNSString = ObjC.classes.NSString.alloc().initWithData_encoding_(data, 4); + + let str = intent + `>>> ${dataNSString}`; + return str; +} + +export { + dumpRequest, + dumpRspWith, +} + diff --git a/frida-agent/agent/SDSwiftDataStorage.ts b/frida-agent/agent/SDSwiftDataStorage.ts new file mode 100644 index 0000000..2e32650 --- /dev/null +++ b/frida-agent/agent/SDSwiftDataStorage.ts @@ -0,0 +1,34 @@ + +export class SDSwiftDataStorage { + // https://github.com/apple/swift-corelibs-foundation/blob/60fb6984c95b989bb25b3af26accd3a2dc2e2240/Sources/Foundation/Data.swift#L82 + // Swift DataStorage is a class type. + // Foundation.__DataStorage + // https://github.com/TannerJin/Swift-MemoryLayout/blob/master/Swift/Class.swift + __dataStoragePtr: NativePointer; + bytesPtr: NativePointer + length: UInt64 + capacity: UInt64 + + constructor(ptr: NativePointer) { + /* + ----Swift Class Memory Layout---- + var isa: objc_class* (8 bytes) + var refCount: UInt64 (8 bytes) + [properties] + */ + this.__dataStoragePtr = ptr; + + let tmpptr = ptr.add(8 + 8); + this.bytesPtr = new NativePointer( tmpptr.readU64() ); + + tmpptr = tmpptr.add(8); + this.length = tmpptr.readU64(); + + tmpptr = tmpptr.add(8); + this.capacity = tmpptr.readU64(); + } + + desc():string { + return ``; + } +} diff --git a/frida-agent/agent/SDSwiftString.ts b/frida-agent/agent/SDSwiftString.ts new file mode 100644 index 0000000..73316f2 --- /dev/null +++ b/frida-agent/agent/SDSwiftString.ts @@ -0,0 +1,87 @@ + +import * as Util from "./Util"; + +class SDSwiftLargeString { + // https://github.com/TannerJin/Swift-MemoryLayout/blob/master/SwiftCore/String.swift + + _countAndFlagsBits: UInt64 + _object: UInt64 + + isASCII: boolean + isNFC: boolean + isNativelyStored: boolean + isTailAllocated: boolean + + count: number + strValue: string + + constructor(inCountAndFlag: UInt64, inObject: UInt64) { + this._countAndFlagsBits = inCountAndFlag; + this._object = inObject; + + // 1. parse _countAndFlagsBits + let abcd = inCountAndFlag.shr(48).shr(12).and(0xF); // 16bits, 2bytes + this.isASCII = abcd.and(0x8).valueOf() > 0; + this.isNFC = abcd.and(0x4).valueOf() > 0; + this.isNativelyStored = abcd.and(0x2).valueOf() > 0; + this.isTailAllocated = abcd.and(0x1).valueOf() > 0; + + this.count = inCountAndFlag.and( 0xFFFFFFFFFFFF ).valueOf(); // 48bits,6bytes + + // 2. parse _object + let objectFlag = inObject.shr(56).and(0xFF); // abcdeeee + let tmpaddr = inObject.and('0xFFFFFFFFFFFFFF').toString(16); + //console.log('tmpaddr', tmpaddr, inObject, inObject.and( '0xFFFFFFFFFFFFFF' )) + let strAddress = new UInt64('0x' + tmpaddr) ; // low 56 bits + + let strPtr = new NativePointer(strAddress); + let cstrPtr = strPtr.add(32); + this.strValue = cstrPtr.readCString() ?? ""; + //console.log('str', this.strValue) + //console.log(hexdump(cstrPtr.readByteArray(32) as ArrayBuffer, { ansi: true })); + } + + desc():string { + return ``; + } +} + +class SDSwiftSmallString { + strValue: string + count:number + isHex:boolean + constructor(h1: string, h2: string) { + // small string max 15 bytes + let h1Array = Util.hexStrToUIntArray(h1).reverse(); + let h2Array = Util.hexStrToUIntArray(h2).reverse(); + //console.log('h1array', h1, h1Array) + //console.log('h2array', h2, h2Array) + function isValidChar(element:number, index:number, array:number[]) { + return (element > 0); + } + let dataArr = h1Array.concat(h2Array).slice(0, 15); + + let data = dataArr.filter(isValidChar); + let str = String.fromCharCode.apply(null, data); + if (Util.isPrintableString(str)) { + this.strValue = str; + this.count = str.length; + this.isHex = false; + } else { + this.strValue = Util.uintArrayToHexStr(dataArr) + this.count = dataArr.length; + this.isHex = true; + } + + } + + desc():string { + let hexTip = this.isHex ? "hex" : "str"; + return ``; + } +} + +export { + SDSwiftSmallString, + SDSwiftLargeString, +} diff --git a/frida-agent/agent/SwiftRuntime.ts b/frida-agent/agent/SwiftRuntime.ts new file mode 100644 index 0000000..3e54f80 --- /dev/null +++ b/frida-agent/agent/SwiftRuntime.ts @@ -0,0 +1,42 @@ +import { log } from "./logger"; +import { SDSwiftDataStorage } from "./SDSwiftDataStorage"; + +let funcptr_data_bridgeToObjectiveC:NativeFunction + +// bridge Swift DataStorage to __NSSwiftData: NSData +function swiftDataBridgeToObjectiveC(dataStorage: SDSwiftDataStorage):ObjC.Object { + let dataLen = dataStorage.length; + let rangeValue = dataLen.shl(32); // 0.. __C.NSData + // arg + // return: __NSSwiftData: NSData // https://github.com/apple/swift-corelibs-foundation/blob/60fb6984c95b989bb25b3af26accd3a2dc2e2240/Sources/Foundation/Data.swift#L561 + + const func_data2nsdata_ptr = Module.getExportByName(null, '$s10Foundation4DataV19_bridgeToObjectiveCSo6NSDataCyF'); + log(`[SwiftRuntime] func_data2nsdata_ptr ${func_data2nsdata_ptr}`); + funcptr_data_bridgeToObjectiveC = new NativeFunction(func_data2nsdata_ptr,'pointer', ['pointer', 'pointer']); + log(`[SwiftRuntime] funcptr_data_bridgeToObjectiveC ${funcptr_data_bridgeToObjectiveC}`); +} + +export { + attach, + swiftDataBridgeToObjectiveC, + swiftDataBridgeToObjectiveCByPtr, +} + diff --git a/frida-agent/agent/Util.ts b/frida-agent/agent/Util.ts new file mode 100644 index 0000000..12feb59 --- /dev/null +++ b/frida-agent/agent/Util.ts @@ -0,0 +1,124 @@ + +function isPrintableChar(val:number):boolean { + // [A-Za-z0-9_$ ] + //0-9 0x30-0x39 + //A-Z 0x41-0x5a + //a-z 97-122 + //0x5f 0x24 0x20 + let isNumber:boolean = (val >= 0x30 && val <= 0x39); + let isUpper:boolean = (val >= 0x41 && val <= 0x5a); + let isLower:boolean = (val >= 0x61 && val <= 0x7a); + let isSpecial:boolean = (val == 0x5f) || (val == 0x24) || (val == 0x20); + return isNumber || isUpper || isLower || isSpecial; +} + +function isPrintableString(str:string):boolean { + for(var i = 0; i < str.length; i++) { + let val = str.charCodeAt(i); + if (!isPrintableChar(val)) { + return false; + } + } + return true; +} + + +function hexString(str:string):string { + var ret:string = "0x"; + for(var i = 0; i < str.length; i++) { + let val = str.charCodeAt(i); + var valstr = val.toString(16); + if (valstr.length == 1) { + valstr = '0' + valstr; + } + ret = ret + valstr; + } + return ret; +} + +function readUCharHexString(ptr: NativePointer, maxlen:number = 128):string { + var idx:number = 0; + var hexStr: string = ""; + while (true) { + let val = ptr.add(idx).readU8() + if (val == 0) { + break; + } + var valstr = val.toString(16); + if (valstr.length == 1) { + valstr = '0' + valstr; + } + hexStr += valstr; + idx++; + if (idx >= maxlen) { + break; + } + } + + if (hexStr.length > 0) { + hexStr = "0x" + hexStr; + } + + return hexStr; +} + +function swapInt16(val: number) { + return ((val & 0xff) << 8) | ((val >> 8) & 0xff); +} + +function swapInt32(val: number) { + return ( + ((val & 0xff) << 24) | + ((val & 0xff00) << 8) | + ((val & 0xff0000) >> 8) | + ((val >> 24) & 0xff) + ); +} + +function hexStrToUIntArray(inputStr:string):number[] { + var str:string = inputStr + if (str.startsWith('0x')) { + str = str.substr(2); + } + var hex = str.toString(); + var result:number[] = []; + for (var n = 0; n < hex.length; n += 2) { + result.push(parseInt(hex.substr(n, 2), 16)); + } + return result; +} + +function uintArrayToHexStr(array: number[]):string { + var str:string = ""; + + for (var n = 0; n < array.length; n += 1) { + let val = array[n]; + var valstr = array[n].toString(16); + if (valstr.length == 1) { + valstr = '0' + valstr; + } + str += valstr; + } + if (str.length > 0) { + str = "0x" + str; + } + return str; +} + +function getOCMethodName(className:string, funcName: string):any { + var hook = eval('ObjC.classes.' + className + '["' + funcName + '"]'); + return hook +} + +export { + isPrintableChar, + isPrintableString, + hexString, + swapInt16, + swapInt32, + readUCharHexString, + hexStrToUIntArray, + uintArrayToHexStr, + getOCMethodName, +} + diff --git a/frida-agent/agent/index.ts b/frida-agent/agent/index.ts new file mode 100644 index 0000000..55ada61 --- /dev/null +++ b/frida-agent/agent/index.ts @@ -0,0 +1,31 @@ +import { log } from "./logger"; +//import * as Util from "./Util"; +//import {SDSwiftLargeString, SDSwiftSmallString} from "./SDSwiftString"; +//import {SDSwiftDataStorage} from "./SDSwiftDataStorage"; +import * as HookURL from "./HookURL"; +import * as HookDataTaskWithRequest from "./HookDataTaskWithRequest"; +import * as HookAFSessionDelegate from "./HookAFSessionDelegate"; +import * as HookAFServerTrust from "./HookAFServerTrust"; +import * as SwiftRuntime from "./SwiftRuntime"; + +log("\n--- loaded --->"); + +function hasAlamofireModule():boolean { + let exePath = ObjC.classes.NSBundle.mainBundle().executablePath() as string; + let modules = Process.enumerateModules(); + for (var i = 0; i < modules.length; i++) { + let oneModule = modules[i]; + if (oneModule.path.endsWith('Alamofire')) { + return true; + } + } + return false; +} + +log(`hasAlamofireModule ${hasAlamofireModule()}`); + +SwiftRuntime.attach(); +HookURL.attach(); +HookDataTaskWithRequest.attach(); +HookAFSessionDelegate.attach(); +HookAFServerTrust.attach(); diff --git a/frida-agent/agent/logger.ts b/frida-agent/agent/logger.ts new file mode 100644 index 0000000..5ddbe60 --- /dev/null +++ b/frida-agent/agent/logger.ts @@ -0,0 +1,23 @@ +export function log(message: string): void { + console.log(message); +} + +export enum LogColor { + RESET = "\x1b[39;49;00m", + Black = "0;01", Blue = "4;01", Cyan = "6;01", Gray = "7;11", Green = "2;01", Purple = "5;01", Red = "1;01", Yellow = "3;01", + /*Light: { + Black: "0;11", Blue: "4;11", Cyan: "6;11", Gray: "7;01", Green: "2;11", Purple: "5;11", Red: "1;11", Yellow: "3;11" + }*/ +} + + +export function colorfulStr(input: string, color: LogColor ): string { + let colorPrefix = '\x1b[3'; + let colorSuffix = 'm'; + + let str = colorPrefix + color + colorSuffix + input + LogColor.RESET; + return str; +} + + + diff --git a/frida-agent/package-lock.json b/frida-agent/package-lock.json new file mode 100644 index 0000000..2f5d4c5 --- /dev/null +++ b/frida-agent/package-lock.json @@ -0,0 +1,3523 @@ +{ + "name": "frida-agent-example", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.4.tgz", + "integrity": "sha512-t+rjExOrSVvjQQXNp5zAIYDp00KjdvGl/TpDX5REPr0S9IAIPQMTilcfG6q8c0QFmj9lSTVySV2VTsyggvtNIw==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "semver": "^5.5.0" + } + }, + "@babel/core": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.4.tgz", + "integrity": "sha512-3A0tS0HWpy4XujGc7QtOIHTeNwUgWaZc/WuS5YQrfhU67jnVmsD6OGPc1AKHH0LJHQICGncy3+YUjIhVlfDdcA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.4.tgz", + "integrity": "sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", + "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.10.4", + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.4.tgz", + "integrity": "sha512-9raUiOsXPxzzLjCXeosApJItoMnX3uyT4QdM2UldffuGApNrF8e938MwNpDCK9CPoyxrEoCgT+hObJc3mZa6lQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", + "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.0" + } + }, + "@babel/helper-define-map": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.4.tgz", + "integrity": "sha512-nIij0oKErfCnLUCWaCaHW0Bmtl2RO9cN7+u2QT8yqTywgALKlyUVOvHDElh+b5DwVC6YB1FOYFOTWcN/+41EDA==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.4", + "lodash": "^4.17.13" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz", + "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==", + "dev": true, + "requires": { + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.4.tgz", + "integrity": "sha512-m5j85pK/KZhuSdM/8cHUABQTAslV47OjfIB9Cc7P+PvlAoBzdb79BGNfw8RhT5Mq3p+xGd0ZfAKixbrUZx0C7A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.4.tgz", + "integrity": "sha512-Er2FQX0oa3nV7eM1o0tNCTx7izmQtwAQsIiaLRWtavAAEcskb0XJ5OjJbVrYXWOTr8om921Scabn4/tzlx7j1Q==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4", + "lodash": "^4.17.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.4.tgz", + "integrity": "sha512-inWpnHGgtg5NOF0eyHlC0/74/VkdRITY9dtTpB2PrxKKn+AkVMRiZz/Adrx+Ssg+MLDesi2zohBW6MVq6b4pOQ==", + "dev": true, + "requires": { + "lodash": "^4.17.13" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz", + "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", + "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", + "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helpers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", + "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz", + "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.4.tgz", + "integrity": "sha512-MJbxGSmejEFVOANAezdO39SObkURO5o/8b6fSH6D1pi9RZQt+ldppKPXfqgUWpSQ9asM6xaSaSJIaeWMDRP0Zg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", + "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", + "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", + "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", + "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", + "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz", + "integrity": "sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.10.4" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", + "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz", + "integrity": "sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", + "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", + "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", + "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", + "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", + "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", + "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", + "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.4.tgz", + "integrity": "sha512-J3b5CluMg3hPUii2onJDRiaVbPtKFPLEaV5dOPY5OeAbDi1iU/UbbFFTgwb7WnanaDy7bjU35kc26W3eM5Qa0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "lodash": "^4.17.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", + "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", + "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", + "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", + "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", + "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", + "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", + "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", + "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", + "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", + "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.4.tgz", + "integrity": "sha512-3Fw+H3WLUrTlzi3zMiZWp3AR4xadAEMv6XRCYnd5jAlLM61Rn+CRJaZMaNvIpcJpQ3vs1kyifYvEVPFfoSkKOA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", + "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.4.tgz", + "integrity": "sha512-Tb28LlfxrTiOTGtZFsvkjpyjCl9IoaRI52AEU/VIwOwvDQWtbNJsAqTXzh+5R7i74e/OZHH2c2w2fsOqAfnQYQ==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", + "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", + "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", + "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", + "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.4.tgz", + "integrity": "sha512-RurVtZ/D5nYfEg0iVERXYKEgDFeesHrHfx8RT05Sq57ucj2eOYAP6eu5fynL4Adju4I/mP/I6SO0DqNWAXjfLQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", + "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", + "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", + "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.10.4.tgz", + "integrity": "sha512-8ULlGv8p+Vuxu+kz2Y1dk6MYS2b/Dki+NO6/0ZlfSj5tMalfDL7jI/o/2a+rrWLqSXvnadEqc2WguB4gdQIxZw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", + "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz", + "integrity": "sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", + "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.4.tgz", + "integrity": "sha512-4NErciJkAYe+xI5cqfS8pV/0ntlY5N5Ske/4ImxAVX7mk9Rxt2bwDTGv1Msc2BRJvWQcmYEC+yoMLdX22aE4VQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", + "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", + "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", + "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/preset-env": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.4.tgz", + "integrity": "sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.10.4", + "@babel/helper-compilation-targets": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-proposal-async-generator-functions": "^7.10.4", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-dynamic-import": "^7.10.4", + "@babel/plugin-proposal-json-strings": "^7.10.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", + "@babel/plugin-proposal-numeric-separator": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.10.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", + "@babel/plugin-proposal-optional-chaining": "^7.10.4", + "@babel/plugin-proposal-private-methods": "^7.10.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.10.4", + "@babel/plugin-transform-arrow-functions": "^7.10.4", + "@babel/plugin-transform-async-to-generator": "^7.10.4", + "@babel/plugin-transform-block-scoped-functions": "^7.10.4", + "@babel/plugin-transform-block-scoping": "^7.10.4", + "@babel/plugin-transform-classes": "^7.10.4", + "@babel/plugin-transform-computed-properties": "^7.10.4", + "@babel/plugin-transform-destructuring": "^7.10.4", + "@babel/plugin-transform-dotall-regex": "^7.10.4", + "@babel/plugin-transform-duplicate-keys": "^7.10.4", + "@babel/plugin-transform-exponentiation-operator": "^7.10.4", + "@babel/plugin-transform-for-of": "^7.10.4", + "@babel/plugin-transform-function-name": "^7.10.4", + "@babel/plugin-transform-literals": "^7.10.4", + "@babel/plugin-transform-member-expression-literals": "^7.10.4", + "@babel/plugin-transform-modules-amd": "^7.10.4", + "@babel/plugin-transform-modules-commonjs": "^7.10.4", + "@babel/plugin-transform-modules-systemjs": "^7.10.4", + "@babel/plugin-transform-modules-umd": "^7.10.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", + "@babel/plugin-transform-new-target": "^7.10.4", + "@babel/plugin-transform-object-super": "^7.10.4", + "@babel/plugin-transform-parameters": "^7.10.4", + "@babel/plugin-transform-property-literals": "^7.10.4", + "@babel/plugin-transform-regenerator": "^7.10.4", + "@babel/plugin-transform-reserved-words": "^7.10.4", + "@babel/plugin-transform-shorthand-properties": "^7.10.4", + "@babel/plugin-transform-spread": "^7.10.4", + "@babel/plugin-transform-sticky-regex": "^7.10.4", + "@babel/plugin-transform-template-literals": "^7.10.4", + "@babel/plugin-transform-typeof-symbol": "^7.10.4", + "@babel/plugin-transform-unicode-escapes": "^7.10.4", + "@babel/plugin-transform-unicode-regex": "^7.10.4", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.10.4", + "browserslist": "^4.12.0", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", + "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", + "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs2": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.10.4.tgz", + "integrity": "sha512-9sArmpZDQsnR1yyAcU51DxQrntWxt0LUKjPp3pIyo7kVLfaqKt8muppcT87QmFkXV5H50qXAF8JWOjk0jaXRYA==", + "dev": true, + "requires": { + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.4.tgz", + "integrity": "sha512-aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", + "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "@frida/uglifyify": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@frida/uglifyify/-/uglifyify-6.0.1.tgz", + "integrity": "sha512-a56tMNgOzOP4oMAQaAnnydA7sh5Yv1FXOhJz4JHG68wztn1rDMuKTqvQ3akij5ZeTeGHkxKeyvoW9hjvXBG0+w==", + "dev": true, + "requires": { + "convert-source-map": "^1.6.0", + "minimatch": "^3.0.4", + "terser": "^3.17.0", + "through": "^2.3.8" + } + }, + "@types/frida-gum": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@types/frida-gum/-/frida-gum-16.0.0.tgz", + "integrity": "sha512-YLWlPJbdUqB0xSmZoAChHns+oiQ6Mebg8u1xGjXlhbPIsEE2F8I5VAqZfb5bo/uIPWZ1AXNWf0Uz+z9GDFF+Hg==", + "dev": true + }, + "@types/node": { + "version": "14.0.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.14.tgz", + "integrity": "sha512-syUgf67ZQpaJj01/tRTknkMNoBBLWJOBODF0Zm4NrXmiSuxjymFrxnTu1QVYRubhVkRcZLYZG8STTwJRdVm/WQ==", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "acorn": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", + "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", + "dev": true + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-import-to-require": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-import-to-require/-/babel-plugin-import-to-require-1.0.0.tgz", + "integrity": "sha512-dc843CwrFivjO8AVgxcHvxl0cb7J7Ed8ZGFP8+PjH3X1CnyzYtAU1WL1349m9Wc/+oqk4ETx2+cIEO2jlp3XyQ==", + "dev": true, + "requires": { + "babel-template": "^6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + }, + "dependencies": { + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + }, + "babelify": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz", + "integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==", + "dev": true + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", + "dev": true + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true + }, + "bn.js": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", + "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, + "browserify": { + "version": "16.5.1", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.1.tgz", + "integrity": "sha512-EQX0h59Pp+0GtSRb5rL6OTfrttlzv+uyaUVlK6GX3w11SQ0jKPKyjC/54RhPR2ib2KmfcELM06e8FxcI5XNU2A==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^1.11.0", + "browserify-zlib": "~0.2.0", + "buffer": "~5.2.1", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.0", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^2.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "labeled-stream-splicer": "^2.0.0", + "mkdirp-classic": "^0.5.2", + "module-deps": "^6.0.0", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "~0.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.0.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "browserify-sign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", + "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.2", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.2.tgz", + "integrity": "sha512-MfZaeYqR8StRZdstAK9hCKDd2StvePCYp5rHzQCPicUjfFliDgmuaBNPHYUTpAywBN8+Wc/d7NYVFkO0aqaBUw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001088", + "electron-to-chromium": "^1.3.483", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" + } + }, + "buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "cached-path-relative": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", + "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001093", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001093.tgz", + "integrity": "sha512-0+ODNoOjtWD5eS9aaIpf4K0gQqZfILNY4WSNuYzeT1sXni+lMrrVjc0odEobJt6wrODofDZUX8XYi/5y7+xl8g==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz", + "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "dev": true, + "requires": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + }, + "dependencies": { + "convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", + "dev": true + } + } + }, + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", + "dev": true + }, + "core-js-compat": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", + "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", + "dev": true, + "requires": { + "browserslist": "^4.8.5", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "deps-sort": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", + "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "shasum-object": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "dev": true, + "requires": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + } + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "electron-to-chromium": { + "version": "1.3.483", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.483.tgz", + "integrity": "sha512-+05RF8S9rk8S0G8eBCqBRBaRq7+UN3lDs2DAvnG8SBSgQO3hjy0+qt4CmRk5eiuGbTcaicgXfPmBi31a+BD3lg==", + "dev": true + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escalade": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.1.tgz", + "integrity": "sha512-DR6NO3h9niOT+MZs7bjxlj2a1k+POu5RN8CLTPX2+i78bRi9eLe7+0zXgUHMnGXWybYcL61E9hGhPKqedy8tQA==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esmify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/esmify/-/esmify-2.1.1.tgz", + "integrity": "sha512-GyOVgjG7sNyYB5Mbo15Ll4aGrcXZzZ3LI22rbLOjCI7L/wYelzQpBHRZkZkqbPNZ/QIRilcaHqzgNCLcEsi1lQ==", + "dev": true, + "requires": { + "@babel/core": "^7.2.2", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "babel-plugin-import-to-require": "^1.0.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "^1.6.2", + "duplexer2": "^0.1.4", + "through2": "^2.0.5" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "events": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", + "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "frida-any-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/frida-any-promise/-/frida-any-promise-2.0.0.tgz", + "integrity": "sha512-UbQZMmq7JybTSLBBhsoBfR6R0ydi4t7l0D9ttD4MGUKOxrNlUzCJEw0vw+ubSLok9MNXTZ63MBrPUNJRKhAnrg==", + "dev": true + }, + "frida-buffer": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/frida-buffer/-/frida-buffer-1.0.7.tgz", + "integrity": "sha512-7/7SuGI411k7JuQPIjETS07oa9h95E39kA8ky3/8D2ybL7XhVR1s6LPo/q8ew6zeWYQ1x52ZHhJGyoOAfWUJBA==", + "dev": true, + "requires": { + "buffer": "^5.3.0" + }, + "dependencies": { + "buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + } + } + }, + "frida-compile": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/frida-compile/-/frida-compile-9.3.0.tgz", + "integrity": "sha512-CTYqztKhJ0MRXZCjXxORRQao24wjYJ2cX6Mi4OmJvA4b2Vwyt57Je45aJsZhaLs0I1kndyo28Ikr3gHlemN2kw==", + "dev": true, + "requires": { + "@babel/core": "^7.5.5", + "@babel/plugin-transform-runtime": "^7.5.5", + "@babel/preset-env": "^7.5.5", + "@babel/runtime-corejs2": "^7.5.5", + "@frida/uglifyify": "^6.0.1", + "babelify": "^10.0.0", + "bignumber.js": "^9.0.0", + "browserify": "^16.2.3", + "chalk": "^2.4.1", + "chokidar": "^3.0.0", + "commander": "^3.0.0", + "concat-stream": "^2.0.0", + "esmify": "^2.1.1", + "frida-any-promise": "^2.0.0", + "frida-buffer": "^1.0.7", + "frida-fs": "^3.0.0", + "frida-http": "^3.0.0", + "frida-net": "^3.0.1", + "frida-process": "^3.0.1", + "mkdirp": "^0.5.1", + "mold-source-map": "^0.4.0", + "node-notifier": "^5.1.2", + "through2": "^3.0.1", + "tsify": "^4.0.0", + "typescript": "^3.5.1" + } + }, + "frida-fs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/frida-fs/-/frida-fs-3.0.1.tgz", + "integrity": "sha512-lbf3CYySo6jNw82EUAWYe31f1wbgIARdnzHDIdDrrxowBS19xvrZSYMYHqw2iJWkTOzJ4ueoF6WGF85QtCsM4g==", + "dev": true + }, + "frida-http": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/frida-http/-/frida-http-3.0.0.tgz", + "integrity": "sha512-3jyuQx6vEMcmbnmSR4QzzdcLERhrjR90Gjg/wtYD7wUxZMwMxasfFeqmcLQ+exLNTwD+dI9HquGByuSn3h+9rw==", + "dev": true, + "requires": { + "http-parser-js": "^0.5.1" + } + }, + "frida-net": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/frida-net/-/frida-net-3.0.1.tgz", + "integrity": "sha512-N4wu2120FZQC9YZsKWoGnfGlSwVPI9VcQW48kYccuYKhXfMWTnKnDZRA3MJ7sxMMX4zrOkihe9vtHw1aoBCqAg==", + "dev": true, + "requires": { + "ipaddr.js": "^1.9.1" + } + }, + "frida-process": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/frida-process/-/frida-process-3.0.1.tgz", + "integrity": "sha512-TigqmU3Y4XNkJi1bYIC6lT3dUSVRMzyjguIvlHs8XH9+39ykRztgoARJd6vH2+n58OeQFs03MlQiW/KI5q6jVQ==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true + }, + "get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", + "dev": true + }, + "http-parser-js": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz", + "integrity": "sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==", + "dev": true + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "dev": true, + "requires": { + "source-map": "~0.5.3" + } + }, + "insert-module-globals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", + "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.0.0" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-stable-stringify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", + "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", + "dev": true, + "requires": { + "jsonify": "~0.0.0" + } + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "labeled-stream-splicer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", + "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "stream-splicer": "^2.0.0" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "module-deps": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.2.tgz", + "integrity": "sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "browser-resolve": "^1.7.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.2.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "mold-source-map": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/mold-source-map/-/mold-source-map-0.4.0.tgz", + "integrity": "sha1-z2fgsxxHq5uttcnCVlGGISe7gxc=", + "dev": true, + "requires": { + "convert-source-map": "^1.1.0", + "through": "~2.2.7" + }, + "dependencies": { + "through": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/through/-/through-2.2.7.tgz", + "integrity": "sha1-bo4hIAGR1OtqmfbwEN9Gqhxusr0=", + "dev": true + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node-notifier": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz", + "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==", + "dev": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^1.1.0", + "semver": "^5.5.0", + "shellwords": "^0.1.1", + "which": "^1.3.0" + } + }, + "node-releases": { + "version": "1.1.58", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz", + "integrity": "sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "dev": true, + "requires": { + "path-platform": "~0.11.15" + } + }, + "parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", + "dev": true + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regenerate": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", + "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexpu-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shasum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", + "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", + "dev": true, + "requires": { + "json-stable-stringify": "~0.0.0", + "sha.js": "~2.4.4" + } + }, + "shasum-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", + "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", + "dev": true, + "requires": { + "fast-safe-stringify": "^2.0.7" + } + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "dev": true + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, + "simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "requires": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "stream-http": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", + "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "stream-splicer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", + "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "dev": true, + "requires": { + "minimist": "^1.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "dev": true, + "requires": { + "acorn-node": "^1.2.0" + } + }, + "terser": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz", + "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==", + "dev": true, + "requires": { + "commander": "^2.19.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.10" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + }, + "timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "dev": true, + "requires": { + "process": "~0.11.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tsconfig": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-5.0.3.tgz", + "integrity": "sha1-X0J45wGACWeo/Dg/0ZZIh48qbjo=", + "dev": true, + "requires": { + "any-promise": "^1.3.0", + "parse-json": "^2.2.0", + "strip-bom": "^2.0.0", + "strip-json-comments": "^2.0.0" + } + }, + "tsify": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/tsify/-/tsify-4.0.2.tgz", + "integrity": "sha512-XZ4jziRS8SBnoSnp1QOtASxjqhvOSfXhO8cD5WPBpXD6UKDCMQ/n7L1cr+Wlb5htIZJuvfhfxely+HODsVRWLA==", + "dev": true, + "requires": { + "convert-source-map": "^1.1.0", + "fs.realpath": "^1.0.0", + "object-assign": "^4.1.0", + "semver": "^6.1.0", + "through2": "^2.0.0", + "tsconfig": "^5.0.3" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typescript": { + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.6.tgz", + "integrity": "sha512-Pspx3oKAPJtjNwE92YS05HQoY7z2SFyOpHo9MqJor3BXAGNaPUs83CuVp9VISFkSjyRfiTpmKuAYGJB7S7hOxw==", + "dev": true + }, + "umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", + "dev": true + }, + "undeclared-identifiers": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", + "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", + "dev": true, + "requires": { + "acorn-node": "^1.3.0", + "dash-ast": "^1.0.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + } + } +} diff --git a/frida-agent/package.json b/frida-agent/package.json new file mode 100644 index 0000000..57b9ed3 --- /dev/null +++ b/frida-agent/package.json @@ -0,0 +1,17 @@ +{ + "name": "frida-agent-example", + "version": "1.0.0", + "description": "Example Frida agent written in TypeScript", + "private": true, + "main": "agent/index.ts", + "scripts": { + "prepare": "npm run build", + "build": "frida-compile agent/index.ts -o _agent.js", + "watch": "frida-compile agent/index.ts -o _agent.js -w" + }, + "devDependencies": { + "@types/frida-gum": "^16.0.0", + "@types/node": "^14.0.14", + "frida-compile": "^9.3.0" + } +} diff --git a/frida-agent/tsconfig.json b/frida-agent/tsconfig.json new file mode 100644 index 0000000..3ffd6d1 --- /dev/null +++ b/frida-agent/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "target": "esnext", + "lib": ["esnext"], + "allowJs": true, + "noEmit": true, + "strict": true, + "esModuleInterop": true + } +} diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..2eee337 --- /dev/null +++ b/run.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +frida -UF -l ./frida-agent/_agent.js