{"version":3,"file":"iot-connection.mjs","names":[],"sources":["../../listener/iot-connection.ts"],"sourcesContent":["import { fromNodeProviderChain } from '@aws-sdk/credential-providers';\nimport { device } from 'aws-iot-device-sdk';\n\nexport type fragment = { id: string; index: number; count: number; data: any };\n\nfunction createLog(debugMode: boolean) {\n  return (message: string, ...optionalParams: any[]) => {\n    if (debugMode) {\n      console.debug('SSPY', message, ...optionalParams);\n    }\n  };\n}\n\nfunction createErrorLog() {\n  return (message: string, ...optionalParams: any[]) => {\n    console.error('SSPY', message, ...optionalParams);\n  };\n}\n\nexport async function getConnection(\n  debugMode: boolean,\n  iotEndpoint: string\n): Promise<device> {\n  const log = createLog(debugMode);\n  const logError = createErrorLog();\n  log('Using IoT endpoint:', iotEndpoint);\n\n  if (!iotEndpoint) {\n    logError('No IoT endpoint could be found');\n    throw new Error('IoT Endpoint address not found');\n  }\n  const region = iotEndpoint.split('.')[2];\n\n  const provider = fromNodeProviderChain();\n  const credentials = await provider();\n  const connection = new device({\n    protocol: 'wss',\n    host: iotEndpoint,\n    region,\n    reconnectPeriod: 1,\n    accessKeyId: credentials.accessKeyId,\n    secretKey: credentials.secretAccessKey,\n    sessionToken: credentials.sessionToken,\n  });\n\n  connection.on('connect', () => {\n    log('IoT connected');\n  });\n\n  connection.on('error', (err) => {\n    logError('IoT error', err);\n  });\n\n  connection.on('close', () => {\n    log('IoT closed');\n  });\n\n  connection.on('reconnect', () => {\n    log('IoT reconnected');\n  });\n\n  return connection;\n}\n"],"mappings":";;;;;AAKA,SAAS,UAAU,WAAoB;AACrC,SAAQ,SAAiB,GAAG,mBAA0B;AACpD,MAAI,UACF,SAAQ,MAAM,QAAQ,SAAS,GAAG,eAAe;;;AAKvD,SAAS,iBAAiB;AACxB,SAAQ,SAAiB,GAAG,mBAA0B;AACpD,UAAQ,MAAM,QAAQ,SAAS,GAAG,eAAe;;;AAIrD,eAAsB,cACpB,WACA,aACiB;CACjB,MAAM,MAAM,UAAU,UAAU;CAChC,MAAM,WAAW,gBAAgB;AACjC,KAAI,uBAAuB,YAAY;AAEvC,KAAI,CAAC,aAAa;AAChB,WAAS,iCAAiC;AAC1C,QAAM,IAAI,MAAM,iCAAiC;;CAEnD,MAAM,SAAS,YAAY,MAAM,IAAI,CAAC;CAGtC,MAAM,cAAc,MADH,uBAAuB,EACJ;CACpC,MAAM,aAAa,IAAI,OAAO;EAC5B,UAAU;EACV,MAAM;EACN;EACA,iBAAiB;EACjB,aAAa,YAAY;EACzB,WAAW,YAAY;EACvB,cAAc,YAAY;EAC3B,CAAC;AAEF,YAAW,GAAG,iBAAiB;AAC7B,MAAI,gBAAgB;GACpB;AAEF,YAAW,GAAG,UAAU,QAAQ;AAC9B,WAAS,aAAa,IAAI;GAC1B;AAEF,YAAW,GAAG,eAAe;AAC3B,MAAI,aAAa;GACjB;AAEF,YAAW,GAAG,mBAAmB;AAC/B,MAAI,kBAAkB;GACtB;AAEF,QAAO"}