{"version":3,"sources":["webpack://CoveoForSitecoreUserContext/webpack/universalModuleDefinition","webpack://CoveoForSitecoreUserContext/webpack/bootstrap","webpack://CoveoForSitecoreUserContext/./src/UserContextEntry.ts","webpack://CoveoForSitecoreUserContext/./src/handlers/UserContextHandler.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;;;;AClFA,4HAAwD;AAA/C,oHAAO;;;;;;;;;;;;;;;;ACIhB;IAKI;QACI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACtB,CAAC;IAEM,8CAAiB,GAAxB,UAAyB,OAAqB;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,uCAAU,GAAjB,UAAkB,GAAW,EAAE,KAAa;QACxC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QACzD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,uCAAU,GAAjB;QACI,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEO,8DAAiC,GAAzC,UAA0C,OAAqB;QAA/D,iBAYC;QAXG,IAAM,YAAY,GAAiB,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,UAAC,GAAG;YACL,OAAO;gBACH,GAAG,EAAE,KAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC;gBACvC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;aACtB,CAAC;QACN,CAAC,CAAC;aACD,MAAM,CAAC,UAAC,YAAY,IAAK,mBAAY,CAAC,GAAG,KAAK,EAAE,EAAvB,CAAuB,CAAC;aACjD,OAAO,CAAC,UAAC,YAAY,IAAK,QAAC,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,EAArD,CAAqD,CAAC,CAAC;QACtF,OAAO,YAAY,CAAC;IACxB,CAAC;IAEO,qDAAwB,GAAhC,UAAiC,GAAW;QACxC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YACzB,OAAO,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;SACjE;aAAM;YACH,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAC/D,OAAO,EAAE,CAAC;SACb;IACL,CAAC;IA3Cc,oCAAiB,GAAG,cAAc,CAAC;IA4CtD,yBAAC;CAAA;AAQY,eAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC","file":"CoveoForSitecoreUserContext.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CoveoForSitecoreUserContext\"] = factory();\n\telse\n\t\troot[\"CoveoForSitecoreUserContext\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/UserContextEntry.ts\");\n","export { handler } from './handlers/UserContextHandler';\r\n","export interface IUserContext {\r\n [key: string]: string;\r\n}\r\n\r\nexport class UserContextHandler implements IUserContextHandler {\r\n private static invalidCharacters = /[^a-z0-9_]/gi;\r\n\r\n private context: IUserContext;\r\n\r\n constructor() {\r\n this.context = {};\r\n }\r\n\r\n public initializeContext(context: IUserContext): IUserContextHandler {\r\n this.context = this.replaceInvalidCharactersInContext(context);\r\n return this;\r\n }\r\n\r\n public setContext(key: string, value: string): IUserContextHandler {\r\n this.context[this.replaceInvalidCharacters(key)] = value;\r\n return this;\r\n }\r\n\r\n public getContext(): IUserContext {\r\n return this.context;\r\n }\r\n\r\n private replaceInvalidCharactersInContext(context: IUserContext): IUserContext {\r\n const validContext: IUserContext = {};\r\n Object.keys(context)\r\n .map((key) => {\r\n return {\r\n key: this.replaceInvalidCharacters(key),\r\n value: context[key],\r\n };\r\n })\r\n .filter((contextValue) => contextValue.key !== '')\r\n .forEach((contextValue) => (validContext[contextValue.key] = contextValue.value));\r\n return validContext;\r\n }\r\n\r\n private replaceInvalidCharacters(key: string): string {\r\n if (typeof key === 'string') {\r\n return key.replace(UserContextHandler.invalidCharacters, '_');\r\n } else {\r\n console.error(`The user context key '{key}' is not a string.`);\r\n return '';\r\n }\r\n }\r\n}\r\n\r\nexport interface IUserContextHandler {\r\n initializeContext(context: IUserContext): IUserContextHandler;\r\n setContext(key: string, value: string): IUserContextHandler;\r\n getContext(): IUserContext;\r\n}\r\n\r\nexport const handler = new UserContextHandler();\r\n"],"sourceRoot":""}