{"version":3,"sources":["jsdelivr-header.js","/npm/onesignal@0.1.2/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,wCCAA,IAAI,EAAU,EASd,SAAS,EAAU,EAAQ,EAAO,GAWhC,MAAM,EAAU,EAMV,EAAS,EAMT,EAAU,EAWhB,SAAS,EAAe,EAAO,EAAU,EAAM,EAAQ,GAErD,GAAI,EACF,OAAO,EAAO,GAGhB,IACE,EAAO,KAAK,MAAM,EACxB,CAAM,MAAO,GACP,OAAO,EAAO,IAAI,MAAM,qBAC9B,CAEI,EAAQ,EAEZ,CASE,KAAK,UAAY,SAAS,EAAY,GAEpC,IAAI,EAAuB,OAAV,EAAkB,EAAI,EAEnC,EAAU,CACZ,OAAQ,OACR,IAAK,uCACL,QAAS,CACP,cAAe,SAAW,EAC1B,gBAAiB,WACjB,eAAgB,mCAElB,KAAM,KAAK,UAAU,CACnB,OAAQ,EACR,YAAa,EACb,WAAY,EACZ,SAAU,KACV,UAAW,EAAU,EAAI,QAI7B,OAAO,IAAI,SAAQ,SAAS,EAAS,GAEnC,EAAQ,GAAS,SAAS,EAAO,EAAU,GAEzC,EAAe,EAAO,EAAU,EAAM,GAAQ,SAAS,GAErD,EAAQ,EAAK,GAEvB,GAEA,GAEA,GAEA,EASE,KAAK,WAAa,SAAS,EAAa,GAEtC,IAAI,EAAU,CACZ,OAAQ,MACR,IAAK,wCAA0C,EAC/C,QAAS,CACP,cAAe,SAAW,EAC1B,gBAAiB,WACjB,eAAgB,mCAElB,KAAM,KAAK,UAAU,CACnB,OAAQ,EACR,WAAY,KAIhB,OAAO,IAAI,SAAQ,SAAS,EAAS,GAEnC,EAAQ,GAAS,SAAS,EAAO,EAAU,GAEzC,EAAe,EAAO,EAAU,EAAM,EAAQ,EAEtD,GAEA,GAEA,EAUE,KAAK,mBAAqB,SAAS,EAAS,EAAM,GAEhD,IAAI,EAAU,CACZ,OAAQ,OACR,IAAK,6CACL,QAAS,CACP,cAAe,SAAW,EAC1B,gBAAiB,WACjB,eAAgB,mCAElB,KAAM,KAAK,UAAU,CACnB,OAAQ,EACR,mBAAoB,EACpB,SAAU,CACR,GAAI,GAEN,KAAM,KAIV,OAAO,IAAI,SAAQ,SAAS,EAAS,GAEnC,EAAQ,GAAS,SAAS,EAAO,EAAU,GAEzC,EAAe,EAAO,EAAU,EAAM,EAAQ,EAEtD,GAEA,GAEA,CAEA,CAcA,IAAA,EAAiB,SAAS,EAAQ,EAAO,GAEvC,OAAO,IAAI,EAAU,EAAQ,EAE/B,S","file":"/npm/onesignal@0.1.2/index.js/+esm","sourceRoot":"","sourcesContent":["/**\n * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.39.0.\n * Original file: /npm/onesignal@0.1.2/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/**\n * Wrapper for One Signal Push Notification Delivery\n * \n * @author Mohammad Fares <faressoft.com@gmail.com>\n */\n\nvar request = require('request');\n\n/**\n * One Signal Client\n *\n * @param  {String}  apiKey  REST API Key\n * @param  {String}  appId   OneSignal App ID\n * @param  {Boolean} sandbox use the sandbox certificate for iOS (default: false)\n */\nfunction OneSignal(apiKey, appId, sandbox) {\n\n  // Default value for sandbox argument\n  if (typeof sandbox === 'undefined') {\n    sandbox = false;\n  }\n\n  /**\n   * The api key of Signal One\n   * @type {String}\n   */\n  const API_KEY = apiKey;\n\n  /**\n   * The app id of Signal One\n   * @type {String}\n   */\n  const APP_ID = appId;\n\n  /**\n   * Use sandbox certificate\n   * @type {String}\n   */\n  const SANDBOX = apiKey;\n\n  /**\n   * Handle resolving or rejecting One Signal response\n   * \n   * @param  {Object}   error\n   * @param  {Object}   response\n   * @param  {String}   body\n   * @param  {Function} reject\n   * @param  {Function} resolve\n   */\n  function responseHandle(error, response, body, reject, resolve) {\n\n    if (error) {\n      return reject(error);\n    }\n\n    try {\n      body = JSON.parse(body);\n    } catch (e) {\n      return reject(new Error('Wrong JSON Format'));\n    }\n\n    resolve(body);\n    \n  }\n\n  /**\n   * Register a new device and its identifier to OneSignal and get OneSignal ID\n   * \n   * @param  {String} identifier the device token\n   * @param  {String} osType     ios, android\n   * @return {Promise}           resolve with OneSignal ID\n   */\n  this.addDevice = function(identifier, osType) {\n\n    var deviceType = osType == 'ios' ? 0 : 1;\n    \n    var options = {\n      method: 'POST',\n      url: 'https://onesignal.com/api/v1/players',\n      headers: { \n        authorization: 'Basic ' + API_KEY,\n        'cache-control': 'no-cache',\n        'content-type': 'application/json; charset=utf-8' \n      },\n      body: JSON.stringify({\n        app_id: APP_ID,\n        device_type: deviceType,\n        identifier: identifier,\n        language: 'en',\n        test_type: SANDBOX ? 1 : null\n      })\n    };\n\n    return new Promise(function(resolve, reject) {\n      \n      request(options, function(error, response, body) {\n\n        responseHandle(error, response, body, reject, function(body) {\n          \n          resolve(body.id);\n\n        });\n\n      });\n\n    });\n\n  };\n\n  /**\n   * Update the identifier of an existing device\n   * \n   * @param  {String} oneSignalId   the one signal device id\n   * @param  {String} newIdentifier the new device token\n   * @return {Promise}\n   */\n  this.editDevice = function(oneSignalId, newIdentifier) {\n\n    var options = {\n      method: 'PUT',\n      url: 'https://onesignal.com/api/v1/players/' + oneSignalId,\n      headers: { \n        authorization: 'Basic ' + API_KEY,\n        'cache-control': 'no-cache',\n        'content-type': 'application/json; charset=utf-8' \n      },\n      body: JSON.stringify({\n        app_id: APP_ID,\n        identifier: newIdentifier\n      })\n    };\n\n    return new Promise(function(resolve, reject) {\n      \n      request(options, function(error, response, body) {\n\n        responseHandle(error, response, body, reject, resolve);\n\n      });\n\n    });\n\n  };\n\n  /**\n   * Create and send a notification\n   * \n   * @param  {String} message      the notification message\n   * @param  {Object} data         any custom data\n   * @param  {Array}  oneSignalIds a list of OneSignal devices ids\n   * @return {Promise}\n   */\n  this.createNotification = function(message, data, oneSignalIds) {\n\n    var options = {\n      method: 'POST',\n      url: 'https://onesignal.com/api/v1/notifications',\n      headers: { \n        authorization: 'Basic ' + API_KEY,\n        'cache-control': 'no-cache',\n        'content-type': 'application/json; charset=utf-8' \n      },\n      body: JSON.stringify({\n        app_id: APP_ID,\n        include_player_ids: oneSignalIds,\n        contents: {\n          en: message\n        },\n        data: data\n      })\n    };\n\n    return new Promise(function(resolve, reject) {\n      \n      request(options, function(error, response, body) {\n\n        responseHandle(error, response, body, reject, resolve);\n\n      });\n\n    });\n\n  };\n  \n}\n\n////////////////////////////////////////////////////\n// Module //////////////////////////////////////////\n////////////////////////////////////////////////////\n\n/**\n * Create a new client\n * \n * @param  {String}  apiKey  REST API Key\n * @param  {String}  appId   OneSignal App ID\n * @param  {Boolean} sandbox use the sandbox certificate for iOS (default: false)\n * @return {Object}          new instance of one signal client wrapper\n */\nmodule.exports = function(apiKey, appId, sandbox) {\n    \n  return new OneSignal(apiKey, appId, sandbox);\n\n};\n"]}