{"version":3,"sources":["../src/lib/constants.ts","../src/campaign/index.ts","../src/messaging/index.ts","../src/phonebooks/index.ts","../src/senderID/index.ts","../src/token/index.ts","../src/client.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import axios from \"axios\";\n\nexport enum ENDPOINTS {\n  // Messaging\n  sendMessage = \"/api/sms/send\",\n  sendBulkMessage = \"/api/sms/send/bulk\",\n\n  // Insights\n  getBalance = \"/api/get-balance?\",\n  checkNumberStatus = \"/api/insight/number/query?\",\n  searchNumber = \"/api/check/dnd?\",\n  getMessageReports = \"/api/sms/inbox?\",\n\n  // Sende ID\n  fetchSenderIDs = \"/api/sender-id?\",\n  requestSenderID = \"/api/sender-id/request\",\n\n  // Campaign\n  fetchPhoneBooks = \"/api/phonebooks?\",\n  phoneBooksBase = \"/api/phonebooks\",\n  fetchCampaigns = \"/api/sms/campaigns?\",\n\n  // Token\n  sendToken = \"/api/sms/otp/send\",\n  voiceToken = \"/api/sms/otp/send/voice\",\n  voiceCall = \"/api/sms/otp/call\",\n  emailToken = \"/api/email/otp/send\",\n  verifyToken = \"/api/sms/otp/verify\",\n  inAppToken = \"/api/sms/otp/generate\",\n}\n\nexport const axiosInstance = axios.create({\n  validateStatus: () => true,\n});\n","import { axiosInstance, ENDPOINTS } from \"../lib/constants\";\nimport { Config } from \"../types\";\n\nexport class Campaign {\n  constructor(private readonly config: Config) {}\n\n  /**\n   * Returns available campaigns on the integration.\n   * @returns\n   */\n  async fetch() {\n    const data = (\n      await axiosInstance.get(\n        this.config.baseUrl +\n          ENDPOINTS.fetchCampaigns +\n          new URLSearchParams({\n            api_key: this.config.apiKey!,\n          }),\n      )\n    ).data;\n    return data;\n  }\n}\n","import { axiosInstance, ENDPOINTS } from \"../lib/constants\";\nimport { BulkMessage, Config, Message } from \"../types\";\n\n/**\n * This API allows businesses send text messages to their customers across different messaging channels.\n */\nexport class Messaging {\n  constructor(private readonly config: Config) {}\n\n  /**\n   * Send a custom message. {@link https://developer.termii.com/messaging-api Read Documentation.}\n   *\n   * @example\n   * await client.Messaging.send({\n   * \tto: \"2347880234567\",\n   * \tfrom: \"talert\",\n   * \tsms: \"Hi there, testing Termii\",\n   * \ttype: \"plain\",\n   * \tchannel: \"generic\",\n   * });\n   */\n  async send(payload: Message) {\n    const data = (\n      await axiosInstance.post(this.config.baseUrl + ENDPOINTS.sendMessage, {\n        api_key: this.config.apiKey,\n        ...payload,\n      })\n    ).data;\n    return data;\n  }\n\n  /**\n   * Send a custom bulk messages. {@link https://developer.termii.com/messaging-api Read Documentation.}\n   *\n   * @example\n   * await client.Messaging.sendBulk({\n   * \tto: [\"23490555546\", \"23423490126999\",\"23490555546\"],\n   * \tfrom: \"talert\",\n   * \tsms: \"Hi there, testing Termii\",\n   * \ttype: \"plain\",\n   * \tchannel: \"generic\",\n   * });\n   */\n  async sendBulk(payload: BulkMessage) {\n    const data = (\n      await axiosInstance.post(\n        this.config.baseUrl + ENDPOINTS.sendBulkMessage,\n        {\n          api_key: this.config.apiKey,\n          ...payload,\n        },\n      )\n    ).data;\n    return data;\n  }\n}\n","import { axiosInstance, ENDPOINTS } from \"../lib/constants\";\nimport { Config, ContactCreateInput, PhoneBookCreateInput } from \"../types\";\n\nexport class PhoneBooks {\n  constructor(private readonly config: Config) {}\n\n  /**\n   * Fetches the phonebooks available on the integration. {@link https://developer.termii.com/phonebook#fetch-phonebooks Read Documentation.}\n   *\n   * @example\n   * await client.PhoneBooks.fetch();\n   */\n  async fetch() {\n    const data = (\n      await axiosInstance.get(\n        this.config.baseUrl +\n          ENDPOINTS.fetchPhoneBooks +\n          new URLSearchParams({\n            api_key: this.config.apiKey!,\n          }),\n      )\n    ).data;\n    return data;\n  }\n\n  /**\n   * Creates a phonebook. {@link https://developer.termii.com/phonebook#create--a-phonebook Read Documentation.}\n   * @example\n   * await client.PhoneBooks.create({\n   * \tphonebook_name:\"Phone test\",\n   * \tdescription:\"Phonebook for test\"\n   * });\n   */\n  async create(payload: PhoneBookCreateInput) {\n    const data = (\n      await axiosInstance.post(this.config.baseUrl + ENDPOINTS.phoneBooksBase, {\n        api_key: this.config.apiKey,\n        ...payload,\n      })\n    ).data;\n    return data;\n  }\n\n  /**\n   * Fetches contacts in a phonebook. {@link https://developer.termii.com/contacts#fetch-contacts-by-phonebook-id Read Documentation.}\n   * @param {string} phoneBookID - The ID of the phonebook.\n   *\n   * @example\n   * await client.PhoneBooks.contacts(\"04c3ebcc-3a7e-485a-88c1-68e731386f77\");\n   */\n  async contacts(phoneBookID: string) {\n    const data = (\n      await axiosInstance.get(\n        this.config.baseUrl +\n          ENDPOINTS.phoneBooksBase +\n          `/${phoneBookID}/contacts?` +\n          new URLSearchParams({\n            api_key: this.config.apiKey!,\n          }),\n      )\n    ).data;\n    return data;\n  }\n\n  /**\n   *\n   * @param {string} phoneBookID - The ID of the phonebook.\n   * @param {ContactCreateInput} payload - data of the contact to be added.\n   * @returns\n   */\n  async addContact(phoneBookID: string, payload: ContactCreateInput) {\n    const data = (\n      await axiosInstance.post(\n        this.config.baseUrl +\n          ENDPOINTS.phoneBooksBase +\n          `/${phoneBookID}/contacts?`,\n        {\n          api_key: this.config.apiKey,\n          ...payload,\n        },\n      )\n    ).data;\n    return data;\n  }\n}\n","import { axiosInstance, ENDPOINTS } from \"../lib/constants\";\nimport { Config, SenderIDRequest } from \"../types\";\n\nexport class SenderID {\n  constructor(private readonly config: Config) {}\n\n  /**\n   * Fetches the sender IDs available on an integration. {@link https://developer.termii.com/sender-id#fetch-sender-id Read Documentation.}\n   *\n   * @example\n   * await client.SenderID.fetch();\n   *\n   */\n  async fetch() {\n    const data = (\n      await axiosInstance.get(\n        this.config.baseUrl +\n          ENDPOINTS.fetchSenderIDs +\n          new URLSearchParams({\n            api_key: this.config.apiKey!,\n          }),\n      )\n    ).data;\n    return data;\n  }\n\n  /**\n   * Request for a sender ID. {@link https://developer.termii.com/sender-id#request-sender-id Read Documentation.}\n   *\n   * @example\n   * await client.SenderID.request({\n   * \tsender_id: \"Acme\",\n   * \tusecase: \"Your OTP code is zxsds\",\n   * \tcompany: \"Acme Corp\"\n   * });\n   *\n   */\n  async request(payload: SenderIDRequest) {\n    const data = (\n      await axiosInstance.post(\n        this.config.baseUrl + ENDPOINTS.requestSenderID,\n        {\n          api_key: this.config.apiKey,\n          ...payload,\n        },\n      )\n    ).data;\n    return data;\n  }\n}\n","import { axiosInstance, ENDPOINTS } from \"../lib/constants\";\nimport {\n  Config,\n  EmailTokenInput,\n  InAppTokenInput,\n  SendTokenInput,\n  VoiceCallInput,\n  VoiceTokenInput,\n} from \"../types\";\n\n/**\n * Contains various methods for managing tokens.\n */\nexport class Token {\n  constructor(private readonly config: Config) {}\n\n  /**\n   * The send token API allows businesses trigger one-time-passwords (OTP) across any available messaging channel on Termii. One-time-passwords created are generated randomly and there's an option to set an expiry time. {@link https://developer.termii.com/send-token Read Documentation.}\n   * @example\n   * await client.Token.send({\n   * \tmessage_type : \"NUMERIC\",\n   * \tto : \"eg. 2348109077743\",\n   * \tfrom : \"Approved Sender ID or Configuration  ID\",\n   * \tchannel : \"dnd\",\n   * \tpin_attempts : 10,\n   * \tpin_time_to_live :  5,\n   * \tpin_length : 6,\n   * \tpin_placeholder : \"< 1234 >\",\n   * \tmessage_text : \"Your pin is < 1234 >\",\n   * \tpin_type : \"NUMERIC\"\n   * });\n   */\n  async send(payload: SendTokenInput) {\n    const data = (\n      await axiosInstance.post(this.config.baseUrl + ENDPOINTS.sendToken, {\n        api_key: this.config.apiKey,\n        ...payload,\n      })\n    ).data;\n    return data;\n  }\n\n  /**\n   * The voice token API enables you to generate and trigger one-time passwords (OTP) through the voice channel to a phone number. OTPs are generated and sent to the phone number and can only be verified using our Verify Token API. {@link https://developer.termii.com/voice-token Read Documentation.}\n   *\n   * @example\n   * await client.Token.voice({\n   * \tphone_number : \"23409800000000\",\n   * \tpin_attempts : 10,\n   * \tpin_time_to_live :  5,\n   * \tpin_length : 6\n   * });\n   */\n  async voice(payload: VoiceTokenInput) {\n    const data = (\n      await axiosInstance.post(this.config.baseUrl + ENDPOINTS.voiceToken, {\n        api_key: this.config.apiKey,\n        ...payload,\n      })\n    ).data;\n    return data;\n  }\n\n  /**\n   * The voice call API enables you to send messages from your application through our voice channel to a phone number. Only one-time-passwords (OTP) are allowed for now and these OTPs can not be verified using our Verify Token API. {@link https://developer.termii.com/voice-call Read Documentation.}\n   *\n   * @example\n   * await client.Token.voiceCall({\n   * \tphone_number : \"2349800000000\",\n   * \tcode : 55675,\n   * });\n   *\n   */\n  async voiceCall(payload: VoiceCallInput) {\n    const data = (\n      await axiosInstance.post(this.config.baseUrl + ENDPOINTS.voiceCall, {\n        api_key: this.config.apiKey,\n        ...payload,\n      })\n    ).data;\n    return data;\n  }\n\n  /**\n   * The email token API enables you to send one-time-passwords from your application through our email channel to an email address. Only one-time-passwords (OTP) are allowed for now and these OTPs can not be verified using our Verify Token API. {@link https://developer.termii.com/email-token Read Documentation.}\n   *\n   * @example\n   * await client.Token.email({\n   * \temail_address: \"shola.olu@term.ii\",\n   * \tcode: \"092471\",\n   * \temail_configuration_id: \"0a53c416-uocj-95af-ab3c306aellc\"\n   * });\n   *\n   */\n  async email(payload: EmailTokenInput) {\n    const data = (\n      await axiosInstance.post(this.config.baseUrl + ENDPOINTS.emailToken, {\n        api_key: this.config.apiKey,\n        ...payload,\n      })\n    ).data;\n    return data;\n  }\n\n  /**\n   *\n   * This API returns OTP codes in JSON format which can be used within any web or mobile app. Tokens are numeric or alpha-numeric codes generated to authenticate login requests and verify customer transactions. {@link https://developer.termii.com/in-app-token Read Documentation.}\n   *\n   * @example\n   * await client.Token.inApp({\n   * \tpin_type: \"NUMERIC\",\n   * \tphone_number: \"2348109477743\",\n   * \tpin_attempts: 3,\n   * \tpin_time_to_live: 0,\n   * \tpin_length: 4\n   * });\n   */\n  async inApp(payload: InAppTokenInput) {\n    const data = (\n      await axiosInstance.post(this.config.baseUrl + ENDPOINTS.inAppToken, {\n        api_key: this.config.apiKey,\n        ...payload,\n      })\n    ).data;\n    return data;\n  }\n\n  /**\n   * Verify token API, checks tokens sent to customers and returns a response confirming the status of the token. A token can either be confirmed as verified or expired based on the timer set for the token. {@link https://developer.termii.com/verify-token Read Documentation.}\n   *\n   * @param {string} pin_id ID of the PIN sent\n   * @param {string} pin The PIN code\n   *\n   * @example\n   * await client.Token.verify(\"c8dcd048-5e7f-4347-8c89-4470c3af0b\", \"195558\");\n   */\n  async verify(pin_id: string, pin: string) {\n    const data = (\n      await axiosInstance.post(this.config.baseUrl + ENDPOINTS.verifyToken, {\n        api_key: this.config.apiKey,\n        pin_id,\n        pin,\n      })\n    ).data;\n    return data;\n  }\n}\n","import { Campaign } from \"./campaign\";\nimport { axiosInstance, ENDPOINTS } from \"./lib/constants\";\nimport { Messaging } from \"./messaging\";\nimport { PhoneBooks } from \"./phonebooks\";\nimport { SenderID } from \"./senderID\";\nimport { Token } from \"./token\";\nimport { Config } from \"./types\";\n\nexport class TermiiClient {\n  readonly Messaging: Messaging;\n  readonly SenderID: SenderID;\n  readonly PhoneBooks: PhoneBooks;\n  readonly Token: Token;\n  readonly Campaign: Campaign;\n\n  constructor(private readonly config: Config) {\n    this.Messaging = new Messaging(config);\n    this.SenderID = new SenderID(config);\n    this.PhoneBooks = new PhoneBooks(config);\n    this.Token = new Token(config);\n    this.Campaign = new Campaign(config);\n  }\n\n  /**\n   * The Balance API returns your total balance and balance information from your wallet, such as currency. {@link https://developer.termii.com/balance Read Documentation.}\n   *\n   * @example\n   * await client.getBalance();\n   */\n  async getBalance() {\n    const data = (\n      await axiosInstance.get(\n        this.config.baseUrl +\n          ENDPOINTS.getBalance +\n          new URLSearchParams({\n            api_key: this.config.apiKey!,\n          }),\n      )\n    ).data;\n    return data;\n  }\n\n  /**\n   * The status API allows businesses to detect if a number is fake or has ported to a new network. {@link https://developer.termii.com/status Read Documentation.}\n   * @param {string} phoneNumber - Represents the phone number to be verified. Phone number must be in the international format\n   * @param {string} countryCode - Represents short alphabetic codes developed to represent countries.\n   *\n   * @example\n   * await client.checkNumberStatus(\"2348753243651\", \"NG\");\n   */\n  async checkNumberStatus(phoneNumber: string, countryCode: string) {\n    const data = (\n      await axiosInstance.get(\n        this.config.baseUrl +\n          ENDPOINTS.checkNumberStatus +\n          new URLSearchParams({\n            api_key: this.config.apiKey!,\n            phone_number: phoneNumber,\n            country_code: countryCode,\n          }),\n      )\n    ).data;\n    return data;\n  }\n\n  /**\n   * The search API allows businesses verify phone numbers and automatically detect their status as well as current network. It also tells if the number has activated the do-not-disturb settings.\n   * @param {string} phoneNumber - Represents the phone number to be verified. Phone number must be in the international format. {@link https://developer.termii.com/search Read Documentation.}\n   *\n   * @example\n   * await client.searchNumber(\"2348753243651\");\n   */\n  async searchNumber(phoneNumber: string) {\n    const data = (\n      await axiosInstance.get(\n        this.config.baseUrl +\n          ENDPOINTS.searchNumber +\n          new URLSearchParams({\n            api_key: this.config.apiKey!,\n            phone_number: phoneNumber,\n          }),\n      )\n    ).data;\n    return data;\n  }\n\n  /**\n   * This Inbox API returns reports for messages sent across the sms, voice & whatsapp channels. Reports can either display all messages on termii or a single message. Optionally accepts a `message_id` to query the report of a single message. {@link https://developer.termii.com/history Read Documentation.}\n   *\n   * @example\n   * // All messages\n   * await client.messageReports();\n   *\n   * // Single message\n   * await client.messageReports(\"04c3ebcc-3a7e-485a-88c1-68e731386f77\");\n   *\n   */\n  async messageReports(message_id?: string) {\n    const data = (\n      await axiosInstance.get(\n        this.config.baseUrl +\n          ENDPOINTS.getMessageReports +\n          new URLSearchParams({\n            api_key: this.config.apiKey!,\n            ...(message_id ? { message_id } : {}),\n          }),\n      )\n    ).data;\n    return data;\n  }\n}\n","import { TermiiClient } from \"./client\";\n\nexport default TermiiClient;\nexport type * from \"./types\";\n"]}