{"version":3,"file":"index.cjs","sources":["../src/utils/alphabet.ts","../src/index.ts"],"sourcesContent":["/**\n * Alphabet used for encoding/decoding.\n * @author Yousuf Kalim\n */\nconst alphabet = [\n  'a',\n  'b',\n  'c',\n  'd',\n  'e',\n  'f',\n  'g',\n  'h',\n  'i',\n  'j',\n  'k',\n  'l',\n  'm',\n  'n',\n  'o',\n  'p',\n  'q',\n  'r',\n  's',\n  't',\n  'u',\n  'v',\n  'w',\n  'x',\n  'y',\n  'z',\n];\n\nexport default alphabet;\n","/**\n * Index file for the package\n * @author Yousuf Kalim\n */\nimport alphabet from './utils/alphabet';\n\n/**\n * Encrypts a given plain text using the Caesar Cipher\n * @param plainText {string} - The plain text to be encrypted\n * @param shift {number} - The number of shifts to be applied to the plain text\n * @param ignoreSpecialChars {boolean} - Whether to ignore special characters or not\n * @returns {string} - The encrypted cipher text\n */\nconst encrypt = (plainText: string, shift = 1, ignoreSpecialChars = true): string => {\n  const cipherArr: string[] = [];\n  let cipherLetter: string;\n\n  plainText.split('').map((letter) => {\n    if (ignoreSpecialChars) {\n      letter = alphabet.includes(letter.toLowerCase()) ? letter : ' ';\n    }\n    const code: number = letter.charCodeAt(0);\n    if (letter === ' ') {\n      return cipherArr.push(letter);\n    }\n    // Uppercase letters\n    if (code >= 65 && code <= 90) {\n      cipherLetter = String.fromCharCode(((code - 65 + shift) % 26) + 65);\n    }\n    // Lowercase letters\n    else if (code >= 97 && code <= 122) {\n      cipherLetter = String.fromCharCode(((code - 97 + shift) % 26) + 97);\n    }\n    return cipherArr.push(cipherLetter);\n  });\n  return cipherArr.join('');\n};\n\n/**\n * Decrypts a given cipher text using the Caesar Cipher\n * @param cipherText {string} - The cipher text to be decrypted\n * @param shift {number} - The number of shifts to be applied to the cipher text\n * @param ignoreSpecialChars {boolean} - Whether to ignore special characters or not\n * @returns {string} - The decrypted plain text\n */\nconst decrypt = (cipherText: string, shift = 1, ignoreSpecialChars = true): string => {\n  const plainArr: string[] = [];\n  let plainLetter: string;\n\n  cipherText.split('').map((cipher) => {\n    if (ignoreSpecialChars) {\n      cipher = alphabet.includes(cipher.toLowerCase()) ? cipher : ' ';\n    }\n    const code: number = cipher.charCodeAt(0);\n    if (cipher === ' ') {\n      return plainArr.push(cipher);\n    }\n    // Uppercase letters\n    if (code >= 65 && code <= 90) {\n      const diff = code - 65 - shift;\n      if (diff >= 0) {\n        plainLetter = String.fromCharCode((diff % 26) + 65);\n      } else {\n        plainLetter = String.fromCharCode(((26 + diff) % 26) + 65);\n      }\n    }\n    // Lowercase letters\n    else if (code >= 97 && code <= 122) {\n      const diff = code - 97 - shift;\n      if (diff >= 0) {\n        plainLetter = String.fromCharCode((diff % 26) + 97);\n      } else {\n        plainLetter = String.fromCharCode(((26 + diff) % 26) + 97);\n      }\n    }\n    return plainArr.push(plainLetter);\n  });\n  return plainArr.join('');\n};\n\nexport { encrypt, decrypt };\n"],"names":["alphabet","cipherText","shift","ignoreSpecialChars","plainArr","split","map","cipher","includes","toLowerCase","code","charCodeAt","push","diff","plainLetter","String","fromCharCode","join","plainText","cipherArr","letter","cipherLetter"],"mappings":"AAIA,IAAMA,EAAW,CACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,qBCec,SAACC,EAAoBC,EAAWC,QAAN,IAALD,IAAAA,EAAQ,QAAqB,IAAlBC,IAAAA,GAAqB,GACnE,MAAcC,EAAa,GA+B3B,OA5BAH,EAAWI,MAAM,IAAIC,IAAI,SAACC,GACpBJ,IACFI,EAASP,EAASQ,SAASD,EAAOE,eAAiBF,EAAS,KAE9D,IAAMG,EAAeH,EAAOI,WAAW,GACvC,GAAe,MAAXJ,EACF,OAAOH,EAASQ,KAAKL,GAGvB,GAAIG,GAAQ,IAAMA,GAAQ,GAAI,CAC5B,IAAUG,EAAGH,EAAO,GAAKR,EAEvBY,EAAcC,OAAOC,aADnBH,GAAQ,EACyBA,EAAO,GAAM,IAEZ,GAAKA,GAAQ,GAAM,GAE1D,MAEI,GAAIH,GAAQ,IAAMA,GAAQ,IAAK,CAClC,MAAaA,EAAO,GAAKR,EAEvBY,EAAcC,OAAOC,aADnBH,GAAQ,EACyBA,EAAO,GAAM,IAEZ,GAAKA,GAAQ,GAAM,GAE1D,CACD,SAAgBD,KAAKE,EACvB,KACgBG,KAAK,GACvB,kBAjEgB,SAACC,EAAmBhB,EAAWC,QAAN,IAALD,IAAAA,EAAQ,QAAGC,IAAAA,IAAAA,GAAqB,GAClE,MAAegB,EAAa,GAqB5B,OAlBAD,EAAUb,MAAM,IAAIC,IAAI,SAACc,GACnBjB,IACFiB,EAASpB,EAASQ,SAASY,EAAOX,eAAiBW,EAAS,KAE9D,IAAUV,EAAWU,EAAOT,WAAW,GACvC,MAAe,MAAXS,EACKD,EAAUP,KAAKQ,IAGpBV,GAAQ,IAAMA,GAAQ,GACxBW,EAAeN,OAAOC,cAAeN,EAAO,GAAKR,GAAS,GAAM,IAGzDQ,GAAQ,IAAMA,GAAQ,MAC7BW,EAAeN,OAAOC,cAAeN,EAAO,GAAKR,GAAS,GAAM,KAElDiB,EAACP,KAAKS,GACxB,GACOF,EAAUF,KAAK,GACxB"}