{"version":3,"sources":["jsdelivr-header.js","/npm/ewelink-mqtt@0.7.0/main.mjs"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;ACLA,oBAEO,aAAc,mBACZ,cAAiB,gBAE1B,eAAe,OACb,MAAM,QAAgB,SAAS,SAEzB,EAAS,IAAI,UAAU,CAC3B,QAAS,EAAQ,OAAO,QACxB,SAAU,EAAQ,OAAO,SACzB,SAAU,EAAQ,OAAO,UAAY,EAAQ,OAAO,WAAa,KACjE,OAAQ,EAAQ,OAAO,QAAU,OAGnC,EAAO,WAAW,IAChB,MAAM,SAAE,EAAQ,OAAE,EAAM,OAAE,GAAW,EAErC,GAAK,GAAa,EASlB,EAAQ,KAAK,YAAY,IAAY,CAAE,SAAQ,WAC3C,EAAO,QACT,EAAQ,KAAK,YAAY,WAAmB,EAAO,QACnD,EAAQ,KAAK,YAAY,YAAmB,EAAO,WAEnD,QAAQ,KACN,gDACA,EACA,OAjBJ,CACE,GAAI,EAAI,OAEN,OAEF,QAAQ,KAAK,iCAAkC,EAEjD,CAYA,IAGF,EAAQ,GAAG,WAAW,MAAO,EAAO,KAClC,GAAK,EAAM,WAAW,UAKtB,IACE,MAAO,CAAE,CAAE,EAAU,GAAU,EAAM,MAAM,KAC3C,QAAQ,KAAK,mBAAmB,OAAc,MAAW,KAEzD,MAAM,QAUV,eAA4B,EAAU,EAAQ,GAC5C,OAAQ,GACN,IAAK,KACL,IAAK,MACL,IAAK,SACH,OAAO,EAAO,UAAU,EAAU,CAAE,OAAQ,IAC9C,IAAK,QACH,OAAO,EAAO,UAAU,EAAU,GACpC,QACE,QAAQ,KAAK,sBAAsB,KAEzC,CArByB,CAAa,EAAU,EAAQ,GACpD,QAAQ,IAAI,cAAe,EAC7B,CAAE,MAAO,GACP,QAAQ,MAAM,QAAS,EACzB,MAZE,QAAQ,IAAI,2BAA4B,EAY1C,UAGI,EAAO,OACb,EAAQ,UAAU,UAcpB,CAEA,OAAO,OAAO,IACZ,QAAQ,MAAM,EAAI,OAClB,QAAQ,KAAK,EAAE","file":"/npm/ewelink-mqtt@0.7.0/main.mjs","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/ewelink-mqtt@0.7.0/main.mjs\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","#!/usr/bin/env node\n\"use strict\";\n\nimport mqttusvc from \"mqtt-usvc\";\nimport { EweClient } from \"./ewelink.mjs\";\n\nasync function main() {\n  const service = await mqttusvc.create();\n\n  const client = new EweClient({\n    account: service.config.account,\n    password: service.config.password,\n    areaCode: service.config.areaCode || service.config.area_code || \"+1\",\n    region: service.config.region || \"us\",\n  });\n\n  client.onMessage((msg) => {\n    const { deviceid, action, params } = msg;\n\n    if (!deviceid || !params) {\n      if (msg.config) {\n        // heartbeat\n        return;\n      }\n      console.warn(\"Unsupported eWeLink message %j\", msg);\n      return;\n    }\n\n    service.send(`~/status/${deviceid}`, { action, params });\n    if (params.switch) {\n      service.send(`~/status/${deviceid}/switch`, params.switch);\n      service.send(`~/status/${deviceid}/switch/${params.switch}`);\n    } else {\n      console.warn(\n        \"Unexpected message params device=%s params=%j\",\n        deviceid,\n        params\n      );\n    }\n  });\n\n  service.on(\"message\", async (topic, data) => {\n    if (!topic.startsWith(\"~/set/\")) {\n      console.log(\"Unsupported MQTT message\", topic);\n      return;\n    }\n\n    try {\n      const [, , deviceId, action] = topic.split(\"/\");\n      console.info(`Setting device [${deviceId}] '${action}' ${data}`);\n\n      const status = await handleAction(deviceId, action, data);\n      console.log(\"Response %j\", status);\n    } catch (err) {\n      console.error(\"Error\", err);\n    }\n  });\n\n  await client.init();\n  service.subscribe(\"~/set/#\");\n\n  async function handleAction(deviceId, action, data) {\n    switch (action) {\n      case \"on\":\n      case \"off\":\n      case \"toggle\":\n        return client.lanSwitch(deviceId, { switch: action });\n      case \"power\":\n        return client.lanSwitch(deviceId, data);\n      default:\n        console.warn(`Unsupported action ${action}`);\n    }\n  }\n}\n\nmain().catch((err) => {\n  console.error(err.stack);\n  process.exit(1);\n});\n"]}