renew-ip
Version:
A module for renewing 4G/LTE IP addresses on tethered Android phones from Node JS.
1 lines • 2.9 kB
Source Map (JSON)
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;;AAAA,sDAAqB;AACrB,6BAAyB;AAEzB,2CAAoE;AACpE,uCAAsD;AAEtD,mCAA+C;AAE/C;;;;;;GAMG;AACI,MAAM,gBAAgB,GAAG,KAAK,EACnC,OAAwB,EACxB,QAAgB,aAAG,CAAC,YAAY,EACjB,EAAE;IACjB,IAAI;QACF,kDAAkD;QAClD,aAAK,CAAC,uCAAuC,EAAE,OAAO,CAAC,CAAA;QACvD,MAAM,aAAG,CAAC,IAAI,CAAC,+BAAmB,EAAE;YAClC,IAAI,EAAE,+BAAqB,CAAC,KAAK,CAAC,OAAO,CAAC;SAC3C,CAAC,CAAA;KACH;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;KAC3B;IACD,qCAAqC;IACrC,MAAM,sBAAc,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC,CAAA;AAfY,QAAA,gBAAgB,oBAe5B;AAED;;;;;GAKG;AACI,MAAM,SAAS,GAAG,KAAK,EAAE,EAC9B,GAAG,EACH,MAAM,EACO,EAA2B,EAAE;IAC1C,MAAM,GAAG,GAAQ,IAAI,SAAG,CAAC,6BAAiB,CAAC,CAAA;IAC3C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IACvC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACnD,aAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IACpD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM,aAAG,CAAC,GAAG,CACvD,GAAG,CAAC,QAAQ,EAAE,EACd;QACE,YAAY,EAAE,MAAM;KACrB,CACF,CAAA;IACD,aAAK,CAAC,mBAAmB,CAAC,CAAA;IAC1B,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,CAAA;AACtD,CAAC,CAAA;AAhBY,QAAA,SAAS,aAgBrB","sourcesContent":["import got from \"got\"\nimport { URL } from \"url\"\n\nimport { AUTOMATE_SERVER_URL, IPDATA_SERVER_URL } from \"./constants\"\nimport { AutomatePayloadSchema, env } from \"./schemas\"\nimport { AutomatePayload, IpDataConfig, IpDataResponse } from \"./types\"\nimport { debug, waitForTimeout } from \"./utils\"\n\n/**\n * Sends a request to the Automate endpoint to execute the installed Flow.\n *\n * @param {AutomatePayload} payload\n * @param {number} delay\n * @return {Promise<void>}\n */\nexport const toggleFlightMode = async (\n payload: AutomatePayload,\n delay: number = env.TOGGLE_DELAY\n): Promise<void> => {\n try {\n // Post the toggle request to the Automate server.\n debug(`Dispatching payload to Automate app: `, payload)\n await got.post(AUTOMATE_SERVER_URL, {\n json: AutomatePayloadSchema.parse(payload)\n })\n } catch (err) {\n console.error(err.message)\n }\n // Give the device time to reconnect.\n await waitForTimeout(delay)\n}\n\n/**\n * Retrieves the IPData response from the api.\n *\n * @param {IpDataConfig} config\n * @return {Promise<IpDataResponse>}\n */\nexport const getIpData = async ({\n key,\n fields\n}: IpDataConfig): Promise<IpDataResponse> => {\n const url: URL = new URL(IPDATA_SERVER_URL)\n url.searchParams.append(\"api-key\", key)\n url.searchParams.append(\"fields\", fields.join(\",\"))\n debug(`Sending request to IPData: `, url.toString())\n const { body, statusCode, statusMessage } = await got.get<IpDataResponse>(\n url.toString(),\n {\n responseType: \"json\"\n }\n )\n debug(`Received payload!`)\n return { ...body, ...{ statusCode, statusMessage } }\n}\n"]}