{"version":3,"sources":["meteor://💻app/packages/base64/base64.js"],"names":["module","export","Base64","BASE_64_CHARS","BASE_64_VALS","Object","create","getChar","val","charAt","getVal","ch","i","length","encode","array","str","newBinary","charCodeAt","Error","answer","a","b","c","d","push","join","len","Uint8Array","ArrayBuffer","ret","$Uint8ArrayPolyfill","decode","Math","floor","arr","one","two","three","j","v"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAAA,MAAM,CAACC,MAAP,CAAc;AAACC,QAAM,EAAC,MAAIA;AAAZ,CAAd;AAAA;AAEA,MAAMC,aAAa,GAAG,kEAAtB;AAEA,MAAMC,YAAY,GAAGC,MAAM,CAACC,MAAP,CAAc,IAAd,CAArB;;AAEA,MAAMC,OAAO,GAAGC,GAAG,IAAIL,aAAa,CAACM,MAAd,CAAqBD,GAArB,CAAvB;;AACA,MAAME,MAAM,GAAGC,EAAE,IAAIA,EAAE,KAAK,GAAP,GAAa,CAAC,CAAd,GAAkBP,YAAY,CAACO,EAAD,CAAnD;;AAEA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGT,aAAa,CAACU,MAAlC,EAA0CD,CAAC,EAA3C,EAA+C;AAC7CR,cAAY,CAACG,OAAO,CAACK,CAAD,CAAR,CAAZ,GAA2BA,CAA3B;AACD;;AAAA;;AAED,MAAME,MAAM,GAAGC,KAAK,IAAI;AACtB,MAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC7B,UAAMC,GAAG,GAAGD,KAAZ;AACAA,SAAK,GAAGE,SAAS,CAACD,GAAG,CAACH,MAAL,CAAjB;;AACA,SAAK,IAAID,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGI,GAAG,CAACH,MAAxB,EAAgCD,CAAC,EAAjC,EAAqC;AACnC,YAAMD,EAAE,GAAGK,GAAG,CAACE,UAAJ,CAAeN,CAAf,CAAX;;AACA,UAAID,EAAE,GAAG,IAAT,EAAe;AACb,cAAM,IAAIQ,KAAJ,CACJ,uDADI,CAAN;AAED;;AAEDJ,WAAK,CAACH,CAAD,CAAL,GAAWD,EAAX;AACD;AACF;;AAED,QAAMS,MAAM,GAAG,EAAf;AACA,MAAIC,CAAC,GAAG,IAAR;AACA,MAAIC,CAAC,GAAG,IAAR;AACA,MAAIC,CAAC,GAAG,IAAR;AACA,MAAIC,CAAC,GAAG,IAAR;;AAEA,OAAK,IAAIZ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGG,KAAK,CAACF,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrC,YAAQA,CAAC,GAAG,CAAZ;AACE,WAAK,CAAL;AACES,SAAC,GAAIN,KAAK,CAACH,CAAD,CAAL,IAAY,CAAb,GAAkB,IAAtB;AACAU,SAAC,GAAG,CAACP,KAAK,CAACH,CAAD,CAAL,GAAW,IAAZ,KAAqB,CAAzB;AACA;;AACF,WAAK,CAAL;AACEU,SAAC,GAAGA,CAAC,GAAIP,KAAK,CAACH,CAAD,CAAL,IAAY,CAAb,GAAkB,GAA1B;AACAW,SAAC,GAAG,CAACR,KAAK,CAACH,CAAD,CAAL,GAAW,GAAZ,KAAoB,CAAxB;AACA;;AACF,WAAK,CAAL;AACEW,SAAC,GAAGA,CAAC,GAAIR,KAAK,CAACH,CAAD,CAAL,IAAY,CAAb,GAAkB,IAA1B;AACAY,SAAC,GAAGT,KAAK,CAACH,CAAD,CAAL,GAAW,IAAf;AACAQ,cAAM,CAACK,IAAP,CAAYlB,OAAO,CAACc,CAAD,CAAnB;AACAD,cAAM,CAACK,IAAP,CAAYlB,OAAO,CAACe,CAAD,CAAnB;AACAF,cAAM,CAACK,IAAP,CAAYlB,OAAO,CAACgB,CAAD,CAAnB;AACAH,cAAM,CAACK,IAAP,CAAYlB,OAAO,CAACiB,CAAD,CAAnB;AACAH,SAAC,GAAG,IAAJ;AACAC,SAAC,GAAG,IAAJ;AACAC,SAAC,GAAG,IAAJ;AACAC,SAAC,GAAG,IAAJ;AACA;AApBJ;AAsBD;;AAED,MAAIH,CAAC,IAAI,IAAT,EAAe;AACbD,UAAM,CAACK,IAAP,CAAYlB,OAAO,CAACc,CAAD,CAAnB;AACAD,UAAM,CAACK,IAAP,CAAYlB,OAAO,CAACe,CAAD,CAAnB;;AACA,QAAIC,CAAC,IAAI,IAAT,EAAe;AACbH,YAAM,CAACK,IAAP,CAAY,GAAZ;AACD,KAFD,MAEO;AACLL,YAAM,CAACK,IAAP,CAAYlB,OAAO,CAACgB,CAAD,CAAnB;AACD;;AAED,QAAIC,CAAC,IAAI,IAAT,EAAe;AACbJ,YAAM,CAACK,IAAP,CAAY,GAAZ;AACD;AACF;;AAED,SAAOL,MAAM,CAACM,IAAP,CAAY,EAAZ,CAAP;AACD,CA7DD,C,CAiEA;AACA;AACA;AACA;AACA;;;AACA,MAAMT,SAAS,GAAGU,GAAG,IAAI;AACvB,MAAI,OAAOC,UAAP,KAAsB,WAAtB,IAAqC,OAAOC,WAAP,KAAuB,WAAhE,EAA6E;AAC3E,UAAMC,GAAG,GAAG,EAAZ;;AACA,SAAK,IAAIlB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGe,GAApB,EAAyBf,CAAC,EAA1B,EAA8B;AAC5BkB,SAAG,CAACL,IAAJ,CAAS,CAAT;AACD;;AAEDK,OAAG,CAACC,mBAAJ,GAA0B,IAA1B;AACA,WAAOD,GAAP;AACD;;AACD,SAAO,IAAIF,UAAJ,CAAe,IAAIC,WAAJ,CAAgBF,GAAhB,CAAf,CAAP;AACD,CAXD;;AAaA,MAAMK,MAAM,GAAGhB,GAAG,IAAI;AACpB,MAAIW,GAAG,GAAGM,IAAI,CAACC,KAAL,CAAYlB,GAAG,CAACH,MAAJ,GAAa,CAAd,GAAmB,CAA9B,CAAV;;AACA,MAAIG,GAAG,CAACP,MAAJ,CAAWO,GAAG,CAACH,MAAJ,GAAa,CAAxB,KAA8B,GAAlC,EAAuC;AACrCc,OAAG;;AACH,QAAIX,GAAG,CAACP,MAAJ,CAAWO,GAAG,CAACH,MAAJ,GAAa,CAAxB,KAA8B,GAAlC,EAAuC;AACrCc,SAAG;AACJ;AACF;;AAED,QAAMQ,GAAG,GAAGlB,SAAS,CAACU,GAAD,CAArB;AAEA,MAAIS,GAAG,GAAG,IAAV;AACA,MAAIC,GAAG,GAAG,IAAV;AACA,MAAIC,KAAK,GAAG,IAAZ;AAEA,MAAIC,CAAC,GAAG,CAAR;;AAEA,OAAK,IAAI3B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGI,GAAG,CAACH,MAAxB,EAAgCD,CAAC,EAAjC,EAAqC;AACnC,UAAMW,CAAC,GAAGP,GAAG,CAACP,MAAJ,CAAWG,CAAX,CAAV;AACA,UAAM4B,CAAC,GAAG9B,MAAM,CAACa,CAAD,CAAhB;;AACA,YAAQX,CAAC,GAAG,CAAZ;AACE,WAAK,CAAL;AACE,YAAI4B,CAAC,GAAG,CAAR,EAAW;AACT,gBAAM,IAAIrB,KAAJ,CAAU,uBAAV,CAAN;AACD;;AAEDiB,WAAG,GAAGI,CAAC,IAAI,CAAX;AACA;;AACF,WAAK,CAAL;AACE,YAAIA,CAAC,GAAG,CAAR,EAAW;AACT,gBAAM,IAAIrB,KAAJ,CAAU,uBAAV,CAAN;AACD;;AAEDiB,WAAG,GAAGA,GAAG,GAAII,CAAC,IAAI,CAAlB;AACAL,WAAG,CAACI,CAAC,EAAF,CAAH,GAAWH,GAAX;AACAC,WAAG,GAAG,CAACG,CAAC,GAAG,IAAL,KAAc,CAApB;AACA;;AACF,WAAK,CAAL;AACE,YAAIA,CAAC,IAAI,CAAT,EAAY;AACVH,aAAG,GAAGA,GAAG,GAAIG,CAAC,IAAI,CAAlB;AACAL,aAAG,CAACI,CAAC,EAAF,CAAH,GAAWF,GAAX;AACAC,eAAK,GAAG,CAACE,CAAC,GAAG,IAAL,KAAc,CAAtB;AACD;;AAED;;AACF,WAAK,CAAL;AACE,YAAIA,CAAC,IAAI,CAAT,EAAY;AACVL,aAAG,CAACI,CAAC,EAAF,CAAH,GAAWD,KAAK,GAAGE,CAAnB;AACD;;AAED;AA9BJ;AAgCD;;AAED,SAAOL,GAAP;AACD,CAvDD;;AAyDO,MAAMjC,MAAM,GAAG;AAAEY,QAAF;AAAUkB,QAAV;AAAkBf;AAAlB,CAAf,C","file":"/packages/base64.js","sourcesContent":["// Base 64 encoding\n\nconst BASE_64_CHARS = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\nconst BASE_64_VALS = Object.create(null);\n\nconst getChar = val => BASE_64_CHARS.charAt(val);\nconst getVal = ch => ch === '=' ? -1 : BASE_64_VALS[ch];\n\nfor (let i = 0; i < BASE_64_CHARS.length; i++) {\n BASE_64_VALS[getChar(i)] = i;\n};\n\nconst encode = array => {\n if (typeof array === \"string\") {\n const str = array;\n array = newBinary(str.length);\n for (let i = 0; i < str.length; i++) {\n const ch = str.charCodeAt(i);\n if (ch > 0xFF) {\n throw new Error(\n \"Not ascii. Base64.encode can only take ascii strings.\");\n }\n\n array[i] = ch;\n }\n }\n\n const answer = [];\n let a = null;\n let b = null;\n let c = null;\n let d = null;\n\n for (let i = 0; i < array.length; i++) {\n switch (i % 3) {\n case 0:\n a = (array[i] >> 2) & 0x3F;\n b = (array[i] & 0x03) << 4;\n break;\n case 1:\n b = b | (array[i] >> 4) & 0xF;\n c = (array[i] & 0xF) << 2;\n break;\n case 2:\n c = c | (array[i] >> 6) & 0x03;\n d = array[i] & 0x3F;\n answer.push(getChar(a));\n answer.push(getChar(b));\n answer.push(getChar(c));\n answer.push(getChar(d));\n a = null;\n b = null;\n c = null;\n d = null;\n break;\n }\n }\n\n if (a != null) {\n answer.push(getChar(a));\n answer.push(getChar(b));\n if (c == null) {\n answer.push('=');\n } else {\n answer.push(getChar(c));\n }\n\n if (d == null) {\n answer.push('=');\n }\n }\n\n return answer.join(\"\");\n};\n\n\n\n// XXX This is a weird place for this to live, but it's used both by\n// this package and 'ejson', and we can't put it in 'ejson' without\n// introducing a circular dependency. It should probably be in its own\n// package or as a helper in a package that both 'base64' and 'ejson'\n// use.\nconst newBinary = len => {\n if (typeof Uint8Array === 'undefined' || typeof ArrayBuffer === 'undefined') {\n const ret = [];\n for (let i = 0; i < len; i++) {\n ret.push(0);\n }\n\n ret.$Uint8ArrayPolyfill = true;\n return ret;\n }\n return new Uint8Array(new ArrayBuffer(len));\n};\n\nconst decode = str => {\n let len = Math.floor((str.length * 3) / 4);\n if (str.charAt(str.length - 1) == '=') {\n len--;\n if (str.charAt(str.length - 2) == '=') {\n len--;\n }\n }\n\n const arr = newBinary(len);\n\n let one = null;\n let two = null;\n let three = null;\n\n let j = 0;\n\n for (let i = 0; i < str.length; i++) {\n const c = str.charAt(i);\n const v = getVal(c);\n switch (i % 4) {\n case 0:\n if (v < 0) {\n throw new Error('invalid base64 string');\n }\n\n one = v << 2;\n break;\n case 1:\n if (v < 0) {\n throw new Error('invalid base64 string');\n }\n\n one = one | (v >> 4);\n arr[j++] = one;\n two = (v & 0x0F) << 4;\n break;\n case 2:\n if (v >= 0) {\n two = two | (v >> 2);\n arr[j++] = two;\n three = (v & 0x03) << 6;\n }\n\n break;\n case 3:\n if (v >= 0) {\n arr[j++] = three | v;\n }\n\n break;\n }\n }\n\n return arr;\n};\n\nexport const Base64 = { encode, decode, newBinary };\n"]}