{"version":3,"file":"js/691-69394937e0da0d2b11f4.js","mappings":"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","sources":["webpack://tenderbee/./node_modules/@stimulus/webpack-helpers/dist/index.js","webpack://tenderbee/./node_modules/algoliasearch/node_modules/debug/src/browser.js","webpack://tenderbee/./node_modules/algoliasearch/node_modules/debug/src/debug.js","webpack://tenderbee/./node_modules/algoliasearch/node_modules/ms/index.js","webpack://tenderbee/./node_modules/algoliasearch/src/AlgoliaSearchCore.js","webpack://tenderbee/./node_modules/algoliasearch/src/IndexCore.js","webpack://tenderbee/./node_modules/algoliasearch/src/browser/builds/algoliasearchLite.js","webpack://tenderbee/./node_modules/algoliasearch/src/browser/createAlgoliasearch.js","webpack://tenderbee/./node_modules/algoliasearch/src/browser/inline-headers.js","webpack://tenderbee/./node_modules/algoliasearch/src/browser/jsonp-request.js","webpack://tenderbee/./node_modules/algoliasearch/src/buildSearchMethod.js","webpack://tenderbee/./node_modules/algoliasearch/src/clone.js","webpack://tenderbee/./node_modules/algoliasearch/src/deprecate.js","webpack://tenderbee/./node_modules/algoliasearch/src/deprecatedMessage.js","webpack://tenderbee/./node_modules/algoliasearch/src/errors.js","webpack://tenderbee/./node_modules/algoliasearch/src/exitPromise.js","webpack://tenderbee/./node_modules/algoliasearch/src/map.js","webpack://tenderbee/./node_modules/algoliasearch/src/merge.js","webpack://tenderbee/./node_modules/algoliasearch/src/omit.js","webpack://tenderbee/./node_modules/algoliasearch/src/places.js","webpack://tenderbee/./node_modules/algoliasearch/src/store.js","webpack://tenderbee/./node_modules/algoliasearch/src/version.js","webpack://tenderbee/./node_modules/autocomplete.js/index.js","webpack://tenderbee/./node_modules/autocomplete.js/src/autocomplete/css.js","webpack://tenderbee/./node_modules/autocomplete.js/src/autocomplete/dataset.js","webpack://tenderbee/./node_modules/autocomplete.js/src/autocomplete/dropdown.js","webpack://tenderbee/./node_modules/autocomplete.js/src/autocomplete/event_bus.js","webpack://tenderbee/./node_modules/autocomplete.js/src/autocomplete/event_emitter.js","webpack://tenderbee/./node_modules/autocomplete.js/src/autocomplete/html.js","webpack://tenderbee/./node_modules/autocomplete.js/src/autocomplete/input.js","webpack://tenderbee/./node_modules/autocomplete.js/src/autocomplete/typeahead.js","webpack://tenderbee/./node_modules/autocomplete.js/src/common/dom.js","webpack://tenderbee/./node_modules/autocomplete.js/src/common/parseAlgoliaClientVersion.js","webpack://tenderbee/./node_modules/autocomplete.js/src/common/utils.js","webpack://tenderbee/./node_modules/autocomplete.js/src/sources/hits.js","webpack://tenderbee/./node_modules/autocomplete.js/src/sources/index.js","webpack://tenderbee/./node_modules/autocomplete.js/src/sources/popularIn.js","webpack://tenderbee/./node_modules/autocomplete.js/src/standalone/index.js","webpack://tenderbee/./node_modules/autocomplete.js/version.js","webpack://tenderbee/./node_modules/autocomplete.js/zepto.js","webpack://tenderbee/./node_modules/es6-promise/dist/es6-promise.js","webpack://tenderbee/./node_modules/global/window.js","webpack://tenderbee/./node_modules/immediate/lib/index.js","webpack://tenderbee/./node_modules/immediate/lib/messageChannel.js","webpack://tenderbee/./node_modules/immediate/lib/mutation.js","webpack://tenderbee/./node_modules/immediate/lib/queueMicrotask.js","webpack://tenderbee/./node_modules/immediate/lib/stateChange.js","webpack://tenderbee/./node_modules/immediate/lib/timeout.js","webpack://tenderbee/./node_modules/insert-css/index.js","webpack://tenderbee/./node_modules/isarray/index.js","webpack://tenderbee/./node_modules/places.js/index.js","webpack://tenderbee/./node_modules/places.js/src/configure/index.js","webpack://tenderbee/./node_modules/places.js/src/createAutocompleteDataset.js","webpack://tenderbee/./node_modules/places.js/src/createAutocompleteSource.js","webpack://tenderbee/./node_modules/places.js/src/createReverseGeocodingSource.js","webpack://tenderbee/./node_modules/places.js/src/defaultTemplates.js","webpack://tenderbee/./node_modules/places.js/src/errors.js","webpack://tenderbee/./node_modules/places.js/src/findCountryCode.js","webpack://tenderbee/./node_modules/places.js/src/findType.js","webpack://tenderbee/./node_modules/places.js/src/formatDropdownValue.js","webpack://tenderbee/./node_modules/places.js/src/formatHit.js","webpack://tenderbee/./node_modules/places.js/src/formatInputValue.js","webpack://tenderbee/./node_modules/places.js/src/navigatorLanguage.js","webpack://tenderbee/./node_modules/places.js/src/places.js","webpack://tenderbee/./node_modules/places.js/src/version.js","webpack://tenderbee/./node_modules/querystring-es3/decode.js","webpack://tenderbee/./node_modules/querystring-es3/encode.js","webpack://tenderbee/./node_modules/querystring-es3/index.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/event_listener.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/dispatcher.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/action_descriptor.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/action.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/binding.js","webpack://tenderbee/./node_modules/@stimulus/mutation-observers/dist/src/element_observer.js","webpack://tenderbee/./node_modules/@stimulus/mutation-observers/dist/src/attribute_observer.js","webpack://tenderbee/./node_modules/@stimulus/multimap/dist/src/set_operations.js","webpack://tenderbee/./node_modules/@stimulus/multimap/dist/src/multimap.js","webpack://tenderbee/./node_modules/@stimulus/multimap/dist/src/indexed_multimap.js","webpack://tenderbee/./node_modules/@stimulus/mutation-observers/dist/src/token_list_observer.js","webpack://tenderbee/./node_modules/@stimulus/mutation-observers/dist/src/value_list_observer.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/binding_observer.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/context.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/definition.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/module.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/data_map.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/selectors.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/target_set.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/scope.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/scope_observer.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/router.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/schema.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/application.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/target_properties.js","webpack://tenderbee/./node_modules/@stimulus/core/dist/src/controller.js"],"sourcesContent":["export function definitionsFromContext(context) {\n return context.keys()\n .map(function (key) { return definitionForModuleWithContextAndKey(context, key); })\n .filter(function (value) { return value; });\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n var identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n var controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier: identifier, controllerConstructor: controllerConstructor };\n }\n}\nexport function identifierForContextKey(key) {\n var logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLGlDQUFpQyxPQUEwQztJQUMvRSxPQUFPLE9BQU8sQ0FBQyxJQUFJLEVBQUU7U0FDbEIsR0FBRyxDQUFDLFVBQUEsR0FBRyxJQUFJLE9BQUEsb0NBQW9DLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFsRCxDQUFrRCxDQUFDO1NBQzlELE1BQU0sQ0FBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUssRUFBTCxDQUFLLENBQWlCLENBQUE7QUFDM0MsQ0FBQztBQUVELDhDQUE4QyxPQUEwQyxFQUFFLEdBQVc7SUFDbkcsSUFBTSxVQUFVLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDL0MsSUFBSSxVQUFVLEVBQUU7UUFDZCxPQUFPLGdDQUFnQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQTtLQUNsRTtBQUNILENBQUM7QUFFRCwwQ0FBMEMsTUFBd0IsRUFBRSxVQUFrQjtJQUNwRixJQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUE7SUFDNUMsSUFBSSxPQUFPLHFCQUFxQixJQUFJLFVBQVUsRUFBRTtRQUM5QyxPQUFPLEVBQUUsVUFBVSxZQUFBLEVBQUUscUJBQXFCLHVCQUFBLEVBQUUsQ0FBQTtLQUM3QztBQUNILENBQUM7QUFFRCxNQUFNLGtDQUFrQyxHQUFXO0lBQ2pELElBQU0sV0FBVyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2xGLElBQUksV0FBVyxFQUFFO1FBQ2YsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFBO0tBQzNEO0FBQ0gsQ0FBQyJ9","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","module.exports = AlgoliaSearchCore;\n\nvar errors = require('./errors');\nvar exitPromise = require('./exitPromise.js');\nvar IndexCore = require('./IndexCore.js');\nvar store = require('./store.js');\n\n// We will always put the API KEY in the JSON body in case of too long API KEY,\n// to avoid query string being too long and failing in various conditions (our server limit, browser limit,\n// proxies limit)\nvar MAX_API_KEY_LENGTH = 500;\nvar RESET_APP_DATA_TIMER =\n process.env.RESET_APP_DATA_TIMER && parseInt(process.env.RESET_APP_DATA_TIMER, 10) ||\n 60 * 2 * 1000; // after 2 minutes reset to first host\n\n/*\n * Algolia Search library initialization\n * https://www.algolia.com/\n *\n * @param {string} applicationID - Your applicationID, found in your dashboard\n * @param {string} apiKey - Your API key, found in your dashboard\n * @param {Object} [opts]\n * @param {number} [opts.timeout=2000] - The request timeout set in milliseconds,\n * another request will be issued after this timeout\n * @param {string} [opts.protocol='https:'] - The protocol used to query Algolia Search API.\n * Set to 'http:' to force using http.\n * @param {Object|Array} [opts.hosts={\n * read: [this.applicationID + '-dsn.algolia.net'].concat([\n * this.applicationID + '-1.algolianet.com',\n * this.applicationID + '-2.algolianet.com',\n * this.applicationID + '-3.algolianet.com']\n * ]),\n * write: [this.applicationID + '.algolia.net'].concat([\n * this.applicationID + '-1.algolianet.com',\n * this.applicationID + '-2.algolianet.com',\n * this.applicationID + '-3.algolianet.com']\n * ]) - The hosts to use for Algolia Search API.\n * If you provide them, you will less benefit from our HA implementation\n */\nfunction AlgoliaSearchCore(applicationID, apiKey, opts) {\n var debug = require('debug')('algoliasearch');\n\n var clone = require('./clone.js');\n var isArray = require('isarray');\n var map = require('./map.js');\n\n var usage = 'Usage: algoliasearch(applicationID, apiKey, opts)';\n\n if (opts._allowEmptyCredentials !== true && !applicationID) {\n throw new errors.AlgoliaSearchError('Please provide an application ID. ' + usage);\n }\n\n if (opts._allowEmptyCredentials !== true && !apiKey) {\n throw new errors.AlgoliaSearchError('Please provide an API key. ' + usage);\n }\n\n this.applicationID = applicationID;\n this.apiKey = apiKey;\n\n this.hosts = {\n read: [],\n write: []\n };\n\n opts = opts || {};\n\n this._timeouts = opts.timeouts || {\n connect: 1 * 1000, // 500ms connect is GPRS latency\n read: 2 * 1000,\n write: 30 * 1000\n };\n\n // backward compat, if opts.timeout is passed, we use it to configure all timeouts like before\n if (opts.timeout) {\n this._timeouts.connect = this._timeouts.read = this._timeouts.write = opts.timeout;\n }\n\n var protocol = opts.protocol || 'https:';\n // while we advocate for colon-at-the-end values: 'http:' for `opts.protocol`\n // we also accept `http` and `https`. It's a common error.\n if (!/:$/.test(protocol)) {\n protocol = protocol + ':';\n }\n\n if (protocol !== 'http:' && protocol !== 'https:') {\n throw new errors.AlgoliaSearchError('protocol must be `http:` or `https:` (was `' + opts.protocol + '`)');\n }\n\n this._checkAppIdData();\n\n if (!opts.hosts) {\n var defaultHosts = map(this._shuffleResult, function(hostNumber) {\n return applicationID + '-' + hostNumber + '.algolianet.com';\n });\n\n // no hosts given, compute defaults\n var mainSuffix = (opts.dsn === false ? '' : '-dsn') + '.algolia.net';\n this.hosts.read = [this.applicationID + mainSuffix].concat(defaultHosts);\n this.hosts.write = [this.applicationID + '.algolia.net'].concat(defaultHosts);\n } else if (isArray(opts.hosts)) {\n // when passing custom hosts, we need to have a different host index if the number\n // of write/read hosts are different.\n this.hosts.read = clone(opts.hosts);\n this.hosts.write = clone(opts.hosts);\n } else {\n this.hosts.read = clone(opts.hosts.read);\n this.hosts.write = clone(opts.hosts.write);\n }\n\n // add protocol and lowercase hosts\n this.hosts.read = map(this.hosts.read, prepareHost(protocol));\n this.hosts.write = map(this.hosts.write, prepareHost(protocol));\n\n this.extraHeaders = {};\n\n // In some situations you might want to warm the cache\n this.cache = opts._cache || {};\n\n this._ua = opts._ua;\n this._useCache = opts._useCache === undefined || opts._cache ? true : opts._useCache;\n this._useRequestCache = this._useCache && opts._useRequestCache;\n this._useFallback = opts.useFallback === undefined ? true : opts.useFallback;\n\n this._setTimeout = opts._setTimeout;\n\n debug('init done, %j', this);\n}\n\n/*\n * Get the index object initialized\n *\n * @param indexName the name of index\n * @param callback the result callback with one argument (the Index instance)\n */\nAlgoliaSearchCore.prototype.initIndex = function(indexName) {\n return new IndexCore(this, indexName);\n};\n\n/**\n* Add an extra field to the HTTP request\n*\n* @param name the header field name\n* @param value the header field value\n*/\nAlgoliaSearchCore.prototype.setExtraHeader = function(name, value) {\n this.extraHeaders[name.toLowerCase()] = value;\n};\n\n/**\n* Get the value of an extra HTTP header\n*\n* @param name the header field name\n*/\nAlgoliaSearchCore.prototype.getExtraHeader = function(name) {\n return this.extraHeaders[name.toLowerCase()];\n};\n\n/**\n* Remove an extra field from the HTTP request\n*\n* @param name the header field name\n*/\nAlgoliaSearchCore.prototype.unsetExtraHeader = function(name) {\n delete this.extraHeaders[name.toLowerCase()];\n};\n\n/**\n* Augment sent x-algolia-agent with more data, each agent part\n* is automatically separated from the others by a semicolon;\n*\n* @param algoliaAgent the agent to add\n*/\nAlgoliaSearchCore.prototype.addAlgoliaAgent = function(algoliaAgent) {\n var algoliaAgentWithDelimiter = '; ' + algoliaAgent;\n\n if (this._ua.indexOf(algoliaAgentWithDelimiter) === -1) {\n this._ua += algoliaAgentWithDelimiter;\n }\n};\n\n/*\n * Wrapper that try all hosts to maximize the quality of service\n */\nAlgoliaSearchCore.prototype._jsonRequest = function(initialOpts) {\n this._checkAppIdData();\n\n var requestDebug = require('debug')('algoliasearch:' + initialOpts.url);\n\n\n var body;\n var cacheID;\n var additionalUA = initialOpts.additionalUA || '';\n var cache = initialOpts.cache;\n var client = this;\n var tries = 0;\n var usingFallback = false;\n var hasFallback = client._useFallback && client._request.fallback && initialOpts.fallback;\n var headers;\n\n if (\n this.apiKey.length > MAX_API_KEY_LENGTH &&\n initialOpts.body !== undefined &&\n (initialOpts.body.params !== undefined || // index.search()\n initialOpts.body.requests !== undefined) // client.search()\n ) {\n initialOpts.body.apiKey = this.apiKey;\n headers = this._computeRequestHeaders({\n additionalUA: additionalUA,\n withApiKey: false,\n headers: initialOpts.headers\n });\n } else {\n headers = this._computeRequestHeaders({\n additionalUA: additionalUA,\n headers: initialOpts.headers\n });\n }\n\n if (initialOpts.body !== undefined) {\n body = safeJSONStringify(initialOpts.body);\n }\n\n requestDebug('request start');\n var debugData = [];\n\n\n function doRequest(requester, reqOpts) {\n client._checkAppIdData();\n\n var startTime = new Date();\n\n if (client._useCache && !client._useRequestCache) {\n cacheID = initialOpts.url;\n }\n\n // as we sometime use POST requests to pass parameters (like query='aa'),\n // the cacheID must also include the body to be different between calls\n if (client._useCache && !client._useRequestCache && body) {\n cacheID += '_body_' + reqOpts.body;\n }\n\n // handle cache existence\n if (isCacheValidWithCurrentID(!client._useRequestCache, cache, cacheID)) {\n requestDebug('serving response from cache');\n\n var responseText = cache[cacheID];\n\n // Cache response must match the type of the original one\n return client._promise.resolve({\n body: JSON.parse(responseText),\n responseText: responseText\n });\n }\n\n // if we reached max tries\n if (tries >= client.hosts[initialOpts.hostType].length) {\n if (!hasFallback || usingFallback) {\n requestDebug('could not get any response');\n // then stop\n return client._promise.reject(new errors.AlgoliaSearchError(\n 'Cannot connect to the AlgoliaSearch API.' +\n ' Send an email to support@algolia.com to report and resolve the issue.' +\n ' Application id was: ' + client.applicationID, {debugData: debugData}\n ));\n }\n\n requestDebug('switching to fallback');\n\n // let's try the fallback starting from here\n tries = 0;\n\n // method, url and body are fallback dependent\n reqOpts.method = initialOpts.fallback.method;\n reqOpts.url = initialOpts.fallback.url;\n reqOpts.jsonBody = initialOpts.fallback.body;\n if (reqOpts.jsonBody) {\n reqOpts.body = safeJSONStringify(reqOpts.jsonBody);\n }\n // re-compute headers, they could be omitting the API KEY\n headers = client._computeRequestHeaders({\n additionalUA: additionalUA,\n headers: initialOpts.headers\n });\n\n reqOpts.timeouts = client._getTimeoutsForRequest(initialOpts.hostType);\n client._setHostIndexByType(0, initialOpts.hostType);\n usingFallback = true; // the current request is now using fallback\n return doRequest(client._request.fallback, reqOpts);\n }\n\n var currentHost = client._getHostByType(initialOpts.hostType);\n\n var url = currentHost + reqOpts.url;\n var options = {\n body: reqOpts.body,\n jsonBody: reqOpts.jsonBody,\n method: reqOpts.method,\n headers: headers,\n timeouts: reqOpts.timeouts,\n debug: requestDebug,\n forceAuthHeaders: reqOpts.forceAuthHeaders\n };\n\n requestDebug('method: %s, url: %s, headers: %j, timeouts: %d',\n options.method, url, options.headers, options.timeouts);\n\n if (requester === client._request.fallback) {\n requestDebug('using fallback');\n }\n\n // `requester` is any of this._request or this._request.fallback\n // thus it needs to be called using the client as context\n return requester.call(client, url, options).then(success, tryFallback);\n\n function success(httpResponse) {\n // compute the status of the response,\n //\n // When in browser mode, using XDR or JSONP, we have no statusCode available\n // So we rely on our API response `status` property.\n // But `waitTask` can set a `status` property which is not the statusCode (it's the task status)\n // So we check if there's a `message` along `status` and it means it's an error\n //\n // That's the only case where we have a response.status that's not the http statusCode\n var status = httpResponse && httpResponse.body && httpResponse.body.message && httpResponse.body.status ||\n\n // this is important to check the request statusCode AFTER the body eventual\n // statusCode because some implementations (jQuery XDomainRequest transport) may\n // send statusCode 200 while we had an error\n httpResponse.statusCode ||\n\n // When in browser mode, using XDR or JSONP\n // we default to success when no error (no response.status && response.message)\n // If there was a JSON.parse() error then body is null and it fails\n httpResponse && httpResponse.body && 200;\n\n requestDebug('received response: statusCode: %s, computed statusCode: %d, headers: %j',\n httpResponse.statusCode, status, httpResponse.headers);\n\n var httpResponseOk = Math.floor(status / 100) === 2;\n\n var endTime = new Date();\n debugData.push({\n currentHost: currentHost,\n headers: removeCredentials(headers),\n content: body || null,\n contentLength: body !== undefined ? body.length : null,\n method: reqOpts.method,\n timeouts: reqOpts.timeouts,\n url: reqOpts.url,\n startTime: startTime,\n endTime: endTime,\n duration: endTime - startTime,\n statusCode: status\n });\n\n if (httpResponseOk) {\n if (client._useCache && !client._useRequestCache && cache) {\n cache[cacheID] = httpResponse.responseText;\n }\n\n return {\n responseText: httpResponse.responseText,\n body: httpResponse.body\n };\n }\n\n var shouldRetry = Math.floor(status / 100) !== 4;\n\n if (shouldRetry) {\n tries += 1;\n return retryRequest();\n }\n\n requestDebug('unrecoverable error');\n\n // no success and no retry => fail\n var unrecoverableError = new errors.AlgoliaSearchError(\n httpResponse.body && httpResponse.body.message, {debugData: debugData, statusCode: status}\n );\n\n return client._promise.reject(unrecoverableError);\n }\n\n function tryFallback(err) {\n // error cases:\n // While not in fallback mode:\n // - CORS not supported\n // - network error\n // While in fallback mode:\n // - timeout\n // - network error\n // - badly formatted JSONP (script loaded, did not call our callback)\n // In both cases:\n // - uncaught exception occurs (TypeError)\n requestDebug('error: %s, stack: %s', err.message, err.stack);\n\n var endTime = new Date();\n debugData.push({\n currentHost: currentHost,\n headers: removeCredentials(headers),\n content: body || null,\n contentLength: body !== undefined ? body.length : null,\n method: reqOpts.method,\n timeouts: reqOpts.timeouts,\n url: reqOpts.url,\n startTime: startTime,\n endTime: endTime,\n duration: endTime - startTime\n });\n\n if (!(err instanceof errors.AlgoliaSearchError)) {\n err = new errors.Unknown(err && err.message, err);\n }\n\n tries += 1;\n\n // stop the request implementation when:\n if (\n // we did not generate this error,\n // it comes from a throw in some other piece of code\n err instanceof errors.Unknown ||\n\n // server sent unparsable JSON\n err instanceof errors.UnparsableJSON ||\n\n // max tries and already using fallback or no fallback\n tries >= client.hosts[initialOpts.hostType].length &&\n (usingFallback || !hasFallback)) {\n // stop request implementation for this command\n err.debugData = debugData;\n return client._promise.reject(err);\n }\n\n // When a timeout occurred, retry by raising timeout\n if (err instanceof errors.RequestTimeout) {\n return retryRequestWithHigherTimeout();\n }\n\n return retryRequest();\n }\n\n function retryRequest() {\n requestDebug('retrying request');\n client._incrementHostIndex(initialOpts.hostType);\n return doRequest(requester, reqOpts);\n }\n\n function retryRequestWithHigherTimeout() {\n requestDebug('retrying request with higher timeout');\n client._incrementHostIndex(initialOpts.hostType);\n client._incrementTimeoutMultipler();\n reqOpts.timeouts = client._getTimeoutsForRequest(initialOpts.hostType);\n return doRequest(requester, reqOpts);\n }\n }\n\n function isCacheValidWithCurrentID(\n useRequestCache,\n currentCache,\n currentCacheID\n ) {\n return (\n client._useCache &&\n useRequestCache &&\n currentCache &&\n currentCache[currentCacheID] !== undefined\n );\n }\n\n\n function interopCallbackReturn(request, callback) {\n if (isCacheValidWithCurrentID(client._useRequestCache, cache, cacheID)) {\n request.catch(function() {\n // Release the cache on error\n delete cache[cacheID];\n });\n }\n\n if (typeof initialOpts.callback === 'function') {\n // either we have a callback\n request.then(function okCb(content) {\n exitPromise(function() {\n initialOpts.callback(null, callback(content));\n }, client._setTimeout || setTimeout);\n }, function nookCb(err) {\n exitPromise(function() {\n initialOpts.callback(err);\n }, client._setTimeout || setTimeout);\n });\n } else {\n // either we are using promises\n return request.then(callback);\n }\n }\n\n if (client._useCache && client._useRequestCache) {\n cacheID = initialOpts.url;\n }\n\n // as we sometime use POST requests to pass parameters (like query='aa'),\n // the cacheID must also include the body to be different between calls\n if (client._useCache && client._useRequestCache && body) {\n cacheID += '_body_' + body;\n }\n\n if (isCacheValidWithCurrentID(client._useRequestCache, cache, cacheID)) {\n requestDebug('serving request from cache');\n\n var maybePromiseForCache = cache[cacheID];\n\n // In case the cache is warmup with value that is not a promise\n var promiseForCache = typeof maybePromiseForCache.then !== 'function'\n ? client._promise.resolve({responseText: maybePromiseForCache})\n : maybePromiseForCache;\n\n return interopCallbackReturn(promiseForCache, function(content) {\n // In case of the cache request, return the original value\n return JSON.parse(content.responseText);\n });\n }\n\n var request = doRequest(\n client._request, {\n url: initialOpts.url,\n method: initialOpts.method,\n body: body,\n jsonBody: initialOpts.body,\n timeouts: client._getTimeoutsForRequest(initialOpts.hostType),\n forceAuthHeaders: initialOpts.forceAuthHeaders\n }\n );\n\n if (client._useCache && client._useRequestCache && cache) {\n cache[cacheID] = request;\n }\n\n return interopCallbackReturn(request, function(content) {\n // In case of the first request, return the JSON value\n return content.body;\n });\n};\n\n/*\n* Transform search param object in query string\n* @param {object} args arguments to add to the current query string\n* @param {string} params current query string\n* @return {string} the final query string\n*/\nAlgoliaSearchCore.prototype._getSearchParams = function(args, params) {\n if (args === undefined || args === null) {\n return params;\n }\n for (var key in args) {\n if (key !== null && args[key] !== undefined && args.hasOwnProperty(key)) {\n params += params === '' ? '' : '&';\n params += key + '=' + encodeURIComponent(Object.prototype.toString.call(args[key]) === '[object Array]' ? safeJSONStringify(args[key]) : args[key]);\n }\n }\n return params;\n};\n\n/**\n * Compute the headers for a request\n *\n * @param [string] options.additionalUA semi-colon separated string with other user agents to add\n * @param [boolean=true] options.withApiKey Send the api key as a header\n * @param [Object] options.headers Extra headers to send\n */\nAlgoliaSearchCore.prototype._computeRequestHeaders = function(options) {\n var forEach = require('foreach');\n\n var ua = options.additionalUA ?\n this._ua + '; ' + options.additionalUA :\n this._ua;\n\n var requestHeaders = {\n 'x-algolia-agent': ua,\n 'x-algolia-application-id': this.applicationID\n };\n\n // browser will inline headers in the url, node.js will use http headers\n // but in some situations, the API KEY will be too long (big secured API keys)\n // so if the request is a POST and the KEY is very long, we will be asked to not put\n // it into headers but in the JSON body\n if (options.withApiKey !== false) {\n requestHeaders['x-algolia-api-key'] = this.apiKey;\n }\n\n if (this.userToken) {\n requestHeaders['x-algolia-usertoken'] = this.userToken;\n }\n\n if (this.securityTags) {\n requestHeaders['x-algolia-tagfilters'] = this.securityTags;\n }\n\n forEach(this.extraHeaders, function addToRequestHeaders(value, key) {\n requestHeaders[key] = value;\n });\n\n if (options.headers) {\n forEach(options.headers, function addToRequestHeaders(value, key) {\n requestHeaders[key] = value;\n });\n }\n\n return requestHeaders;\n};\n\n/**\n * Search through multiple indices at the same time\n * @param {Object[]} queries An array of queries you want to run.\n * @param {string} queries[].indexName The index name you want to target\n * @param {string} [queries[].query] The query to issue on this index. Can also be passed into `params`\n * @param {Object} queries[].params Any search param like hitsPerPage, ..\n * @param {Function} callback Callback to be called\n * @return {Promise|undefined} Returns a promise if no callback given\n */\nAlgoliaSearchCore.prototype.search = function(queries, opts, callback) {\n var isArray = require('isarray');\n var map = require('./map.js');\n\n var usage = 'Usage: client.search(arrayOfQueries[, callback])';\n\n if (!isArray(queries)) {\n throw new Error(usage);\n }\n\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n } else if (opts === undefined) {\n opts = {};\n }\n\n var client = this;\n\n var postObj = {\n requests: map(queries, function prepareRequest(query) {\n var params = '';\n\n // allow query.query\n // so we are mimicing the index.search(query, params) method\n // {indexName:, query:, params:}\n if (query.query !== undefined) {\n params += 'query=' + encodeURIComponent(query.query);\n }\n\n return {\n indexName: query.indexName,\n params: client._getSearchParams(query.params, params)\n };\n })\n };\n\n var JSONPParams = map(postObj.requests, function prepareJSONPParams(request, requestId) {\n return requestId + '=' +\n encodeURIComponent(\n '/1/indexes/' + encodeURIComponent(request.indexName) + '?' +\n request.params\n );\n }).join('&');\n\n var url = '/1/indexes/*/queries';\n\n if (opts.strategy !== undefined) {\n postObj.strategy = opts.strategy;\n }\n\n return this._jsonRequest({\n cache: this.cache,\n method: 'POST',\n url: url,\n body: postObj,\n hostType: 'read',\n fallback: {\n method: 'GET',\n url: '/1/indexes/*',\n body: {\n params: JSONPParams\n }\n },\n callback: callback\n });\n};\n\n/**\n* Search for facet values\n* https://www.algolia.com/doc/rest-api/search#search-for-facet-values\n* This is the top-level API for SFFV.\n*\n* @param {object[]} queries An array of queries to run.\n* @param {string} queries[].indexName Index name, name of the index to search.\n* @param {object} queries[].params Query parameters.\n* @param {string} queries[].params.facetName Facet name, name of the attribute to search for values in.\n* Must be declared as a facet\n* @param {string} queries[].params.facetQuery Query for the facet search\n* @param {string} [queries[].params.*] Any search parameter of Algolia,\n* see https://www.algolia.com/doc/api-client/javascript/search#search-parameters\n* Pagination is not supported. The page and hitsPerPage parameters will be ignored.\n*/\nAlgoliaSearchCore.prototype.searchForFacetValues = function(queries) {\n var isArray = require('isarray');\n var map = require('./map.js');\n\n var usage = 'Usage: client.searchForFacetValues([{indexName, params: {facetName, facetQuery, ...params}}, ...queries])'; // eslint-disable-line max-len\n\n if (!isArray(queries)) {\n throw new Error(usage);\n }\n\n var client = this;\n\n return client._promise.all(map(queries, function performQuery(query) {\n if (\n !query ||\n query.indexName === undefined ||\n query.params.facetName === undefined ||\n query.params.facetQuery === undefined\n ) {\n throw new Error(usage);\n }\n\n var clone = require('./clone.js');\n var omit = require('./omit.js');\n\n var indexName = query.indexName;\n var params = query.params;\n\n var facetName = params.facetName;\n var filteredParams = omit(clone(params), function(keyName) {\n return keyName === 'facetName';\n });\n var searchParameters = client._getSearchParams(filteredParams, '');\n\n return client._jsonRequest({\n cache: client.cache,\n method: 'POST',\n url:\n '/1/indexes/' +\n encodeURIComponent(indexName) +\n '/facets/' +\n encodeURIComponent(facetName) +\n '/query',\n hostType: 'read',\n body: {params: searchParameters}\n });\n }));\n};\n\n/**\n * Set the extra security tagFilters header\n * @param {string|array} tags The list of tags defining the current security filters\n */\nAlgoliaSearchCore.prototype.setSecurityTags = function(tags) {\n if (Object.prototype.toString.call(tags) === '[object Array]') {\n var strTags = [];\n for (var i = 0; i < tags.length; ++i) {\n if (Object.prototype.toString.call(tags[i]) === '[object Array]') {\n var oredTags = [];\n for (var j = 0; j < tags[i].length; ++j) {\n oredTags.push(tags[i][j]);\n }\n strTags.push('(' + oredTags.join(',') + ')');\n } else {\n strTags.push(tags[i]);\n }\n }\n tags = strTags.join(',');\n }\n\n this.securityTags = tags;\n};\n\n/**\n * Set the extra user token header\n * @param {string} userToken The token identifying a uniq user (used to apply rate limits)\n */\nAlgoliaSearchCore.prototype.setUserToken = function(userToken) {\n this.userToken = userToken;\n};\n\n/**\n * Clear all queries in client's cache\n * @return undefined\n */\nAlgoliaSearchCore.prototype.clearCache = function() {\n this.cache = {};\n};\n\n/**\n* Set the number of milliseconds a request can take before automatically being terminated.\n* @deprecated\n* @param {Number} milliseconds\n*/\nAlgoliaSearchCore.prototype.setRequestTimeout = function(milliseconds) {\n if (milliseconds) {\n this._timeouts.connect = this._timeouts.read = this._timeouts.write = milliseconds;\n }\n};\n\n/**\n* Set the three different (connect, read, write) timeouts to be used when requesting\n* @param {Object} timeouts\n*/\nAlgoliaSearchCore.prototype.setTimeouts = function(timeouts) {\n this._timeouts = timeouts;\n};\n\n/**\n* Get the three different (connect, read, write) timeouts to be used when requesting\n* @param {Object} timeouts\n*/\nAlgoliaSearchCore.prototype.getTimeouts = function() {\n return this._timeouts;\n};\n\nAlgoliaSearchCore.prototype._getAppIdData = function() {\n var data = store.get(this.applicationID);\n if (data !== null) this._cacheAppIdData(data);\n return data;\n};\n\nAlgoliaSearchCore.prototype._setAppIdData = function(data) {\n data.lastChange = (new Date()).getTime();\n this._cacheAppIdData(data);\n return store.set(this.applicationID, data);\n};\n\nAlgoliaSearchCore.prototype._checkAppIdData = function() {\n var data = this._getAppIdData();\n var now = (new Date()).getTime();\n if (data === null || now - data.lastChange > RESET_APP_DATA_TIMER) {\n return this._resetInitialAppIdData(data);\n }\n\n return data;\n};\n\nAlgoliaSearchCore.prototype._resetInitialAppIdData = function(data) {\n var newData = data || {};\n newData.hostIndexes = {read: 0, write: 0};\n newData.timeoutMultiplier = 1;\n newData.shuffleResult = newData.shuffleResult || shuffle([1, 2, 3]);\n return this._setAppIdData(newData);\n};\n\nAlgoliaSearchCore.prototype._cacheAppIdData = function(data) {\n this._hostIndexes = data.hostIndexes;\n this._timeoutMultiplier = data.timeoutMultiplier;\n this._shuffleResult = data.shuffleResult;\n};\n\nAlgoliaSearchCore.prototype._partialAppIdDataUpdate = function(newData) {\n var foreach = require('foreach');\n var currentData = this._getAppIdData();\n foreach(newData, function(value, key) {\n currentData[key] = value;\n });\n\n return this._setAppIdData(currentData);\n};\n\nAlgoliaSearchCore.prototype._getHostByType = function(hostType) {\n return this.hosts[hostType][this._getHostIndexByType(hostType)];\n};\n\nAlgoliaSearchCore.prototype._getTimeoutMultiplier = function() {\n return this._timeoutMultiplier;\n};\n\nAlgoliaSearchCore.prototype._getHostIndexByType = function(hostType) {\n return this._hostIndexes[hostType];\n};\n\nAlgoliaSearchCore.prototype._setHostIndexByType = function(hostIndex, hostType) {\n var clone = require('./clone');\n var newHostIndexes = clone(this._hostIndexes);\n newHostIndexes[hostType] = hostIndex;\n this._partialAppIdDataUpdate({hostIndexes: newHostIndexes});\n return hostIndex;\n};\n\nAlgoliaSearchCore.prototype._incrementHostIndex = function(hostType) {\n return this._setHostIndexByType(\n (this._getHostIndexByType(hostType) + 1) % this.hosts[hostType].length, hostType\n );\n};\n\nAlgoliaSearchCore.prototype._incrementTimeoutMultipler = function() {\n var timeoutMultiplier = Math.max(this._timeoutMultiplier + 1, 4);\n return this._partialAppIdDataUpdate({timeoutMultiplier: timeoutMultiplier});\n};\n\nAlgoliaSearchCore.prototype._getTimeoutsForRequest = function(hostType) {\n return {\n connect: this._timeouts.connect * this._timeoutMultiplier,\n complete: this._timeouts[hostType] * this._timeoutMultiplier\n };\n};\n\nfunction prepareHost(protocol) {\n return function prepare(host) {\n return protocol + '//' + host.toLowerCase();\n };\n}\n\n// Prototype.js < 1.7, a widely used library, defines a weird\n// Array.prototype.toJSON function that will fail to stringify our content\n// appropriately\n// refs:\n// - https://groups.google.com/forum/#!topic/prototype-core/E-SAVvV_V9Q\n// - https://github.com/sstephenson/prototype/commit/038a2985a70593c1a86c230fadbdfe2e4898a48c\n// - http://stackoverflow.com/a/3148441/147079\nfunction safeJSONStringify(obj) {\n /* eslint no-extend-native:0 */\n\n if (Array.prototype.toJSON === undefined) {\n return JSON.stringify(obj);\n }\n\n var toJSON = Array.prototype.toJSON;\n delete Array.prototype.toJSON;\n var out = JSON.stringify(obj);\n Array.prototype.toJSON = toJSON;\n\n return out;\n}\n\nfunction shuffle(array) {\n var currentIndex = array.length;\n var temporaryValue;\n var randomIndex;\n\n // While there remain elements to shuffle...\n while (currentIndex !== 0) {\n // Pick a remaining element...\n randomIndex = Math.floor(Math.random() * currentIndex);\n currentIndex -= 1;\n\n // And swap it with the current element.\n temporaryValue = array[currentIndex];\n array[currentIndex] = array[randomIndex];\n array[randomIndex] = temporaryValue;\n }\n\n return array;\n}\n\nfunction removeCredentials(headers) {\n var newHeaders = {};\n\n for (var headerName in headers) {\n if (Object.prototype.hasOwnProperty.call(headers, headerName)) {\n var value;\n\n if (headerName === 'x-algolia-api-key' || headerName === 'x-algolia-application-id') {\n value = '**hidden for security purposes**';\n } else {\n value = headers[headerName];\n }\n\n newHeaders[headerName] = value;\n }\n }\n\n return newHeaders;\n}\n","var buildSearchMethod = require('./buildSearchMethod.js');\nvar deprecate = require('./deprecate.js');\nvar deprecatedMessage = require('./deprecatedMessage.js');\n\nmodule.exports = IndexCore;\n\n/*\n* Index class constructor.\n* You should not use this method directly but use initIndex() function\n*/\nfunction IndexCore(algoliasearch, indexName) {\n this.indexName = indexName;\n this.as = algoliasearch;\n this.typeAheadArgs = null;\n this.typeAheadValueOption = null;\n\n // make sure every index instance has it's own cache\n this.cache = {};\n}\n\n/*\n* Clear all queries in cache\n*/\nIndexCore.prototype.clearCache = function() {\n this.cache = {};\n};\n\n/*\n* Search inside the index using XMLHttpRequest request (Using a POST query to\n* minimize number of OPTIONS queries: Cross-Origin Resource Sharing).\n*\n* @param {string} [query] the full text query\n* @param {object} [args] (optional) if set, contains an object with query parameters:\n* - page: (integer) Pagination parameter used to select the page to retrieve.\n* Page is zero-based and defaults to 0. Thus,\n* to retrieve the 10th page you need to set page=9\n* - hitsPerPage: (integer) Pagination parameter used to select the number of hits per page. Defaults to 20.\n* - attributesToRetrieve: a string that contains the list of object attributes\n* you want to retrieve (let you minimize the answer size).\n* Attributes are separated with a comma (for example \"name,address\").\n* You can also use an array (for example [\"name\",\"address\"]).\n* By default, all attributes are retrieved. You can also use '*' to retrieve all\n* values when an attributesToRetrieve setting is specified for your index.\n* - attributesToHighlight: a string that contains the list of attributes you\n* want to highlight according to the query.\n* Attributes are separated by a comma. You can also use an array (for example [\"name\",\"address\"]).\n* If an attribute has no match for the query, the raw value is returned.\n* By default all indexed text attributes are highlighted.\n* You can use `*` if you want to highlight all textual attributes.\n* Numerical attributes are not highlighted.\n* A matchLevel is returned for each highlighted attribute and can contain:\n* - full: if all the query terms were found in the attribute,\n* - partial: if only some of the query terms were found,\n* - none: if none of the query terms were found.\n* - attributesToSnippet: a string that contains the list of attributes to snippet alongside\n* the number of words to return (syntax is `attributeName:nbWords`).\n* Attributes are separated by a comma (Example: attributesToSnippet=name:10,content:10).\n* You can also use an array (Example: attributesToSnippet: ['name:10','content:10']).\n* By default no snippet is computed.\n* - minWordSizefor1Typo: the minimum number of characters in a query word to accept one typo in this word.\n* Defaults to 3.\n* - minWordSizefor2Typos: the minimum number of characters in a query word\n* to accept two typos in this word. Defaults to 7.\n* - getRankingInfo: if set to 1, the result hits will contain ranking\n* information in _rankingInfo attribute.\n* - aroundLatLng: search for entries around a given\n* latitude/longitude (specified as two floats separated by a comma).\n* For example aroundLatLng=47.316669,5.016670).\n* You can specify the maximum distance in meters with the aroundRadius parameter (in meters)\n* and the precision for ranking with aroundPrecision\n* (for example if you set aroundPrecision=100, two objects that are distant of\n* less than 100m will be considered as identical for \"geo\" ranking parameter).\n* At indexing, you should specify geoloc of an object with the _geoloc attribute\n* (in the form {\"_geoloc\":{\"lat\":48.853409, \"lng\":2.348800}})\n* - insideBoundingBox: search entries inside a given area defined by the two extreme points\n* of a rectangle (defined by 4 floats: p1Lat,p1Lng,p2Lat,p2Lng).\n* For example insideBoundingBox=47.3165,4.9665,47.3424,5.0201).\n* At indexing, you should specify geoloc of an object with the _geoloc attribute\n* (in the form {\"_geoloc\":{\"lat\":48.853409, \"lng\":2.348800}})\n* - numericFilters: a string that contains the list of numeric filters you want to\n* apply separated by a comma.\n* The syntax of one filter is `attributeName` followed by `operand` followed by `value`.\n* Supported operands are `<`, `<=`, `=`, `>` and `>=`.\n* You can have multiple conditions on one attribute like for example numericFilters=price>100,price<1000.\n* You can also use an array (for example numericFilters: [\"price>100\",\"price<1000\"]).\n* - tagFilters: filter the query by a set of tags. You can AND tags by separating them by commas.\n* To OR tags, you must add parentheses. For example, tags=tag1,(tag2,tag3) means tag1 AND (tag2 OR tag3).\n* You can also use an array, for example tagFilters: [\"tag1\",[\"tag2\",\"tag3\"]]\n* means tag1 AND (tag2 OR tag3).\n* At indexing, tags should be added in the _tags** attribute\n* of objects (for example {\"_tags\":[\"tag1\",\"tag2\"]}).\n* - facetFilters: filter the query by a list of facets.\n* Facets are separated by commas and each facet is encoded as `attributeName:value`.\n* For example: `facetFilters=category:Book,author:John%20Doe`.\n* You can also use an array (for example `[\"category:Book\",\"author:John%20Doe\"]`).\n* - facets: List of object attributes that you want to use for faceting.\n* Comma separated list: `\"category,author\"` or array `['category','author']`\n* Only attributes that have been added in **attributesForFaceting** index setting\n* can be used in this parameter.\n* You can also use `*` to perform faceting on all attributes specified in **attributesForFaceting**.\n* - queryType: select how the query words are interpreted, it can be one of the following value:\n* - prefixAll: all query words are interpreted as prefixes,\n* - prefixLast: only the last word is interpreted as a prefix (default behavior),\n* - prefixNone: no query word is interpreted as a prefix. This option is not recommended.\n* - optionalWords: a string that contains the list of words that should\n* be considered as optional when found in the query.\n* Comma separated and array are accepted.\n* - distinct: If set to 1, enable the distinct feature (disabled by default)\n* if the attributeForDistinct index setting is set.\n* This feature is similar to the SQL \"distinct\" keyword: when enabled\n* in a query with the distinct=1 parameter,\n* all hits containing a duplicate value for the attributeForDistinct attribute are removed from results.\n* For example, if the chosen attribute is show_name and several hits have\n* the same value for show_name, then only the best\n* one is kept and others are removed.\n* - restrictSearchableAttributes: List of attributes you want to use for\n* textual search (must be a subset of the attributesToIndex index setting)\n* either comma separated or as an array\n* @param {function} [callback] the result callback called with two arguments:\n* error: null or Error('message'). If false, the content contains the error.\n* content: the server answer that contains the list of results.\n*/\nIndexCore.prototype.search = buildSearchMethod('query');\n\n/*\n* -- BETA --\n* Search a record similar to the query inside the index using XMLHttpRequest request (Using a POST query to\n* minimize number of OPTIONS queries: Cross-Origin Resource Sharing).\n*\n* @param {string} [query] the similar query\n* @param {object} [args] (optional) if set, contains an object with query parameters.\n* All search parameters are supported (see search function), restrictSearchableAttributes and facetFilters\n* are the two most useful to restrict the similar results and get more relevant content\n*/\nIndexCore.prototype.similarSearch = deprecate(\n buildSearchMethod('similarQuery'),\n deprecatedMessage(\n 'index.similarSearch(query[, callback])',\n 'index.search({ similarQuery: query }[, callback])'\n )\n);\n\n/*\n* Browse index content. The response content will have a `cursor` property that you can use\n* to browse subsequent pages for this query. Use `index.browseFrom(cursor)` when you want.\n*\n* @param {string} query - The full text query\n* @param {Object} [queryParameters] - Any search query parameter\n* @param {Function} [callback] - The result callback called with two arguments\n* error: null or Error('message')\n* content: the server answer with the browse result\n* @return {Promise|undefined} Returns a promise if no callback given\n* @example\n* index.browse('cool songs', {\n* tagFilters: 'public,comments',\n* hitsPerPage: 500\n* }, callback);\n* @see {@link https://www.algolia.com/doc/rest_api#Browse|Algolia REST API Documentation}\n*/\nIndexCore.prototype.browse = function(query, queryParameters, callback) {\n var merge = require('./merge.js');\n\n var indexObj = this;\n\n var page;\n var hitsPerPage;\n\n // we check variadic calls that are not the one defined\n // .browse()/.browse(fn)\n // => page = 0\n if (arguments.length === 0 || arguments.length === 1 && typeof arguments[0] === 'function') {\n page = 0;\n callback = arguments[0];\n query = undefined;\n } else if (typeof arguments[0] === 'number') {\n // .browse(2)/.browse(2, 10)/.browse(2, fn)/.browse(2, 10, fn)\n page = arguments[0];\n if (typeof arguments[1] === 'number') {\n hitsPerPage = arguments[1];\n } else if (typeof arguments[1] === 'function') {\n callback = arguments[1];\n hitsPerPage = undefined;\n }\n query = undefined;\n queryParameters = undefined;\n } else if (typeof arguments[0] === 'object') {\n // .browse(queryParameters)/.browse(queryParameters, cb)\n if (typeof arguments[1] === 'function') {\n callback = arguments[1];\n }\n queryParameters = arguments[0];\n query = undefined;\n } else if (typeof arguments[0] === 'string' && typeof arguments[1] === 'function') {\n // .browse(query, cb)\n callback = arguments[1];\n queryParameters = undefined;\n }\n\n // otherwise it's a .browse(query)/.browse(query, queryParameters)/.browse(query, queryParameters, cb)\n\n // get search query parameters combining various possible calls\n // to .browse();\n queryParameters = merge({}, queryParameters || {}, {\n page: page,\n hitsPerPage: hitsPerPage,\n query: query\n });\n\n var params = this.as._getSearchParams(queryParameters, '');\n\n return this.as._jsonRequest({\n method: 'POST',\n url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/browse',\n body: {params: params},\n hostType: 'read',\n callback: callback\n });\n};\n\n/*\n* Continue browsing from a previous position (cursor), obtained via a call to `.browse()`.\n*\n* @param {string} query - The full text query\n* @param {Object} [queryParameters] - Any search query parameter\n* @param {Function} [callback] - The result callback called with two arguments\n* error: null or Error('message')\n* content: the server answer with the browse result\n* @return {Promise|undefined} Returns a promise if no callback given\n* @example\n* index.browseFrom('14lkfsakl32', callback);\n* @see {@link https://www.algolia.com/doc/rest_api#Browse|Algolia REST API Documentation}\n*/\nIndexCore.prototype.browseFrom = function(cursor, callback) {\n return this.as._jsonRequest({\n method: 'POST',\n url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/browse',\n body: {cursor: cursor},\n hostType: 'read',\n callback: callback\n });\n};\n\n/*\n* Search for facet values\n* https://www.algolia.com/doc/rest-api/search#search-for-facet-values\n*\n* @param {string} params.facetName Facet name, name of the attribute to search for values in.\n* Must be declared as a facet\n* @param {string} params.facetQuery Query for the facet search\n* @param {string} [params.*] Any search parameter of Algolia,\n* see https://www.algolia.com/doc/api-client/javascript/search#search-parameters\n* Pagination is not supported. The page and hitsPerPage parameters will be ignored.\n* @param callback (optional)\n*/\nIndexCore.prototype.searchForFacetValues = function(params, callback) {\n var clone = require('./clone.js');\n var omit = require('./omit.js');\n var usage = 'Usage: index.searchForFacetValues({facetName, facetQuery, ...params}[, callback])';\n\n if (params.facetName === undefined || params.facetQuery === undefined) {\n throw new Error(usage);\n }\n\n var facetName = params.facetName;\n var filteredParams = omit(clone(params), function(keyName) {\n return keyName === 'facetName';\n });\n var searchParameters = this.as._getSearchParams(filteredParams, '');\n\n return this.as._jsonRequest({\n method: 'POST',\n url: '/1/indexes/' +\n encodeURIComponent(this.indexName) + '/facets/' + encodeURIComponent(facetName) + '/query',\n hostType: 'read',\n body: {params: searchParameters},\n callback: callback\n });\n};\n\nIndexCore.prototype.searchFacet = deprecate(function(params, callback) {\n return this.searchForFacetValues(params, callback);\n}, deprecatedMessage(\n 'index.searchFacet(params[, callback])',\n 'index.searchForFacetValues(params[, callback])'\n));\n\nIndexCore.prototype._search = function(params, url, callback, additionalUA) {\n return this.as._jsonRequest({\n cache: this.cache,\n method: 'POST',\n url: url || '/1/indexes/' + encodeURIComponent(this.indexName) + '/query',\n body: {params: params},\n hostType: 'read',\n fallback: {\n method: 'GET',\n url: '/1/indexes/' + encodeURIComponent(this.indexName),\n body: {params: params}\n },\n callback: callback,\n additionalUA: additionalUA\n });\n};\n\n/*\n* Get an object from this index\n*\n* @param objectID the unique identifier of the object to retrieve\n* @param attrs (optional) if set, contains the array of attribute names to retrieve\n* @param callback (optional) the result callback called with two arguments\n* error: null or Error('message')\n* content: the object to retrieve or the error message if a failure occurred\n*/\nIndexCore.prototype.getObject = function(objectID, attrs, callback) {\n var indexObj = this;\n\n if (arguments.length === 1 || typeof attrs === 'function') {\n callback = attrs;\n attrs = undefined;\n }\n\n var params = '';\n if (attrs !== undefined) {\n params = '?attributes=';\n for (var i = 0; i < attrs.length; ++i) {\n if (i !== 0) {\n params += ',';\n }\n params += attrs[i];\n }\n }\n\n return this.as._jsonRequest({\n method: 'GET',\n url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/' + encodeURIComponent(objectID) + params,\n hostType: 'read',\n callback: callback\n });\n};\n\n/*\n* Get several objects from this index\n*\n* @param objectIDs the array of unique identifier of objects to retrieve\n*/\nIndexCore.prototype.getObjects = function(objectIDs, attributesToRetrieve, callback) {\n var isArray = require('isarray');\n var map = require('./map.js');\n\n var usage = 'Usage: index.getObjects(arrayOfObjectIDs[, callback])';\n\n if (!isArray(objectIDs)) {\n throw new Error(usage);\n }\n\n var indexObj = this;\n\n if (arguments.length === 1 || typeof attributesToRetrieve === 'function') {\n callback = attributesToRetrieve;\n attributesToRetrieve = undefined;\n }\n\n var body = {\n requests: map(objectIDs, function prepareRequest(objectID) {\n var request = {\n indexName: indexObj.indexName,\n objectID: objectID\n };\n\n if (attributesToRetrieve) {\n request.attributesToRetrieve = attributesToRetrieve.join(',');\n }\n\n return request;\n })\n };\n\n return this.as._jsonRequest({\n method: 'POST',\n url: '/1/indexes/*/objects',\n hostType: 'read',\n body: body,\n callback: callback\n });\n};\n\nIndexCore.prototype.as = null;\nIndexCore.prototype.indexName = null;\nIndexCore.prototype.typeAheadArgs = null;\nIndexCore.prototype.typeAheadValueOption = null;\n","'use strict';\n\nvar AlgoliaSearchCore = require('../../AlgoliaSearchCore.js');\nvar createAlgoliasearch = require('../createAlgoliasearch.js');\n\nmodule.exports = createAlgoliasearch(AlgoliaSearchCore, 'Browser (lite)');\n","'use strict';\n\nvar global = require('global');\nvar Promise = global.Promise || require('es6-promise').Promise;\n\n// This is the standalone browser build entry point\n// Browser implementation of the Algolia Search JavaScript client,\n// using XMLHttpRequest, XDomainRequest and JSONP as fallback\nmodule.exports = function createAlgoliasearch(AlgoliaSearch, uaSuffix) {\n var inherits = require('inherits');\n var errors = require('../errors');\n var inlineHeaders = require('./inline-headers');\n var jsonpRequest = require('./jsonp-request');\n var places = require('../places.js');\n uaSuffix = uaSuffix || '';\n\n if (process.env.NODE_ENV === 'debug') {\n require('debug').enable('algoliasearch*');\n }\n\n function algoliasearch(applicationID, apiKey, opts) {\n var cloneDeep = require('../clone.js');\n\n opts = cloneDeep(opts || {});\n\n opts._ua = opts._ua || algoliasearch.ua;\n\n return new AlgoliaSearchBrowser(applicationID, apiKey, opts);\n }\n\n algoliasearch.version = require('../version.js');\n\n algoliasearch.ua =\n 'Algolia for JavaScript (' + algoliasearch.version + '); ' + uaSuffix;\n\n algoliasearch.initPlaces = places(algoliasearch);\n\n // we expose into window no matter how we are used, this will allow\n // us to easily debug any website running algolia\n global.__algolia = {\n debug: require('debug'),\n algoliasearch: algoliasearch\n };\n\n var support = {\n hasXMLHttpRequest: 'XMLHttpRequest' in global,\n hasXDomainRequest: 'XDomainRequest' in global\n };\n\n if (support.hasXMLHttpRequest) {\n support.cors = 'withCredentials' in new XMLHttpRequest();\n }\n\n function AlgoliaSearchBrowser() {\n // call AlgoliaSearch constructor\n AlgoliaSearch.apply(this, arguments);\n }\n\n inherits(AlgoliaSearchBrowser, AlgoliaSearch);\n\n AlgoliaSearchBrowser.prototype._request = function request(url, opts) {\n return new Promise(function wrapRequest(resolve, reject) {\n // no cors or XDomainRequest, no request\n if (!support.cors && !support.hasXDomainRequest) {\n // very old browser, not supported\n reject(new errors.Network('CORS not supported'));\n return;\n }\n\n url = inlineHeaders(url, opts.headers);\n\n var body = opts.body;\n var req = support.cors ? new XMLHttpRequest() : new XDomainRequest();\n var reqTimeout;\n var timedOut;\n var connected = false;\n\n reqTimeout = setTimeout(onTimeout, opts.timeouts.connect);\n // we set an empty onprogress listener\n // so that XDomainRequest on IE9 is not aborted\n // refs:\n // - https://github.com/algolia/algoliasearch-client-js/issues/76\n // - https://social.msdn.microsoft.com/Forums/ie/en-US/30ef3add-767c-4436-b8a9-f1ca19b4812e/ie9-rtm-xdomainrequest-issued-requests-may-abort-if-all-event-handlers-not-specified?forum=iewebdevelopment\n req.onprogress = onProgress;\n if ('onreadystatechange' in req) req.onreadystatechange = onReadyStateChange;\n req.onload = onLoad;\n req.onerror = onError;\n\n // do not rely on default XHR async flag, as some analytics code like hotjar\n // breaks it and set it to false by default\n if (req instanceof XMLHttpRequest) {\n req.open(opts.method, url, true);\n\n // The Analytics API never accepts Auth headers as query string\n // this option exists specifically for them.\n if (opts.forceAuthHeaders) {\n req.setRequestHeader(\n 'x-algolia-application-id',\n opts.headers['x-algolia-application-id']\n );\n req.setRequestHeader(\n 'x-algolia-api-key',\n opts.headers['x-algolia-api-key']\n );\n }\n } else {\n req.open(opts.method, url);\n }\n\n // headers are meant to be sent after open\n if (support.cors) {\n if (body) {\n if (opts.method === 'POST') {\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Simple_requests\n req.setRequestHeader('content-type', 'application/x-www-form-urlencoded');\n } else {\n req.setRequestHeader('content-type', 'application/json');\n }\n }\n req.setRequestHeader('accept', 'application/json');\n }\n\n if (body) {\n req.send(body);\n } else {\n req.send();\n }\n\n // event object not received in IE8, at least\n // but we do not use it, still important to note\n function onLoad(/* event */) {\n // When browser does not supports req.timeout, we can\n // have both a load and timeout event, since handled by a dumb setTimeout\n if (timedOut) {\n return;\n }\n\n clearTimeout(reqTimeout);\n\n var out;\n\n try {\n out = {\n body: JSON.parse(req.responseText),\n responseText: req.responseText,\n statusCode: req.status,\n // XDomainRequest does not have any response headers\n headers: req.getAllResponseHeaders && req.getAllResponseHeaders() || {}\n };\n } catch (e) {\n out = new errors.UnparsableJSON({\n more: req.responseText\n });\n }\n\n if (out instanceof errors.UnparsableJSON) {\n reject(out);\n } else {\n resolve(out);\n }\n }\n\n function onError(event) {\n if (timedOut) {\n return;\n }\n\n clearTimeout(reqTimeout);\n\n // error event is trigerred both with XDR/XHR on:\n // - DNS error\n // - unallowed cross domain request\n reject(\n new errors.Network({\n more: event\n })\n );\n }\n\n function onTimeout() {\n timedOut = true;\n req.abort();\n\n reject(new errors.RequestTimeout());\n }\n\n function onConnect() {\n connected = true;\n clearTimeout(reqTimeout);\n reqTimeout = setTimeout(onTimeout, opts.timeouts.complete);\n }\n\n function onProgress() {\n if (!connected) onConnect();\n }\n\n function onReadyStateChange() {\n if (!connected && req.readyState > 1) onConnect();\n }\n });\n };\n\n AlgoliaSearchBrowser.prototype._request.fallback = function requestFallback(url, opts) {\n url = inlineHeaders(url, opts.headers);\n\n return new Promise(function wrapJsonpRequest(resolve, reject) {\n jsonpRequest(url, opts, function jsonpRequestDone(err, content) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(content);\n });\n });\n };\n\n AlgoliaSearchBrowser.prototype._promise = {\n reject: function rejectPromise(val) {\n return Promise.reject(val);\n },\n resolve: function resolvePromise(val) {\n return Promise.resolve(val);\n },\n delay: function delayPromise(ms) {\n return new Promise(function resolveOnTimeout(resolve/* , reject*/) {\n setTimeout(resolve, ms);\n });\n },\n all: function all(promises) {\n return Promise.all(promises);\n }\n };\n\n return algoliasearch;\n};\n","'use strict';\n\nmodule.exports = inlineHeaders;\n\nvar encode = require('querystring-es3/encode');\n\nfunction inlineHeaders(url, headers) {\n if (/\\?/.test(url)) {\n url += '&';\n } else {\n url += '?';\n }\n\n return url + encode(headers);\n}\n","'use strict';\n\nmodule.exports = jsonpRequest;\n\nvar errors = require('../errors');\n\nvar JSONPCounter = 0;\n\nfunction jsonpRequest(url, opts, cb) {\n if (opts.method !== 'GET') {\n cb(new Error('Method ' + opts.method + ' ' + url + ' is not supported by JSONP.'));\n return;\n }\n\n opts.debug('JSONP: start');\n\n var cbCalled = false;\n var timedOut = false;\n\n JSONPCounter += 1;\n var head = document.getElementsByTagName('head')[0];\n var script = document.createElement('script');\n var cbName = 'algoliaJSONP_' + JSONPCounter;\n var done = false;\n\n window[cbName] = function(data) {\n removeGlobals();\n\n if (timedOut) {\n opts.debug('JSONP: Late answer, ignoring');\n return;\n }\n\n cbCalled = true;\n\n clean();\n\n cb(null, {\n body: data,\n responseText: JSON.stringify(data)/* ,\n // We do not send the statusCode, there's no statusCode in JSONP, it will be\n // computed using data.status && data.message like with XDR\n statusCode*/\n });\n };\n\n // add callback by hand\n url += '&callback=' + cbName;\n\n // add body params manually\n if (opts.jsonBody && opts.jsonBody.params) {\n url += '&' + opts.jsonBody.params;\n }\n\n var ontimeout = setTimeout(timeout, opts.timeouts.complete);\n\n // script onreadystatechange needed only for\n // <= IE8\n // https://github.com/angular/angular.js/issues/4523\n script.onreadystatechange = readystatechange;\n script.onload = success;\n script.onerror = error;\n\n script.async = true;\n script.defer = true;\n script.src = url;\n head.appendChild(script);\n\n function success() {\n opts.debug('JSONP: success');\n\n if (done || timedOut) {\n return;\n }\n\n done = true;\n\n // script loaded but did not call the fn => script loading error\n if (!cbCalled) {\n opts.debug('JSONP: Fail. Script loaded but did not call the callback');\n clean();\n cb(new errors.JSONPScriptFail());\n }\n }\n\n function readystatechange() {\n if (this.readyState === 'loaded' || this.readyState === 'complete') {\n success();\n }\n }\n\n function clean() {\n clearTimeout(ontimeout);\n script.onload = null;\n script.onreadystatechange = null;\n script.onerror = null;\n head.removeChild(script);\n }\n\n function removeGlobals() {\n try {\n delete window[cbName];\n delete window[cbName + '_loaded'];\n } catch (e) {\n window[cbName] = window[cbName + '_loaded'] = undefined;\n }\n }\n\n function timeout() {\n opts.debug('JSONP: Script timeout');\n timedOut = true;\n clean();\n cb(new errors.RequestTimeout());\n }\n\n function error() {\n opts.debug('JSONP: Script error');\n\n if (done || timedOut) {\n return;\n }\n\n clean();\n cb(new errors.JSONPScriptError());\n }\n}\n","module.exports = buildSearchMethod;\n\nvar errors = require('./errors.js');\n\n/**\n * Creates a search method to be used in clients\n * @param {string} queryParam the name of the attribute used for the query\n * @param {string} url the url\n * @return {function} the search method\n */\nfunction buildSearchMethod(queryParam, url) {\n /**\n * The search method. Prepares the data and send the query to Algolia.\n * @param {string} query the string used for query search\n * @param {object} args additional parameters to send with the search\n * @param {function} [callback] the callback to be called with the client gets the answer\n * @return {undefined|Promise} If the callback is not provided then this methods returns a Promise\n */\n return function search(query, args, callback) {\n // warn V2 users on how to search\n if (typeof query === 'function' && typeof args === 'object' ||\n typeof callback === 'object') {\n // .search(query, params, cb)\n // .search(cb, params)\n throw new errors.AlgoliaSearchError('index.search usage is index.search(query, params, cb)');\n }\n\n // Normalizing the function signature\n if (arguments.length === 0 || typeof query === 'function') {\n // Usage : .search(), .search(cb)\n callback = query;\n query = '';\n } else if (arguments.length === 1 || typeof args === 'function') {\n // Usage : .search(query/args), .search(query, cb)\n callback = args;\n args = undefined;\n }\n // At this point we have 3 arguments with values\n\n // Usage : .search(args) // careful: typeof null === 'object'\n if (typeof query === 'object' && query !== null) {\n args = query;\n query = undefined;\n } else if (query === undefined || query === null) { // .search(undefined/null)\n query = '';\n }\n\n var params = '';\n\n if (query !== undefined) {\n params += queryParam + '=' + encodeURIComponent(query);\n }\n\n var additionalUA;\n if (args !== undefined) {\n if (args.additionalUA) {\n additionalUA = args.additionalUA;\n delete args.additionalUA;\n }\n // `_getSearchParams` will augment params, do not be fooled by the = versus += from previous if\n params = this.as._getSearchParams(args, params);\n }\n\n\n return this._search(params, url, callback, additionalUA);\n };\n}\n","module.exports = function clone(obj) {\n return JSON.parse(JSON.stringify(obj));\n};\n","module.exports = function deprecate(fn, message) {\n var warned = false;\n\n function deprecated() {\n if (!warned) {\n /* eslint no-console:0 */\n console.warn(message);\n warned = true;\n }\n\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n","module.exports = function deprecatedMessage(previousUsage, newUsage) {\n var githubAnchorLink = previousUsage.toLowerCase()\n .replace(/[\\.\\(\\)]/g, '');\n\n return 'algoliasearch: `' + previousUsage + '` was replaced by `' + newUsage +\n '`. Please see https://github.com/algolia/algoliasearch-client-javascript/wiki/Deprecated#' + githubAnchorLink;\n};\n","'use strict';\n\n// This file hosts our error definitions\n// We use custom error \"types\" so that we can act on them when we need it\n// e.g.: if error instanceof errors.UnparsableJSON then..\n\nvar inherits = require('inherits');\n\nfunction AlgoliaSearchError(message, extraProperties) {\n var forEach = require('foreach');\n\n var error = this;\n\n // try to get a stacktrace\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, this.constructor);\n } else {\n error.stack = (new Error()).stack || 'Cannot get a stacktrace, browser is too old';\n }\n\n this.name = 'AlgoliaSearchError';\n this.message = message || 'Unknown error';\n\n if (extraProperties) {\n forEach(extraProperties, function addToErrorObject(value, key) {\n error[key] = value;\n });\n }\n}\n\ninherits(AlgoliaSearchError, Error);\n\nfunction createCustomError(name, message) {\n function AlgoliaSearchCustomError() {\n var args = Array.prototype.slice.call(arguments, 0);\n\n // custom message not set, use default\n if (typeof args[0] !== 'string') {\n args.unshift(message);\n }\n\n AlgoliaSearchError.apply(this, args);\n this.name = 'AlgoliaSearch' + name + 'Error';\n }\n\n inherits(AlgoliaSearchCustomError, AlgoliaSearchError);\n\n return AlgoliaSearchCustomError;\n}\n\n// late exports to let various fn defs and inherits take place\nmodule.exports = {\n AlgoliaSearchError: AlgoliaSearchError,\n UnparsableJSON: createCustomError(\n 'UnparsableJSON',\n 'Could not parse the incoming response as JSON, see err.more for details'\n ),\n RequestTimeout: createCustomError(\n 'RequestTimeout',\n 'Request timed out before getting a response'\n ),\n Network: createCustomError(\n 'Network',\n 'Network issue, see err.more for details'\n ),\n JSONPScriptFail: createCustomError(\n 'JSONPScriptFail',\n '